@x4b/banner 30.4.0 → 30.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/banner.es.js +2128 -1950
- package/dist/banner.es.js.map +1 -1
- package/dist/banner.umd.js +44 -28
- package/dist/banner.umd.js.map +1 -1
- package/package.json +2 -2
- package/styles.css +1 -1
package/dist/banner.es.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"banner.es.js","sources":["../../../node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.es6.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@formatjs+ecma402-abstract@1.13.0/node_modules/@formatjs/ecma402-abstract/lib/utils.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../node_modules/.pnpm/@formatjs+fast-memoize@1.2.6/node_modules/@formatjs/fast-memoize/lib/index.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/error.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/formatters.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/core.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/error.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/utils.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/message.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/dateTime.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/displayName.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/list.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/plural.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/relativeTime.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/number.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/create-intl.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/src/utils.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/src/components/injectIntl.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/src/components/useIntl.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/src/components/createFormattedComponent.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/src/components/provider.js","../../../node_modules/.pnpm/react-intl@6.2.1_uz2ogxeagc4rbieizlfzyaazee/node_modules/react-intl/lib/index.js","../../../node_modules/.pnpm/clsx@1.2.1/node_modules/clsx/dist/clsx.m.js","../src/library/utils/mail.ts","../src/library/utils/toggleMenu.ts","../../../node_modules/.pnpm/@reach+utils@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/utils/dist/reach-utils.mjs","../../../node_modules/.pnpm/@reach+portal@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/portal/dist/reach-portal.mjs","../../../node_modules/.pnpm/@reach+observe-rect@1.2.0/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../../../node_modules/.pnpm/@reach+rect@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/rect/dist/reach-rect.mjs","../../../node_modules/.pnpm/tabbable@5.3.3/node_modules/tabbable/dist/index.esm.js","../../../node_modules/.pnpm/@reach+popover@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/popover/dist/reach-popover.mjs","../../../node_modules/.pnpm/@reach+auto-id@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/auto-id/dist/reach-auto-id.mjs","../../../node_modules/.pnpm/@reach+descendants@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/descendants/dist/reach-descendants.mjs","../../../node_modules/.pnpm/@reach+dropdown@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/dropdown/dist/reach-dropdown.mjs","../../../node_modules/.pnpm/@reach+menu-button@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/menu-button/dist/reach-menu-button.mjs","../src/library/components/MenuContent.tsx","../src/library/components/AppSelector.tsx","../src/library/components/AppTitle.tsx","../../../node_modules/.pnpm/@reach+visually-hidden@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/visually-hidden/dist/reach-visually-hidden.mjs","../../../node_modules/.pnpm/@reach+tooltip@0.18.0_biqbaboplfbrettd7655fr4n2y/node_modules/@reach/tooltip/dist/reach-tooltip.mjs","../src/library/components/CustomTooltip.tsx","../src/library/utils/language.ts","../src/library/components/LanguageSelector.tsx","../src/library/components/NotificationButton.tsx","../src/library/components/UserProfileMenu.tsx","../src/library/components/BannerContent.tsx","../src/library/locales/localeConfiguration.ts","../src/library/components/Banner.tsx","../src/library/constants.ts","../src/library/utils/applications.ts","../../../node_modules/.pnpm/jwt-decode@3.1.2/node_modules/jwt-decode/build/jwt-decode.esm.js","../src/library/utils/token.ts","../src/library/utils/auth.ts","../src/library/providers/AuthProvider.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\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(\"\".concat(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}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar 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;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"AX\": [\n \"H\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n locale: this.resolvedLocale,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date time range.', e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlErrorCode, IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting display name.', e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlError, IntlErrorCode } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting list.', e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return [];\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, assignUniqueKeysToParts, shallowEqual, } from '../utils';\nimport { formatMessage as coreFormatMessage, createIntl as coreCreateIntl, createIntlCache, } from '@formatjs/intl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { \n // @ts-expect-error fix this\n formatMessage: formatMessage.bind(null, resolvedConfig, coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider, { createIntl } from './src/components/provider';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","export type SystemInfo = {\n applicationName: string;\n version: string;\n url: string;\n username?: string;\n};\n\nconst requestInfoHeader = '\\n---\\n\\\nRequest Info [please do not remove or edit this footer]\\n';\n\nconst requestInfoFooter = '\\n---\\n';\n\nfunction buildRequestInfoMailSection(systemInfo: SystemInfo) {\n const requestInfo = `User Name: ${systemInfo.username}\\n\\\nApplication: ${systemInfo.applicationName}\\n\\\nApp Version: ${systemInfo.version}\\n\\\nX4B-UI Version: __npm_package_version__\\n\\\nURL: ${systemInfo.url}`;\n\n return requestInfoHeader + requestInfo + requestInfoFooter;\n}\n\nexport function buildMailtoHref(to: string, subject: string, body: string, systemInfo: SystemInfo): string {\n const bodyWithVariablesReplaced = body.replace('{application.name}', systemInfo.applicationName);\n const mailBody = bodyWithVariablesReplaced + buildRequestInfoMailSection(systemInfo);\n\n return `mailto:${to}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(mailBody)}`;\n}\n","export const FULLSIZE_MENU_KEY = 'x4b.menu.fullsize';\n\nexport function isMenuOpen() {\n return (window.localStorage.getItem(FULLSIZE_MENU_KEY) || 'true') === 'true';\n}\n\nexport function setMenuStateInLocalStorage(isOpen: boolean) {\n window.localStorage.setItem(FULLSIZE_MENU_KEY, String(isOpen));\n}\n","\"use strict\";\n/**\n * @reach/utils v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/can-use-dom.ts\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\n// src/clone-valid-element.ts\nimport { cloneElement, isValidElement } from \"react\";\nfunction cloneValidElement(element, props, ...children) {\n return isValidElement(element) ? cloneElement(element, props, ...children) : element;\n}\n\n// src/compose-event-handlers.ts\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return (event) => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n// src/compose-refs.ts\nimport { useCallback } from \"react\";\n\n// src/type-check.ts\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\n// src/compose-refs.ts\nfunction assignRef(ref, value) {\n if (ref == null)\n return;\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\nfunction useComposedRefs(...refs) {\n return useCallback((node) => {\n for (let ref of refs) {\n assignRef(ref, node);\n }\n }, refs);\n}\n\n// src/owner-document.ts\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\nfunction getOwnerWindow(element) {\n let ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n// src/computed-styles.ts\nfunction getComputedStyles(element) {\n let ownerWindow = getOwnerWindow(element);\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element, null);\n }\n return null;\n}\nfunction getComputedStyle(element, styleProp) {\n return getComputedStyles(element)?.getPropertyValue(styleProp) || null;\n}\n\n// src/context.tsx\nimport * as React from \"react\";\nfunction createNamedContext(name, defaultValue) {\n let Ctx = React.createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\nfunction createContext2(rootComponentName, defaultContext) {\n let Ctx = React.createContext(defaultContext);\n function Provider(props) {\n let { children, ...context } = props;\n let value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ React.createElement(Ctx.Provider, {\n value\n }, children);\n }\n function useContext2(callerComponentName) {\n let context = React.useContext(Ctx);\n if (context) {\n return context;\n }\n if (defaultContext) {\n return defaultContext;\n }\n throw Error(`${callerComponentName} must be rendered inside of a ${rootComponentName} component.`);\n }\n Ctx.displayName = `${rootComponentName}Context`;\n Provider.displayName = `${rootComponentName}Provider`;\n return [Provider, useContext2];\n}\n\n// src/dev-utils.ts\nimport { useRef, useEffect } from \"react\";\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (true) {\n let controlledRef = useRef(controlledValue != null);\n let nameCache = useRef({ componentName, controlledPropName });\n useEffect(() => {\n nameCache.current = { componentName, controlledPropName };\n }, [componentName, controlledPropName]);\n useEffect(() => {\n let { current: wasControlled } = controlledRef;\n let { componentName: componentName2, controlledPropName: controlledPropName2 } = nameCache.current;\n let isControlled = controlledValue != null;\n if (wasControlled !== isControlled) {\n console.error(`A component is changing an ${wasControlled ? \"\" : \"un\"}controlled \\`${controlledPropName2}\\` state of ${componentName2} to be ${wasControlled ? \"un\" : \"\"}controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled ${componentName2} element for the lifetime of the component.\n More info: https://fb.me/react-controlled-components`);\n }\n }, [controlledValue]);\n }\n}\n\n// src/get-document-dimensions.ts\nfunction getDocumentDimensions(element) {\n let ownerDocument = getOwnerDocument(element);\n let ownerWindow = ownerDocument.defaultView || window;\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n return {\n width: ownerDocument.documentElement.clientWidth ?? ownerWindow.innerWidth,\n height: ownerDocument.documentElement.clientHeight ?? ownerWindow.innerHeight\n };\n}\n\n// src/get-scroll-position.ts\nfunction getScrollPosition(element) {\n let ownerWindow = getOwnerWindow(element);\n if (!ownerWindow) {\n return {\n scrollX: 0,\n scrollY: 0\n };\n }\n return {\n scrollX: ownerWindow.scrollX,\n scrollY: ownerWindow.scrollY\n };\n}\n\n// src/get-scrollbar-offset.ts\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {\n }\n return 0;\n}\n\n// src/is-right-click.ts\nfunction isRightClick(nativeEvent) {\n return \"which\" in nativeEvent ? nativeEvent.which === 3 : \"button\" in nativeEvent ? nativeEvent.button === 2 : false;\n}\n\n// src/make-id.ts\nfunction makeId(...args) {\n return args.filter((val) => val != null).join(\"--\");\n}\n\n// src/noop.ts\nfunction noop() {\n}\n\n// src/use-constant.ts\nimport { useRef as useRef2 } from \"react\";\nfunction useConstant(fn) {\n const ref = useRef2();\n if (!ref.current) {\n ref.current = { v: fn() };\n }\n return ref.current.v;\n}\n\n// src/use-controlled-state.ts\nimport { useState, useRef as useRef3, useCallback as useCallback2 } from \"react\";\nfunction useControlledState({\n controlledValue,\n defaultValue,\n calledFrom = \"A component\"\n}) {\n let wasControlled = controlledValue !== void 0;\n let isControlledRef = useRef3(wasControlled);\n if (true) {\n if (!isControlledRef.current && wasControlled) {\n console.warn(`${calledFrom} is changing from controlled to uncontrolled. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n if (isControlledRef.current && !wasControlled) {\n console.warn(`${calledFrom} is changing from uncontrolled to controlled. Components should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n }\n let [valueState, setValue] = useState(isControlledRef.current ? controlledValue : defaultValue);\n let set = useCallback2((n) => {\n if (!isControlledRef.current) {\n setValue(n);\n }\n }, []);\n return [isControlledRef.current ? controlledValue : valueState, set];\n}\n\n// src/use-event-listener.ts\nimport { useRef as useRef4, useEffect as useEffect2 } from \"react\";\nfunction useEventListener(eventName, listener, element = window) {\n const savedHandler = useRef4(listener);\n useEffect2(() => {\n savedHandler.current = listener;\n }, [listener]);\n useEffect2(() => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) {\n if (true) {\n console.warn(\"Event listener not supported on the element provided\");\n }\n return;\n }\n function eventListener(event) {\n savedHandler.current(event);\n }\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n\n// src/use-focus-change.ts\nimport { useRef as useRef5, useEffect as useEffect3 } from \"react\";\nfunction useFocusChange(handleChange = console.log, when = \"focus\", ownerDocument = document) {\n let lastActiveElement = useRef5(ownerDocument.activeElement);\n useEffect3(() => {\n lastActiveElement.current = ownerDocument.activeElement;\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n ownerDocument.addEventListener(when, onChange, true);\n return () => {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n\n// src/use-force-update.ts\nimport { useState as useState2, useCallback as useCallback3 } from \"react\";\nfunction useForceUpdate() {\n let [, dispatch] = useState2(/* @__PURE__ */ Object.create(null));\n return useCallback3(() => {\n dispatch(/* @__PURE__ */ Object.create(null));\n }, []);\n}\n\n// src/use-isomorphic-layout-effect.ts\nimport { useEffect as useEffect4, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect4;\n\n// src/use-lazy-ref.ts\nimport { useRef as useRef6 } from \"react\";\nfunction useLazyRef(fn) {\n let isSet = useRef6(false);\n let ref = useRef6();\n if (!isSet.current) {\n isSet.current = true;\n ref.current = fn();\n }\n return ref;\n}\n\n// src/use-previous.ts\nimport { useRef as useRef7, useEffect as useEffect5 } from \"react\";\nfunction usePrevious(value) {\n const ref = useRef7(null);\n useEffect5(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n// src/use-stable-callback.ts\nimport { useRef as useRef8, useEffect as useEffect6, useCallback as useCallback4 } from \"react\";\nfunction createStableCallbackHook(useEffectHook, callback) {\n let callbackRef = useRef8(callback);\n useEffectHook(() => {\n callbackRef.current = callback;\n });\n return useCallback4((...args) => {\n callbackRef.current && callbackRef.current(...args);\n }, []);\n}\nfunction useStableCallback(callback) {\n return createStableCallbackHook(useEffect6, callback);\n}\nfunction useStableLayoutCallback(callback) {\n return createStableCallbackHook(useIsomorphicLayoutEffect, callback);\n}\n\n// src/use-stateful-ref-value.ts\nimport { useState as useState3, useCallback as useCallback5 } from \"react\";\nfunction useStatefulRefValue(ref, initialState) {\n let [state, setState] = useState3(initialState);\n let callbackRef = useCallback5((refValue) => {\n ref.current = refValue;\n setState(refValue);\n }, []);\n return [state, callbackRef];\n}\n\n// src/use-update-effect.ts\nimport { useRef as useRef9, useEffect as useEffect7 } from \"react\";\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef9(false);\n useEffect7(() => {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n }\n }, deps);\n}\nexport {\n assignRef,\n canUseDOM,\n cloneValidElement,\n composeEventHandlers,\n createContext2 as createContext,\n createNamedContext,\n getComputedStyle,\n getComputedStyles,\n getDocumentDimensions,\n getOwnerDocument,\n getOwnerWindow,\n getScrollPosition,\n getScrollbarOffset,\n isBoolean,\n isFunction,\n isNumber,\n isRightClick,\n isString,\n makeId,\n noop,\n useComposedRefs,\n useConstant,\n useControlledState,\n useControlledSwitchWarning,\n useEventListener,\n useFocusChange,\n useForceUpdate,\n useIsomorphicLayoutEffect,\n useLazyRef,\n usePrevious,\n useStableCallback,\n useStableLayoutCallback,\n useStatefulRefValue,\n useUpdateEffect\n};\n","\"use strict\";\n/**\n * @reach/portal v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-portal.tsx\nimport * as React from \"react\";\nimport {\n useForceUpdate,\n useIsomorphicLayoutEffect as useLayoutEffect\n} from \"@reach/utils\";\nimport { createPortal } from \"react-dom\";\nvar PortalImpl = ({\n children,\n type = \"reach-portal\",\n containerRef\n}) => {\n let mountNode = React.useRef(null);\n let portalNode = React.useRef(null);\n let forceUpdate = useForceUpdate();\n if (true) {\n React.useEffect(() => {\n if (containerRef != null) {\n if (typeof containerRef !== \"object\" || !(\"current\" in containerRef)) {\n console.warn(\"@reach/portal: Invalid value passed to the `containerRef` of a `Portal`. The portal will be appended to the document body, but if you want to attach it to another DOM node you must pass a valid React ref object to `containerRef`.\");\n } else if (containerRef.current == null) {\n console.warn(\"@reach/portal: A ref was passed to the `containerRef` prop of a `Portal`, but no DOM node was attached to it. Be sure to pass the ref to a DOM component.\\n\\nIf you are forwarding the ref from another component, be sure to use the React.forwardRef API. See https://reactjs.org/docs/forwarding-refs.html.\");\n }\n }\n }, [containerRef]);\n }\n useLayoutEffect(() => {\n if (!mountNode.current)\n return;\n let ownerDocument = mountNode.current.ownerDocument;\n let body = containerRef?.current || ownerDocument.body;\n portalNode.current = ownerDocument?.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return () => {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? createPortal(children, portalNode.current) : /* @__PURE__ */ React.createElement(\"span\", {\n ref: mountNode\n });\n};\nvar Portal = ({\n unstable_skipInitialRender,\n ...props\n}) => {\n let [hydrated, setHydrated] = React.useState(false);\n React.useEffect(() => {\n if (unstable_skipInitialRender) {\n setHydrated(true);\n }\n }, [unstable_skipInitialRender]);\n if (unstable_skipInitialRender && !hydrated) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(PortalImpl, {\n ...props\n });\n};\nPortal.displayName = \"Portal\";\nexport {\n Portal\n};\n","var props = [\"bottom\", \"height\", \"left\", \"right\", \"top\", \"width\"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","\"use strict\";\n/**\n * @reach/rect v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-rect.tsx\nimport * as React from \"react\";\nimport observeRect from \"@reach/observe-rect\";\nimport {\n useIsomorphicLayoutEffect as useLayoutEffect,\n isBoolean,\n isFunction\n} from \"@reach/utils\";\nvar Rect = ({ onChange, observe = true, children }) => {\n const ref = React.useRef(null);\n const rect = useRect(ref, { observe, onChange });\n return children({ ref, rect });\n};\nRect.displayName = \"Rect\";\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n let observe;\n let onChange;\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n observe = observeOrOptions?.observe ?? true;\n onChange = observeOrOptions?.onChange;\n }\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n if (true) {\n React.useEffect(() => {\n if (isBoolean(observeOrOptions)) {\n console.warn(\"Passing `observe` as the second argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `observe` property as the second argument (`useRect(ref, { observe })`).\\nSee https://reach.tech/rect#userect-observe\");\n }\n }, [observeOrOptions]);\n React.useEffect(() => {\n if (isFunction(deprecated_onChange)) {\n console.warn(\"Passing `onChange` as the third argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `onChange` property as the second argument (`useRect(ref, { onChange })`).\\nSee https://reach.tech/rect#userect-onchange\");\n }\n }, [deprecated_onChange]);\n }\n let [element, setElement] = React.useState(nodeRef.current);\n let initialRectIsSet = React.useRef(false);\n let initialRefIsSet = React.useRef(false);\n let [rect, setRect] = React.useState(null);\n let onChangeRef = React.useRef(onChange);\n useLayoutEffect(() => {\n onChangeRef.current = onChange;\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n useLayoutEffect(() => {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n useLayoutEffect(() => {\n if (!observe) {\n return;\n }\n let elem = element;\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n if (!elem) {\n if (true) {\n console.warn(\"You need to place the ref\");\n }\n return;\n }\n let observer = observeRect(elem, (rect2) => {\n onChangeRef.current?.(rect2);\n setRect(rect2);\n });\n observer.observe();\n return () => {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\nexport {\n Rect,\n useRect\n};\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n\n\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (nodeIsAttached) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck` mode\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","\"use strict\";\n/**\n * @reach/popover v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-popover.tsx\nimport * as React from \"react\";\nimport { Portal } from \"@reach/portal\";\nimport { useRect } from \"@reach/rect\";\nimport { getOwnerDocument, useComposedRefs } from \"@reach/utils\";\nimport { tabbable } from \"tabbable\";\nvar Popover = React.forwardRef(function Popover2({ unstable_skipInitialPortalRender, ...props }, ref) {\n return /* @__PURE__ */ React.createElement(Portal, {\n unstable_skipInitialRender: unstable_skipInitialPortalRender\n }, /* @__PURE__ */ React.createElement(PopoverImpl, {\n ref,\n ...props\n }));\n});\nPopover.displayName = \"Popover\";\nvar PopoverImpl = React.forwardRef(function PopoverImpl2({\n as: Comp = \"div\",\n targetRef,\n position = positionDefault,\n unstable_observableRefs = [],\n ...props\n}, forwardedRef) {\n const popoverRef = React.useRef(null);\n const popoverRect = useRect(popoverRef, { observe: !props.hidden });\n const targetRect = useRect(targetRef, { observe: true });\n const ref = useComposedRefs(popoverRef, forwardedRef);\n useSimulateTabNavigationForReactTree(targetRef, popoverRef);\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-popover\": \"\",\n ref,\n ...props,\n style: {\n position: \"absolute\",\n ...getStyles(position, targetRect, popoverRect, ...unstable_observableRefs),\n ...props.style\n }\n });\n});\nPopoverImpl.displayName = \"PopoverImpl\";\nfunction getStyles(position, targetRect, popoverRect, ...unstable_observableRefs) {\n return popoverRect ? position(targetRect, popoverRect, ...unstable_observableRefs.map((ref) => ref.current)) : { visibility: \"hidden\" };\n}\nfunction getTopPosition(targetRect, popoverRect, isDirectionUp) {\n return {\n top: isDirectionUp ? `${targetRect.top - popoverRect.height + window.pageYOffset}px` : `${targetRect.top + targetRect.height + window.pageYOffset}px`\n };\n}\nvar positionDefault = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionRight, directionUp } = getCollisions(targetRect, popoverRect);\n return {\n left: directionRight ? `${targetRect.right - popoverRect.width + window.pageXOffset}px` : `${targetRect.left + window.pageXOffset}px`,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nvar positionRight = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionLeft, directionUp } = getCollisions(targetRect, popoverRect);\n return {\n left: directionLeft ? `${targetRect.left + window.pageXOffset}px` : `${targetRect.right - popoverRect.width + window.pageXOffset}px`,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nvar positionMatchWidth = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionUp } = getCollisions(targetRect, popoverRect);\n return {\n width: targetRect.width,\n left: targetRect.left,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nfunction getCollisions(targetRect, popoverRect, offsetLeft = 0, offsetBottom = 0) {\n const collisions = {\n top: targetRect.top - popoverRect.height < 0,\n right: window.innerWidth < targetRect.left + popoverRect.width - offsetLeft,\n bottom: window.innerHeight < targetRect.bottom + popoverRect.height - offsetBottom,\n left: targetRect.left + targetRect.width - popoverRect.width < 0\n };\n const directionRight = collisions.right && !collisions.left;\n const directionLeft = collisions.left && !collisions.right;\n const directionUp = collisions.bottom && !collisions.top;\n const directionDown = collisions.top && !collisions.bottom;\n return { directionRight, directionLeft, directionUp, directionDown };\n}\nfunction useSimulateTabNavigationForReactTree(triggerRef, popoverRef) {\n const ownerDocument = getOwnerDocument(triggerRef.current);\n function handleKeyDown(event) {\n if (event.key === \"Tab\" && popoverRef.current && tabbable(popoverRef.current).length === 0) {\n return;\n }\n if (event.key === \"Tab\" && event.shiftKey) {\n if (shiftTabbedFromElementAfterTrigger(event)) {\n focusLastTabbableInPopover(event);\n } else if (shiftTabbedOutOfPopover(event)) {\n focusTriggerRef(event);\n } else if (shiftTabbedToBrowserChrome(event)) {\n disableTabbablesInPopover();\n }\n } else if (event.key === \"Tab\") {\n if (tabbedFromTriggerToPopover()) {\n focusFirstPopoverTabbable(event);\n } else if (tabbedOutOfPopover()) {\n focusTabbableAfterTrigger(event);\n } else if (tabbedToBrowserChrome(event)) {\n disableTabbablesInPopover();\n }\n }\n }\n React.useEffect(() => {\n ownerDocument.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n ownerDocument.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, []);\n function getElementAfterTrigger() {\n const elements = tabbable(ownerDocument);\n const targetIndex = elements && triggerRef.current ? elements.indexOf(triggerRef.current) : -1;\n const elementAfterTrigger = elements && elements[targetIndex + 1];\n return popoverRef.current && popoverRef.current.contains(elementAfterTrigger || null) ? false : elementAfterTrigger;\n }\n function tabbedFromTriggerToPopover() {\n return triggerRef.current ? triggerRef.current === ownerDocument.activeElement : false;\n }\n function focusFirstPopoverTabbable(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements && elements[0]) {\n event.preventDefault();\n elements[0].focus();\n }\n }\n function tabbedOutOfPopover() {\n const inPopover = popoverRef.current ? popoverRef.current.contains(ownerDocument.activeElement || null) : false;\n if (inPopover) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n return Boolean(elements && elements[elements.length - 1] === ownerDocument.activeElement);\n }\n return false;\n }\n function focusTabbableAfterTrigger(event) {\n const elementAfterTrigger = getElementAfterTrigger();\n if (elementAfterTrigger) {\n event.preventDefault();\n elementAfterTrigger.focus();\n }\n }\n function shiftTabbedFromElementAfterTrigger(event) {\n if (!event.shiftKey)\n return;\n const elementAfterTrigger = getElementAfterTrigger();\n return event.target === elementAfterTrigger;\n }\n function focusLastTabbableInPopover(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n const last = elements && elements[elements.length - 1];\n if (last) {\n event.preventDefault();\n last.focus();\n }\n }\n function shiftTabbedOutOfPopover(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements) {\n return elements.length === 0 ? false : event.target === elements[0];\n }\n return false;\n }\n function focusTriggerRef(event) {\n event.preventDefault();\n triggerRef.current?.focus();\n }\n function tabbedToBrowserChrome(event) {\n const elements = popoverRef.current ? tabbable(ownerDocument).filter((element) => !popoverRef.current.contains(element)) : null;\n return elements ? event.target === elements[elements.length - 1] : false;\n }\n function shiftTabbedToBrowserChrome(event) {\n return event.target === tabbable(ownerDocument)[0];\n }\n let restoreTabIndexTupl\\u00E9s = [];\n function disableTabbablesInPopover() {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements) {\n elements.forEach((element) => {\n restoreTabIndexTupl\\u00E9s.push([element, element.tabIndex]);\n element.tabIndex = -1;\n });\n ownerDocument.addEventListener(\"focusin\", enableTabbablesInPopover);\n }\n }\n function enableTabbablesInPopover() {\n ownerDocument.removeEventListener(\"focusin\", enableTabbablesInPopover);\n restoreTabIndexTupl\\u00E9s.forEach(([element, tabIndex]) => {\n element.tabIndex = tabIndex;\n });\n }\n}\nexport {\n Popover,\n getCollisions,\n positionDefault,\n positionMatchWidth,\n positionRight\n};\n","\"use strict\";\n/**\n * @reach/auto-id v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-auto-id.ts\nimport * as React from \"react\";\nimport { useIsomorphicLayoutEffect as useLayoutEffect } from \"@reach/utils\";\nvar serverHandoffComplete = false;\nvar id = 0;\nfunction genId() {\n return ++id;\n}\nvar maybeReactUseId = React[\"useId\".toString()];\nfunction useId(providedId) {\n if (maybeReactUseId !== void 0) {\n let generatedId = maybeReactUseId();\n return providedId ?? generatedId;\n }\n let initialId = providedId ?? (serverHandoffComplete ? genId() : null);\n let [id2, setId] = React.useState(initialId);\n useLayoutEffect(() => {\n if (id2 === null) {\n setId(genId());\n }\n }, []);\n React.useEffect(() => {\n if (serverHandoffComplete === false) {\n serverHandoffComplete = true;\n }\n }, []);\n return providedId ?? id2 ?? void 0;\n}\nexport {\n useId\n};\n","\"use strict\";\n/**\n * @reach/descendants v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-descendants.tsx\nimport * as React from \"react\";\nimport {\n useForceUpdate,\n useIsomorphicLayoutEffect as useLayoutEffect,\n noop\n} from \"@reach/utils\";\nfunction createDescendantContext(name, initialValue = {}) {\n const descendants = [];\n let ctx = React.createContext({\n descendants,\n registerDescendant: () => noop,\n ...initialValue\n });\n ctx.displayName = name;\n return ctx;\n}\nfunction useDescendant(descendant, context, indexProp) {\n let forceUpdate = useForceUpdate();\n let { registerDescendant, descendants } = React.useContext(context);\n let index = indexProp ?? descendants.findIndex((item) => item.element === descendant.element);\n useLayoutEffect(() => {\n if (!descendant.element)\n forceUpdate();\n return registerDescendant({ ...descendant, index });\n }, [\n descendant,\n forceUpdate,\n index,\n registerDescendant,\n ...Object.values(descendant)\n ]);\n return index;\n}\nfunction useDescendantsInit() {\n return React.useState([]);\n}\nfunction useDescendants(ctx) {\n return React.useContext(ctx).descendants;\n}\nfunction DescendantProvider({\n context: Ctx,\n children,\n items,\n set\n}) {\n let registerDescendant = React.useCallback(({\n element,\n index: explicitIndex,\n ...rest\n }) => {\n if (!element)\n return noop;\n set((items2) => {\n if (explicitIndex != null && explicitIndex !== -1) {\n return insertAt(items2, { element, index: explicitIndex, ...rest }, explicitIndex);\n }\n if (items2.length === 0) {\n return [{ ...rest, element, index: 0 }];\n }\n if (true) {\n if (items2.find((item) => item.element === element)) {\n console.warn(\"[reach-ui]: `useDescendant` was called with an element that was already registered.\\n\\nIf you are using the `@reach/descendants` package directly, make sure to only register descendants once. Registering a descendant more than once will lead to bugs in your app.\\n\\nIf you are using another `reach-ui` package, this is probably our bug!\\n\\nTo report a bug, open a new issue:\\n\\n https://github.com/reach/reach-ui/issues/new?assignees=&labels=&template=Bug_report.md\\n\\nIMPORTANT: this check will only run in the development build, so if you see this warning please be aware that your app may crash when deployed.\");\n return updateIndices(items2);\n }\n }\n let index = findDOMIndex(items2, element);\n let newItems;\n if (index === -1) {\n newItems = [\n ...items2,\n { ...rest, element, index: items2.length }\n ];\n } else {\n newItems = insertAt(items2, { ...rest, element, index }, index);\n }\n return newItems;\n });\n return () => {\n if (!element)\n return;\n set((items2) => items2.filter((item) => element !== item.element));\n };\n }, []);\n return /* @__PURE__ */ React.createElement(Ctx.Provider, {\n value: React.useMemo(() => {\n return {\n descendants: items,\n registerDescendant\n };\n }, [items, registerDescendant])\n }, children);\n}\nfunction useDescendantKeyDown(context, options) {\n let { descendants } = React.useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false\n } = options;\n return function handleKeyDown(event) {\n if (![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n return;\n }\n let index = currentIndex ?? -1;\n let selectableDescendants = filter ? descendants.filter(filter) : descendants;\n if (!selectableDescendants.length) {\n return;\n }\n let selectableIndex = selectableDescendants.findIndex((descendant) => descendant.index === currentIndex);\n function getNextOption() {\n let atBottom = index === getLastOption().index;\n return atBottom ? rotate ? getFirstOption() : selectableDescendants[selectableIndex] : selectableDescendants[(selectableIndex + 1) % selectableDescendants.length];\n }\n function getPreviousOption() {\n let atTop = index === getFirstOption().index;\n return atTop ? rotate ? getLastOption() : selectableDescendants[selectableIndex] : selectableDescendants[(selectableIndex - 1 + selectableDescendants.length) % selectableDescendants.length];\n }\n function getFirstOption() {\n return selectableDescendants[0];\n }\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption();\n callback(key === \"option\" ? next : next[key]);\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption();\n callback(key === \"option\" ? prev : prev[key]);\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)();\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)();\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n break;\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (event.ctrlKey ? getPreviousOption : getFirstOption)();\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption();\n callback(key === \"option\" ? first : first[key]);\n break;\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (event.ctrlKey ? getNextOption : getLastOption)();\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n case \"End\":\n event.preventDefault();\n let last = getLastOption();\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\nfunction isElementPreceding(a, b) {\n return Boolean(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction findDOMIndex(items, element) {\n if (!element)\n return -1;\n if (!items.length)\n return -1;\n let length = items.length;\n while (length--) {\n let currentElement = items[length].element;\n if (!currentElement)\n continue;\n if (isElementPreceding(currentElement, element)) {\n return length + 1;\n }\n }\n return -1;\n}\nfunction insertAt(array, item, index) {\n if (index == null || !(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction updateIndices(items) {\n return items.sort((a, b) => !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1).map((item, index) => ({ ...item, index }));\n}\nexport {\n DescendantProvider,\n createDescendantContext,\n useDescendant,\n useDescendantKeyDown,\n useDescendants,\n useDescendantsInit\n};\n","\"use strict\";\n/**\n * @reach/dropdown v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-dropdown.tsx\nimport * as React from \"react\";\nimport { useId } from \"@reach/auto-id\";\nimport { Popover } from \"@reach/popover\";\nimport {\n createDescendantContext,\n DescendantProvider,\n useDescendant,\n useDescendants,\n useDescendantsInit,\n useDescendantKeyDown\n} from \"@reach/descendants\";\nimport {\n composeEventHandlers,\n createContext,\n getOwnerDocument,\n isFunction,\n isString,\n isRightClick,\n useComposedRefs,\n usePrevious,\n useStatefulRefValue,\n makeId\n} from \"@reach/utils\";\nvar CLEAR_SELECTION_INDEX = \"CLEAR_SELECTION_INDEX\";\nvar CLICK_MENU_ITEM = \"CLICK_MENU_ITEM\";\nvar CLOSE_MENU = \"CLOSE_MENU\";\nvar OPEN_MENU_AT_FIRST_ITEM = \"OPEN_MENU_AT_FIRST_ITEM\";\nvar OPEN_MENU_AT_INDEX = \"OPEN_MENU_AT_INDEX\";\nvar OPEN_MENU_CLEARED = \"OPEN_MENU_CLEARED\";\nvar SEARCH_FOR_ITEM = \"SEARCH_FOR_ITEM\";\nvar SELECT_ITEM_AT_INDEX = \"SELECT_ITEM_AT_INDEX\";\nvar SET_BUTTON_ID = \"SET_BUTTON_ID\";\nvar DropdownDescendantContext = createDescendantContext(\"DropdownDescendantContext\");\nvar [DropdownProvider, useDropdownContext] = createContext(\"Dropdown\");\nvar initialState = {\n triggerId: null,\n isExpanded: false,\n typeaheadQuery: \"\",\n selectionIndex: -1\n};\nvar DropdownProvider_ = ({\n id,\n children\n}) => {\n let triggerRef = React.useRef(null);\n let dropdownRef = React.useRef(null);\n let popoverRef = React.useRef(null);\n let [descendants, setDescendants] = useDescendantsInit();\n let _id = useId(id);\n let dropdownId = id || makeId(\"menu\", _id);\n let triggerId = makeId(\"menu-button\", dropdownId);\n let [state, dispatch] = React.useReducer(reducer, {\n ...initialState,\n triggerId\n });\n let triggerClickedRef = React.useRef(false);\n let selectCallbacks = React.useRef([]);\n let readyToSelect = React.useRef(false);\n let mouseDownStartPosRef = React.useRef({ x: 0, y: 0 });\n React.useEffect(() => {\n if (state.isExpanded) {\n window.__REACH_DISABLE_TOOLTIPS = true;\n window.requestAnimationFrame(() => {\n focus(dropdownRef.current);\n });\n } else {\n window.__REACH_DISABLE_TOOLTIPS = false;\n }\n }, [state.isExpanded]);\n return /* @__PURE__ */ React.createElement(DescendantProvider, {\n context: DropdownDescendantContext,\n items: descendants,\n set: setDescendants\n }, /* @__PURE__ */ React.createElement(DropdownProvider, {\n dispatch,\n dropdownId,\n dropdownRef,\n mouseDownStartPosRef,\n popoverRef,\n readyToSelect,\n selectCallbacks,\n state,\n triggerClickedRef,\n triggerRef\n }, isFunction(children) ? children({\n isExpanded: state.isExpanded,\n isOpen: state.isExpanded\n }) : children));\n};\nDropdownProvider_.displayName = \"DropdownProvider\";\nfunction useDropdownTrigger({\n onKeyDown,\n onMouseDown,\n id,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n dropdownId,\n mouseDownStartPosRef,\n triggerClickedRef,\n triggerRef,\n state: { triggerId, isExpanded }\n } = useDropdownContext(\"useDropdownTrigger\");\n let ref = useComposedRefs(triggerRef, forwardedRef);\n let items = useDropdownDescendants();\n let firstNonDisabledIndex = React.useMemo(() => items.findIndex((item) => !item.disabled), [items]);\n React.useEffect(() => {\n if (id != null && id !== triggerId) {\n dispatch({\n type: SET_BUTTON_ID,\n payload: id\n });\n }\n }, [triggerId, dispatch, id]);\n React.useEffect(() => {\n if (id == null) {\n dispatch({\n type: SET_BUTTON_ID,\n payload: makeId(\"menu-button\", dropdownId)\n });\n }\n }, [dropdownId, dispatch, id]);\n function handleKeyDown(event) {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n event.preventDefault();\n dispatch({\n type: OPEN_MENU_AT_INDEX,\n payload: { index: firstNonDisabledIndex }\n });\n break;\n case \"Enter\":\n case \" \":\n dispatch({\n type: OPEN_MENU_AT_INDEX,\n payload: { index: firstNonDisabledIndex }\n });\n break;\n default:\n break;\n }\n }\n function handleMouseDown(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n mouseDownStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n if (!isExpanded) {\n triggerClickedRef.current = true;\n }\n if (isExpanded) {\n dispatch({ type: CLOSE_MENU });\n } else {\n dispatch({ type: OPEN_MENU_CLEARED });\n }\n }\n return {\n data: {\n isExpanded,\n controls: dropdownId\n },\n props: {\n ...props,\n ref,\n id: triggerId || void 0,\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),\n onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),\n type: \"button\"\n }\n };\n}\nvar DropdownTrigger = React.forwardRef(({ as: Comp = \"button\", ...rest }, forwardedRef) => {\n let { props } = useDropdownTrigger({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-trigger\": \"\",\n ...props\n });\n});\nDropdownTrigger.displayName = \"DropdownTrigger\";\nfunction useDropdownItem({\n index: indexProp,\n isLink = false,\n onClick,\n onDragStart,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseUp,\n onSelect,\n disabled,\n onFocus,\n valueText: valueTextProp,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n dropdownRef,\n mouseDownStartPosRef,\n readyToSelect,\n selectCallbacks,\n triggerRef,\n state: { selectionIndex, isExpanded }\n } = useDropdownContext(\"useDropdownItem\");\n let ownRef = React.useRef(null);\n let [valueText, setValueText] = React.useState(valueTextProp || \"\");\n let setValueTextFromDOM = React.useCallback((node) => {\n if (!valueTextProp && node?.textContent) {\n setValueText(node.textContent);\n }\n }, [valueTextProp]);\n let mouseEventStarted = React.useRef(false);\n let [element, handleRefSet] = useStatefulRefValue(ownRef, null);\n let descendant = React.useMemo(() => {\n return {\n element,\n key: valueText,\n disabled,\n isLink\n };\n }, [disabled, element, isLink, valueText]);\n let index = useDescendant(descendant, DropdownDescendantContext, indexProp);\n let isSelected = index === selectionIndex && !disabled;\n let ref = useComposedRefs(forwardedRef, handleRefSet, setValueTextFromDOM);\n selectCallbacks.current[index] = onSelect;\n function select() {\n focus(triggerRef.current);\n onSelect && onSelect();\n dispatch({ type: CLICK_MENU_ITEM });\n }\n function handleClick(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (isLink) {\n if (disabled) {\n event.preventDefault();\n } else {\n select();\n }\n }\n }\n function handleDragStart(event) {\n if (isLink) {\n event.preventDefault();\n }\n }\n function handleMouseDown(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (isLink) {\n mouseEventStarted.current = true;\n } else {\n event.preventDefault();\n }\n }\n function handleMouseEnter(event) {\n let doc = getOwnerDocument(dropdownRef.current);\n if (!isSelected && index != null && !disabled) {\n if (dropdownRef?.current && dropdownRef.current !== doc.activeElement && ownRef.current !== doc.activeElement) {\n dropdownRef.current.focus();\n }\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index\n }\n });\n }\n }\n function handleMouseLeave(event) {\n dispatch({ type: CLEAR_SELECTION_INDEX });\n }\n function handleMouseMove(event) {\n if (!readyToSelect.current) {\n let threshold = 8;\n let deltaX = Math.abs(event.clientX - mouseDownStartPosRef.current.x);\n let deltaY = Math.abs(event.clientY - mouseDownStartPosRef.current.y);\n if (deltaX > threshold || deltaY > threshold) {\n readyToSelect.current = true;\n }\n }\n if (!isSelected && index != null && !disabled) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index,\n dropdownRef\n }\n });\n }\n }\n function handleFocus() {\n readyToSelect.current = true;\n if (!isSelected && index != null && !disabled) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index\n }\n });\n }\n }\n function handleMouseUp(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (!readyToSelect.current) {\n readyToSelect.current = true;\n return;\n }\n if (isLink) {\n if (mouseEventStarted.current) {\n mouseEventStarted.current = false;\n } else if (ownRef.current) {\n ownRef.current.click();\n }\n } else {\n if (!disabled) {\n select();\n }\n }\n }\n React.useEffect(() => {\n if (isExpanded) {\n let id = window.setTimeout(() => {\n readyToSelect.current = true;\n }, 400);\n return () => {\n window.clearTimeout(id);\n };\n } else {\n readyToSelect.current = false;\n }\n }, [isExpanded, readyToSelect]);\n React.useEffect(() => {\n let ownerDocument = getOwnerDocument(ownRef.current);\n ownerDocument.addEventListener(\"mouseup\", listener);\n return () => {\n ownerDocument.removeEventListener(\"mouseup\", listener);\n };\n function listener() {\n mouseEventStarted.current = false;\n }\n }, []);\n return {\n data: {\n disabled\n },\n props: {\n id: useItemId(index),\n tabIndex: -1,\n ...props,\n ref,\n \"data-disabled\": disabled ? \"\" : void 0,\n \"data-selected\": isSelected ? \"\" : void 0,\n \"data-valuetext\": valueText,\n onClick: composeEventHandlers(onClick, handleClick),\n onDragStart: composeEventHandlers(onDragStart, handleDragStart),\n onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),\n onMouseEnter: composeEventHandlers(onMouseEnter, handleMouseEnter),\n onMouseLeave: composeEventHandlers(onMouseLeave, handleMouseLeave),\n onMouseMove: composeEventHandlers(onMouseMove, handleMouseMove),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onMouseUp: composeEventHandlers(onMouseUp, handleMouseUp)\n }\n };\n}\nvar DropdownItem = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let { props } = useDropdownItem({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-item\": \"\",\n ...props\n });\n});\nDropdownItem.displayName = \"DropdownItem\";\nfunction useDropdownItems({\n id,\n onKeyDown,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n triggerRef,\n dropdownRef,\n selectCallbacks,\n dropdownId,\n state: { isExpanded, triggerId, selectionIndex, typeaheadQuery }\n } = useDropdownContext(\"useDropdownItems\");\n let items = useDropdownDescendants();\n let ref = useComposedRefs(dropdownRef, forwardedRef);\n React.useEffect(() => {\n let match = findItemFromTypeahead(items, typeaheadQuery);\n if (typeaheadQuery && match != null) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: match,\n dropdownRef\n }\n });\n }\n let timeout = window.setTimeout(() => typeaheadQuery && dispatch({ type: SEARCH_FOR_ITEM, payload: \"\" }), 1e3);\n return () => window.clearTimeout(timeout);\n }, [dispatch, items, typeaheadQuery, dropdownRef]);\n let prevItemsLength = usePrevious(items.length);\n let prevSelected = usePrevious(items[selectionIndex]);\n let prevSelectionIndex = usePrevious(selectionIndex);\n React.useEffect(() => {\n if (selectionIndex > items.length - 1) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: items.length - 1,\n dropdownRef\n }\n });\n } else if (prevItemsLength !== items.length && selectionIndex > -1 && prevSelected && prevSelectionIndex === selectionIndex && items[selectionIndex] !== prevSelected) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: items.findIndex((i) => i.key === prevSelected?.key),\n dropdownRef\n }\n });\n }\n }, [\n dropdownRef,\n dispatch,\n items,\n prevItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex\n ]);\n let handleKeyDown = composeEventHandlers(function handleKeyDown2(event) {\n let { key } = event;\n if (!isExpanded) {\n return;\n }\n switch (key) {\n case \"Enter\":\n case \" \":\n let selected = items.find((item) => item.index === selectionIndex);\n if (selected && !selected.disabled) {\n event.preventDefault();\n if (selected.isLink && selected.element) {\n selected.element.click();\n } else {\n focus(triggerRef.current);\n selectCallbacks.current[selected.index] && selectCallbacks.current[selected.index]();\n dispatch({ type: CLICK_MENU_ITEM });\n }\n }\n break;\n case \"Escape\":\n focus(triggerRef.current);\n dispatch({ type: CLOSE_MENU });\n break;\n case \"Tab\":\n event.preventDefault();\n break;\n default:\n if (isString(key) && key.length === 1) {\n let query = typeaheadQuery + key.toLowerCase();\n dispatch({\n type: SEARCH_FOR_ITEM,\n payload: query\n });\n }\n break;\n }\n }, useDescendantKeyDown(DropdownDescendantContext, {\n currentIndex: selectionIndex,\n orientation: \"vertical\",\n rotate: false,\n filter: (item) => !item.disabled,\n callback: (index) => {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index,\n dropdownRef\n }\n });\n },\n key: \"index\"\n }));\n return {\n data: {\n activeDescendant: useItemId(selectionIndex) || void 0,\n triggerId\n },\n props: {\n tabIndex: -1,\n ...props,\n ref,\n id: dropdownId,\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n }\n };\n}\nvar DropdownItems = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let { props } = useDropdownItems({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-items\": \"\",\n ...props\n });\n});\nDropdownItems.displayName = \"DropdownItems\";\nfunction useDropdownPopover({\n onBlur,\n portal = true,\n position,\n ref: forwardedRef,\n ...props\n}) {\n let {\n triggerRef,\n triggerClickedRef,\n dispatch,\n dropdownRef,\n popoverRef,\n state: { isExpanded }\n } = useDropdownContext(\"useDropdownPopover\");\n let ref = useComposedRefs(popoverRef, forwardedRef);\n React.useEffect(() => {\n if (!isExpanded) {\n return;\n }\n let ownerDocument = getOwnerDocument(popoverRef.current);\n function listener(event) {\n if (triggerClickedRef.current) {\n triggerClickedRef.current = false;\n } else if (!popoverContainsEventTarget(popoverRef.current, event.target)) {\n dispatch({ type: CLOSE_MENU });\n }\n }\n ownerDocument.addEventListener(\"mousedown\", listener);\n return () => {\n ownerDocument.removeEventListener(\"mousedown\", listener);\n };\n }, [\n triggerClickedRef,\n triggerRef,\n dispatch,\n dropdownRef,\n popoverRef,\n isExpanded\n ]);\n return {\n data: {\n portal,\n position,\n targetRef: triggerRef,\n isExpanded\n },\n props: {\n ref,\n hidden: !isExpanded,\n onBlur: composeEventHandlers(onBlur, (event) => {\n if (event.currentTarget.contains(event.relatedTarget)) {\n return;\n }\n dispatch({ type: CLOSE_MENU });\n }),\n ...props\n }\n };\n}\nvar DropdownPopover = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { portal, targetRef, position },\n props\n } = useDropdownPopover({ ...rest, ref: forwardedRef });\n let sharedProps = {\n \"data-reach-dropdown-popover\": \"\"\n };\n return portal ? /* @__PURE__ */ React.createElement(Popover, {\n ...props,\n ...sharedProps,\n as: Comp,\n targetRef,\n position,\n unstable_skipInitialPortalRender: true\n }) : /* @__PURE__ */ React.createElement(Comp, {\n ...props,\n ...sharedProps\n });\n});\nDropdownPopover.displayName = \"DropdownPopover\";\nfunction findItemFromTypeahead(items, string = \"\") {\n if (!string) {\n return null;\n }\n let found = items.find((item) => {\n return item.disabled ? false : item.element?.dataset?.valuetext?.toLowerCase().startsWith(string);\n });\n return found ? items.indexOf(found) : null;\n}\nfunction useItemId(index) {\n let { dropdownId } = useDropdownContext(\"useItemId\");\n return index != null && index > -1 ? makeId(`option-${index}`, dropdownId) : void 0;\n}\nfunction focus(element) {\n element && element.focus();\n}\nfunction popoverContainsEventTarget(popover, target) {\n return !!(popover && popover.contains(target));\n}\nfunction reducer(state, action = {}) {\n switch (action.type) {\n case CLICK_MENU_ITEM:\n return {\n ...state,\n isExpanded: false,\n selectionIndex: -1\n };\n case CLOSE_MENU:\n return {\n ...state,\n isExpanded: false,\n selectionIndex: -1\n };\n case OPEN_MENU_AT_FIRST_ITEM:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: 0\n };\n case OPEN_MENU_AT_INDEX:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: action.payload.index\n };\n case OPEN_MENU_CLEARED:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: -1\n };\n case SELECT_ITEM_AT_INDEX: {\n let { dropdownRef = { current: null } } = action.payload;\n if (action.payload.index >= 0 && action.payload.index !== state.selectionIndex) {\n if (dropdownRef.current) {\n let doc = getOwnerDocument(dropdownRef.current);\n if (dropdownRef.current !== doc?.activeElement) {\n dropdownRef.current.focus();\n }\n }\n return {\n ...state,\n selectionIndex: action.payload.max != null ? Math.min(Math.max(action.payload.index, 0), action.payload.max) : Math.max(action.payload.index, 0)\n };\n }\n return state;\n }\n case CLEAR_SELECTION_INDEX:\n return {\n ...state,\n selectionIndex: -1\n };\n case SET_BUTTON_ID:\n return {\n ...state,\n triggerId: action.payload\n };\n case SEARCH_FOR_ITEM:\n if (typeof action.payload !== \"undefined\") {\n return {\n ...state,\n typeaheadQuery: action.payload\n };\n }\n return state;\n default:\n return state;\n }\n}\nfunction useDropdownDescendants() {\n return useDescendants(DropdownDescendantContext);\n}\nexport {\n DropdownItem,\n DropdownItems,\n DropdownPopover,\n DropdownProvider_ as DropdownProvider,\n DropdownTrigger,\n useDropdownContext,\n useDropdownDescendants,\n useDropdownItem,\n useDropdownItems,\n useDropdownPopover,\n useDropdownTrigger\n};\n","\"use strict\";\n/**\n * @reach/menu-button v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-menu-button.tsx\nimport * as React from \"react\";\nimport { Popover } from \"@reach/popover\";\nimport {\n DropdownProvider,\n useDropdownItem,\n useDropdownItems,\n useDropdownPopover,\n useDropdownTrigger,\n useDropdownContext\n} from \"@reach/dropdown\";\nimport { noop } from \"@reach/utils\";\nimport { isFragment } from \"react-is\";\nvar Menu = React.forwardRef(({ as: Comp = React.Fragment, id, children, ...rest }, forwardedRef) => {\n let parentIsFragment = React.useMemo(() => {\n try {\n return isFragment(/* @__PURE__ */ React.createElement(Comp, null));\n } catch (err) {\n return false;\n }\n }, [Comp]);\n let props = parentIsFragment ? {} : {\n ref: forwardedRef,\n id,\n \"data-reach-menu\": \"\",\n ...rest\n };\n return /* @__PURE__ */ React.createElement(Comp, {\n ...props\n }, /* @__PURE__ */ React.createElement(DropdownProvider, {\n id,\n children\n }));\n});\nMenu.displayName = \"Menu\";\nvar MenuButton = React.forwardRef(({ as: Comp = \"button\", ...rest }, forwardedRef) => {\n let {\n data: { isExpanded, controls },\n props\n } = useDropdownTrigger({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"aria-expanded\": isExpanded ? true : void 0,\n \"aria-haspopup\": true,\n \"aria-controls\": controls,\n ...props,\n \"data-reach-menu-button\": \"\"\n });\n});\nMenuButton.displayName = \"MenuButton\";\nvar MenuItemImpl = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { disabled },\n props\n } = useDropdownItem({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n role: \"menuitem\",\n ...props,\n \"aria-disabled\": disabled || void 0,\n \"data-reach-menu-item\": \"\"\n });\n});\nMenuItemImpl.displayName = \"MenuItemImpl\";\nvar MenuItem = React.forwardRef(({ as = \"div\", ...props }, forwardedRef) => {\n return /* @__PURE__ */ React.createElement(MenuItemImpl, {\n ...props,\n ref: forwardedRef,\n as\n });\n});\nMenuItem.displayName = \"MenuItem\";\nvar MenuItems = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { activeDescendant, triggerId },\n props\n } = useDropdownItems({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"aria-activedescendant\": activeDescendant,\n \"aria-labelledby\": triggerId || void 0,\n role: \"menu\",\n ...props,\n \"data-reach-menu-items\": \"\"\n });\n});\nMenuItems.displayName = \"MenuItems\";\nvar MenuLink = React.forwardRef(({\n as = \"a\",\n component,\n onSelect,\n ...props\n}, forwardedRef) => {\n if (true) {\n React.useEffect(() => {\n if (component) {\n console.warn(\"[@reach/menu-button]: Please use the `as` prop instead of `component`\");\n }\n }, [component]);\n }\n return /* @__PURE__ */ React.createElement(MenuItemImpl, {\n ...props,\n ref: forwardedRef,\n \"data-reach-menu-link\": \"\",\n as,\n isLink: true,\n onSelect: onSelect || noop\n });\n});\nMenuLink.displayName = \"MenuLink\";\nvar MenuList = React.forwardRef(({ portal = true, ...props }, forwardedRef) => {\n return /* @__PURE__ */ React.createElement(MenuPopover, {\n portal\n }, /* @__PURE__ */ React.createElement(MenuItems, {\n ...props,\n ref: forwardedRef,\n \"data-reach-menu-list\": \"\"\n }));\n});\nMenuList.displayName = \"MenuList\";\nvar MenuPopover = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { portal, targetRef, position },\n props\n } = useDropdownPopover({ ...rest, ref: forwardedRef });\n let sharedProps = {\n \"data-reach-menu-popover\": \"\"\n };\n return portal ? /* @__PURE__ */ React.createElement(Popover, {\n ...props,\n ...sharedProps,\n as: Comp,\n targetRef,\n position,\n unstable_skipInitialPortalRender: true\n }) : /* @__PURE__ */ React.createElement(Comp, {\n ...props,\n ...sharedProps\n });\n});\nMenuPopover.displayName = \"MenuPopover\";\nfunction useMenuButtonContext() {\n let {\n state: { isExpanded }\n } = useDropdownContext(\"useMenuButtonContext\");\n return React.useMemo(() => ({ isExpanded }), [isExpanded]);\n}\nexport {\n Menu,\n MenuButton,\n MenuItem,\n MenuItems,\n MenuLink,\n MenuList,\n MenuPopover,\n useMenuButtonContext\n};\n","import { MenuList } from '@reach/menu-button';\nimport clsx from 'clsx';\nimport React from 'react';\n\nfunction MenuContent({\n children,\n withMinWidth = true,\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement> & { children: React.ReactNode; withMinWidth?: boolean }) {\n return (\n <MenuList\n {...props}\n className={clsx(\n { 'tw-min-w-[13.125rem]': withMinWidth },\n 'motion-safe:data-[reach-menu-list]:tw-animate-slideDown motion-safe:data-[reach-menu-items]:tw-animate-slideDown tw-z-[1] tw-mt-2 tw-bg-white tw-shadow-[0_1px_2px_0_rgb(60,64,67,0.3),0_2px_6px_2px_rgb(60,64,67,0.15)] tw-outline-none tw-will-change-transform',\n className\n )}\n >\n {children}\n </MenuList>\n );\n}\n\nexport default MenuContent;\n","import { Menu, MenuButton, MenuLink } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\nimport { ApplicationDescriptions } from '@/utils/applications';\nimport MenuContent from './MenuContent';\n\nfunction AppSelector({\n applicationDescriptions,\n refreshToken,\n}: {\n applicationDescriptions: ApplicationDescriptions;\n refreshToken?: string;\n}) {\n const intl = useIntl();\n const appDescriptionsWithToken = Object.values(applicationDescriptions)\n .filter((app) => !app.hidden)\n .map((appDescription) => ({\n ...appDescription,\n url: `${appDescription.url}${refreshToken ? `#refreshToken=${refreshToken}` : ''}`,\n }));\n\n return (\n <Menu>\n <MenuButton\n as={Button}\n className=\"aria-expanded:tw-text-primary-700 aria-expanded:tw-bg-primary-100 aria-expanded:tw-border-primary-100 aria-expanded:tw-duration-150\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'appSelector' })}</p>\n <svg aria-hidden={true} xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox={`0 0 20 20`}>\n <title>{intl.formatMessage({ id: 'appSelector' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M15 20h5v-5h-5m0-2.5h5v-5h-5M7.5 5h5V0h-5M15 5h5V0h-5M7.5 12.5h5v-5h-5m-7.5 5h5v-5H0M0 20h5v-5H0m7.5 5h5v-5h-5M0 5h5V0H0v5z\" />\n </g>\n </svg>\n </MenuButton>\n <MenuContent className=\"tw-grid tw-max-w-[250px] tw-grid-cols-2 tw-gap-3 tw-px-4 tw-py-4\">\n {appDescriptionsWithToken.map((app) => (\n <MenuLink\n className=\"data-selected:tw-duration-150 tw-flex tw-flex-col tw-items-center tw-gap-2 tw-rounded-lg tw-px-2 tw-py-2 tw-text-center tw-text-sm tw-font-light tw-text-black tw-no-underline tw-transition-colors tw-duration-500 hover:tw-cursor-pointer hover:tw-bg-gray-50 hover:tw-duration-150 data-[selected]:tw-cursor-pointer data-[selected]:tw-bg-gray-50\"\n key={`app-selector-${app.name}`}\n href={app.url}\n >\n <img\n alt=\"\"\n width=\"34\"\n height=\"34\"\n aria-hidden={true}\n src={`data:image/svg+xml;base64,${app.logo}`}\n className=\"tw-my-0 tw-mx-2 tw-block\"\n />\n {app.name}\n </MenuLink>\n ))}\n </MenuContent>\n </Menu>\n );\n}\n\nexport default AppSelector;\n","import clsx from 'clsx';\nimport React from 'react';\n\nfunction AppTitle({\n children,\n className,\n ...props\n}: { children: React.ReactNode } & React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h1\n {...props}\n className={clsx(\n 'tw-my-0 tw-mr-auto tw-ml-2 tw-text-lg tw-font-light tw-leading-none tw-tracking-wide tw-text-black md:tw-text-xl lg:tw-text-2xl',\n className\n )}\n >\n {children}\n </h1>\n );\n}\n\nexport default AppTitle;\n","\"use strict\";\n/**\n * @reach/visually-hidden v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-visually-hidden.tsx\nimport * as React from \"react\";\nvar VisuallyHidden = React.forwardRef(function VisuallyHidden2({ as: Comp = \"span\", style = {}, ...props }, ref) {\n return /* @__PURE__ */ React.createElement(Comp, {\n ref,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...style\n },\n ...props\n });\n});\nVisuallyHidden.displayName = \"VisuallyHidden\";\nexport {\n VisuallyHidden\n};\n","\"use strict\";\n/**\n * @reach/tooltip v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-tooltip.tsx\nimport * as React from \"react\";\nimport { useId } from \"@reach/auto-id\";\nimport {\n getDocumentDimensions,\n getOwnerDocument,\n makeId,\n useComposedRefs,\n composeEventHandlers\n} from \"@reach/utils\";\nimport { Portal } from \"@reach/portal\";\nimport { VisuallyHidden } from \"@reach/visually-hidden\";\nimport { useRect } from \"@reach/rect\";\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500;\nvar chart = {\n initial: \"IDLE\" /* Idle */,\n states: {\n [\"IDLE\" /* Idle */]: {\n enter: clearContextId,\n on: {\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"FOCUSED\" /* Focused */,\n [\"FOCUS\" /* Focus */]: \"VISIBLE\" /* Visible */\n }\n },\n [\"FOCUSED\" /* Focused */]: {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: {\n [\"MOUSE_MOVE\" /* MouseMove */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"IDLE\" /* Idle */,\n [\"MOUSE_DOWN\" /* MouseDown */]: \"DISMISSED\" /* Dismissed */,\n [\"BLUR\" /* Blur */]: \"IDLE\" /* Idle */,\n [\"REST\" /* Rest */]: \"VISIBLE\" /* Visible */\n }\n },\n [\"VISIBLE\" /* Visible */]: {\n on: {\n [\"FOCUS\" /* Focus */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"LEAVING_VISIBLE\" /* LeavingVisible */,\n [\"BLUR\" /* Blur */]: \"LEAVING_VISIBLE\" /* LeavingVisible */,\n [\"MOUSE_DOWN\" /* MouseDown */]: \"DISMISSED\" /* Dismissed */,\n [\"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */]: \"DISMISSED\" /* Dismissed */,\n [\"GLOBAL_MOUSE_MOVE\" /* GlobalMouseMove */]: \"LEAVING_VISIBLE\" /* LeavingVisible */\n }\n },\n [\"LEAVING_VISIBLE\" /* LeavingVisible */]: {\n enter: startLeavingVisibleTimer,\n leave: () => {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: {\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"VISIBLE\" /* Visible */,\n [\"FOCUS\" /* Focus */]: \"VISIBLE\" /* Visible */,\n [\"TIME_COMPLETE\" /* TimeComplete */]: \"IDLE\" /* Idle */\n }\n },\n [\"DISMISSED\" /* Dismissed */]: {\n leave: () => {\n clearContextId();\n },\n on: {\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"IDLE\" /* Idle */,\n [\"BLUR\" /* Blur */]: \"IDLE\" /* Idle */\n }\n }\n }\n};\nvar state = {\n value: chart.initial,\n context: { id: null }\n};\nvar subscriptions = [];\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return () => {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\nfunction notify() {\n subscriptions.forEach((fn) => fn(state));\n}\nvar restTimeout;\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(() => {\n send({ type: \"REST\" /* Rest */ });\n }, MOUSE_REST_TIMEOUT);\n}\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n}\nvar leavingVisibleTimer;\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(() => send({ type: \"TIME_COMPLETE\" /* TimeComplete */ }), LEAVE_TIMEOUT);\n}\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n}\nfunction clearContextId() {\n state.context.id = null;\n}\nfunction useTooltip({\n id: idProp,\n onPointerEnter,\n onPointerMove,\n onPointerLeave,\n onPointerDown,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onMouseDown,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n ref: forwardedRef,\n DEBUG_STYLE\n} = {}) {\n let id = String(useId(idProp));\n let [isVisible, setIsVisible] = React.useState(DEBUG_STYLE ? true : isTooltipVisible(id, true));\n let ownRef = React.useRef(null);\n let ref = useComposedRefs(forwardedRef, ownRef);\n let triggerRect = useRect(ownRef, { observe: isVisible });\n React.useEffect(() => {\n return subscribe(() => {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n React.useEffect(() => {\n let ownerDocument = getOwnerDocument(ownRef.current);\n function listener(event) {\n if ((event.key === \"Escape\" || event.key === \"Esc\") && state.value === \"VISIBLE\" /* Visible */) {\n send({ type: \"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */ });\n }\n }\n ownerDocument.addEventListener(\"keydown\", listener);\n return () => ownerDocument.removeEventListener(\"keydown\", listener);\n }, []);\n useDisabledTriggerOnSafari({ disabled, isVisible, ref: ownRef });\n function wrapMouseEvent(theirHandler, ourHandler) {\n if (typeof window !== \"undefined\" && \"PointerEvent\" in window) {\n return theirHandler;\n }\n return composeEventHandlers(theirHandler, ourHandler);\n }\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n if (event.pointerType !== \"mouse\") {\n return;\n }\n handler(event);\n };\n }\n function handleMouseEnter() {\n send({ type: \"MOUSE_ENTER\" /* MouseEnter */, id });\n }\n function handleMouseMove() {\n send({ type: \"MOUSE_MOVE\" /* MouseMove */, id });\n }\n function handleMouseLeave() {\n send({ type: \"MOUSE_LEAVE\" /* MouseLeave */ });\n }\n function handleMouseDown() {\n if (state.context.id === id) {\n send({ type: \"MOUSE_DOWN\" /* MouseDown */ });\n }\n }\n function handleFocus() {\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n send({ type: \"FOCUS\" /* Focus */, id });\n }\n function handleBlur() {\n if (state.context.id === id) {\n send({ type: \"BLUR\" /* Blur */ });\n }\n }\n function handleKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n send({ type: \"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */ });\n }\n }\n let trigger = {\n \"aria-describedby\": isVisible ? makeId(\"tooltip\", id) : void 0,\n \"data-state\": isVisible ? \"tooltip-visible\" : \"tooltip-hidden\",\n \"data-reach-tooltip-trigger\": \"\",\n ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n let tooltip = {\n id,\n triggerRect,\n isVisible\n };\n return [trigger, tooltip, isVisible];\n}\nvar Tooltip = React.forwardRef(function({\n children,\n label,\n ariaLabel: DEPRECATED_ariaLabel,\n id,\n DEBUG_STYLE,\n ...props\n}, forwardedRef) {\n let child = React.Children.only(children);\n if (true) {\n React.useEffect(() => {\n if (DEPRECATED_ariaLabel) {\n console.warn(\"The `ariaLabel prop is deprecated and will be removed from @reach/tooltip in a future version of Reach UI. Please use `aria-label` instead.\");\n }\n }, [DEPRECATED_ariaLabel]);\n }\n let [trigger, tooltip] = useTooltip({\n id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE\n });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, React.cloneElement(child, trigger), /* @__PURE__ */ React.createElement(TooltipPopup, {\n ref: forwardedRef,\n label,\n \"aria-label\": DEPRECATED_ariaLabel,\n ...tooltip,\n ...props\n }));\n});\nTooltip.displayName = \"Tooltip\";\nvar TooltipPopup = React.forwardRef(function TooltipPopup2({\n label,\n ariaLabel: DEPRECATED_ariaLabel,\n isVisible,\n id,\n ...props\n}, forwardRef2) {\n return isVisible ? /* @__PURE__ */ React.createElement(Portal, null, /* @__PURE__ */ React.createElement(TooltipContent, {\n ref: forwardRef2,\n label,\n \"aria-label\": DEPRECATED_ariaLabel,\n isVisible,\n ...props,\n id: makeId(\"tooltip\", String(id))\n })) : null;\n});\nTooltipPopup.displayName = \"TooltipPopup\";\nvar TooltipContent = React.forwardRef(function TooltipContent2({\n ariaLabel,\n \"aria-label\": realAriaLabel,\n as: Comp = \"div\",\n id,\n isVisible,\n label,\n position = positionTooltip,\n style,\n triggerRect,\n ...props\n}, forwardedRef) {\n let hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n let ownRef = React.useRef(null);\n let ref = useComposedRefs(forwardedRef, ownRef);\n let tooltipRect = useRect(ownRef, { observe: isVisible });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Comp, {\n role: hasAriaLabel ? void 0 : \"tooltip\",\n ...props,\n ref,\n \"data-reach-tooltip\": \"\",\n id: hasAriaLabel ? void 0 : id,\n style: {\n ...style,\n ...getStyles(position, triggerRect, tooltipRect)\n }\n }, label), hasAriaLabel && /* @__PURE__ */ React.createElement(VisuallyHidden, {\n role: \"tooltip\",\n id\n }, realAriaLabel || ariaLabel));\n});\nTooltipContent.displayName = \"TooltipContent\";\nfunction getStyles(position, triggerRect, tooltipRect) {\n let haventMeasuredTooltipYet = !tooltipRect;\n if (haventMeasuredTooltipYet) {\n return { visibility: \"hidden\" };\n }\n return position(triggerRect, tooltipRect);\n}\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = (triggerRect, tooltipRect, offset = OFFSET_DEFAULT) => {\n let { width: windowWidth, height: windowHeight } = getDocumentDimensions();\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n let collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n let directionRight = collisions.right && !collisions.left;\n let directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? `${triggerRect.right - tooltipRect.width + window.pageXOffset}px` : `${triggerRect.left + window.pageXOffset}px`,\n top: directionUp ? `${triggerRect.top - offset - tooltipRect.height + window.pageYOffset}px` : `${triggerRect.top + offset + triggerRect.height + window.pageYOffset}px`\n };\n};\nfunction useDisabledTriggerOnSafari({\n disabled,\n isVisible,\n ref\n}) {\n React.useEffect(() => {\n if (!(typeof window !== \"undefined\" && \"PointerEvent\" in window) || !disabled || !isVisible) {\n return;\n }\n let ownerDocument = getOwnerDocument(ref.current);\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n if (event.target instanceof Element && event.target.closest(\"[data-reach-tooltip-trigger][data-state='tooltip-visible']\")) {\n return;\n }\n send({ type: \"GLOBAL_MOUSE_MOVE\" /* GlobalMouseMove */ });\n }\n ownerDocument.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n ownerDocument.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n}\nfunction send(event) {\n let { value, context, changed } = transition(state, event);\n if (changed) {\n state = { value, context };\n notify();\n }\n}\nfunction transition(currentState, event) {\n let stateDef = chart.states[currentState.value];\n let nextState = stateDef && stateDef.on && stateDef.on[event.type];\n if (!nextState) {\n return { ...currentState, changed: false };\n }\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n const { type: _, ...payload } = event;\n let context = { ...state.context, ...payload };\n let nextStateValue = typeof nextState === \"string\" ? nextState : nextState.target;\n let nextDef = chart.states[nextStateValue];\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n return {\n value: nextStateValue,\n context,\n changed: true\n };\n}\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === \"VISIBLE\" /* Visible */ : state.value === \"VISIBLE\" /* Visible */ || state.value === \"LEAVING_VISIBLE\" /* LeavingVisible */);\n}\nexport {\n LEAVE_TIMEOUT,\n MOUSE_REST_TIMEOUT,\n Tooltip,\n TooltipPopup,\n positionTooltip,\n useTooltip\n};\n","import '@reach/tooltip/styles.css';\nimport { Position, TooltipPopup, useTooltip } from '@reach/tooltip';\nimport React from 'react';\n\nconst positionTooltip: Position = (triggerRect, tooltipRect) => {\n const computedLeft = triggerRect && tooltipRect ? triggerRect.right - tooltipRect.width + window.scrollX : '';\n const computedTop = triggerRect ? triggerRect.bottom + window.scrollY : '';\n\n return {\n left: `${computedLeft}px`,\n top: `${computedTop}px`,\n };\n};\n\nfunction CustomTooltip({ children, label }: { children: React.ReactElement; label: string }) {\n const [trigger, tooltip] = useTooltip();\n\n return (\n <>\n {React.cloneElement(children, trigger)}\n <TooltipPopup\n {...tooltip}\n label={label}\n aria-label={label}\n style={{\n background: 'white',\n color: 'black',\n border: 'none',\n borderRadius: '0.5rem',\n boxShadow: '0 2px 10px rgba(0,0,0,0.1)',\n }}\n position={positionTooltip}\n className=\"tw-border tw-border-blue-500 tw-p-2\"\n />\n </>\n );\n}\n\nexport default CustomTooltip;\n","import { Locale } from '@/locales/localeConfiguration';\n\nexport const LANGUAGE_KEY = 'x4b.language';\n\nexport const setCurrentLanguageInLocalStorage = (newLanguage: string) => {\n window.localStorage.setItem(LANGUAGE_KEY, newLanguage);\n};\n\nexport function getDefaultLanguage() {\n return (window.localStorage.getItem(LANGUAGE_KEY) || 'en') as Locale;\n}\n","import { Menu, MenuButton, MenuItem } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { Locale } from '@/locales/localeConfiguration';\nimport { setCurrentLanguageInLocalStorage } from '@/utils/language';\nimport MenuContent from './MenuContent';\n\ntype LanguageSelectorProps = {\n language: Locale;\n languages: Locale[];\n onLanguageSelected?: (language: Locale) => void;\n};\n\nconst languageLabels: Record<Locale, string> = {\n en: 'EN - English',\n fr: 'FR - Français',\n};\n\nfunction LanguageSelector({ language, languages, onLanguageSelected }: LanguageSelectorProps) {\n return (\n <Menu>\n <MenuButton\n as={Button}\n className=\"aria-expanded:tw-border-gray-100 aria-expanded:tw-bg-gray-100 aria-expanded:tw-text-gray-700 aria-expanded:tw-duration-150\"\n variant=\"ghost\"\n colorScheme=\"gray\"\n rounded={true}\n compact={true}\n >\n <div className=\"tw-min-w-[36px] tw-text-base lg:tw-text-lg\">\n <span>{language.toUpperCase()}</span>\n <svg\n aria-hidden={true}\n className=\"tw-ml-1 !tw-inline-block\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"8\"\n height=\"5\"\n viewBox=\"0 0 8 5\"\n >\n <defs>\n <path\n id=\"a\"\n d=\"M1367.876 32.83a.5.5 0 01-.752-.66l3.5-4a.5.5 0 01.752 0l3.5 4a.5.5 0 01-.752.66L1371 29.26l-3.124 3.57z\"\n ></path>\n </defs>\n <use fill=\"currentColor\" transform=\"matrix(1 0 0 -1 -1367 33)\" xlinkHref=\"#a\"></use>\n </svg>\n </div>\n </MenuButton>\n <MenuContent withMinWidth={false} className=\"tw-min-w-fit\">\n {languages\n .filter((lang) => languageLabels[lang])\n .map((lang) => (\n <MenuItem\n key={lang}\n className=\"tw-cursor-pointer tw-whitespace-nowrap tw-py-2 tw-px-4 tw-text-base tw-font-normal tw-leading-normal tw-tracking-normal tw-text-black hover:tw-bg-gray-50 data-[selected]:tw-bg-gray-50\"\n onSelect={() => {\n setCurrentLanguageInLocalStorage(lang);\n onLanguageSelected && onLanguageSelected(lang);\n }}\n >\n {languageLabels[lang]}\n </MenuItem>\n ))}\n </MenuContent>\n </Menu>\n );\n}\n\nexport default LanguageSelector;\n","import { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\n\nfunction NotificationButton({ count, onClick }: { count?: number; onClick?: () => void }) {\n const intl = useIntl();\n return (\n <Button\n className=\"tw-hidden sm:tw-inline-block\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n onClick={onClick}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'notifications' })}</p>\n <svg\n aria-hidden={true}\n width=\"22\"\n height=\"22\"\n opacity=\"0.9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className=\"tw-block tw-scale-[1.08]\"\n >\n <title>{intl.formatMessage({ id: 'notifications' })}</title>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0\"\n />\n </svg>\n {count ? (\n <div className=\"tw-absolute tw-top-[0.3em] tw-left-[22px] tw-min-w-[1em] tw-rounded-[1em] tw-bg-red-600 tw-py-[0.1em] tw-px-[0.3em] tw-text-center tw-text-[0.8em] tw-font-semibold tw-leading-[1em] tw-text-white\">\n {count}\n </div>\n ) : undefined}\n </Button>\n );\n}\n\nexport default NotificationButton;\n","import { Menu, MenuButton, MenuLink } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\nimport MenuContent from './MenuContent';\n\ntype UserProfileMenuProps = {\n username: string;\n version: string;\n onLogout: () => void;\n};\n\nfunction UserProfileMenu({ username, version, onLogout }: UserProfileMenuProps) {\n const intl = useIntl();\n return (\n <Menu>\n <MenuButton\n className=\"!tw-px-0 !tw-py-0 tw-transition-opacity hover:tw-opacity-80 aria-expanded:tw-opacity-80 aria-expanded:tw-duration-150\"\n as={Button}\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'userAccountTooltip' })}</p>\n <svg aria-hidden={true} width={44} height={44} viewBox=\"0 0 44 44\" version=\"1.1\">\n <title>{intl.formatMessage({ id: 'userAccountTooltip' })}</title>\n <defs>\n <clipPath id=\"user-badge--clip-path\">\n <circle cx=\"50%\" cy=\"50%\" r=\"22\" fill=\"#FFFFFF\" fillRule=\"evenodd\" />\n </clipPath>\n </defs>\n <image\n width=\"44\"\n height=\"44\"\n xlinkHref=\"data:image/png;base64,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\"\n clipPath=\"url(#user-badge--clip-path)\"\n />\n </svg>\n </MenuButton>\n <MenuContent withMinWidth={false} className=\"tw-w-[310px]\">\n <div className=\"tw-flex tw-flex-col tw-gap-4 tw-py-4 tw-px-5\">\n <div className=\"tw-overflow-hidden tw-overflow-ellipsis tw-whitespace-nowrap tw-text-base tw-font-semibold tw-leading-tight tw-text-black\">\n {username}\n </div>\n <MenuLink\n as={Button}\n className=\"tw-self-end data-[selected]:[&:not(:hover)]:tw-ring data-[selected]:[&:not(:hover)]:tw-ring-gray-300\"\n variant=\"outline\"\n colorScheme=\"gray\"\n onSelect={onLogout}\n >\n {intl.formatMessage({ id: 'logout' })}\n </MenuLink>\n </div>\n <div className=\"tw-flex tw-w-full tw-justify-center tw-bg-gray-50 tw-py-4 tw-px-0 tw-text-sm tw-font-normal tw-text-gray-700\">\n {intl.formatMessage({ id: 'version' }, { version: version })}\n </div>\n </MenuContent>\n </Menu>\n );\n}\n\nexport default UserProfileMenu;\n","import { Button } from '@x4b/design-system';\nimport clsx from 'clsx';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { Locale } from '@/locales/localeConfiguration';\nimport { ApplicationDescriptions } from '@/utils/applications';\nimport { buildMailtoHref } from '@/utils/mail';\nimport { setMenuStateInLocalStorage } from '@/utils/toggleMenu';\nimport { isMenuOpen } from '..';\nimport AppSelector from './AppSelector';\nimport AppTitle from './AppTitle';\nimport CustomTooltip from './CustomTooltip';\nimport LanguageSelector from './LanguageSelector';\nimport NotificationButton from './NotificationButton';\nimport UserProfileMenu from './UserProfileMenu';\n\nconst xcompDocumentationUrl = 'https://xcomponent.github.io/appcontrol-documentation/contact/';\n\nexport type BannerContentProps = {\n language?: Locale;\n languages?: Array<Locale>;\n onLanguageChange?: (value: Locale) => void;\n application: string;\n notificationCount?: number;\n onNotificationClick?: () => void;\n onInstallationClick?: () => void;\n onToggleMenuClick?: (isMenuOpen: boolean) => void;\n applications?: ApplicationDescriptions;\n username?: string;\n version: string;\n logout?: () => void;\n refreshToken?: string;\n loginUrl?: string;\n withMaxWith?: boolean;\n showUpgrade?: boolean;\n};\n\nfunction BannerContent({\n application,\n applications,\n notificationCount,\n onNotificationClick,\n onInstallationClick,\n onToggleMenuClick,\n language,\n languages,\n onLanguageChange,\n username,\n version,\n logout,\n refreshToken,\n loginUrl,\n withMaxWith = false,\n className,\n showUpgrade,\n ...props\n}: BannerContentProps & React.HTMLAttributes<HTMLElement>) {\n const intl = useIntl();\n const currentApplicationDescription = applications?.[application];\n const settingsAppName = 'x4b-settings';\n const settingsDescription = applications?.[settingsAppName];\n const supportMail = 'support@xcomponent.com';\n const systemInfo = currentApplicationDescription && {\n applicationName: currentApplicationDescription?.name,\n username,\n version,\n url: currentApplicationDescription?.url,\n };\n const toggleMenuHandler = () => {\n const newMenuState = !isMenuOpen();\n setMenuStateInLocalStorage(newMenuState);\n onToggleMenuClick && onToggleMenuClick(newMenuState);\n };\n\n if (!currentApplicationDescription) {\n console.error(`Unknown application ${application}`);\n return <div data-testid=\"init-error\" />;\n }\n\n return (\n <header\n {...props}\n aria-label=\"Global\"\n className={clsx(\n className,\n 'tw-box-border tw-bg-white ',\n refreshToken && 'tw-shadow-[0_0_10px_0_rgba(72,40,83,0.1)]'\n )}\n >\n <nav\n aria-label=\"top\"\n className={clsx(\n refreshToken ? 'tw-gap-0 sm:tw-gap-1 lg:tw-gap-2' : 'tw-gap-0 sm:tw-gap-1',\n withMaxWith && 'tw-mx-auto tw-max-w-7xl',\n 'tw-text-primary-600 tw-isolate tw-m-0 tw-box-border tw-flex tw-w-full tw-flex-row tw-flex-wrap tw-items-center tw-justify-start tw-py-2 tw-px-4 tw-font-sans tw-antialiased lg:tw-px-5 xl:tw-px-3 '\n )}\n >\n {refreshToken && onToggleMenuClick && (\n <Button\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n onClick={toggleMenuHandler}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'mainMenu' })}</p>\n <svg\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox={`0 0 18 16`}\n >\n <title>{intl.formatMessage({ id: 'mainMenu' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M18 6.818H0v1.364h18zM18 13H0v1.36h18zM18 .364H0v1.36h18z\" />\n </g>\n </svg>\n </Button>\n )}\n <img\n alt={application}\n width=\"34\"\n height=\"34\"\n aria-hidden={true}\n src={`data:image/svg+xml;base64,${currentApplicationDescription.logo}`}\n className=\"tw-my-0 tw-block\"\n />\n <AppTitle className=\"tw-hidden md:tw-block\">\n {currentApplicationDescription.label || currentApplicationDescription.name}\n </AppTitle>\n <AppTitle className=\"tw-block md:tw-hidden\">\n {currentApplicationDescription.shortname || currentApplicationDescription.name}\n </AppTitle>\n {onInstallationClick !== undefined && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={false}\n rounded={false}\n aria-label={intl.formatMessage({ id: 'installGateway' })}\n onClick={onInstallationClick}\n >\n {intl.formatMessage({ id: 'installGateway' })}\n </Button>\n )}\n {showUpgrade && (\n <CustomTooltip label={intl.formatMessage({ id: 'upgradeBtnTooltip' })}>\n <Button\n as=\"a\"\n variant=\"outline\"\n colorScheme=\"primary\"\n rounded={true}\n href={\n systemInfo &&\n buildMailtoHref(\n supportMail,\n `[${systemInfo.applicationName}] Support Request`,\n intl.formatMessage({ id: 'contactUpgradeMailBody' }),\n systemInfo\n )\n }\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n >\n <p className=\"tw-sr-only\"> {intl.formatMessage({ id: 'upgradeBtnTooltip' })}</p>\n {intl.formatMessage({ id: 'upgradeBtn' })}\n </Button>\n </CustomTooltip>\n )}\n\n {notificationCount !== undefined && refreshToken && (\n <NotificationButton count={notificationCount} onClick={onNotificationClick} />\n )}\n {settingsDescription && application !== settingsAppName && refreshToken && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n href={`${settingsDescription.url}${refreshToken ? `#refreshToken=${refreshToken}` : ''}`}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'settings' })}</p>\n <svg\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"22\"\n height=\"22\"\n viewBox={`0 0 22 22`}\n >\n <title>{intl.formatMessage({ id: 'settings' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M14.037 19.103v2.25c0 .357-.29.647-.647.647H8.61a.647.647 0 0 1-.647-.647v-2.25c-.981-.278-1.658-.682-2.422-1.353a15.057 15.057 0 0 1-.108-.096L3.35 18.811a.647.647 0 0 1-.875-.242L.087 14.43a.647.647 0 0 1 .237-.884l1.995-1.15a8.415 8.415 0 0 1 .005-2.796L.344 8.452a.647.647 0 0 1-.234-.885l2.413-4.138A.647.647 0 0 1 3.4 3.19l2.036 1.152.105-.093c.764-.67 1.44-1.073 2.422-1.353V.647c0-.357.29-.647.647-.647h4.78c.357 0 .647.29.647.647v2.25c.982.28 1.658.683 2.422 1.353l.105.093L18.6 3.191a.647.647 0 0 1 .878.238l2.412 4.138c.18.309.075.706-.234.885l-1.98 1.149c.156.934.161 1.857.005 2.797l1.995 1.149c.31.178.416.574.237.884l-2.388 4.138a.647.647 0 0 1-.874.242l-2.084-1.157-.108.096c-.764.671-1.44 1.075-2.422 1.353zm-1.294-.504c0-.303.21-.566.507-.632 1.043-.231 1.621-.545 2.355-1.19.114-.1.181-.161.432-.39a.647.647 0 0 1 .752-.09l1.933 1.074 1.747-3.026-1.834-1.056a.647.647 0 0 1-.308-.7 7.203 7.203 0 0 0-.005-3.178.647.647 0 0 1 .307-.699l1.816-1.054-1.764-3.026L16.793 5.7a.647.647 0 0 1-.756-.086c-.246-.226-.318-.291-.432-.391-.733-.644-1.311-.958-2.356-1.19a.647.647 0 0 1-.506-.632V1.294H9.257v2.107c0 .303-.21.566-.506.631-1.044.233-1.623.547-2.356 1.19-.114.101-.185.166-.432.392a.647.647 0 0 1-.756.086L3.32 4.632 1.555 7.658l1.816 1.054a.647.647 0 0 1 .308.699 7.203 7.203 0 0 0-.005 3.177.647.647 0 0 1-.31.7l-1.833 1.057 1.747 3.026 1.934-1.074a.647.647 0 0 1 .751.09c.25.229.318.29.432.39.734.645 1.312.959 2.355 1.19a.647.647 0 0 1 .507.632v2.107h3.486v-2.107zM14.276 11a3.275 3.275 0 1 1-6.551 0 3.275 3.275 0 0 1 6.55 0zm-1.294 0a1.981 1.981 0 1 0-3.963 0 1.981 1.981 0 0 0 3.963 0z\" />\n </g>\n </svg>\n </Button>\n )}\n {xcompDocumentationUrl && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n href={xcompDocumentationUrl}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'documentation' })}</p>\n <svg\n className=\"tw-w-[1.5rem] tw-h-[1.5rem] tw-block\"\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 100 100\"\n >\n <title>{intl.formatMessage({ id: 'documentation' })}</title>\n <path\n strokeWidth=\"1\"\n fill=\"currentColor\"\n d=\"M52.586 20.5H70.25a1.5 1.5 0 100-3H52.586a1.5 1.5 0 100 3zM52.586 32.1H70.25a1.5 1.5 0 100-3H52.586a1.5 1.5 0 100 3zM70.25 40.7h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM70.25 52.3h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM70.25 63.9h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM56 75.5H29.75a1.5 1.5 0 100 3H56a1.5 1.5 0 100-3zM44.181 35.785a1.5 1.5 0 001.5-1.5V16a1.5 1.5 0 00-1.5-1.5H28.896a1.5 1.5 0 00-1.5 1.5v18.285a1.5 1.5 0 001.5 1.5h15.285zM30.396 17.5h12.285v15.285H30.396V17.5z\"\n />\n <path\n strokeWidth=\"1\"\n fill=\"currentColor\"\n d=\"M78.521 5H21.479a4.067 4.067 0 00-4.063 4.063v81.875a4.067 4.067 0 004.063 4.063h43.522c.161 0 .314-.032.46-.08.023-.007.045-.012.067-.021.148-.056.282-.136.404-.233.011-.008.024-.011.034-.02L82.05 81.083c.015-.013.026-.029.041-.042a1.27 1.27 0 00.114-.118c.03-.034.06-.068.086-.104.03-.041.056-.084.082-.128a1.2 1.2 0 00.066-.122c.021-.045.038-.092.055-.139a1.315 1.315 0 00.084-.43c.001-.021.006-.041.006-.062V9.063A4.068 4.068 0 0078.521 5zM20.417 90.938V9.063c0-.586.476-1.063 1.062-1.063h57.042c.586 0 1.063.477 1.063 1.063v69.374H65a1.5 1.5 0 00-1.5 1.5V92H21.479a1.063 1.063 0 01-1.062-1.062zm56.562-9.501L66.5 90.273v-8.837h10.479z\"\n />\n </svg>\n </Button>\n )}\n\n {/* The help icon is hidden temporarily \n <HelpMenu\n documentationUrl={currentApplicationDescription.documentationUrl}\n systemInfo={{\n applicationName: currentApplicationDescription.name,\n username,\n version,\n url: currentApplicationDescription.url,\n }}\n /> */}\n <Button\n href=\"https://slack.xcomponent.com\"\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n aria-label={intl.formatMessage({ id: 'contactDevelopers' })}\n >\n {\n <svg\n viewBox=\"8 8 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={true}\n className=\"tw-w-[1.5rem] tw-h-[1.5rem] tw-block\"\n >\n <title>{intl.formatMessage({ id: 'contactDevelopers' })}</title>\n <path\n d=\"M16.535 27.397a2.711 2.711 0 01-2.704 2.705 2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h2.704v2.705zM17.898 27.397a2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v6.772a2.712 2.712 0 01-2.705 2.705 2.711 2.711 0 01-2.705-2.705v-6.772z\"\n fill=\"#E01E5A\"\n />\n <path\n d=\"M20.603 16.535a2.711 2.711 0 01-2.705-2.704 2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v2.704h-2.705zM20.603 17.898a2.712 2.712 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-6.772a2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h6.772z\"\n fill=\"#36C5F0\"\n />\n <path\n d=\"M31.465 20.603a2.711 2.711 0 012.704-2.705 2.711 2.711 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-2.704v-2.705zM30.102 20.603a2.711 2.711 0 01-2.705 2.705 2.711 2.711 0 01-2.705-2.705v-6.772a2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v6.772z\"\n fill=\"#2EB67D\"\n />\n <path\n d=\"M27.397 31.465a2.711 2.711 0 012.705 2.704 2.711 2.711 0 01-2.705 2.705 2.712 2.712 0 01-2.705-2.705v-2.704h2.705zM27.397 30.102a2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h6.772a2.711 2.711 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-6.772z\"\n fill=\"#ECB22E\"\n />\n </svg>\n }\n </Button>\n {refreshToken && application === settingsAppName && applications && (\n <AppSelector applicationDescriptions={applications} refreshToken={refreshToken} />\n )}\n {refreshToken && username && version && logout && (\n <UserProfileMenu username={username} version={version} onLogout={logout} />\n )}\n <LanguageSelector\n language={language || 'en'}\n languages={languages || ['en']}\n onLanguageSelected={onLanguageChange}\n />\n {!refreshToken && (\n <>\n <Button\n className=\"tw-ml-2 tw-mr-0 md:tw-ml-3 lg:tw-mr-3\"\n size=\"lg\"\n href={loginUrl}\n as=\"a\"\n variant=\"link\"\n colorScheme=\"gray\"\n >\n {intl.formatMessage({ id: 'login' })}\n </Button>\n <Button\n className=\"tw-ml-3 tw-hidden lg:tw-inline-block\"\n size=\"xl\"\n href={loginUrl}\n as=\"a\"\n variant=\"solid\"\n colorScheme=\"primary\"\n >\n {intl.formatMessage({ id: 'getStartedFree' })}\n </Button>\n </>\n )}\n </nav>\n </header>\n );\n}\n\nexport default BannerContent;\n","import localeData from './data.json';\n\nexport type Locale = 'en' | 'fr';\n\nexport const getLocalizedResources = (defaultLanguage: Locale) => {\n return localeData[defaultLanguage];\n};\n","import { IntlProvider } from 'react-intl';\nimport BannerContent, { BannerContentProps } from '@/components/BannerContent';\nimport { getLocalizedResources } from '@/locales/localeConfiguration';\n\nfunction Banner(props: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> & BannerContentProps) {\n const lang = props.language || 'en';\n return (\n <IntlProvider locale={lang} messages={getLocalizedResources(lang)}>\n <BannerContent {...props} />\n </IntlProvider>\n );\n}\n\nexport default Banner;\n","export const defaultAppIcon =\n '<svg width=\"34\" height=\"35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.63 16.635.574 6.579c-.725-.725-.725-1.952 0-2.718L2.946 1.49c.725-.725 1.952-.725 2.717 0L15.72 11.546c.725.725.725 1.951 0 2.717l-2.371 2.372a1.894 1.894 0 0 1-2.718 0ZM.574 29.333 10.63 19.277c.725-.725 1.952-.725 2.718 0l2.371 2.372c.725.725.725 1.952 0 2.717L5.663 34.422c-.725.726-1.951.726-2.717 0L.574 32.051c-.765-.766-.765-1.993 0-2.718ZM23.37 19.237l10.056 10.056c.725.725.725 1.951 0 2.717l-2.372 2.372c-.725.725-1.952.725-2.717 0L18.28 24.326c-.725-.725-.725-1.952 0-2.718l2.371-2.371a1.97 1.97 0 0 1 2.718 0Z\" fill=\"#44506A\"/><path d=\"M33.426 6.579 23.37 16.635c-.726.725-1.952.725-2.718 0l-2.371-2.372c-.725-.725-.725-1.952 0-2.717L28.337 1.49c.725-.725 1.951-.725 2.717 0l2.372 2.371c.765.766.765 1.993 0 2.718Z\" fill=\"url(#a)\"/><defs><linearGradient id=\"a\" x1=\"17.736\" y1=\"9.065\" x2=\"33.999\" y2=\"9.065\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#2E5BFF\"/><stop offset=\"1\" stop-color=\"#7994F6\"/></linearGradient></defs></svg>';\n","export type ApplicationDescriptions = { [id: string]: ApplicationDescription };\nexport type ApplicationDescription = {\n name: string;\n url: string;\n logo: string;\n documentationUrl?: string;\n label?: string;\n hidden?: boolean;\n shortname?: string;\n};\n\ntype BackendApplicationDescription = {\n id: string;\n label: string;\n url: string;\n logo: string;\n documentationUrl: string | undefined;\n hidden: string;\n};\n\nexport async function getApplicationDescriptions(appsServiceUrl: string) {\n const response = await fetch(`${appsServiceUrl}/applications`);\n if (response.ok) {\n const data = (await response.json()) as BackendApplicationDescription[];\n return data.reduce((apps: ApplicationDescriptions, app) => {\n apps[app.id] = {\n name: app.label,\n url: app.url,\n logo: app.logo,\n documentationUrl: app.documentationUrl,\n hidden: Boolean(app.hidden),\n };\n return apps;\n }, {});\n } else {\n console.error(response.text);\n return {};\n }\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwt_decode from 'jwt-decode';\nimport { RefreshAccessTokenResult } from './auth';\n\nexport type JwtTokenContent = {\n user: string;\n exp?: number;\n};\n\nexport const getUsernameFromToken = (token?: string) => {\n if (token) {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n return jwtTokenContent ? jwtTokenContent.user : undefined;\n }\n};\n\nexport const getTokenFromCurrentLocation = () => {\n const refreshToken = getParameterFromCurrentLocation('refreshToken');\n if (refreshToken) {\n return {\n refreshToken: refreshToken,\n accessToken: getParameterFromCurrentLocation('accessToken'),\n } as RefreshAccessTokenResult;\n }\n return {} as RefreshAccessTokenResult;\n};\n\nfunction getParameterFromCurrentLocation(parameter: string) {\n const values = window.location.hash\n ?.slice(1)\n .split('#')\n .map((entry) => {\n const splitEntry = entry.split('=');\n return { key: splitEntry[0], value: splitEntry[1] };\n })\n .filter((keyValuePair) => keyValuePair.key === parameter)\n .map((keyValuePair) => keyValuePair.value);\n return values && values.length > 0 ? values[0] : undefined;\n}\n\nexport const getToken = () => {\n return window.accessToken;\n};\n\nconst oneMinuteInSeconds = 60;\nconst defaultTokenRefreshRate = 5 * oneMinuteInSeconds * 1000;\n\nexport const isTokenStillValid = (token: string) => {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n const nowEpochInSeconds = Date.now() / 1000;\n return !jwtTokenContent.exp || jwtTokenContent.exp > nowEpochInSeconds + oneMinuteInSeconds;\n};\n\nexport const getTokenRefreshTimeout = (token: string) => {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n const nowEpochInSeconds = Date.now() / 1000;\n if (!jwtTokenContent.exp) {\n return defaultTokenRefreshRate;\n }\n if (!isTokenStillValid(token)) {\n return 0;\n }\n return (jwtTokenContent.exp - nowEpochInSeconds - oneMinuteInSeconds) * 1000;\n};\n\nconst btoajson = function <T>(json: T) {\n return Buffer.from(JSON.stringify(json))\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n};\n\n// for tests\n// adapted from https://github.com/hokaccha/node-jwt-simple/blob/master/lib/jwt.js\nexport function createToken(payload: JwtTokenContent): string {\n return [btoajson({ typ: 'JWT', alg: 'none' }), btoajson(payload)].join('.');\n}\n","import { getDefaultLanguage } from './language';\nimport { getTokenFromCurrentLocation, getTokenRefreshTimeout, isTokenStillValid } from './token';\n\nexport type TokenChangeCallback = (token: RefreshAccessTokenResult) => void;\n\nexport type RefreshAccessTokenResult = {\n refreshToken: string;\n accessToken?: string;\n};\n\nconst buildLangUrlParameter = () => {\n const lang = getDefaultLanguage();\n return lang ? `lang=${lang}&` : '';\n};\n\nexport async function login(appsServiceUrl: string, onTokenChange?: TokenChangeCallback) {\n const response = await fetch(`${appsServiceUrl}/services`);\n if (response.ok) {\n const data = await response.json();\n const loginUrl = data['login'];\n const authenticationUrl = data['authentication'];\n const logout = () => {\n window.location.href = `${loginUrl}/logout?${buildLangUrlParameter()}redirectUrl=${encodeURIComponent(\n window.location.href\n )}`;\n };\n\n const newToken = getTokenFromCurrentLocation();\n\n if (newToken?.refreshToken) {\n const token = await refreshAccessToken(logout, authenticationUrl, newToken, onTokenChange);\n history.replaceState({}, '', window.location.href.split('#')[0]);\n if (token) {\n return { token, logout };\n }\n } else {\n window.location.href = `${loginUrl}?${buildLangUrlParameter()}redirectUrl=${encodeURIComponent(\n window.location.href\n )}`;\n }\n } else {\n throw new Error(await response.text());\n }\n}\n\ntype AuthenticationError = {\n requestId: string;\n authenticationErrorType: string;\n errors?: string[];\n};\n\nfunction startTokenAutoRefresh(\n logout: () => void,\n authenticationUrl: string,\n currentToken: RefreshAccessTokenResult,\n onTokenChange?: TokenChangeCallback\n) {\n const timeout = getTokenRefreshTimeout(window.accessToken || '');\n console.debug(`Token will refresh in ${timeout} ms`);\n setTimeout(() => refreshAccessToken(logout, authenticationUrl, currentToken, onTokenChange), timeout);\n}\n\nasync function refreshAccessToken(\n logout: () => void,\n authenticationUrl: string,\n currentToken: RefreshAccessTokenResult,\n onTokenChange?: TokenChangeCallback\n) {\n if (currentToken.accessToken && isTokenStillValid(currentToken.accessToken)) {\n window.accessToken = currentToken.accessToken;\n\n startTokenAutoRefresh(logout, authenticationUrl, currentToken, onTokenChange);\n return currentToken;\n }\n\n if (!currentToken.refreshToken) {\n window.accessToken = undefined;\n console.error('no refresh token, nothing to refresh');\n return;\n }\n try {\n const response = await fetch(`${authenticationUrl}/api/Users/RefreshToken`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(currentToken.refreshToken),\n });\n if (response.ok) {\n const data = (await response.json()) as RefreshAccessTokenResult;\n if (data.refreshToken) {\n window.accessToken = data.accessToken;\n onTokenChange && onTokenChange(data);\n startTokenAutoRefresh(logout, authenticationUrl, data, onTokenChange);\n return data;\n } else {\n console.error('no refresh token');\n return;\n }\n } else {\n const errorData = (await response.json()) as AuthenticationError;\n console.error(errorData);\n logout();\n }\n } catch (error) {\n console.error(error);\n logout();\n }\n}\n","import React from 'react';\nimport { BannerContentProps } from '@/components/BannerContent';\nimport { ApplicationDescriptions, getApplicationDescriptions } from '@/utils/applications';\nimport { login, RefreshAccessTokenResult } from '@/utils/auth';\nimport { getUsernameFromToken } from '@/utils/token';\n\ntype AuthContextType = {\n appsServiceUrl: string;\n authResult?: { token: RefreshAccessTokenResult; logout: () => void };\n applications?: ApplicationDescriptions;\n getBannerProps: (props: Partial<BannerContentProps>) => BannerContentProps;\n};\n\nconst AuthContext = React.createContext<AuthContextType | undefined>(undefined);\nAuthContext.displayName = 'AuthContext';\n\nfunction AuthProvider({ appsServiceUrl, children }: { appsServiceUrl: string; children: React.ReactNode }) {\n const [authResult, setAuthResult] = React.useState<AuthContextType['authResult']>();\n const [applications, setApplications] = React.useState<ApplicationDescriptions | undefined>();\n\n const tokenChangeHandler = React.useCallback((token: RefreshAccessTokenResult) => {\n setAuthResult((value) => ({\n logout: value?.logout || (() => {}),\n token: { accessToken: token.accessToken, refreshToken: token.refreshToken },\n }));\n }, []);\n\n React.useEffect(() => {\n Promise.all([login(appsServiceUrl, tokenChangeHandler), getApplicationDescriptions(appsServiceUrl)]).then(\n ([result, applicationDescriptions]) => {\n Object.keys(applicationDescriptions).forEach((id) => {\n applicationDescriptions[id].logo = window.btoa(applicationDescriptions[id].logo);\n });\n setApplications(applicationDescriptions);\n setAuthResult(result);\n }\n );\n }, [appsServiceUrl, tokenChangeHandler]);\n\n const getBannerProps = React.useCallback(\n (props: Partial<BannerContentProps>) => {\n return {\n ...props,\n applications,\n username: getUsernameFromToken(authResult?.token.refreshToken),\n logout: authResult?.logout,\n refreshToken: authResult?.token.refreshToken,\n } as BannerContentProps;\n },\n [applications, authResult]\n );\n\n return (\n <AuthContext.Provider value={{ appsServiceUrl, authResult, applications, getBannerProps }}>\n {authResult && applications && children}\n </AuthContext.Provider>\n );\n}\n\nfunction useAuth() {\n const context = React.useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n}\n\nexport { AuthProvider, useAuth };\n"],"names":["extendStatics","d","b","p","__extends","__","__assign","s","i","n","__rest","e","t","__spreadArray","to","from","pack","l","ar","c","f","g","h","k","m","q","r","v","w","x","y","z","a","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","module","require$$0","require$$1","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","invariant","condition","message","Err","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","result","match","len","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","tokens","_i","stringTokens_1","stringToken","stemAndOptions","stem","options","_a","options_1","option","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","_","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","signDisplay","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","token","all","g3","g4","g5","conciseScientificAndEngineeringOpts","timeData","getBestPattern","locale","skeletonCopy","patternPos","patternChar","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycle","languageTag","regionTag","hourCycles","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","hasNativeFromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","hasTrimStart","hasTrimEnd","hasNativeIsSafeInteger","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","re","RE","startsWith","search","position","fromCodePoint","codePoints","elements","length","code","fromEntries","entries","obj","entries_1","codePointAt","index","size","first","second","trimStart","trimEnd","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","nestingLevel","parentArgType","expectingCloseTag","char","_isAlpha","startPosition","tagName","childrenResult","children","endTagStartPosition","closingTagNameStartPosition","closingTagName","startOffset","_isPotentialElementNameChar","value","parseQuoteResult","parseUnquotedResult","parseLeftAngleResult","location","_isAlphaOrSlash","ch","openingBracePosition","startingPosition","endOffset","endPosition","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","style","styleLocation","argCloseResult","location_1","dateTimePattern","typeEndPosition_1","identifierAndLocation","pluralOffset","optionsResult","location_2","nestedBraces","apostrophePosition","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","sign","hasDigits","decimal","offset","kind","prefix","pattern","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","parse","opts","error","memoize","fn","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","cacheKey","computedValue","variadic","args","assemble","context","serialize","strategyVariadic","strategyMonadic","ObjectWithoutPrototypeCache","key","strategies","ErrorCode","FormatError","_super","msg","originalMessage","_this","InvalidValueError","variableId","InvalidValueTypeError","MissingValueError","PART_TYPE","mergeLiteral","parts","part","lastPart","isFormatXMLElementFn","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","rule","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","IntlMessageFormat","overrideFormats","supportedLocales","IntlErrorCode","IntlError","exception","err","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","descriptor","MissingTranslationError","filterProps","props","allowlist","defaults","filtered","name","defaultErrorHandler","defaultWarnHandler","warning","DEFAULT_INTL_CONFIG","createIntlCache","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getNamedFormat","onError","formatType","format","setTimeZoneInOptions","timeZone","deepMergeOptions","opts1","opts2","keys","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","messages","defaultLocale","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","defaultMessage","id","formatter","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","formatDate","config","_b","date","formatTime","formatDateTimeRange","formatDateToParts","formatTimeToParts","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","LIST_FORMAT_OPTIONS","now","generateToken","formatList","getListFormat","results","formatListToParts","val","richValues_1","serializedValues","PLURAL_FORMAT_OPTIONS","formatPlural","RELATIVE_TIME_FORMAT_OPTIONS","getRelativeTimeFormat","formatRelativeTime","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","messagesContainString","firstMessage","verifyConfigMessages","createIntl","resolvedConfig","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","textComponent","React","assignUniqueKeysToParts","formatXMLElementFn","Children","toArray","shallowEqual","objA","objB","aKeys","Object","bKeys","prototype","hasOwnProperty","call","reactJsxRuntime_production_min","process","env","NODE_ENV","require","Symbol","for","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_len2","arguments","Array","_key2","printWarning","level","ReactDebugCurrentFrame","stack","getStackAddendum","concat","argsWithFormat","map","item","String","unshift","Function","apply","console","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","getModuleId","undefined","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","tag","provider","_context","render","outerName","lazyComponent","payload","_payload","init","_init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","log","info","warn","group","groupCollapsed","groupEnd","configurable","enumerable","writable","defineProperties","reenableLogs","ReactCurrentDispatcher","describeBuiltInComponentFrame","source","ownerFn","Error","trim","reentry","componentFrameCache","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","construct","frame","get","control","previousPrepareStackTrace","prepareStackTrace","previousDispatcher","current","Fake","defineProperty","set","Reflect","sample","sampleLines","split","controlLines","_frame","replace","includes","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","isReactComponent","describeUnknownElementTypeFrameInDEV","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","_owner","_source","setExtraStackFrame","checkPropTypes","typeSpecs","componentName","has","bind","typeSpecName","error$1","ex","isArrayImpl","isArray","typeName","hasToStringTag","toStringTag","constructor","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","ref","__self","__source","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","hasValidRef","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","stateNode","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","_store","freeze","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","fileName","lineNumber","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","parentName","validateExplicitKey","validated","currentComponentErrorInfo","childOwner","validateChildKeys","node","child","iteratorFn","step","next","done","validatePropTypes","propTypes","PropTypes","_name","getDefaultProps","isReactClassApproved","validateFragmentProps","fragment","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","exports","IntlContext","createContext","Consumer","IntlProvider","Provider","Context","useIntl","DisplayName","DisplayNameParts","createFormattedDateTimePartsComponent","ComponentParts","formatProps","Date","formattedParts","createFormattedComponent","formattedValue","Text","_jsx","processIntlConfig","onWarn","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","reduce","acc","rawValues","rest","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","$t","prevConfig","getDerivedStateFromProps","PureComponent","IntlProvider$1","clsx","requestInfoHeader","requestInfoFooter","buildRequestInfoMailSection","systemInfo","requestInfo","buildMailtoHref","subject","body","mailBody","FULLSIZE_MENU_KEY","isMenuOpen","setMenuStateInLocalStorage","isOpen","canUseDOM","window","document","createElement","composeEventHandlers","theirHandler","ourHandler","event","defaultPrevented","isBoolean","isFunction","toString","isString","assignRef","useComposedRefs","refs","useCallback","getOwnerDocument","ownerDocument","createContext2","rootComponentName","defaultContext","Ctx","useMemo","useContext2","callerComponentName","useContext","getDocumentDimensions","ownerWindow","defaultView","width","documentElement","clientWidth","innerWidth","height","clientHeight","innerHeight","isRightClick","nativeEvent","which","button","makeId","filter","join","noop","useForceUpdate","dispatch","useState2","create","useCallback3","useIsomorphicLayoutEffect","useLayoutEffect","useEffect4","usePrevious","useRef7","useEffect5","useStatefulRefValue","initialState","setState","useState3","callbackRef","useCallback5","refValue","PortalImpl","containerRef","mountNode","useRef","portalNode","forceUpdate","useEffect","appendChild","removeChild","createPortal","unstable_skipInitialRender","hydrated","setHydrated","useState","rectChanged","prop","observedNodes","rafId","run","changedStates","newRect","cb","observeRect","wasEmpty","useRect","nodeRef","observeOrOptions","deprecated_onChange","observe","onChange","setElement","initialRectIsSet","initialRefIsSet","rect","setRect","onChangeRef","elem","observer","rect2","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","getCandidates","includeContainer","candidates","getCandidatesIteratively","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","getTabindex","isScope","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","checked","isRadio","isNonTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","_ref","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","nodeRootHost","nodeIsAttached","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","tabIndex","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","Popover","forwardRef","unstable_skipInitialPortalRender","PopoverImpl","as","Comp","targetRef","positionDefault","unstable_observableRefs","forwardedRef","popoverRef","popoverRect","hidden","targetRect","useSimulateTabNavigationForReactTree","getStyles","visibility","getTopPosition","isDirectionUp","top","pageYOffset","directionRight","directionUp","getCollisions","left","right","pageXOffset","offsetLeft","offsetBottom","collisions","bottom","directionLeft","directionDown","triggerRef","handleKeyDown","shiftKey","shiftTabbedFromElementAfterTrigger","focusLastTabbableInPopover","shiftTabbedOutOfPopover","focusTriggerRef","shiftTabbedToBrowserChrome","disableTabbablesInPopover","tabbedFromTriggerToPopover","focusFirstPopoverTabbable","tabbedOutOfPopover","focusTabbableAfterTrigger","tabbedToBrowserChrome","addEventListener","removeEventListener","getElementAfterTrigger","targetIndex","indexOf","elementAfterTrigger","contains","activeElement","preventDefault","focus","Boolean","target","last","restoreTabIndexTuplés","forEach","push","enableTabbablesInPopover","serverHandoffComplete","genId","maybeReactUseId","useId","providedId","generatedId","initialId","id2","setId","createDescendantContext","initialValue","descendants","ctx","registerDescendant","useDescendant","descendant","indexProp","findIndex","useDescendantsInit","useDescendants","DescendantProvider","items","explicitIndex","items2","insertAt","find","updateIndices","findDOMIndex","newItems","useDescendantKeyDown","callback","currentIndex","orientation","rotate","rtl","selectableDescendants","selectableIndex","getNextOption","getLastOption","getFirstOption","getPreviousOption","prev","nextOrPrev","prevOrNext","prevOrFirst","ctrlKey","nextOrLast","isElementPreceding","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","currentElement","array","slice","sort","CLEAR_SELECTION_INDEX","CLICK_MENU_ITEM","CLOSE_MENU","OPEN_MENU_AT_FIRST_ITEM","OPEN_MENU_AT_INDEX","OPEN_MENU_CLEARED","SEARCH_FOR_ITEM","SELECT_ITEM_AT_INDEX","SET_BUTTON_ID","DropdownDescendantContext","DropdownProvider","useDropdownContext","triggerId","isExpanded","typeaheadQuery","selectionIndex","DropdownProvider_","dropdownRef","setDescendants","_id","dropdownId","useReducer","reducer","triggerClickedRef","selectCallbacks","readyToSelect","mouseDownStartPosRef","__REACH_DISABLE_TOOLTIPS","requestAnimationFrame","useDropdownTrigger","onKeyDown","onMouseDown","useDropdownDescendants","firstNonDisabledIndex","disabled","handleMouseDown","clientX","clientY","data","controls","DropdownTrigger","useDropdownItem","isLink","onClick","onDragStart","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onSelect","onFocus","valueText","valueTextProp","ownRef","setValueText","setValueTextFromDOM","textContent","mouseEventStarted","handleRefSet","isSelected","select","handleClick","handleDragStart","handleMouseEnter","doc","handleMouseLeave","handleMouseMove","threshold","deltaX","Math","abs","deltaY","handleFocus","handleMouseUp","click","setTimeout","clearTimeout","listener","useItemId","DropdownItem","useDropdownItems","findItemFromTypeahead","timeout","prevItemsLength","prevSelected","prevSelectionIndex","selected","query","toLowerCase","activeDescendant","DropdownItems","useDropdownPopover","onBlur","portal","popoverContainsEventTarget","currentTarget","relatedTarget","DropdownPopover","sharedProps","string","found","dataset","valuetext","popover","action","max","min","Menu","MenuButton","MenuItemImpl","MenuItem","MenuItems","MenuLink","component","MenuList","MenuPopover","MenuContent","withMinWidth","className","AppSelector","applicationDescriptions","refreshToken","appDescriptionsWithToken","app","appDescription","url","_jsxs","Button","logo","AppTitle","VisuallyHidden","border","clip","margin","overflow","padding","whiteSpace","wordWrap","MOUSE_REST_TIMEOUT","LEAVE_TIMEOUT","chart","initial","states","enter","clearContextId","on","startRestTimer","leave","clearRestTimer","startLeavingVisibleTimer","clearLeavingVisibleTimer","subscriptions","subscribe","splice","notify","restTimeout","send","leavingVisibleTimer","useTooltip","idProp","onPointerEnter","onPointerMove","onPointerLeave","onPointerDown","DEBUG_STYLE","isVisible","setIsVisible","isTooltipVisible","triggerRect","useDisabledTriggerOnSafari","wrapMouseEvent","wrapPointerEventHandler","handler","pointerType","handleBlur","Tooltip","label","ariaLabel","DEPRECATED_ariaLabel","only","trigger","tooltip","_Fragment","cloneElement","TooltipPopup","forwardRef2","TooltipContent","realAriaLabel","positionTooltip","hasAriaLabel","tooltipRect","OFFSET_DEFAULT","windowWidth","windowHeight","closest","changed","transition","currentState","stateDef","nextState","nextStateValue","nextDef","computedLeft","scrollX","computedTop","scrollY","CustomTooltip","background","color","borderRadius","boxShadow","LANGUAGE_KEY","setCurrentLanguageInLocalStorage","newLanguage","getDefaultLanguage","languageLabels","en","fr","LanguageSelector","language","languages","onLanguageSelected","toUpperCase","lang","NotificationButton","count","UserProfileMenu","username","version","onLogout","xcompDocumentationUrl","BannerContent","application","applications","notificationCount","onNotificationClick","onInstallationClick","onToggleMenuClick","onLanguageChange","logout","loginUrl","withMaxWith","showUpgrade","currentApplicationDescription","settingsAppName","settingsDescription","supportMail","applicationName","toggleMenuHandler","newMenuState","shortname","getLocalizedResources","defaultLanguage","localeData","Banner","defaultAppIcon","getApplicationDescriptions","appsServiceUrl","response","apps","o","getUsernameFromToken","jwtTokenContent","jwt_decode","getTokenFromCurrentLocation","getParameterFromCurrentLocation","parameter","entry","splitEntry","keyValuePair","getToken","oneMinuteInSeconds","defaultTokenRefreshRate","isTokenStillValid","nowEpochInSeconds","getTokenRefreshTimeout","buildLangUrlParameter","login","onTokenChange","authenticationUrl","newToken","refreshAccessToken","startTokenAutoRefresh","currentToken","errorData","AuthContext","AuthProvider","authResult","setAuthResult","setApplications","tokenChangeHandler","accessToken","Promise","then","btoa","getBannerProps","useAuth"],"mappings":"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AAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;A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"}
|
1
|
+
{"version":3,"file":"banner.es.js","sources":["../../../node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.es6.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@formatjs+ecma402-abstract@1.13.0/node_modules/@formatjs/ecma402-abstract/lib/utils.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.14/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.1.10/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../node_modules/.pnpm/@formatjs+fast-memoize@1.2.6/node_modules/@formatjs/fast-memoize/lib/index.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/error.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/formatters.js","../../../node_modules/.pnpm/intl-messageformat@10.2.1/node_modules/intl-messageformat/lib/src/core.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/error.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/utils.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/message.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/dateTime.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/displayName.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/list.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/plural.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/relativeTime.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/number.js","../../../node_modules/.pnpm/@formatjs+intl@2.5.1_typescript@4.8.4/node_modules/@formatjs/intl/lib/src/create-intl.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/src/utils.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/src/components/injectIntl.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/src/components/useIntl.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/src/components/createFormattedComponent.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/src/components/provider.js","../../../node_modules/.pnpm/react-intl@6.2.1_react@18.2.0_typescript@4.8.4/node_modules/react-intl/lib/index.js","../../../node_modules/.pnpm/clsx@1.2.1/node_modules/clsx/dist/clsx.m.js","../src/library/utils/mail.ts","../src/library/utils/toggleMenu.ts","../../../node_modules/.pnpm/@reach+utils@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/utils/dist/reach-utils.mjs","../../../node_modules/.pnpm/@reach+portal@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/portal/dist/reach-portal.mjs","../../../node_modules/.pnpm/@reach+observe-rect@1.2.0/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../../../node_modules/.pnpm/@reach+rect@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/rect/dist/reach-rect.mjs","../../../node_modules/.pnpm/tabbable@5.3.3/node_modules/tabbable/dist/index.esm.js","../../../node_modules/.pnpm/@reach+popover@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/popover/dist/reach-popover.mjs","../../../node_modules/.pnpm/@reach+auto-id@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/auto-id/dist/reach-auto-id.mjs","../../../node_modules/.pnpm/@reach+descendants@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/descendants/dist/reach-descendants.mjs","../../../node_modules/.pnpm/@reach+dropdown@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/dropdown/dist/reach-dropdown.mjs","../../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/@reach+menu-button@0.18.0_react-dom@18.2.0_react@18.2.0__react-is@18.3.1_react@18.2.0/node_modules/@reach/menu-button/dist/reach-menu-button.mjs","../src/library/components/MenuContent.tsx","../src/library/components/AppSelector.tsx","../src/library/components/AppTitle.tsx","../../../node_modules/.pnpm/@reach+visually-hidden@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/visually-hidden/dist/reach-visually-hidden.mjs","../../../node_modules/.pnpm/@reach+tooltip@0.18.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@reach/tooltip/dist/reach-tooltip.mjs","../src/library/components/CustomTooltip.tsx","../src/library/utils/language.ts","../src/library/components/LanguageSelector.tsx","../src/library/components/NotificationButton.tsx","../src/library/components/UserProfileMenu.tsx","../src/library/components/BannerContent.tsx","../src/library/locales/localeConfiguration.ts","../src/library/components/Banner.tsx","../src/library/constants.ts","../src/library/utils/applications.ts","../../../node_modules/.pnpm/jwt-decode@3.1.2/node_modules/jwt-decode/build/jwt-decode.esm.js","../src/library/utils/token.ts","../src/library/utils/auth.ts","../src/library/providers/AuthProvider.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\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(\"\".concat(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}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar 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;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"AX\": [\n \"H\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n locale: this.resolvedLocale,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date time range.', e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlErrorCode, IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting display name.', e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlError, IntlErrorCode } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting list.', e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return [];\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, assignUniqueKeysToParts, shallowEqual, } from '../utils';\nimport { formatMessage as coreFormatMessage, createIntl as coreCreateIntl, createIntlCache, } from '@formatjs/intl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { \n // @ts-expect-error fix this\n formatMessage: formatMessage.bind(null, resolvedConfig, coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider, { createIntl } from './src/components/provider';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","export type SystemInfo = {\n applicationName: string;\n version: string;\n url: string;\n username?: string;\n};\n\nconst requestInfoHeader = '\\n---\\nRequest Info [please do not remove or edit this footer]\\n';\n\nconst requestInfoFooter = '\\n---\\n';\n\nfunction buildRequestInfoMailSection(systemInfo: SystemInfo) {\n const requestInfo = `User Name: ${systemInfo.username}\\n\\\nApplication: ${systemInfo.applicationName}\\n\\\nApp Version: ${systemInfo.version}\\n\\\nX4B-UI Version: __npm_package_version__\\n\\\nURL: ${systemInfo.url}`;\n\n return requestInfoHeader + requestInfo + requestInfoFooter;\n}\n\nexport function buildMailtoHref(to: string, subject: string, body: string, systemInfo: SystemInfo): string {\n const bodyWithVariablesReplaced = body.replace('{application.name}', systemInfo.applicationName);\n const mailBody = bodyWithVariablesReplaced + buildRequestInfoMailSection(systemInfo);\n\n return `mailto:${to}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(mailBody)}`;\n}\n","export const FULLSIZE_MENU_KEY = 'x4b.menu.fullsize';\n\nexport function isMenuOpen() {\n return (window.localStorage.getItem(FULLSIZE_MENU_KEY) || 'true') === 'true';\n}\n\nexport function setMenuStateInLocalStorage(isOpen: boolean) {\n window.localStorage.setItem(FULLSIZE_MENU_KEY, String(isOpen));\n}\n","\"use strict\";\n/**\n * @reach/utils v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/can-use-dom.ts\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\n// src/clone-valid-element.ts\nimport { cloneElement, isValidElement } from \"react\";\nfunction cloneValidElement(element, props, ...children) {\n return isValidElement(element) ? cloneElement(element, props, ...children) : element;\n}\n\n// src/compose-event-handlers.ts\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return (event) => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n// src/compose-refs.ts\nimport { useCallback } from \"react\";\n\n// src/type-check.ts\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\n// src/compose-refs.ts\nfunction assignRef(ref, value) {\n if (ref == null)\n return;\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\nfunction useComposedRefs(...refs) {\n return useCallback((node) => {\n for (let ref of refs) {\n assignRef(ref, node);\n }\n }, refs);\n}\n\n// src/owner-document.ts\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\nfunction getOwnerWindow(element) {\n let ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n// src/computed-styles.ts\nfunction getComputedStyles(element) {\n let ownerWindow = getOwnerWindow(element);\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element, null);\n }\n return null;\n}\nfunction getComputedStyle(element, styleProp) {\n return getComputedStyles(element)?.getPropertyValue(styleProp) || null;\n}\n\n// src/context.tsx\nimport * as React from \"react\";\nfunction createNamedContext(name, defaultValue) {\n let Ctx = React.createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\nfunction createContext2(rootComponentName, defaultContext) {\n let Ctx = React.createContext(defaultContext);\n function Provider(props) {\n let { children, ...context } = props;\n let value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ React.createElement(Ctx.Provider, {\n value\n }, children);\n }\n function useContext2(callerComponentName) {\n let context = React.useContext(Ctx);\n if (context) {\n return context;\n }\n if (defaultContext) {\n return defaultContext;\n }\n throw Error(`${callerComponentName} must be rendered inside of a ${rootComponentName} component.`);\n }\n Ctx.displayName = `${rootComponentName}Context`;\n Provider.displayName = `${rootComponentName}Provider`;\n return [Provider, useContext2];\n}\n\n// src/dev-utils.ts\nimport { useRef, useEffect } from \"react\";\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (true) {\n let controlledRef = useRef(controlledValue != null);\n let nameCache = useRef({ componentName, controlledPropName });\n useEffect(() => {\n nameCache.current = { componentName, controlledPropName };\n }, [componentName, controlledPropName]);\n useEffect(() => {\n let { current: wasControlled } = controlledRef;\n let { componentName: componentName2, controlledPropName: controlledPropName2 } = nameCache.current;\n let isControlled = controlledValue != null;\n if (wasControlled !== isControlled) {\n console.error(`A component is changing an ${wasControlled ? \"\" : \"un\"}controlled \\`${controlledPropName2}\\` state of ${componentName2} to be ${wasControlled ? \"un\" : \"\"}controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled ${componentName2} element for the lifetime of the component.\n More info: https://fb.me/react-controlled-components`);\n }\n }, [controlledValue]);\n }\n}\n\n// src/get-document-dimensions.ts\nfunction getDocumentDimensions(element) {\n let ownerDocument = getOwnerDocument(element);\n let ownerWindow = ownerDocument.defaultView || window;\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n return {\n width: ownerDocument.documentElement.clientWidth ?? ownerWindow.innerWidth,\n height: ownerDocument.documentElement.clientHeight ?? ownerWindow.innerHeight\n };\n}\n\n// src/get-scroll-position.ts\nfunction getScrollPosition(element) {\n let ownerWindow = getOwnerWindow(element);\n if (!ownerWindow) {\n return {\n scrollX: 0,\n scrollY: 0\n };\n }\n return {\n scrollX: ownerWindow.scrollX,\n scrollY: ownerWindow.scrollY\n };\n}\n\n// src/get-scrollbar-offset.ts\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {\n }\n return 0;\n}\n\n// src/is-right-click.ts\nfunction isRightClick(nativeEvent) {\n return \"which\" in nativeEvent ? nativeEvent.which === 3 : \"button\" in nativeEvent ? nativeEvent.button === 2 : false;\n}\n\n// src/make-id.ts\nfunction makeId(...args) {\n return args.filter((val) => val != null).join(\"--\");\n}\n\n// src/noop.ts\nfunction noop() {\n}\n\n// src/use-constant.ts\nimport { useRef as useRef2 } from \"react\";\nfunction useConstant(fn) {\n const ref = useRef2();\n if (!ref.current) {\n ref.current = { v: fn() };\n }\n return ref.current.v;\n}\n\n// src/use-controlled-state.ts\nimport { useState, useRef as useRef3, useCallback as useCallback2 } from \"react\";\nfunction useControlledState({\n controlledValue,\n defaultValue,\n calledFrom = \"A component\"\n}) {\n let wasControlled = controlledValue !== void 0;\n let isControlledRef = useRef3(wasControlled);\n if (true) {\n if (!isControlledRef.current && wasControlled) {\n console.warn(`${calledFrom} is changing from controlled to uncontrolled. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n if (isControlledRef.current && !wasControlled) {\n console.warn(`${calledFrom} is changing from uncontrolled to controlled. Components should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n }\n let [valueState, setValue] = useState(isControlledRef.current ? controlledValue : defaultValue);\n let set = useCallback2((n) => {\n if (!isControlledRef.current) {\n setValue(n);\n }\n }, []);\n return [isControlledRef.current ? controlledValue : valueState, set];\n}\n\n// src/use-event-listener.ts\nimport { useRef as useRef4, useEffect as useEffect2 } from \"react\";\nfunction useEventListener(eventName, listener, element = window) {\n const savedHandler = useRef4(listener);\n useEffect2(() => {\n savedHandler.current = listener;\n }, [listener]);\n useEffect2(() => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) {\n if (true) {\n console.warn(\"Event listener not supported on the element provided\");\n }\n return;\n }\n function eventListener(event) {\n savedHandler.current(event);\n }\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n\n// src/use-focus-change.ts\nimport { useRef as useRef5, useEffect as useEffect3 } from \"react\";\nfunction useFocusChange(handleChange = console.log, when = \"focus\", ownerDocument = document) {\n let lastActiveElement = useRef5(ownerDocument.activeElement);\n useEffect3(() => {\n lastActiveElement.current = ownerDocument.activeElement;\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n ownerDocument.addEventListener(when, onChange, true);\n return () => {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n\n// src/use-force-update.ts\nimport { useState as useState2, useCallback as useCallback3 } from \"react\";\nfunction useForceUpdate() {\n let [, dispatch] = useState2(/* @__PURE__ */ Object.create(null));\n return useCallback3(() => {\n dispatch(/* @__PURE__ */ Object.create(null));\n }, []);\n}\n\n// src/use-isomorphic-layout-effect.ts\nimport { useEffect as useEffect4, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect4;\n\n// src/use-lazy-ref.ts\nimport { useRef as useRef6 } from \"react\";\nfunction useLazyRef(fn) {\n let isSet = useRef6(false);\n let ref = useRef6();\n if (!isSet.current) {\n isSet.current = true;\n ref.current = fn();\n }\n return ref;\n}\n\n// src/use-previous.ts\nimport { useRef as useRef7, useEffect as useEffect5 } from \"react\";\nfunction usePrevious(value) {\n const ref = useRef7(null);\n useEffect5(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n// src/use-stable-callback.ts\nimport { useRef as useRef8, useEffect as useEffect6, useCallback as useCallback4 } from \"react\";\nfunction createStableCallbackHook(useEffectHook, callback) {\n let callbackRef = useRef8(callback);\n useEffectHook(() => {\n callbackRef.current = callback;\n });\n return useCallback4((...args) => {\n callbackRef.current && callbackRef.current(...args);\n }, []);\n}\nfunction useStableCallback(callback) {\n return createStableCallbackHook(useEffect6, callback);\n}\nfunction useStableLayoutCallback(callback) {\n return createStableCallbackHook(useIsomorphicLayoutEffect, callback);\n}\n\n// src/use-stateful-ref-value.ts\nimport { useState as useState3, useCallback as useCallback5 } from \"react\";\nfunction useStatefulRefValue(ref, initialState) {\n let [state, setState] = useState3(initialState);\n let callbackRef = useCallback5((refValue) => {\n ref.current = refValue;\n setState(refValue);\n }, []);\n return [state, callbackRef];\n}\n\n// src/use-update-effect.ts\nimport { useRef as useRef9, useEffect as useEffect7 } from \"react\";\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef9(false);\n useEffect7(() => {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n }\n }, deps);\n}\nexport {\n assignRef,\n canUseDOM,\n cloneValidElement,\n composeEventHandlers,\n createContext2 as createContext,\n createNamedContext,\n getComputedStyle,\n getComputedStyles,\n getDocumentDimensions,\n getOwnerDocument,\n getOwnerWindow,\n getScrollPosition,\n getScrollbarOffset,\n isBoolean,\n isFunction,\n isNumber,\n isRightClick,\n isString,\n makeId,\n noop,\n useComposedRefs,\n useConstant,\n useControlledState,\n useControlledSwitchWarning,\n useEventListener,\n useFocusChange,\n useForceUpdate,\n useIsomorphicLayoutEffect,\n useLazyRef,\n usePrevious,\n useStableCallback,\n useStableLayoutCallback,\n useStatefulRefValue,\n useUpdateEffect\n};\n","\"use strict\";\n/**\n * @reach/portal v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-portal.tsx\nimport * as React from \"react\";\nimport {\n useForceUpdate,\n useIsomorphicLayoutEffect as useLayoutEffect\n} from \"@reach/utils\";\nimport { createPortal } from \"react-dom\";\nvar PortalImpl = ({\n children,\n type = \"reach-portal\",\n containerRef\n}) => {\n let mountNode = React.useRef(null);\n let portalNode = React.useRef(null);\n let forceUpdate = useForceUpdate();\n if (true) {\n React.useEffect(() => {\n if (containerRef != null) {\n if (typeof containerRef !== \"object\" || !(\"current\" in containerRef)) {\n console.warn(\"@reach/portal: Invalid value passed to the `containerRef` of a `Portal`. The portal will be appended to the document body, but if you want to attach it to another DOM node you must pass a valid React ref object to `containerRef`.\");\n } else if (containerRef.current == null) {\n console.warn(\"@reach/portal: A ref was passed to the `containerRef` prop of a `Portal`, but no DOM node was attached to it. Be sure to pass the ref to a DOM component.\\n\\nIf you are forwarding the ref from another component, be sure to use the React.forwardRef API. See https://reactjs.org/docs/forwarding-refs.html.\");\n }\n }\n }, [containerRef]);\n }\n useLayoutEffect(() => {\n if (!mountNode.current)\n return;\n let ownerDocument = mountNode.current.ownerDocument;\n let body = containerRef?.current || ownerDocument.body;\n portalNode.current = ownerDocument?.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return () => {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? createPortal(children, portalNode.current) : /* @__PURE__ */ React.createElement(\"span\", {\n ref: mountNode\n });\n};\nvar Portal = ({\n unstable_skipInitialRender,\n ...props\n}) => {\n let [hydrated, setHydrated] = React.useState(false);\n React.useEffect(() => {\n if (unstable_skipInitialRender) {\n setHydrated(true);\n }\n }, [unstable_skipInitialRender]);\n if (unstable_skipInitialRender && !hydrated) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(PortalImpl, {\n ...props\n });\n};\nPortal.displayName = \"Portal\";\nexport {\n Portal\n};\n","var props = [\"bottom\", \"height\", \"left\", \"right\", \"top\", \"width\"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","\"use strict\";\n/**\n * @reach/rect v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-rect.tsx\nimport * as React from \"react\";\nimport observeRect from \"@reach/observe-rect\";\nimport {\n useIsomorphicLayoutEffect as useLayoutEffect,\n isBoolean,\n isFunction\n} from \"@reach/utils\";\nvar Rect = ({ onChange, observe = true, children }) => {\n const ref = React.useRef(null);\n const rect = useRect(ref, { observe, onChange });\n return children({ ref, rect });\n};\nRect.displayName = \"Rect\";\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n let observe;\n let onChange;\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n observe = observeOrOptions?.observe ?? true;\n onChange = observeOrOptions?.onChange;\n }\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n if (true) {\n React.useEffect(() => {\n if (isBoolean(observeOrOptions)) {\n console.warn(\"Passing `observe` as the second argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `observe` property as the second argument (`useRect(ref, { observe })`).\\nSee https://reach.tech/rect#userect-observe\");\n }\n }, [observeOrOptions]);\n React.useEffect(() => {\n if (isFunction(deprecated_onChange)) {\n console.warn(\"Passing `onChange` as the third argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `onChange` property as the second argument (`useRect(ref, { onChange })`).\\nSee https://reach.tech/rect#userect-onchange\");\n }\n }, [deprecated_onChange]);\n }\n let [element, setElement] = React.useState(nodeRef.current);\n let initialRectIsSet = React.useRef(false);\n let initialRefIsSet = React.useRef(false);\n let [rect, setRect] = React.useState(null);\n let onChangeRef = React.useRef(onChange);\n useLayoutEffect(() => {\n onChangeRef.current = onChange;\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n useLayoutEffect(() => {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n useLayoutEffect(() => {\n if (!observe) {\n return;\n }\n let elem = element;\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n if (!elem) {\n if (true) {\n console.warn(\"You need to place the ref\");\n }\n return;\n }\n let observer = observeRect(elem, (rect2) => {\n onChangeRef.current?.(rect2);\n setRect(rect2);\n });\n observer.observe();\n return () => {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\nexport {\n Rect,\n useRect\n};\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n\n\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (nodeIsAttached) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck` mode\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","\"use strict\";\n/**\n * @reach/popover v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-popover.tsx\nimport * as React from \"react\";\nimport { Portal } from \"@reach/portal\";\nimport { useRect } from \"@reach/rect\";\nimport { getOwnerDocument, useComposedRefs } from \"@reach/utils\";\nimport { tabbable } from \"tabbable\";\nvar Popover = React.forwardRef(function Popover2({ unstable_skipInitialPortalRender, ...props }, ref) {\n return /* @__PURE__ */ React.createElement(Portal, {\n unstable_skipInitialRender: unstable_skipInitialPortalRender\n }, /* @__PURE__ */ React.createElement(PopoverImpl, {\n ref,\n ...props\n }));\n});\nPopover.displayName = \"Popover\";\nvar PopoverImpl = React.forwardRef(function PopoverImpl2({\n as: Comp = \"div\",\n targetRef,\n position = positionDefault,\n unstable_observableRefs = [],\n ...props\n}, forwardedRef) {\n const popoverRef = React.useRef(null);\n const popoverRect = useRect(popoverRef, { observe: !props.hidden });\n const targetRect = useRect(targetRef, { observe: true });\n const ref = useComposedRefs(popoverRef, forwardedRef);\n useSimulateTabNavigationForReactTree(targetRef, popoverRef);\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-popover\": \"\",\n ref,\n ...props,\n style: {\n position: \"absolute\",\n ...getStyles(position, targetRect, popoverRect, ...unstable_observableRefs),\n ...props.style\n }\n });\n});\nPopoverImpl.displayName = \"PopoverImpl\";\nfunction getStyles(position, targetRect, popoverRect, ...unstable_observableRefs) {\n return popoverRect ? position(targetRect, popoverRect, ...unstable_observableRefs.map((ref) => ref.current)) : { visibility: \"hidden\" };\n}\nfunction getTopPosition(targetRect, popoverRect, isDirectionUp) {\n return {\n top: isDirectionUp ? `${targetRect.top - popoverRect.height + window.pageYOffset}px` : `${targetRect.top + targetRect.height + window.pageYOffset}px`\n };\n}\nvar positionDefault = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionRight, directionUp } = getCollisions(targetRect, popoverRect);\n return {\n left: directionRight ? `${targetRect.right - popoverRect.width + window.pageXOffset}px` : `${targetRect.left + window.pageXOffset}px`,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nvar positionRight = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionLeft, directionUp } = getCollisions(targetRect, popoverRect);\n return {\n left: directionLeft ? `${targetRect.left + window.pageXOffset}px` : `${targetRect.right - popoverRect.width + window.pageXOffset}px`,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nvar positionMatchWidth = (targetRect, popoverRect) => {\n if (!targetRect || !popoverRect) {\n return {};\n }\n const { directionUp } = getCollisions(targetRect, popoverRect);\n return {\n width: targetRect.width,\n left: targetRect.left,\n ...getTopPosition(targetRect, popoverRect, directionUp)\n };\n};\nfunction getCollisions(targetRect, popoverRect, offsetLeft = 0, offsetBottom = 0) {\n const collisions = {\n top: targetRect.top - popoverRect.height < 0,\n right: window.innerWidth < targetRect.left + popoverRect.width - offsetLeft,\n bottom: window.innerHeight < targetRect.bottom + popoverRect.height - offsetBottom,\n left: targetRect.left + targetRect.width - popoverRect.width < 0\n };\n const directionRight = collisions.right && !collisions.left;\n const directionLeft = collisions.left && !collisions.right;\n const directionUp = collisions.bottom && !collisions.top;\n const directionDown = collisions.top && !collisions.bottom;\n return { directionRight, directionLeft, directionUp, directionDown };\n}\nfunction useSimulateTabNavigationForReactTree(triggerRef, popoverRef) {\n const ownerDocument = getOwnerDocument(triggerRef.current);\n function handleKeyDown(event) {\n if (event.key === \"Tab\" && popoverRef.current && tabbable(popoverRef.current).length === 0) {\n return;\n }\n if (event.key === \"Tab\" && event.shiftKey) {\n if (shiftTabbedFromElementAfterTrigger(event)) {\n focusLastTabbableInPopover(event);\n } else if (shiftTabbedOutOfPopover(event)) {\n focusTriggerRef(event);\n } else if (shiftTabbedToBrowserChrome(event)) {\n disableTabbablesInPopover();\n }\n } else if (event.key === \"Tab\") {\n if (tabbedFromTriggerToPopover()) {\n focusFirstPopoverTabbable(event);\n } else if (tabbedOutOfPopover()) {\n focusTabbableAfterTrigger(event);\n } else if (tabbedToBrowserChrome(event)) {\n disableTabbablesInPopover();\n }\n }\n }\n React.useEffect(() => {\n ownerDocument.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n ownerDocument.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, []);\n function getElementAfterTrigger() {\n const elements = tabbable(ownerDocument);\n const targetIndex = elements && triggerRef.current ? elements.indexOf(triggerRef.current) : -1;\n const elementAfterTrigger = elements && elements[targetIndex + 1];\n return popoverRef.current && popoverRef.current.contains(elementAfterTrigger || null) ? false : elementAfterTrigger;\n }\n function tabbedFromTriggerToPopover() {\n return triggerRef.current ? triggerRef.current === ownerDocument.activeElement : false;\n }\n function focusFirstPopoverTabbable(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements && elements[0]) {\n event.preventDefault();\n elements[0].focus();\n }\n }\n function tabbedOutOfPopover() {\n const inPopover = popoverRef.current ? popoverRef.current.contains(ownerDocument.activeElement || null) : false;\n if (inPopover) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n return Boolean(elements && elements[elements.length - 1] === ownerDocument.activeElement);\n }\n return false;\n }\n function focusTabbableAfterTrigger(event) {\n const elementAfterTrigger = getElementAfterTrigger();\n if (elementAfterTrigger) {\n event.preventDefault();\n elementAfterTrigger.focus();\n }\n }\n function shiftTabbedFromElementAfterTrigger(event) {\n if (!event.shiftKey)\n return;\n const elementAfterTrigger = getElementAfterTrigger();\n return event.target === elementAfterTrigger;\n }\n function focusLastTabbableInPopover(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n const last = elements && elements[elements.length - 1];\n if (last) {\n event.preventDefault();\n last.focus();\n }\n }\n function shiftTabbedOutOfPopover(event) {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements) {\n return elements.length === 0 ? false : event.target === elements[0];\n }\n return false;\n }\n function focusTriggerRef(event) {\n event.preventDefault();\n triggerRef.current?.focus();\n }\n function tabbedToBrowserChrome(event) {\n const elements = popoverRef.current ? tabbable(ownerDocument).filter((element) => !popoverRef.current.contains(element)) : null;\n return elements ? event.target === elements[elements.length - 1] : false;\n }\n function shiftTabbedToBrowserChrome(event) {\n return event.target === tabbable(ownerDocument)[0];\n }\n let restoreTabIndexTupl\\u00E9s = [];\n function disableTabbablesInPopover() {\n const elements = popoverRef.current && tabbable(popoverRef.current);\n if (elements) {\n elements.forEach((element) => {\n restoreTabIndexTupl\\u00E9s.push([element, element.tabIndex]);\n element.tabIndex = -1;\n });\n ownerDocument.addEventListener(\"focusin\", enableTabbablesInPopover);\n }\n }\n function enableTabbablesInPopover() {\n ownerDocument.removeEventListener(\"focusin\", enableTabbablesInPopover);\n restoreTabIndexTupl\\u00E9s.forEach(([element, tabIndex]) => {\n element.tabIndex = tabIndex;\n });\n }\n}\nexport {\n Popover,\n getCollisions,\n positionDefault,\n positionMatchWidth,\n positionRight\n};\n","\"use strict\";\n/**\n * @reach/auto-id v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-auto-id.ts\nimport * as React from \"react\";\nimport { useIsomorphicLayoutEffect as useLayoutEffect } from \"@reach/utils\";\nvar serverHandoffComplete = false;\nvar id = 0;\nfunction genId() {\n return ++id;\n}\nvar maybeReactUseId = React[\"useId\".toString()];\nfunction useId(providedId) {\n if (maybeReactUseId !== void 0) {\n let generatedId = maybeReactUseId();\n return providedId ?? generatedId;\n }\n let initialId = providedId ?? (serverHandoffComplete ? genId() : null);\n let [id2, setId] = React.useState(initialId);\n useLayoutEffect(() => {\n if (id2 === null) {\n setId(genId());\n }\n }, []);\n React.useEffect(() => {\n if (serverHandoffComplete === false) {\n serverHandoffComplete = true;\n }\n }, []);\n return providedId ?? id2 ?? void 0;\n}\nexport {\n useId\n};\n","\"use strict\";\n/**\n * @reach/descendants v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-descendants.tsx\nimport * as React from \"react\";\nimport {\n useForceUpdate,\n useIsomorphicLayoutEffect as useLayoutEffect,\n noop\n} from \"@reach/utils\";\nfunction createDescendantContext(name, initialValue = {}) {\n const descendants = [];\n let ctx = React.createContext({\n descendants,\n registerDescendant: () => noop,\n ...initialValue\n });\n ctx.displayName = name;\n return ctx;\n}\nfunction useDescendant(descendant, context, indexProp) {\n let forceUpdate = useForceUpdate();\n let { registerDescendant, descendants } = React.useContext(context);\n let index = indexProp ?? descendants.findIndex((item) => item.element === descendant.element);\n useLayoutEffect(() => {\n if (!descendant.element)\n forceUpdate();\n return registerDescendant({ ...descendant, index });\n }, [\n descendant,\n forceUpdate,\n index,\n registerDescendant,\n ...Object.values(descendant)\n ]);\n return index;\n}\nfunction useDescendantsInit() {\n return React.useState([]);\n}\nfunction useDescendants(ctx) {\n return React.useContext(ctx).descendants;\n}\nfunction DescendantProvider({\n context: Ctx,\n children,\n items,\n set\n}) {\n let registerDescendant = React.useCallback(({\n element,\n index: explicitIndex,\n ...rest\n }) => {\n if (!element)\n return noop;\n set((items2) => {\n if (explicitIndex != null && explicitIndex !== -1) {\n return insertAt(items2, { element, index: explicitIndex, ...rest }, explicitIndex);\n }\n if (items2.length === 0) {\n return [{ ...rest, element, index: 0 }];\n }\n if (true) {\n if (items2.find((item) => item.element === element)) {\n console.warn(\"[reach-ui]: `useDescendant` was called with an element that was already registered.\\n\\nIf you are using the `@reach/descendants` package directly, make sure to only register descendants once. Registering a descendant more than once will lead to bugs in your app.\\n\\nIf you are using another `reach-ui` package, this is probably our bug!\\n\\nTo report a bug, open a new issue:\\n\\n https://github.com/reach/reach-ui/issues/new?assignees=&labels=&template=Bug_report.md\\n\\nIMPORTANT: this check will only run in the development build, so if you see this warning please be aware that your app may crash when deployed.\");\n return updateIndices(items2);\n }\n }\n let index = findDOMIndex(items2, element);\n let newItems;\n if (index === -1) {\n newItems = [\n ...items2,\n { ...rest, element, index: items2.length }\n ];\n } else {\n newItems = insertAt(items2, { ...rest, element, index }, index);\n }\n return newItems;\n });\n return () => {\n if (!element)\n return;\n set((items2) => items2.filter((item) => element !== item.element));\n };\n }, []);\n return /* @__PURE__ */ React.createElement(Ctx.Provider, {\n value: React.useMemo(() => {\n return {\n descendants: items,\n registerDescendant\n };\n }, [items, registerDescendant])\n }, children);\n}\nfunction useDescendantKeyDown(context, options) {\n let { descendants } = React.useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false\n } = options;\n return function handleKeyDown(event) {\n if (![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n return;\n }\n let index = currentIndex ?? -1;\n let selectableDescendants = filter ? descendants.filter(filter) : descendants;\n if (!selectableDescendants.length) {\n return;\n }\n let selectableIndex = selectableDescendants.findIndex((descendant) => descendant.index === currentIndex);\n function getNextOption() {\n let atBottom = index === getLastOption().index;\n return atBottom ? rotate ? getFirstOption() : selectableDescendants[selectableIndex] : selectableDescendants[(selectableIndex + 1) % selectableDescendants.length];\n }\n function getPreviousOption() {\n let atTop = index === getFirstOption().index;\n return atTop ? rotate ? getLastOption() : selectableDescendants[selectableIndex] : selectableDescendants[(selectableIndex - 1 + selectableDescendants.length) % selectableDescendants.length];\n }\n function getFirstOption() {\n return selectableDescendants[0];\n }\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption();\n callback(key === \"option\" ? next : next[key]);\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption();\n callback(key === \"option\" ? prev : prev[key]);\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)();\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)();\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n break;\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (event.ctrlKey ? getPreviousOption : getFirstOption)();\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption();\n callback(key === \"option\" ? first : first[key]);\n break;\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (event.ctrlKey ? getNextOption : getLastOption)();\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n case \"End\":\n event.preventDefault();\n let last = getLastOption();\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\nfunction isElementPreceding(a, b) {\n return Boolean(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction findDOMIndex(items, element) {\n if (!element)\n return -1;\n if (!items.length)\n return -1;\n let length = items.length;\n while (length--) {\n let currentElement = items[length].element;\n if (!currentElement)\n continue;\n if (isElementPreceding(currentElement, element)) {\n return length + 1;\n }\n }\n return -1;\n}\nfunction insertAt(array, item, index) {\n if (index == null || !(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction updateIndices(items) {\n return items.sort((a, b) => !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1).map((item, index) => ({ ...item, index }));\n}\nexport {\n DescendantProvider,\n createDescendantContext,\n useDescendant,\n useDescendantKeyDown,\n useDescendants,\n useDescendantsInit\n};\n","\"use strict\";\n/**\n * @reach/dropdown v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-dropdown.tsx\nimport * as React from \"react\";\nimport { useId } from \"@reach/auto-id\";\nimport { Popover } from \"@reach/popover\";\nimport {\n createDescendantContext,\n DescendantProvider,\n useDescendant,\n useDescendants,\n useDescendantsInit,\n useDescendantKeyDown\n} from \"@reach/descendants\";\nimport {\n composeEventHandlers,\n createContext,\n getOwnerDocument,\n isFunction,\n isString,\n isRightClick,\n useComposedRefs,\n usePrevious,\n useStatefulRefValue,\n makeId\n} from \"@reach/utils\";\nvar CLEAR_SELECTION_INDEX = \"CLEAR_SELECTION_INDEX\";\nvar CLICK_MENU_ITEM = \"CLICK_MENU_ITEM\";\nvar CLOSE_MENU = \"CLOSE_MENU\";\nvar OPEN_MENU_AT_FIRST_ITEM = \"OPEN_MENU_AT_FIRST_ITEM\";\nvar OPEN_MENU_AT_INDEX = \"OPEN_MENU_AT_INDEX\";\nvar OPEN_MENU_CLEARED = \"OPEN_MENU_CLEARED\";\nvar SEARCH_FOR_ITEM = \"SEARCH_FOR_ITEM\";\nvar SELECT_ITEM_AT_INDEX = \"SELECT_ITEM_AT_INDEX\";\nvar SET_BUTTON_ID = \"SET_BUTTON_ID\";\nvar DropdownDescendantContext = createDescendantContext(\"DropdownDescendantContext\");\nvar [DropdownProvider, useDropdownContext] = createContext(\"Dropdown\");\nvar initialState = {\n triggerId: null,\n isExpanded: false,\n typeaheadQuery: \"\",\n selectionIndex: -1\n};\nvar DropdownProvider_ = ({\n id,\n children\n}) => {\n let triggerRef = React.useRef(null);\n let dropdownRef = React.useRef(null);\n let popoverRef = React.useRef(null);\n let [descendants, setDescendants] = useDescendantsInit();\n let _id = useId(id);\n let dropdownId = id || makeId(\"menu\", _id);\n let triggerId = makeId(\"menu-button\", dropdownId);\n let [state, dispatch] = React.useReducer(reducer, {\n ...initialState,\n triggerId\n });\n let triggerClickedRef = React.useRef(false);\n let selectCallbacks = React.useRef([]);\n let readyToSelect = React.useRef(false);\n let mouseDownStartPosRef = React.useRef({ x: 0, y: 0 });\n React.useEffect(() => {\n if (state.isExpanded) {\n window.__REACH_DISABLE_TOOLTIPS = true;\n window.requestAnimationFrame(() => {\n focus(dropdownRef.current);\n });\n } else {\n window.__REACH_DISABLE_TOOLTIPS = false;\n }\n }, [state.isExpanded]);\n return /* @__PURE__ */ React.createElement(DescendantProvider, {\n context: DropdownDescendantContext,\n items: descendants,\n set: setDescendants\n }, /* @__PURE__ */ React.createElement(DropdownProvider, {\n dispatch,\n dropdownId,\n dropdownRef,\n mouseDownStartPosRef,\n popoverRef,\n readyToSelect,\n selectCallbacks,\n state,\n triggerClickedRef,\n triggerRef\n }, isFunction(children) ? children({\n isExpanded: state.isExpanded,\n isOpen: state.isExpanded\n }) : children));\n};\nDropdownProvider_.displayName = \"DropdownProvider\";\nfunction useDropdownTrigger({\n onKeyDown,\n onMouseDown,\n id,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n dropdownId,\n mouseDownStartPosRef,\n triggerClickedRef,\n triggerRef,\n state: { triggerId, isExpanded }\n } = useDropdownContext(\"useDropdownTrigger\");\n let ref = useComposedRefs(triggerRef, forwardedRef);\n let items = useDropdownDescendants();\n let firstNonDisabledIndex = React.useMemo(() => items.findIndex((item) => !item.disabled), [items]);\n React.useEffect(() => {\n if (id != null && id !== triggerId) {\n dispatch({\n type: SET_BUTTON_ID,\n payload: id\n });\n }\n }, [triggerId, dispatch, id]);\n React.useEffect(() => {\n if (id == null) {\n dispatch({\n type: SET_BUTTON_ID,\n payload: makeId(\"menu-button\", dropdownId)\n });\n }\n }, [dropdownId, dispatch, id]);\n function handleKeyDown(event) {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n event.preventDefault();\n dispatch({\n type: OPEN_MENU_AT_INDEX,\n payload: { index: firstNonDisabledIndex }\n });\n break;\n case \"Enter\":\n case \" \":\n dispatch({\n type: OPEN_MENU_AT_INDEX,\n payload: { index: firstNonDisabledIndex }\n });\n break;\n default:\n break;\n }\n }\n function handleMouseDown(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n mouseDownStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n if (!isExpanded) {\n triggerClickedRef.current = true;\n }\n if (isExpanded) {\n dispatch({ type: CLOSE_MENU });\n } else {\n dispatch({ type: OPEN_MENU_CLEARED });\n }\n }\n return {\n data: {\n isExpanded,\n controls: dropdownId\n },\n props: {\n ...props,\n ref,\n id: triggerId || void 0,\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),\n onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),\n type: \"button\"\n }\n };\n}\nvar DropdownTrigger = React.forwardRef(({ as: Comp = \"button\", ...rest }, forwardedRef) => {\n let { props } = useDropdownTrigger({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-trigger\": \"\",\n ...props\n });\n});\nDropdownTrigger.displayName = \"DropdownTrigger\";\nfunction useDropdownItem({\n index: indexProp,\n isLink = false,\n onClick,\n onDragStart,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseUp,\n onSelect,\n disabled,\n onFocus,\n valueText: valueTextProp,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n dropdownRef,\n mouseDownStartPosRef,\n readyToSelect,\n selectCallbacks,\n triggerRef,\n state: { selectionIndex, isExpanded }\n } = useDropdownContext(\"useDropdownItem\");\n let ownRef = React.useRef(null);\n let [valueText, setValueText] = React.useState(valueTextProp || \"\");\n let setValueTextFromDOM = React.useCallback((node) => {\n if (!valueTextProp && node?.textContent) {\n setValueText(node.textContent);\n }\n }, [valueTextProp]);\n let mouseEventStarted = React.useRef(false);\n let [element, handleRefSet] = useStatefulRefValue(ownRef, null);\n let descendant = React.useMemo(() => {\n return {\n element,\n key: valueText,\n disabled,\n isLink\n };\n }, [disabled, element, isLink, valueText]);\n let index = useDescendant(descendant, DropdownDescendantContext, indexProp);\n let isSelected = index === selectionIndex && !disabled;\n let ref = useComposedRefs(forwardedRef, handleRefSet, setValueTextFromDOM);\n selectCallbacks.current[index] = onSelect;\n function select() {\n focus(triggerRef.current);\n onSelect && onSelect();\n dispatch({ type: CLICK_MENU_ITEM });\n }\n function handleClick(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (isLink) {\n if (disabled) {\n event.preventDefault();\n } else {\n select();\n }\n }\n }\n function handleDragStart(event) {\n if (isLink) {\n event.preventDefault();\n }\n }\n function handleMouseDown(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (isLink) {\n mouseEventStarted.current = true;\n } else {\n event.preventDefault();\n }\n }\n function handleMouseEnter(event) {\n let doc = getOwnerDocument(dropdownRef.current);\n if (!isSelected && index != null && !disabled) {\n if (dropdownRef?.current && dropdownRef.current !== doc.activeElement && ownRef.current !== doc.activeElement) {\n dropdownRef.current.focus();\n }\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index\n }\n });\n }\n }\n function handleMouseLeave(event) {\n dispatch({ type: CLEAR_SELECTION_INDEX });\n }\n function handleMouseMove(event) {\n if (!readyToSelect.current) {\n let threshold = 8;\n let deltaX = Math.abs(event.clientX - mouseDownStartPosRef.current.x);\n let deltaY = Math.abs(event.clientY - mouseDownStartPosRef.current.y);\n if (deltaX > threshold || deltaY > threshold) {\n readyToSelect.current = true;\n }\n }\n if (!isSelected && index != null && !disabled) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index,\n dropdownRef\n }\n });\n }\n }\n function handleFocus() {\n readyToSelect.current = true;\n if (!isSelected && index != null && !disabled) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index\n }\n });\n }\n }\n function handleMouseUp(event) {\n if (isRightClick(event.nativeEvent)) {\n return;\n }\n if (!readyToSelect.current) {\n readyToSelect.current = true;\n return;\n }\n if (isLink) {\n if (mouseEventStarted.current) {\n mouseEventStarted.current = false;\n } else if (ownRef.current) {\n ownRef.current.click();\n }\n } else {\n if (!disabled) {\n select();\n }\n }\n }\n React.useEffect(() => {\n if (isExpanded) {\n let id = window.setTimeout(() => {\n readyToSelect.current = true;\n }, 400);\n return () => {\n window.clearTimeout(id);\n };\n } else {\n readyToSelect.current = false;\n }\n }, [isExpanded, readyToSelect]);\n React.useEffect(() => {\n let ownerDocument = getOwnerDocument(ownRef.current);\n ownerDocument.addEventListener(\"mouseup\", listener);\n return () => {\n ownerDocument.removeEventListener(\"mouseup\", listener);\n };\n function listener() {\n mouseEventStarted.current = false;\n }\n }, []);\n return {\n data: {\n disabled\n },\n props: {\n id: useItemId(index),\n tabIndex: -1,\n ...props,\n ref,\n \"data-disabled\": disabled ? \"\" : void 0,\n \"data-selected\": isSelected ? \"\" : void 0,\n \"data-valuetext\": valueText,\n onClick: composeEventHandlers(onClick, handleClick),\n onDragStart: composeEventHandlers(onDragStart, handleDragStart),\n onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),\n onMouseEnter: composeEventHandlers(onMouseEnter, handleMouseEnter),\n onMouseLeave: composeEventHandlers(onMouseLeave, handleMouseLeave),\n onMouseMove: composeEventHandlers(onMouseMove, handleMouseMove),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onMouseUp: composeEventHandlers(onMouseUp, handleMouseUp)\n }\n };\n}\nvar DropdownItem = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let { props } = useDropdownItem({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-item\": \"\",\n ...props\n });\n});\nDropdownItem.displayName = \"DropdownItem\";\nfunction useDropdownItems({\n id,\n onKeyDown,\n ref: forwardedRef,\n ...props\n}) {\n let {\n dispatch,\n triggerRef,\n dropdownRef,\n selectCallbacks,\n dropdownId,\n state: { isExpanded, triggerId, selectionIndex, typeaheadQuery }\n } = useDropdownContext(\"useDropdownItems\");\n let items = useDropdownDescendants();\n let ref = useComposedRefs(dropdownRef, forwardedRef);\n React.useEffect(() => {\n let match = findItemFromTypeahead(items, typeaheadQuery);\n if (typeaheadQuery && match != null) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: match,\n dropdownRef\n }\n });\n }\n let timeout = window.setTimeout(() => typeaheadQuery && dispatch({ type: SEARCH_FOR_ITEM, payload: \"\" }), 1e3);\n return () => window.clearTimeout(timeout);\n }, [dispatch, items, typeaheadQuery, dropdownRef]);\n let prevItemsLength = usePrevious(items.length);\n let prevSelected = usePrevious(items[selectionIndex]);\n let prevSelectionIndex = usePrevious(selectionIndex);\n React.useEffect(() => {\n if (selectionIndex > items.length - 1) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: items.length - 1,\n dropdownRef\n }\n });\n } else if (prevItemsLength !== items.length && selectionIndex > -1 && prevSelected && prevSelectionIndex === selectionIndex && items[selectionIndex] !== prevSelected) {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index: items.findIndex((i) => i.key === prevSelected?.key),\n dropdownRef\n }\n });\n }\n }, [\n dropdownRef,\n dispatch,\n items,\n prevItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex\n ]);\n let handleKeyDown = composeEventHandlers(function handleKeyDown2(event) {\n let { key } = event;\n if (!isExpanded) {\n return;\n }\n switch (key) {\n case \"Enter\":\n case \" \":\n let selected = items.find((item) => item.index === selectionIndex);\n if (selected && !selected.disabled) {\n event.preventDefault();\n if (selected.isLink && selected.element) {\n selected.element.click();\n } else {\n focus(triggerRef.current);\n selectCallbacks.current[selected.index] && selectCallbacks.current[selected.index]();\n dispatch({ type: CLICK_MENU_ITEM });\n }\n }\n break;\n case \"Escape\":\n focus(triggerRef.current);\n dispatch({ type: CLOSE_MENU });\n break;\n case \"Tab\":\n event.preventDefault();\n break;\n default:\n if (isString(key) && key.length === 1) {\n let query = typeaheadQuery + key.toLowerCase();\n dispatch({\n type: SEARCH_FOR_ITEM,\n payload: query\n });\n }\n break;\n }\n }, useDescendantKeyDown(DropdownDescendantContext, {\n currentIndex: selectionIndex,\n orientation: \"vertical\",\n rotate: false,\n filter: (item) => !item.disabled,\n callback: (index) => {\n dispatch({\n type: SELECT_ITEM_AT_INDEX,\n payload: {\n index,\n dropdownRef\n }\n });\n },\n key: \"index\"\n }));\n return {\n data: {\n activeDescendant: useItemId(selectionIndex) || void 0,\n triggerId\n },\n props: {\n tabIndex: -1,\n ...props,\n ref,\n id: dropdownId,\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n }\n };\n}\nvar DropdownItems = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let { props } = useDropdownItems({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"data-reach-dropdown-items\": \"\",\n ...props\n });\n});\nDropdownItems.displayName = \"DropdownItems\";\nfunction useDropdownPopover({\n onBlur,\n portal = true,\n position,\n ref: forwardedRef,\n ...props\n}) {\n let {\n triggerRef,\n triggerClickedRef,\n dispatch,\n dropdownRef,\n popoverRef,\n state: { isExpanded }\n } = useDropdownContext(\"useDropdownPopover\");\n let ref = useComposedRefs(popoverRef, forwardedRef);\n React.useEffect(() => {\n if (!isExpanded) {\n return;\n }\n let ownerDocument = getOwnerDocument(popoverRef.current);\n function listener(event) {\n if (triggerClickedRef.current) {\n triggerClickedRef.current = false;\n } else if (!popoverContainsEventTarget(popoverRef.current, event.target)) {\n dispatch({ type: CLOSE_MENU });\n }\n }\n ownerDocument.addEventListener(\"mousedown\", listener);\n return () => {\n ownerDocument.removeEventListener(\"mousedown\", listener);\n };\n }, [\n triggerClickedRef,\n triggerRef,\n dispatch,\n dropdownRef,\n popoverRef,\n isExpanded\n ]);\n return {\n data: {\n portal,\n position,\n targetRef: triggerRef,\n isExpanded\n },\n props: {\n ref,\n hidden: !isExpanded,\n onBlur: composeEventHandlers(onBlur, (event) => {\n if (event.currentTarget.contains(event.relatedTarget)) {\n return;\n }\n dispatch({ type: CLOSE_MENU });\n }),\n ...props\n }\n };\n}\nvar DropdownPopover = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { portal, targetRef, position },\n props\n } = useDropdownPopover({ ...rest, ref: forwardedRef });\n let sharedProps = {\n \"data-reach-dropdown-popover\": \"\"\n };\n return portal ? /* @__PURE__ */ React.createElement(Popover, {\n ...props,\n ...sharedProps,\n as: Comp,\n targetRef,\n position,\n unstable_skipInitialPortalRender: true\n }) : /* @__PURE__ */ React.createElement(Comp, {\n ...props,\n ...sharedProps\n });\n});\nDropdownPopover.displayName = \"DropdownPopover\";\nfunction findItemFromTypeahead(items, string = \"\") {\n if (!string) {\n return null;\n }\n let found = items.find((item) => {\n return item.disabled ? false : item.element?.dataset?.valuetext?.toLowerCase().startsWith(string);\n });\n return found ? items.indexOf(found) : null;\n}\nfunction useItemId(index) {\n let { dropdownId } = useDropdownContext(\"useItemId\");\n return index != null && index > -1 ? makeId(`option-${index}`, dropdownId) : void 0;\n}\nfunction focus(element) {\n element && element.focus();\n}\nfunction popoverContainsEventTarget(popover, target) {\n return !!(popover && popover.contains(target));\n}\nfunction reducer(state, action = {}) {\n switch (action.type) {\n case CLICK_MENU_ITEM:\n return {\n ...state,\n isExpanded: false,\n selectionIndex: -1\n };\n case CLOSE_MENU:\n return {\n ...state,\n isExpanded: false,\n selectionIndex: -1\n };\n case OPEN_MENU_AT_FIRST_ITEM:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: 0\n };\n case OPEN_MENU_AT_INDEX:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: action.payload.index\n };\n case OPEN_MENU_CLEARED:\n return {\n ...state,\n isExpanded: true,\n selectionIndex: -1\n };\n case SELECT_ITEM_AT_INDEX: {\n let { dropdownRef = { current: null } } = action.payload;\n if (action.payload.index >= 0 && action.payload.index !== state.selectionIndex) {\n if (dropdownRef.current) {\n let doc = getOwnerDocument(dropdownRef.current);\n if (dropdownRef.current !== doc?.activeElement) {\n dropdownRef.current.focus();\n }\n }\n return {\n ...state,\n selectionIndex: action.payload.max != null ? Math.min(Math.max(action.payload.index, 0), action.payload.max) : Math.max(action.payload.index, 0)\n };\n }\n return state;\n }\n case CLEAR_SELECTION_INDEX:\n return {\n ...state,\n selectionIndex: -1\n };\n case SET_BUTTON_ID:\n return {\n ...state,\n triggerId: action.payload\n };\n case SEARCH_FOR_ITEM:\n if (typeof action.payload !== \"undefined\") {\n return {\n ...state,\n typeaheadQuery: action.payload\n };\n }\n return state;\n default:\n return state;\n }\n}\nfunction useDropdownDescendants() {\n return useDescendants(DropdownDescendantContext);\n}\nexport {\n DropdownItem,\n DropdownItems,\n DropdownPopover,\n DropdownProvider_ as DropdownProvider,\n DropdownTrigger,\n useDropdownContext,\n useDropdownDescendants,\n useDropdownItem,\n useDropdownItems,\n useDropdownPopover,\n useDropdownTrigger\n};\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n/**\n * @reach/menu-button v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-menu-button.tsx\nimport * as React from \"react\";\nimport { Popover } from \"@reach/popover\";\nimport {\n DropdownProvider,\n useDropdownItem,\n useDropdownItems,\n useDropdownPopover,\n useDropdownTrigger,\n useDropdownContext\n} from \"@reach/dropdown\";\nimport { noop } from \"@reach/utils\";\nimport { isFragment } from \"react-is\";\nvar Menu = React.forwardRef(({ as: Comp = React.Fragment, id, children, ...rest }, forwardedRef) => {\n let parentIsFragment = React.useMemo(() => {\n try {\n return isFragment(/* @__PURE__ */ React.createElement(Comp, null));\n } catch (err) {\n return false;\n }\n }, [Comp]);\n let props = parentIsFragment ? {} : {\n ref: forwardedRef,\n id,\n \"data-reach-menu\": \"\",\n ...rest\n };\n return /* @__PURE__ */ React.createElement(Comp, {\n ...props\n }, /* @__PURE__ */ React.createElement(DropdownProvider, {\n id,\n children\n }));\n});\nMenu.displayName = \"Menu\";\nvar MenuButton = React.forwardRef(({ as: Comp = \"button\", ...rest }, forwardedRef) => {\n let {\n data: { isExpanded, controls },\n props\n } = useDropdownTrigger({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"aria-expanded\": isExpanded ? true : void 0,\n \"aria-haspopup\": true,\n \"aria-controls\": controls,\n ...props,\n \"data-reach-menu-button\": \"\"\n });\n});\nMenuButton.displayName = \"MenuButton\";\nvar MenuItemImpl = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { disabled },\n props\n } = useDropdownItem({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n role: \"menuitem\",\n ...props,\n \"aria-disabled\": disabled || void 0,\n \"data-reach-menu-item\": \"\"\n });\n});\nMenuItemImpl.displayName = \"MenuItemImpl\";\nvar MenuItem = React.forwardRef(({ as = \"div\", ...props }, forwardedRef) => {\n return /* @__PURE__ */ React.createElement(MenuItemImpl, {\n ...props,\n ref: forwardedRef,\n as\n });\n});\nMenuItem.displayName = \"MenuItem\";\nvar MenuItems = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { activeDescendant, triggerId },\n props\n } = useDropdownItems({ ...rest, ref: forwardedRef });\n return /* @__PURE__ */ React.createElement(Comp, {\n \"aria-activedescendant\": activeDescendant,\n \"aria-labelledby\": triggerId || void 0,\n role: \"menu\",\n ...props,\n \"data-reach-menu-items\": \"\"\n });\n});\nMenuItems.displayName = \"MenuItems\";\nvar MenuLink = React.forwardRef(({\n as = \"a\",\n component,\n onSelect,\n ...props\n}, forwardedRef) => {\n if (true) {\n React.useEffect(() => {\n if (component) {\n console.warn(\"[@reach/menu-button]: Please use the `as` prop instead of `component`\");\n }\n }, [component]);\n }\n return /* @__PURE__ */ React.createElement(MenuItemImpl, {\n ...props,\n ref: forwardedRef,\n \"data-reach-menu-link\": \"\",\n as,\n isLink: true,\n onSelect: onSelect || noop\n });\n});\nMenuLink.displayName = \"MenuLink\";\nvar MenuList = React.forwardRef(({ portal = true, ...props }, forwardedRef) => {\n return /* @__PURE__ */ React.createElement(MenuPopover, {\n portal\n }, /* @__PURE__ */ React.createElement(MenuItems, {\n ...props,\n ref: forwardedRef,\n \"data-reach-menu-list\": \"\"\n }));\n});\nMenuList.displayName = \"MenuList\";\nvar MenuPopover = React.forwardRef(({ as: Comp = \"div\", ...rest }, forwardedRef) => {\n let {\n data: { portal, targetRef, position },\n props\n } = useDropdownPopover({ ...rest, ref: forwardedRef });\n let sharedProps = {\n \"data-reach-menu-popover\": \"\"\n };\n return portal ? /* @__PURE__ */ React.createElement(Popover, {\n ...props,\n ...sharedProps,\n as: Comp,\n targetRef,\n position,\n unstable_skipInitialPortalRender: true\n }) : /* @__PURE__ */ React.createElement(Comp, {\n ...props,\n ...sharedProps\n });\n});\nMenuPopover.displayName = \"MenuPopover\";\nfunction useMenuButtonContext() {\n let {\n state: { isExpanded }\n } = useDropdownContext(\"useMenuButtonContext\");\n return React.useMemo(() => ({ isExpanded }), [isExpanded]);\n}\nexport {\n Menu,\n MenuButton,\n MenuItem,\n MenuItems,\n MenuLink,\n MenuList,\n MenuPopover,\n useMenuButtonContext\n};\n","import { MenuList } from '@reach/menu-button';\nimport clsx from 'clsx';\nimport React from 'react';\n\nfunction MenuContent({\n children,\n withMinWidth = true,\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement> & { children: React.ReactNode; withMinWidth?: boolean }) {\n return (\n <MenuList\n {...props}\n className={clsx(\n { 'tw-min-w-[13.125rem]': withMinWidth },\n 'motion-safe:data-[reach-menu-list]:tw-animate-slideDown motion-safe:data-[reach-menu-items]:tw-animate-slideDown tw-z-[1] tw-mt-2 tw-bg-white tw-shadow-[0_1px_2px_0_rgb(60,64,67,0.3),0_2px_6px_2px_rgb(60,64,67,0.15)] tw-outline-none tw-will-change-transform',\n className\n )}\n >\n {children}\n </MenuList>\n );\n}\n\nexport default MenuContent;\n","import { Menu, MenuButton, MenuLink } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\nimport { ApplicationDescriptions } from '@/utils/applications';\nimport MenuContent from './MenuContent';\n\nfunction AppSelector({\n applicationDescriptions,\n refreshToken,\n}: {\n applicationDescriptions: ApplicationDescriptions;\n refreshToken?: string;\n}) {\n const intl = useIntl();\n const appDescriptionsWithToken = Object.values(applicationDescriptions)\n .filter((app) => !app.hidden)\n .map((appDescription) => ({\n ...appDescription,\n url: `${appDescription.url}${refreshToken ? `#refreshToken=${refreshToken}` : ''}`,\n }));\n\n return (\n <Menu>\n <MenuButton\n as={Button}\n className=\"aria-expanded:tw-text-primary-700 aria-expanded:tw-bg-primary-100 aria-expanded:tw-border-primary-100 aria-expanded:tw-duration-150\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'appSelector' })}</p>\n <svg aria-hidden={true} xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox={`0 0 20 20`}>\n <title>{intl.formatMessage({ id: 'appSelector' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M15 20h5v-5h-5m0-2.5h5v-5h-5M7.5 5h5V0h-5M15 5h5V0h-5M7.5 12.5h5v-5h-5m-7.5 5h5v-5H0M0 20h5v-5H0m7.5 5h5v-5h-5M0 5h5V0H0v5z\" />\n </g>\n </svg>\n </MenuButton>\n <MenuContent className=\"tw-grid tw-max-w-[250px] tw-grid-cols-2 tw-gap-3 tw-px-4 tw-py-4\">\n {appDescriptionsWithToken.map((app) => (\n <MenuLink\n className=\"data-selected:tw-duration-150 tw-flex tw-flex-col tw-items-center tw-gap-2 tw-rounded-lg tw-px-2 tw-py-2 tw-text-center tw-text-sm tw-font-light tw-text-black tw-no-underline tw-transition-colors tw-duration-500 hover:tw-cursor-pointer hover:tw-bg-gray-50 hover:tw-duration-150 data-[selected]:tw-cursor-pointer data-[selected]:tw-bg-gray-50\"\n key={`app-selector-${app.name}`}\n href={app.url}\n >\n <img\n alt=\"\"\n width=\"34\"\n height=\"34\"\n aria-hidden={true}\n src={`data:image/svg+xml;base64,${app.logo}`}\n className=\"tw-my-0 tw-mx-2 tw-block\"\n />\n {app.name}\n </MenuLink>\n ))}\n </MenuContent>\n </Menu>\n );\n}\n\nexport default AppSelector;\n","import clsx from 'clsx';\nimport React from 'react';\n\nfunction AppTitle({\n children,\n className,\n ...props\n}: { children: React.ReactNode } & React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h1\n {...props}\n className={clsx(\n 'tw-my-0 tw-mr-auto tw-ml-2 tw-text-lg tw-font-light tw-leading-none tw-tracking-wide tw-text-black md:tw-text-xl lg:tw-text-2xl',\n className\n )}\n >\n {children}\n </h1>\n );\n}\n\nexport default AppTitle;\n","\"use strict\";\n/**\n * @reach/visually-hidden v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-visually-hidden.tsx\nimport * as React from \"react\";\nvar VisuallyHidden = React.forwardRef(function VisuallyHidden2({ as: Comp = \"span\", style = {}, ...props }, ref) {\n return /* @__PURE__ */ React.createElement(Comp, {\n ref,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...style\n },\n ...props\n });\n});\nVisuallyHidden.displayName = \"VisuallyHidden\";\nexport {\n VisuallyHidden\n};\n","\"use strict\";\n/**\n * @reach/tooltip v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-tooltip.tsx\nimport * as React from \"react\";\nimport { useId } from \"@reach/auto-id\";\nimport {\n getDocumentDimensions,\n getOwnerDocument,\n makeId,\n useComposedRefs,\n composeEventHandlers\n} from \"@reach/utils\";\nimport { Portal } from \"@reach/portal\";\nimport { VisuallyHidden } from \"@reach/visually-hidden\";\nimport { useRect } from \"@reach/rect\";\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500;\nvar chart = {\n initial: \"IDLE\" /* Idle */,\n states: {\n [\"IDLE\" /* Idle */]: {\n enter: clearContextId,\n on: {\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"FOCUSED\" /* Focused */,\n [\"FOCUS\" /* Focus */]: \"VISIBLE\" /* Visible */\n }\n },\n [\"FOCUSED\" /* Focused */]: {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: {\n [\"MOUSE_MOVE\" /* MouseMove */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"IDLE\" /* Idle */,\n [\"MOUSE_DOWN\" /* MouseDown */]: \"DISMISSED\" /* Dismissed */,\n [\"BLUR\" /* Blur */]: \"IDLE\" /* Idle */,\n [\"REST\" /* Rest */]: \"VISIBLE\" /* Visible */\n }\n },\n [\"VISIBLE\" /* Visible */]: {\n on: {\n [\"FOCUS\" /* Focus */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"FOCUSED\" /* Focused */,\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"LEAVING_VISIBLE\" /* LeavingVisible */,\n [\"BLUR\" /* Blur */]: \"LEAVING_VISIBLE\" /* LeavingVisible */,\n [\"MOUSE_DOWN\" /* MouseDown */]: \"DISMISSED\" /* Dismissed */,\n [\"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */]: \"DISMISSED\" /* Dismissed */,\n [\"GLOBAL_MOUSE_MOVE\" /* GlobalMouseMove */]: \"LEAVING_VISIBLE\" /* LeavingVisible */\n }\n },\n [\"LEAVING_VISIBLE\" /* LeavingVisible */]: {\n enter: startLeavingVisibleTimer,\n leave: () => {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: {\n [\"MOUSE_ENTER\" /* MouseEnter */]: \"VISIBLE\" /* Visible */,\n [\"FOCUS\" /* Focus */]: \"VISIBLE\" /* Visible */,\n [\"TIME_COMPLETE\" /* TimeComplete */]: \"IDLE\" /* Idle */\n }\n },\n [\"DISMISSED\" /* Dismissed */]: {\n leave: () => {\n clearContextId();\n },\n on: {\n [\"MOUSE_LEAVE\" /* MouseLeave */]: \"IDLE\" /* Idle */,\n [\"BLUR\" /* Blur */]: \"IDLE\" /* Idle */\n }\n }\n }\n};\nvar state = {\n value: chart.initial,\n context: { id: null }\n};\nvar subscriptions = [];\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return () => {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\nfunction notify() {\n subscriptions.forEach((fn) => fn(state));\n}\nvar restTimeout;\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(() => {\n send({ type: \"REST\" /* Rest */ });\n }, MOUSE_REST_TIMEOUT);\n}\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n}\nvar leavingVisibleTimer;\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(() => send({ type: \"TIME_COMPLETE\" /* TimeComplete */ }), LEAVE_TIMEOUT);\n}\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n}\nfunction clearContextId() {\n state.context.id = null;\n}\nfunction useTooltip({\n id: idProp,\n onPointerEnter,\n onPointerMove,\n onPointerLeave,\n onPointerDown,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onMouseDown,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n ref: forwardedRef,\n DEBUG_STYLE\n} = {}) {\n let id = String(useId(idProp));\n let [isVisible, setIsVisible] = React.useState(DEBUG_STYLE ? true : isTooltipVisible(id, true));\n let ownRef = React.useRef(null);\n let ref = useComposedRefs(forwardedRef, ownRef);\n let triggerRect = useRect(ownRef, { observe: isVisible });\n React.useEffect(() => {\n return subscribe(() => {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n React.useEffect(() => {\n let ownerDocument = getOwnerDocument(ownRef.current);\n function listener(event) {\n if ((event.key === \"Escape\" || event.key === \"Esc\") && state.value === \"VISIBLE\" /* Visible */) {\n send({ type: \"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */ });\n }\n }\n ownerDocument.addEventListener(\"keydown\", listener);\n return () => ownerDocument.removeEventListener(\"keydown\", listener);\n }, []);\n useDisabledTriggerOnSafari({ disabled, isVisible, ref: ownRef });\n function wrapMouseEvent(theirHandler, ourHandler) {\n if (typeof window !== \"undefined\" && \"PointerEvent\" in window) {\n return theirHandler;\n }\n return composeEventHandlers(theirHandler, ourHandler);\n }\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n if (event.pointerType !== \"mouse\") {\n return;\n }\n handler(event);\n };\n }\n function handleMouseEnter() {\n send({ type: \"MOUSE_ENTER\" /* MouseEnter */, id });\n }\n function handleMouseMove() {\n send({ type: \"MOUSE_MOVE\" /* MouseMove */, id });\n }\n function handleMouseLeave() {\n send({ type: \"MOUSE_LEAVE\" /* MouseLeave */ });\n }\n function handleMouseDown() {\n if (state.context.id === id) {\n send({ type: \"MOUSE_DOWN\" /* MouseDown */ });\n }\n }\n function handleFocus() {\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n send({ type: \"FOCUS\" /* Focus */, id });\n }\n function handleBlur() {\n if (state.context.id === id) {\n send({ type: \"BLUR\" /* Blur */ });\n }\n }\n function handleKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n send({ type: \"SELECT_WITH_KEYBOARD\" /* SelectWithKeyboard */ });\n }\n }\n let trigger = {\n \"aria-describedby\": isVisible ? makeId(\"tooltip\", id) : void 0,\n \"data-state\": isVisible ? \"tooltip-visible\" : \"tooltip-hidden\",\n \"data-reach-tooltip-trigger\": \"\",\n ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n let tooltip = {\n id,\n triggerRect,\n isVisible\n };\n return [trigger, tooltip, isVisible];\n}\nvar Tooltip = React.forwardRef(function({\n children,\n label,\n ariaLabel: DEPRECATED_ariaLabel,\n id,\n DEBUG_STYLE,\n ...props\n}, forwardedRef) {\n let child = React.Children.only(children);\n if (true) {\n React.useEffect(() => {\n if (DEPRECATED_ariaLabel) {\n console.warn(\"The `ariaLabel prop is deprecated and will be removed from @reach/tooltip in a future version of Reach UI. Please use `aria-label` instead.\");\n }\n }, [DEPRECATED_ariaLabel]);\n }\n let [trigger, tooltip] = useTooltip({\n id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE\n });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, React.cloneElement(child, trigger), /* @__PURE__ */ React.createElement(TooltipPopup, {\n ref: forwardedRef,\n label,\n \"aria-label\": DEPRECATED_ariaLabel,\n ...tooltip,\n ...props\n }));\n});\nTooltip.displayName = \"Tooltip\";\nvar TooltipPopup = React.forwardRef(function TooltipPopup2({\n label,\n ariaLabel: DEPRECATED_ariaLabel,\n isVisible,\n id,\n ...props\n}, forwardRef2) {\n return isVisible ? /* @__PURE__ */ React.createElement(Portal, null, /* @__PURE__ */ React.createElement(TooltipContent, {\n ref: forwardRef2,\n label,\n \"aria-label\": DEPRECATED_ariaLabel,\n isVisible,\n ...props,\n id: makeId(\"tooltip\", String(id))\n })) : null;\n});\nTooltipPopup.displayName = \"TooltipPopup\";\nvar TooltipContent = React.forwardRef(function TooltipContent2({\n ariaLabel,\n \"aria-label\": realAriaLabel,\n as: Comp = \"div\",\n id,\n isVisible,\n label,\n position = positionTooltip,\n style,\n triggerRect,\n ...props\n}, forwardedRef) {\n let hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n let ownRef = React.useRef(null);\n let ref = useComposedRefs(forwardedRef, ownRef);\n let tooltipRect = useRect(ownRef, { observe: isVisible });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Comp, {\n role: hasAriaLabel ? void 0 : \"tooltip\",\n ...props,\n ref,\n \"data-reach-tooltip\": \"\",\n id: hasAriaLabel ? void 0 : id,\n style: {\n ...style,\n ...getStyles(position, triggerRect, tooltipRect)\n }\n }, label), hasAriaLabel && /* @__PURE__ */ React.createElement(VisuallyHidden, {\n role: \"tooltip\",\n id\n }, realAriaLabel || ariaLabel));\n});\nTooltipContent.displayName = \"TooltipContent\";\nfunction getStyles(position, triggerRect, tooltipRect) {\n let haventMeasuredTooltipYet = !tooltipRect;\n if (haventMeasuredTooltipYet) {\n return { visibility: \"hidden\" };\n }\n return position(triggerRect, tooltipRect);\n}\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = (triggerRect, tooltipRect, offset = OFFSET_DEFAULT) => {\n let { width: windowWidth, height: windowHeight } = getDocumentDimensions();\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n let collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n let directionRight = collisions.right && !collisions.left;\n let directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? `${triggerRect.right - tooltipRect.width + window.pageXOffset}px` : `${triggerRect.left + window.pageXOffset}px`,\n top: directionUp ? `${triggerRect.top - offset - tooltipRect.height + window.pageYOffset}px` : `${triggerRect.top + offset + triggerRect.height + window.pageYOffset}px`\n };\n};\nfunction useDisabledTriggerOnSafari({\n disabled,\n isVisible,\n ref\n}) {\n React.useEffect(() => {\n if (!(typeof window !== \"undefined\" && \"PointerEvent\" in window) || !disabled || !isVisible) {\n return;\n }\n let ownerDocument = getOwnerDocument(ref.current);\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n if (event.target instanceof Element && event.target.closest(\"[data-reach-tooltip-trigger][data-state='tooltip-visible']\")) {\n return;\n }\n send({ type: \"GLOBAL_MOUSE_MOVE\" /* GlobalMouseMove */ });\n }\n ownerDocument.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n ownerDocument.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n}\nfunction send(event) {\n let { value, context, changed } = transition(state, event);\n if (changed) {\n state = { value, context };\n notify();\n }\n}\nfunction transition(currentState, event) {\n let stateDef = chart.states[currentState.value];\n let nextState = stateDef && stateDef.on && stateDef.on[event.type];\n if (!nextState) {\n return { ...currentState, changed: false };\n }\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n const { type: _, ...payload } = event;\n let context = { ...state.context, ...payload };\n let nextStateValue = typeof nextState === \"string\" ? nextState : nextState.target;\n let nextDef = chart.states[nextStateValue];\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n return {\n value: nextStateValue,\n context,\n changed: true\n };\n}\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === \"VISIBLE\" /* Visible */ : state.value === \"VISIBLE\" /* Visible */ || state.value === \"LEAVING_VISIBLE\" /* LeavingVisible */);\n}\nexport {\n LEAVE_TIMEOUT,\n MOUSE_REST_TIMEOUT,\n Tooltip,\n TooltipPopup,\n positionTooltip,\n useTooltip\n};\n","import '@reach/tooltip/styles.css';\nimport { Position, TooltipPopup, useTooltip } from '@reach/tooltip';\nimport React from 'react';\n\nconst positionTooltip: Position = (triggerRect, tooltipRect) => {\n const computedLeft = triggerRect && tooltipRect ? triggerRect.right - tooltipRect.width + window.scrollX : '';\n const computedTop = triggerRect ? triggerRect.bottom + window.scrollY : '';\n\n return {\n left: `${computedLeft}px`,\n top: `${computedTop}px`,\n };\n};\n\nfunction CustomTooltip({ children, label }: { children: React.ReactElement; label: string }) {\n const [trigger, tooltip] = useTooltip();\n\n return (\n <>\n {React.cloneElement(children, trigger)}\n <TooltipPopup\n {...tooltip}\n label={label}\n aria-label={label}\n style={{\n background: 'white',\n color: 'black',\n border: 'none',\n borderRadius: '0.5rem',\n boxShadow: '0 2px 10px rgba(0,0,0,0.1)',\n }}\n position={positionTooltip}\n className=\"tw-border tw-border-blue-500 tw-p-2\"\n />\n </>\n );\n}\n\nexport default CustomTooltip;\n","import { Locale } from '@/locales/localeConfiguration';\n\nexport const LANGUAGE_KEY = 'x4b.language';\n\nexport const setCurrentLanguageInLocalStorage = (newLanguage: string) => {\n window.localStorage.setItem(LANGUAGE_KEY, newLanguage);\n};\n\nexport function getDefaultLanguage() {\n return (window.localStorage.getItem(LANGUAGE_KEY) || 'en') as Locale;\n}\n","import { Menu, MenuButton, MenuItem } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { Locale } from '@/locales/localeConfiguration';\nimport { setCurrentLanguageInLocalStorage } from '@/utils/language';\nimport MenuContent from './MenuContent';\n\ntype LanguageSelectorProps = {\n language: Locale;\n languages: Locale[];\n onLanguageSelected?: (language: Locale) => void;\n};\n\nconst languageLabels: Record<Locale, string> = {\n en: 'EN - English',\n fr: 'FR - Français',\n};\n\nfunction LanguageSelector({ language, languages, onLanguageSelected }: LanguageSelectorProps) {\n return (\n <Menu>\n <MenuButton\n as={Button}\n className=\"aria-expanded:tw-border-gray-100 aria-expanded:tw-bg-gray-100 aria-expanded:tw-text-gray-700 aria-expanded:tw-duration-150\"\n variant=\"ghost\"\n colorScheme=\"gray\"\n rounded={true}\n compact={true}\n >\n <div className=\"tw-min-w-[36px] tw-text-base lg:tw-text-lg\">\n <span>{language.toUpperCase()}</span>\n <svg\n aria-hidden={true}\n className=\"tw-ml-1 !tw-inline-block\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"8\"\n height=\"5\"\n viewBox=\"0 0 8 5\"\n >\n <defs>\n <path\n id=\"a\"\n d=\"M1367.876 32.83a.5.5 0 01-.752-.66l3.5-4a.5.5 0 01.752 0l3.5 4a.5.5 0 01-.752.66L1371 29.26l-3.124 3.57z\"\n ></path>\n </defs>\n <use fill=\"currentColor\" transform=\"matrix(1 0 0 -1 -1367 33)\" xlinkHref=\"#a\"></use>\n </svg>\n </div>\n </MenuButton>\n <MenuContent withMinWidth={false} className=\"tw-min-w-fit\">\n {languages\n .filter((lang) => languageLabels[lang])\n .map((lang) => (\n <MenuItem\n key={lang}\n className=\"tw-cursor-pointer tw-whitespace-nowrap tw-py-2 tw-px-4 tw-text-base tw-font-normal tw-leading-normal tw-tracking-normal tw-text-black hover:tw-bg-gray-50 data-[selected]:tw-bg-gray-50\"\n onSelect={() => {\n setCurrentLanguageInLocalStorage(lang);\n onLanguageSelected && onLanguageSelected(lang);\n }}\n >\n {languageLabels[lang]}\n </MenuItem>\n ))}\n </MenuContent>\n </Menu>\n );\n}\n\nexport default LanguageSelector;\n","import { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\n\nfunction NotificationButton({ count, onClick }: { count?: number; onClick?: () => void }) {\n const intl = useIntl();\n return (\n <Button\n className=\"tw-hidden sm:tw-inline-block\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n onClick={onClick}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'notifications' })}</p>\n <svg\n aria-hidden={true}\n width=\"22\"\n height=\"22\"\n opacity=\"0.9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className=\"tw-block tw-scale-[1.08]\"\n >\n <title>{intl.formatMessage({ id: 'notifications' })}</title>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0\"\n />\n </svg>\n {count ? (\n <div className=\"tw-absolute tw-top-[0.3em] tw-left-[22px] tw-min-w-[1em] tw-rounded-[1em] tw-bg-red-600 tw-py-[0.1em] tw-px-[0.3em] tw-text-center tw-text-[0.8em] tw-font-semibold tw-leading-[1em] tw-text-white\">\n {count}\n </div>\n ) : undefined}\n </Button>\n );\n}\n\nexport default NotificationButton;\n","import { Menu, MenuButton, MenuLink } from '@reach/menu-button';\nimport { Button } from '@x4b/design-system';\nimport { useIntl } from 'react-intl';\nimport MenuContent from './MenuContent';\n\ntype UserProfileMenuProps = {\n username: string;\n version: string;\n onLogout: () => void;\n};\n\nfunction UserProfileMenu({ username, version, onLogout }: UserProfileMenuProps) {\n const intl = useIntl();\n return (\n <Menu>\n <MenuButton\n className=\"!tw-px-0 !tw-py-0 tw-transition-opacity hover:tw-opacity-80 aria-expanded:tw-opacity-80 aria-expanded:tw-duration-150\"\n as={Button}\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'userAccountTooltip' })}</p>\n <svg aria-hidden={true} width={44} height={44} viewBox=\"0 0 44 44\" version=\"1.1\">\n <title>{intl.formatMessage({ id: 'userAccountTooltip' })}</title>\n <defs>\n <clipPath id=\"user-badge--clip-path\">\n <circle cx=\"50%\" cy=\"50%\" r=\"22\" fill=\"#FFFFFF\" fillRule=\"evenodd\" />\n </clipPath>\n </defs>\n <image\n width=\"44\"\n height=\"44\"\n xlinkHref=\"data:image/png;base64,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\"\n clipPath=\"url(#user-badge--clip-path)\"\n />\n </svg>\n </MenuButton>\n <MenuContent withMinWidth={false} className=\"tw-w-[310px]\">\n <div className=\"tw-flex tw-flex-col tw-gap-4 tw-py-4 tw-px-5\">\n <div className=\"tw-overflow-hidden tw-overflow-ellipsis tw-whitespace-nowrap tw-text-base tw-font-semibold tw-leading-tight tw-text-black\">\n {username}\n </div>\n <MenuLink\n as={Button}\n className=\"tw-self-end data-[selected]:[&:not(:hover)]:tw-ring data-[selected]:[&:not(:hover)]:tw-ring-gray-300\"\n variant=\"outline\"\n colorScheme=\"gray\"\n onSelect={onLogout}\n >\n {intl.formatMessage({ id: 'logout' })}\n </MenuLink>\n </div>\n <div className=\"tw-flex tw-w-full tw-justify-center tw-bg-gray-50 tw-py-4 tw-px-0 tw-text-sm tw-font-normal tw-text-gray-700\">\n {intl.formatMessage({ id: 'version' }, { version: version })}\n </div>\n </MenuContent>\n </Menu>\n );\n}\n\nexport default UserProfileMenu;\n","import { Button } from '@x4b/design-system';\nimport clsx from 'clsx';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { Locale } from '@/locales/localeConfiguration';\nimport { ApplicationDescriptions } from '@/utils/applications';\nimport { buildMailtoHref } from '@/utils/mail';\nimport { setMenuStateInLocalStorage } from '@/utils/toggleMenu';\nimport { isMenuOpen } from '..';\nimport AppSelector from './AppSelector';\nimport AppTitle from './AppTitle';\nimport CustomTooltip from './CustomTooltip';\nimport LanguageSelector from './LanguageSelector';\nimport NotificationButton from './NotificationButton';\nimport UserProfileMenu from './UserProfileMenu';\n\nconst xcompDocumentationUrl = 'https://xcomponent.github.io/appcontrol-documentation/contact/';\n\nexport type BannerContentProps = {\n language?: Locale;\n languages?: Array<Locale>;\n onLanguageChange?: (value: Locale) => void;\n application: string;\n notificationCount?: number;\n onNotificationClick?: () => void;\n onInstallationClick?: () => void;\n onToggleMenuClick?: (isMenuOpen: boolean) => void;\n applications?: ApplicationDescriptions;\n username?: string;\n version: string;\n logout?: () => void;\n refreshToken?: string;\n loginUrl?: string;\n withMaxWith?: boolean;\n showUpgrade?: boolean;\n};\n\nfunction BannerContent({\n application,\n applications,\n notificationCount,\n onNotificationClick,\n onInstallationClick,\n onToggleMenuClick,\n language,\n languages,\n onLanguageChange,\n username,\n version,\n logout,\n refreshToken,\n loginUrl,\n withMaxWith = false,\n className,\n showUpgrade,\n ...props\n}: BannerContentProps & React.HTMLAttributes<HTMLElement>) {\n const intl = useIntl();\n const currentApplicationDescription = applications?.[application];\n const settingsAppName = 'x4b-settings';\n const settingsDescription = applications?.[settingsAppName];\n const supportMail = 'support@xcomponent.com';\n const systemInfo = currentApplicationDescription && {\n applicationName: currentApplicationDescription?.name,\n username,\n version,\n url: currentApplicationDescription?.url,\n };\n const toggleMenuHandler = () => {\n const newMenuState = !isMenuOpen();\n setMenuStateInLocalStorage(newMenuState);\n onToggleMenuClick && onToggleMenuClick(newMenuState);\n };\n\n if (!currentApplicationDescription) {\n console.error(`Unknown application ${application}`);\n return <div data-testid=\"init-error\" />;\n }\n\n return (\n <header\n {...props}\n aria-label=\"Global\"\n className={clsx(\n className,\n 'tw-box-border tw-bg-white ',\n refreshToken && 'tw-shadow-[0_0_10px_0_rgba(72,40,83,0.1)]'\n )}\n >\n <nav\n aria-label=\"top\"\n className={clsx(\n refreshToken ? 'tw-gap-0 sm:tw-gap-1 lg:tw-gap-2' : 'tw-gap-0 sm:tw-gap-1',\n withMaxWith && 'tw-mx-auto tw-max-w-7xl',\n 'tw-text-primary-600 tw-isolate tw-m-0 tw-box-border tw-flex tw-w-full tw-flex-row tw-flex-wrap tw-items-center tw-justify-start tw-py-2 tw-px-4 tw-font-sans tw-antialiased lg:tw-px-5 xl:tw-px-3 '\n )}\n >\n {refreshToken && onToggleMenuClick && (\n <Button\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n onClick={toggleMenuHandler}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'mainMenu' })}</p>\n <svg\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox={`0 0 18 16`}\n >\n <title>{intl.formatMessage({ id: 'mainMenu' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M18 6.818H0v1.364h18zM18 13H0v1.36h18zM18 .364H0v1.36h18z\" />\n </g>\n </svg>\n </Button>\n )}\n <img\n alt={application}\n width=\"34\"\n height=\"34\"\n aria-hidden={true}\n src={`data:image/svg+xml;base64,${currentApplicationDescription.logo}`}\n className=\"tw-my-0 tw-block\"\n />\n <AppTitle className=\"tw-hidden md:tw-block\">\n {currentApplicationDescription.label || currentApplicationDescription.name}\n </AppTitle>\n <AppTitle className=\"tw-block md:tw-hidden\">\n {currentApplicationDescription.shortname || currentApplicationDescription.name}\n </AppTitle>\n {onInstallationClick !== undefined && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={false}\n rounded={false}\n aria-label={intl.formatMessage({ id: 'installGateway' })}\n onClick={onInstallationClick}\n >\n {intl.formatMessage({ id: 'installGateway' })}\n </Button>\n )}\n {showUpgrade && (\n <CustomTooltip label={intl.formatMessage({ id: 'upgradeBtnTooltip' })}>\n <Button\n as=\"a\"\n variant=\"outline\"\n colorScheme=\"primary\"\n rounded={true}\n href={\n systemInfo &&\n buildMailtoHref(\n supportMail,\n `[${systemInfo.applicationName}] Support Request`,\n intl.formatMessage({ id: 'contactUpgradeMailBody' }),\n systemInfo\n )\n }\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n >\n <p className=\"tw-sr-only\"> {intl.formatMessage({ id: 'upgradeBtnTooltip' })}</p>\n {intl.formatMessage({ id: 'upgradeBtn' })}\n </Button>\n </CustomTooltip>\n )}\n\n {notificationCount !== undefined && refreshToken && (\n <NotificationButton count={notificationCount} onClick={onNotificationClick} />\n )}\n {settingsDescription && application !== settingsAppName && refreshToken && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n href={`${settingsDescription.url}${refreshToken ? `#refreshToken=${refreshToken}` : ''}`}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'settings' })}</p>\n <svg\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"22\"\n height=\"22\"\n viewBox={`0 0 22 22`}\n >\n <title>{intl.formatMessage({ id: 'settings' })}</title>\n <g fill=\"currentColor\" fillRule=\"evenodd\" fillOpacity={0.9}>\n <path d=\"M14.037 19.103v2.25c0 .357-.29.647-.647.647H8.61a.647.647 0 0 1-.647-.647v-2.25c-.981-.278-1.658-.682-2.422-1.353a15.057 15.057 0 0 1-.108-.096L3.35 18.811a.647.647 0 0 1-.875-.242L.087 14.43a.647.647 0 0 1 .237-.884l1.995-1.15a8.415 8.415 0 0 1 .005-2.796L.344 8.452a.647.647 0 0 1-.234-.885l2.413-4.138A.647.647 0 0 1 3.4 3.19l2.036 1.152.105-.093c.764-.67 1.44-1.073 2.422-1.353V.647c0-.357.29-.647.647-.647h4.78c.357 0 .647.29.647.647v2.25c.982.28 1.658.683 2.422 1.353l.105.093L18.6 3.191a.647.647 0 0 1 .878.238l2.412 4.138c.18.309.075.706-.234.885l-1.98 1.149c.156.934.161 1.857.005 2.797l1.995 1.149c.31.178.416.574.237.884l-2.388 4.138a.647.647 0 0 1-.874.242l-2.084-1.157-.108.096c-.764.671-1.44 1.075-2.422 1.353zm-1.294-.504c0-.303.21-.566.507-.632 1.043-.231 1.621-.545 2.355-1.19.114-.1.181-.161.432-.39a.647.647 0 0 1 .752-.09l1.933 1.074 1.747-3.026-1.834-1.056a.647.647 0 0 1-.308-.7 7.203 7.203 0 0 0-.005-3.178.647.647 0 0 1 .307-.699l1.816-1.054-1.764-3.026L16.793 5.7a.647.647 0 0 1-.756-.086c-.246-.226-.318-.291-.432-.391-.733-.644-1.311-.958-2.356-1.19a.647.647 0 0 1-.506-.632V1.294H9.257v2.107c0 .303-.21.566-.506.631-1.044.233-1.623.547-2.356 1.19-.114.101-.185.166-.432.392a.647.647 0 0 1-.756.086L3.32 4.632 1.555 7.658l1.816 1.054a.647.647 0 0 1 .308.699 7.203 7.203 0 0 0-.005 3.177.647.647 0 0 1-.31.7l-1.833 1.057 1.747 3.026 1.934-1.074a.647.647 0 0 1 .751.09c.25.229.318.29.432.39.734.645 1.312.959 2.355 1.19a.647.647 0 0 1 .507.632v2.107h3.486v-2.107zM14.276 11a3.275 3.275 0 1 1-6.551 0 3.275 3.275 0 0 1 6.55 0zm-1.294 0a1.981 1.981 0 1 0-3.963 0 1.981 1.981 0 0 0 3.963 0z\" />\n </g>\n </svg>\n </Button>\n )}\n {xcompDocumentationUrl && (\n <Button\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n href={xcompDocumentationUrl}\n >\n <p className=\"tw-sr-only\">{intl.formatMessage({ id: 'documentation' })}</p>\n <svg\n className=\"tw-w-[1.5rem] tw-h-[1.5rem] tw-block\"\n aria-hidden={true}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 100 100\"\n >\n <title>{intl.formatMessage({ id: 'documentation' })}</title>\n <path\n strokeWidth=\"1\"\n fill=\"currentColor\"\n d=\"M52.586 20.5H70.25a1.5 1.5 0 100-3H52.586a1.5 1.5 0 100 3zM52.586 32.1H70.25a1.5 1.5 0 100-3H52.586a1.5 1.5 0 100 3zM70.25 40.7h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM70.25 52.3h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM70.25 63.9h-40.5a1.5 1.5 0 100 3h40.5a1.5 1.5 0 100-3zM56 75.5H29.75a1.5 1.5 0 100 3H56a1.5 1.5 0 100-3zM44.181 35.785a1.5 1.5 0 001.5-1.5V16a1.5 1.5 0 00-1.5-1.5H28.896a1.5 1.5 0 00-1.5 1.5v18.285a1.5 1.5 0 001.5 1.5h15.285zM30.396 17.5h12.285v15.285H30.396V17.5z\"\n />\n <path\n strokeWidth=\"1\"\n fill=\"currentColor\"\n d=\"M78.521 5H21.479a4.067 4.067 0 00-4.063 4.063v81.875a4.067 4.067 0 004.063 4.063h43.522c.161 0 .314-.032.46-.08.023-.007.045-.012.067-.021.148-.056.282-.136.404-.233.011-.008.024-.011.034-.02L82.05 81.083c.015-.013.026-.029.041-.042a1.27 1.27 0 00.114-.118c.03-.034.06-.068.086-.104.03-.041.056-.084.082-.128a1.2 1.2 0 00.066-.122c.021-.045.038-.092.055-.139a1.315 1.315 0 00.084-.43c.001-.021.006-.041.006-.062V9.063A4.068 4.068 0 0078.521 5zM20.417 90.938V9.063c0-.586.476-1.063 1.062-1.063h57.042c.586 0 1.063.477 1.063 1.063v69.374H65a1.5 1.5 0 00-1.5 1.5V92H21.479a1.063 1.063 0 01-1.062-1.062zm56.562-9.501L66.5 90.273v-8.837h10.479z\"\n />\n </svg>\n </Button>\n )}\n\n {/* The help icon is hidden temporarily \n <HelpMenu\n documentationUrl={currentApplicationDescription.documentationUrl}\n systemInfo={{\n applicationName: currentApplicationDescription.name,\n username,\n version,\n url: currentApplicationDescription.url,\n }}\n /> */}\n <Button\n href=\"https://slack.xcomponent.com\"\n as=\"a\"\n variant=\"ghost\"\n colorScheme=\"primary\"\n compact={true}\n rounded={true}\n aria-label={intl.formatMessage({ id: 'contactDevelopers' })}\n >\n {\n <svg\n viewBox=\"8 8 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={true}\n className=\"tw-w-[1.5rem] tw-h-[1.5rem] tw-block\"\n >\n <title>{intl.formatMessage({ id: 'contactDevelopers' })}</title>\n <path\n d=\"M16.535 27.397a2.711 2.711 0 01-2.704 2.705 2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h2.704v2.705zM17.898 27.397a2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v6.772a2.712 2.712 0 01-2.705 2.705 2.711 2.711 0 01-2.705-2.705v-6.772z\"\n fill=\"#E01E5A\"\n />\n <path\n d=\"M20.603 16.535a2.711 2.711 0 01-2.705-2.704 2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v2.704h-2.705zM20.603 17.898a2.712 2.712 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-6.772a2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h6.772z\"\n fill=\"#36C5F0\"\n />\n <path\n d=\"M31.465 20.603a2.711 2.711 0 012.704-2.705 2.711 2.711 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-2.704v-2.705zM30.102 20.603a2.711 2.711 0 01-2.705 2.705 2.711 2.711 0 01-2.705-2.705v-6.772a2.711 2.711 0 012.705-2.705 2.711 2.711 0 012.705 2.705v6.772z\"\n fill=\"#2EB67D\"\n />\n <path\n d=\"M27.397 31.465a2.711 2.711 0 012.705 2.704 2.711 2.711 0 01-2.705 2.705 2.712 2.712 0 01-2.705-2.705v-2.704h2.705zM27.397 30.102a2.711 2.711 0 01-2.705-2.705 2.711 2.711 0 012.705-2.705h6.772a2.711 2.711 0 012.705 2.705 2.711 2.711 0 01-2.705 2.705h-6.772z\"\n fill=\"#ECB22E\"\n />\n </svg>\n }\n </Button>\n {refreshToken && application === settingsAppName && applications && (\n <AppSelector applicationDescriptions={applications} refreshToken={refreshToken} />\n )}\n {refreshToken && username && version && logout && (\n <UserProfileMenu username={username} version={version} onLogout={logout} />\n )}\n <LanguageSelector\n language={language || 'en'}\n languages={languages || ['en']}\n onLanguageSelected={onLanguageChange}\n />\n {!refreshToken && (\n <>\n <Button\n className=\"tw-ml-2 tw-mr-0 md:tw-ml-3 lg:tw-mr-3\"\n size=\"lg\"\n href={loginUrl}\n as=\"a\"\n variant=\"link\"\n colorScheme=\"gray\"\n >\n {intl.formatMessage({ id: 'login' })}\n </Button>\n <Button\n className=\"tw-ml-3 tw-hidden lg:tw-inline-block\"\n size=\"xl\"\n href={loginUrl}\n as=\"a\"\n variant=\"solid\"\n colorScheme=\"primary\"\n >\n {intl.formatMessage({ id: 'getStartedFree' })}\n </Button>\n </>\n )}\n </nav>\n </header>\n );\n}\n\nexport default BannerContent;\n","import localeData from './data.json';\n\nexport type Locale = 'en' | 'fr';\n\nexport const getLocalizedResources = (defaultLanguage: Locale) => {\n return localeData[defaultLanguage];\n};\n","import { IntlProvider } from 'react-intl';\nimport BannerContent, { BannerContentProps } from '@/components/BannerContent';\nimport { getLocalizedResources } from '@/locales/localeConfiguration';\n\nfunction Banner(props: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> & BannerContentProps) {\n const lang = props.language || 'en';\n return (\n <IntlProvider locale={lang} messages={getLocalizedResources(lang)}>\n <BannerContent {...props} />\n </IntlProvider>\n );\n}\n\nexport default Banner;\n","export const defaultAppIcon =\n '<svg width=\"34\" height=\"35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.63 16.635.574 6.579c-.725-.725-.725-1.952 0-2.718L2.946 1.49c.725-.725 1.952-.725 2.717 0L15.72 11.546c.725.725.725 1.951 0 2.717l-2.371 2.372a1.894 1.894 0 0 1-2.718 0ZM.574 29.333 10.63 19.277c.725-.725 1.952-.725 2.718 0l2.371 2.372c.725.725.725 1.952 0 2.717L5.663 34.422c-.725.726-1.951.726-2.717 0L.574 32.051c-.765-.766-.765-1.993 0-2.718ZM23.37 19.237l10.056 10.056c.725.725.725 1.951 0 2.717l-2.372 2.372c-.725.725-1.952.725-2.717 0L18.28 24.326c-.725-.725-.725-1.952 0-2.718l2.371-2.371a1.97 1.97 0 0 1 2.718 0Z\" fill=\"#44506A\"/><path d=\"M33.426 6.579 23.37 16.635c-.726.725-1.952.725-2.718 0l-2.371-2.372c-.725-.725-.725-1.952 0-2.717L28.337 1.49c.725-.725 1.951-.725 2.717 0l2.372 2.371c.765.766.765 1.993 0 2.718Z\" fill=\"url(#a)\"/><defs><linearGradient id=\"a\" x1=\"17.736\" y1=\"9.065\" x2=\"33.999\" y2=\"9.065\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#2E5BFF\"/><stop offset=\"1\" stop-color=\"#7994F6\"/></linearGradient></defs></svg>';\n","export type ApplicationDescriptions = { [id: string]: ApplicationDescription };\nexport type ApplicationDescription = {\n name: string;\n url: string;\n logo: string;\n documentationUrl?: string;\n label?: string;\n hidden?: boolean;\n shortname?: string;\n};\n\ntype BackendApplicationDescription = {\n id: string;\n label: string;\n url: string;\n logo: string;\n documentationUrl: string | undefined;\n hidden: string;\n};\n\nexport async function getApplicationDescriptions(appsServiceUrl: string) {\n const response = await fetch(`${appsServiceUrl}/applications`);\n if (response.ok) {\n const data = (await response.json()) as BackendApplicationDescription[];\n return data.reduce((apps: ApplicationDescriptions, app) => {\n apps[app.id] = {\n name: app.label,\n url: app.url,\n logo: app.logo,\n documentationUrl: app.documentationUrl,\n hidden: Boolean(app.hidden),\n };\n return apps;\n }, {});\n } else {\n console.error(response.text);\n return {};\n }\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwt_decode from 'jwt-decode';\nimport { RefreshAccessTokenResult } from './auth';\n\nexport type JwtTokenContent = {\n user: string;\n exp?: number;\n};\n\nexport const getUsernameFromToken = (token?: string) => {\n if (token) {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n return jwtTokenContent ? jwtTokenContent.user : undefined;\n }\n};\n\nexport const getTokenFromCurrentLocation = () => {\n const refreshToken = getParameterFromCurrentLocation('refreshToken');\n if (refreshToken) {\n return {\n refreshToken: refreshToken,\n accessToken: getParameterFromCurrentLocation('accessToken'),\n } as RefreshAccessTokenResult;\n }\n return {} as RefreshAccessTokenResult;\n};\n\nfunction getParameterFromCurrentLocation(parameter: string) {\n const values = window.location.hash\n ?.slice(1)\n .split('#')\n .map((entry) => {\n const splitEntry = entry.split('=');\n return { key: splitEntry[0], value: splitEntry[1] };\n })\n .filter((keyValuePair) => keyValuePair.key === parameter)\n .map((keyValuePair) => keyValuePair.value);\n return values && values.length > 0 ? values[0] : undefined;\n}\n\nexport const getToken = () => {\n return window.accessToken;\n};\n\nconst oneMinuteInSeconds = 60;\nconst defaultTokenRefreshRate = 5 * oneMinuteInSeconds * 1000;\n\nexport const isTokenStillValid = (token: string) => {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n const nowEpochInSeconds = Date.now() / 1000;\n return !jwtTokenContent.exp || jwtTokenContent.exp > nowEpochInSeconds + oneMinuteInSeconds;\n};\n\nexport const getTokenRefreshTimeout = (token: string) => {\n const jwtTokenContent = jwt_decode<JwtTokenContent>(token);\n const nowEpochInSeconds = Date.now() / 1000;\n if (!jwtTokenContent.exp) {\n return defaultTokenRefreshRate;\n }\n if (!isTokenStillValid(token)) {\n return 0;\n }\n return (jwtTokenContent.exp - nowEpochInSeconds - oneMinuteInSeconds) * 1000;\n};\n\nconst btoajson = function <T>(json: T) {\n return Buffer.from(JSON.stringify(json))\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n};\n\n// for tests\n// adapted from https://github.com/hokaccha/node-jwt-simple/blob/master/lib/jwt.js\nexport function createToken(payload: JwtTokenContent): string {\n return [btoajson({ typ: 'JWT', alg: 'none' }), btoajson(payload)].join('.');\n}\n","import { getDefaultLanguage } from './language';\nimport { getTokenFromCurrentLocation, getTokenRefreshTimeout, isTokenStillValid } from './token';\n\nexport type TokenChangeCallback = (token: RefreshAccessTokenResult) => void;\n\nexport type RefreshAccessTokenResult = {\n refreshToken: string;\n accessToken?: string;\n};\n\nconst buildLangUrlParameter = () => {\n const lang = getDefaultLanguage();\n return lang ? `lang=${lang}&` : '';\n};\n\nexport async function login(appsServiceUrl: string, onTokenChange?: TokenChangeCallback) {\n const response = await fetch(`${appsServiceUrl}/services`);\n if (response.ok) {\n const data = await response.json();\n const loginUrl = data['login'];\n const authenticationUrl = data['authentication'];\n const logout = () => {\n window.location.href = `${loginUrl}/logout?${buildLangUrlParameter()}redirectUrl=${encodeURIComponent(\n window.location.href\n )}`;\n };\n\n const newToken = getTokenFromCurrentLocation();\n\n if (newToken?.refreshToken) {\n const token = await refreshAccessToken(logout, authenticationUrl, newToken, onTokenChange);\n history.replaceState({}, '', window.location.href.split('#')[0]);\n if (token) {\n return { token, logout };\n }\n } else {\n window.location.href = `${loginUrl}?${buildLangUrlParameter()}redirectUrl=${encodeURIComponent(\n window.location.href\n )}`;\n }\n } else {\n throw new Error(await response.text());\n }\n}\n\ntype AuthenticationError = {\n requestId: string;\n authenticationErrorType: string;\n errors?: string[];\n};\n\nfunction startTokenAutoRefresh(\n logout: () => void,\n authenticationUrl: string,\n currentToken: RefreshAccessTokenResult,\n onTokenChange?: TokenChangeCallback\n) {\n const timeout = getTokenRefreshTimeout(window.accessToken || '');\n console.debug(`Token will refresh in ${timeout} ms`);\n setTimeout(() => refreshAccessToken(logout, authenticationUrl, currentToken, onTokenChange), timeout);\n}\n\nasync function refreshAccessToken(\n logout: () => void,\n authenticationUrl: string,\n currentToken: RefreshAccessTokenResult,\n onTokenChange?: TokenChangeCallback\n) {\n if (currentToken.accessToken && isTokenStillValid(currentToken.accessToken)) {\n window.accessToken = currentToken.accessToken;\n\n startTokenAutoRefresh(logout, authenticationUrl, currentToken, onTokenChange);\n return currentToken;\n }\n\n if (!currentToken.refreshToken) {\n window.accessToken = undefined;\n console.error('no refresh token, nothing to refresh');\n return;\n }\n try {\n const response = await fetch(`${authenticationUrl}/api/Users/RefreshToken`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(currentToken.refreshToken),\n });\n if (response.ok) {\n const data = (await response.json()) as RefreshAccessTokenResult;\n if (data.refreshToken) {\n window.accessToken = data.accessToken;\n onTokenChange && onTokenChange(data);\n startTokenAutoRefresh(logout, authenticationUrl, data, onTokenChange);\n return data;\n } else {\n console.error('no refresh token');\n return;\n }\n } else {\n const errorData = (await response.json()) as AuthenticationError;\n console.error(errorData);\n logout();\n }\n } catch (error) {\n console.error(error);\n logout();\n }\n}\n","import React from 'react';\nimport { BannerContentProps } from '@/components/BannerContent';\nimport { ApplicationDescriptions, getApplicationDescriptions } from '@/utils/applications';\nimport { login, RefreshAccessTokenResult } from '@/utils/auth';\nimport { getUsernameFromToken } from '@/utils/token';\n\ntype AuthContextType = {\n appsServiceUrl: string;\n authResult?: { token: RefreshAccessTokenResult; logout: () => void };\n applications?: ApplicationDescriptions;\n getBannerProps: (props: Partial<BannerContentProps>) => BannerContentProps;\n};\n\nconst AuthContext = React.createContext<AuthContextType | undefined>(undefined);\nAuthContext.displayName = 'AuthContext';\n\nfunction AuthProvider({ appsServiceUrl, children }: { appsServiceUrl: string; children: React.ReactNode }) {\n const [authResult, setAuthResult] = React.useState<AuthContextType['authResult']>();\n const [applications, setApplications] = React.useState<ApplicationDescriptions | undefined>();\n\n const tokenChangeHandler = React.useCallback((token: RefreshAccessTokenResult) => {\n setAuthResult((value) => ({\n logout: value?.logout || (() => {}),\n token: { accessToken: token.accessToken, refreshToken: token.refreshToken },\n }));\n }, []);\n\n React.useEffect(() => {\n Promise.all([login(appsServiceUrl, tokenChangeHandler), getApplicationDescriptions(appsServiceUrl)]).then(\n ([result, applicationDescriptions]) => {\n Object.keys(applicationDescriptions).forEach((id) => {\n applicationDescriptions[id].logo = window.btoa(applicationDescriptions[id].logo);\n });\n setApplications(applicationDescriptions);\n setAuthResult(result);\n }\n );\n }, [appsServiceUrl, tokenChangeHandler]);\n\n const getBannerProps = React.useCallback(\n (props: Partial<BannerContentProps>) => {\n return {\n ...props,\n applications,\n username: getUsernameFromToken(authResult?.token.refreshToken),\n logout: authResult?.logout,\n refreshToken: authResult?.token.refreshToken,\n } as BannerContentProps;\n },\n [applications, authResult]\n );\n\n return (\n <AuthContext.Provider value={{ appsServiceUrl, authResult, applications, getBannerProps }}>\n {authResult && applications && children}\n </AuthContext.Provider>\n );\n}\n\nfunction useAuth() {\n const context = React.useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n}\n\nexport { AuthProvider, useAuth };\n"],"names":["extendStatics","d","b","p","__extends","__","__assign","s","i","n","__rest","e","t","__spreadArray","to","from","pack","l","ar","c","f","g","h","k","m","q","r","v","w","x","y","z","a","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","module","require$$0","require$$1","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","invariant","condition","message","Err","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","result","match","len","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","tokens","_i","stringTokens_1","stringToken","stemAndOptions","stem","options","_a","options_1","option","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","_","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","signDisplay","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","token","all","g3","g4","g5","conciseScientificAndEngineeringOpts","timeData","getBestPattern","locale","skeletonCopy","patternPos","patternChar","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycle","languageTag","regionTag","hourCycles","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","hasNativeFromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","hasTrimStart","hasTrimEnd","hasNativeIsSafeInteger","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","re","RE","startsWith","search","position","fromCodePoint","codePoints","elements","length","code","fromEntries","entries","obj","entries_1","codePointAt","index","size","first","second","trimStart","trimEnd","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","nestingLevel","parentArgType","expectingCloseTag","char","_isAlpha","startPosition","tagName","childrenResult","children","endTagStartPosition","closingTagNameStartPosition","closingTagName","startOffset","_isPotentialElementNameChar","value","parseQuoteResult","parseUnquotedResult","parseLeftAngleResult","location","_isAlphaOrSlash","ch","openingBracePosition","startingPosition","endOffset","endPosition","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","style","styleLocation","argCloseResult","location_1","dateTimePattern","typeEndPosition_1","identifierAndLocation","pluralOffset","optionsResult","location_2","nestedBraces","apostrophePosition","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","sign","hasDigits","decimal","offset","kind","prefix","pattern","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","parse","opts","error","memoize","fn","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","cacheKey","computedValue","variadic","args","assemble","context","serialize","strategyVariadic","strategyMonadic","ObjectWithoutPrototypeCache","key","strategies","ErrorCode","FormatError","_super","msg","originalMessage","_this","InvalidValueError","variableId","InvalidValueTypeError","MissingValueError","PART_TYPE","mergeLiteral","parts","part","lastPart","isFormatXMLElementFn","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","rule","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","IntlMessageFormat","overrideFormats","supportedLocales","IntlErrorCode","IntlError","exception","err","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","descriptor","MissingTranslationError","filterProps","props","allowlist","defaults","filtered","name","defaultErrorHandler","defaultWarnHandler","warning","DEFAULT_INTL_CONFIG","createIntlCache","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getNamedFormat","onError","formatType","format","setTimeZoneInOptions","timeZone","deepMergeOptions","opts1","opts2","keys","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","messages","defaultLocale","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","defaultMessage","id","formatter","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","formatDate","config","_b","date","formatTime","formatDateTimeRange","formatDateToParts","formatTimeToParts","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","LIST_FORMAT_OPTIONS","now","generateToken","formatList","getListFormat","results","formatListToParts","val","richValues_1","serializedValues","PLURAL_FORMAT_OPTIONS","formatPlural","RELATIVE_TIME_FORMAT_OPTIONS","getRelativeTimeFormat","formatRelativeTime","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","messagesContainString","firstMessage","verifyConfigMessages","createIntl","resolvedConfig","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","textComponent","React","assignUniqueKeysToParts","formatXMLElementFn","Children","toArray","shallowEqual","objA","objB","aKeys","Object","bKeys","prototype","hasOwnProperty","call","reactJsxRuntime_production_min","process","env","NODE_ENV","require","Symbol","for","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_len2","arguments","Array","_key2","printWarning","level","ReactDebugCurrentFrame","stack","getStackAddendum","concat","argsWithFormat","map","item","String","unshift","Function","apply","console","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","getModuleId","undefined","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","tag","provider","_context","render","outerName","lazyComponent","payload","_payload","init","_init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","log","info","warn","group","groupCollapsed","groupEnd","configurable","enumerable","writable","defineProperties","reenableLogs","ReactCurrentDispatcher","describeBuiltInComponentFrame","source","ownerFn","Error","trim","reentry","componentFrameCache","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","construct","frame","get","control","previousPrepareStackTrace","prepareStackTrace","previousDispatcher","current","Fake","defineProperty","set","Reflect","sample","sampleLines","split","controlLines","_frame","replace","includes","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","isReactComponent","describeUnknownElementTypeFrameInDEV","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","_owner","_source","setExtraStackFrame","checkPropTypes","typeSpecs","componentName","has","bind","typeSpecName","error$1","ex","isArrayImpl","isArray","typeName","hasToStringTag","toStringTag","constructor","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","ref","__self","__source","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","hasValidRef","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","stateNode","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","_store","freeze","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","fileName","lineNumber","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","parentName","validateExplicitKey","validated","currentComponentErrorInfo","childOwner","validateChildKeys","node","child","iteratorFn","step","next","done","validatePropTypes","propTypes","PropTypes","_name","getDefaultProps","isReactClassApproved","validateFragmentProps","fragment","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","exports","IntlContext","createContext","Consumer","IntlProvider","Provider","Context","useIntl","DisplayName","DisplayNameParts","createFormattedDateTimePartsComponent","ComponentParts","formatProps","Date","formattedParts","createFormattedComponent","formattedValue","Text","_jsx","processIntlConfig","onWarn","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","reduce","acc","rawValues","rest","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","$t","prevConfig","getDerivedStateFromProps","PureComponent","IntlProvider$1","clsx","requestInfoHeader","requestInfoFooter","buildRequestInfoMailSection","systemInfo","requestInfo","buildMailtoHref","subject","body","mailBody","FULLSIZE_MENU_KEY","isMenuOpen","setMenuStateInLocalStorage","isOpen","canUseDOM","window","document","createElement","composeEventHandlers","theirHandler","ourHandler","event","defaultPrevented","isBoolean","isFunction","toString","isString","assignRef","useComposedRefs","refs","useCallback","getOwnerDocument","ownerDocument","createContext2","rootComponentName","defaultContext","Ctx","useMemo","useContext2","callerComponentName","useContext","getDocumentDimensions","ownerWindow","defaultView","width","documentElement","clientWidth","innerWidth","height","clientHeight","innerHeight","isRightClick","nativeEvent","which","button","makeId","filter","join","noop","useForceUpdate","dispatch","useState2","create","useCallback3","useIsomorphicLayoutEffect","useLayoutEffect","useEffect4","usePrevious","useRef7","useEffect5","useStatefulRefValue","initialState","setState","useState3","callbackRef","useCallback5","refValue","PortalImpl","containerRef","mountNode","useRef","portalNode","forceUpdate","useEffect","appendChild","removeChild","createPortal","unstable_skipInitialRender","hydrated","setHydrated","useState","rectChanged","prop","observedNodes","rafId","run","changedStates","newRect","cb","observeRect","wasEmpty","useRect","nodeRef","observeOrOptions","deprecated_onChange","observe","onChange","setElement","initialRectIsSet","initialRefIsSet","rect","setRect","onChangeRef","elem","observer","rect2","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","getCandidates","includeContainer","candidates","getCandidatesIteratively","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","getTabindex","isScope","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","checked","isRadio","isNonTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","_ref","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","nodeRootHost","nodeIsAttached","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","tabIndex","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","Popover","forwardRef","unstable_skipInitialPortalRender","PopoverImpl","as","Comp","targetRef","positionDefault","unstable_observableRefs","forwardedRef","popoverRef","popoverRect","hidden","targetRect","useSimulateTabNavigationForReactTree","getStyles","visibility","getTopPosition","isDirectionUp","top","pageYOffset","directionRight","directionUp","getCollisions","left","right","pageXOffset","offsetLeft","offsetBottom","collisions","bottom","directionLeft","directionDown","triggerRef","handleKeyDown","shiftKey","shiftTabbedFromElementAfterTrigger","focusLastTabbableInPopover","shiftTabbedOutOfPopover","focusTriggerRef","shiftTabbedToBrowserChrome","disableTabbablesInPopover","tabbedFromTriggerToPopover","focusFirstPopoverTabbable","tabbedOutOfPopover","focusTabbableAfterTrigger","tabbedToBrowserChrome","addEventListener","removeEventListener","getElementAfterTrigger","targetIndex","indexOf","elementAfterTrigger","contains","activeElement","preventDefault","focus","Boolean","target","last","restoreTabIndexTuplés","forEach","push","enableTabbablesInPopover","serverHandoffComplete","genId","maybeReactUseId","useId","providedId","generatedId","initialId","id2","setId","createDescendantContext","initialValue","descendants","ctx","registerDescendant","useDescendant","descendant","indexProp","findIndex","useDescendantsInit","useDescendants","DescendantProvider","items","explicitIndex","items2","insertAt","find","updateIndices","findDOMIndex","newItems","useDescendantKeyDown","callback","currentIndex","orientation","rotate","rtl","selectableDescendants","selectableIndex","getNextOption","getLastOption","getFirstOption","getPreviousOption","prev","nextOrPrev","prevOrNext","prevOrFirst","ctrlKey","nextOrLast","isElementPreceding","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","currentElement","array","slice","sort","CLEAR_SELECTION_INDEX","CLICK_MENU_ITEM","CLOSE_MENU","OPEN_MENU_AT_FIRST_ITEM","OPEN_MENU_AT_INDEX","OPEN_MENU_CLEARED","SEARCH_FOR_ITEM","SELECT_ITEM_AT_INDEX","SET_BUTTON_ID","DropdownDescendantContext","DropdownProvider","useDropdownContext","triggerId","isExpanded","typeaheadQuery","selectionIndex","DropdownProvider_","dropdownRef","setDescendants","_id","dropdownId","useReducer","reducer","triggerClickedRef","selectCallbacks","readyToSelect","mouseDownStartPosRef","__REACH_DISABLE_TOOLTIPS","requestAnimationFrame","useDropdownTrigger","onKeyDown","onMouseDown","useDropdownDescendants","firstNonDisabledIndex","disabled","handleMouseDown","clientX","clientY","data","controls","DropdownTrigger","useDropdownItem","isLink","onClick","onDragStart","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onSelect","onFocus","valueText","valueTextProp","ownRef","setValueText","setValueTextFromDOM","textContent","mouseEventStarted","handleRefSet","isSelected","select","handleClick","handleDragStart","handleMouseEnter","doc","handleMouseLeave","handleMouseMove","threshold","deltaX","Math","abs","deltaY","handleFocus","handleMouseUp","click","setTimeout","clearTimeout","listener","useItemId","DropdownItem","useDropdownItems","findItemFromTypeahead","timeout","prevItemsLength","prevSelected","prevSelectionIndex","selected","query","toLowerCase","activeDescendant","DropdownItems","useDropdownPopover","onBlur","portal","popoverContainsEventTarget","currentTarget","relatedTarget","DropdownPopover","sharedProps","string","found","dataset","valuetext","popover","action","max","min","REACT_SERVER_CONTEXT_TYPE","SuspenseList","hasWarnedAboutDeprecatedIsConcurrentMode","isSuspenseList","Menu","MenuButton","MenuItemImpl","role","MenuItem","MenuItems","MenuLink","component","MenuList","MenuPopover","MenuContent","withMinWidth","className","AppSelector","applicationDescriptions","refreshToken","appDescriptionsWithToken","app","appDescription","url","_jsxs","Button","variant","colorScheme","compact","rounded","xmlns","viewBox","fill","fillRule","fillOpacity","href","alt","src","logo","AppTitle","VisuallyHidden","border","clip","margin","overflow","padding","whiteSpace","wordWrap","MOUSE_REST_TIMEOUT","LEAVE_TIMEOUT","chart","initial","states","enter","clearContextId","on","startRestTimer","leave","clearRestTimer","startLeavingVisibleTimer","clearLeavingVisibleTimer","subscriptions","subscribe","splice","notify","restTimeout","send","leavingVisibleTimer","useTooltip","idProp","onPointerEnter","onPointerMove","onPointerLeave","onPointerDown","DEBUG_STYLE","isVisible","setIsVisible","isTooltipVisible","triggerRect","useDisabledTriggerOnSafari","wrapMouseEvent","wrapPointerEventHandler","handler","pointerType","handleBlur","Tooltip","label","ariaLabel","DEPRECATED_ariaLabel","only","trigger","tooltip","_Fragment","cloneElement","TooltipPopup","forwardRef2","TooltipContent","realAriaLabel","positionTooltip","hasAriaLabel","tooltipRect","OFFSET_DEFAULT","windowWidth","windowHeight","closest","changed","transition","currentState","stateDef","nextState","nextStateValue","nextDef","computedLeft","scrollX","computedTop","scrollY","CustomTooltip","background","color","borderRadius","boxShadow","LANGUAGE_KEY","setCurrentLanguageInLocalStorage","newLanguage","getDefaultLanguage","languageLabels","en","fr","LanguageSelector","language","languages","onLanguageSelected","toUpperCase","transform","xlinkHref","lang","NotificationButton","count","opacity","strokeWidth","stroke","strokeLinecap","strokeLinejoin","UserProfileMenu","username","version","onLogout","cx","cy","clipPath","xcompDocumentationUrl","BannerContent","application","applications","notificationCount","onNotificationClick","onInstallationClick","onToggleMenuClick","onLanguageChange","logout","loginUrl","withMaxWith","showUpgrade","currentApplicationDescription","settingsAppName","settingsDescription","supportMail","applicationName","toggleMenuHandler","newMenuState","shortname","rel","getLocalizedResources","defaultLanguage","localeData","Banner","defaultAppIcon","getApplicationDescriptions","appsServiceUrl","response","apps","o","getUsernameFromToken","jwtTokenContent","jwt_decode","getTokenFromCurrentLocation","getParameterFromCurrentLocation","parameter","entry","splitEntry","keyValuePair","getToken","oneMinuteInSeconds","defaultTokenRefreshRate","isTokenStillValid","nowEpochInSeconds","getTokenRefreshTimeout","buildLangUrlParameter","login","onTokenChange","authenticationUrl","newToken","refreshAccessToken","startTokenAutoRefresh","currentToken","errorData","AuthContext","AuthProvider","authResult","setAuthResult","setApplications","tokenChangeHandler","accessToken","Promise","then","btoa","getBannerProps","useAuth"],"mappings":"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ACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,IAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL;AAAA,IACA;AAAA,I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"}
|