@govtechsg/sgds-web-component 1.1.0-rc.0 → 1.1.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/base/dropdown-element.cjs.js +0 -1
- package/base/dropdown-element.cjs.js.map +1 -1
- package/base/dropdown-element.d.ts +1 -2
- package/base/dropdown-element.js +0 -1
- package/base/dropdown-element.js.map +1 -1
- package/components/ActionCard/index.umd.js +3 -1
- package/components/ActionCard/index.umd.js.map +1 -1
- package/components/Button/index.umd.js +3 -1
- package/components/Button/index.umd.js.map +1 -1
- package/components/Checkbox/index.umd.js +3 -1
- package/components/Checkbox/index.umd.js.map +1 -1
- package/components/ComboBox/index.umd.js +43 -26
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/Datepicker/datepicker-calendar.cjs.js +29 -14
- package/components/Datepicker/datepicker-calendar.cjs.js.map +1 -1
- package/components/Datepicker/datepicker-calendar.js +29 -14
- package/components/Datepicker/datepicker-calendar.js.map +1 -1
- package/components/Datepicker/datepicker-header.cjs.js +35 -17
- package/components/Datepicker/datepicker-header.cjs.js.map +1 -1
- package/components/Datepicker/datepicker-header.d.ts +2 -0
- package/components/Datepicker/datepicker-header.js +35 -18
- package/components/Datepicker/datepicker-header.js.map +1 -1
- package/components/Datepicker/datepicker-input.cjs.js +150 -0
- package/components/Datepicker/datepicker-input.cjs.js.map +1 -0
- package/components/Datepicker/datepicker-input.d.ts +24 -0
- package/components/Datepicker/datepicker-input.js +141 -0
- package/components/Datepicker/datepicker-input.js.map +1 -0
- package/components/Datepicker/index.js.map +1 -1
- package/components/Datepicker/index.umd.js +16655 -7545
- package/components/Datepicker/index.umd.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.cjs.js +207 -150
- package/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.cjs2.js +1 -1
- package/components/Datepicker/sgds-datepicker.d.ts +38 -13
- package/components/Datepicker/sgds-datepicker.js +209 -152
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/Datepicker/sgds-datepicker2.js +1 -1
- package/components/Dropdown/index.umd.js +8 -3
- package/components/Dropdown/index.umd.js.map +1 -1
- package/components/Dropdown/sgds-dropdown.cjs.js +5 -1
- package/components/Dropdown/sgds-dropdown.cjs.js.map +1 -1
- package/components/Dropdown/sgds-dropdown.d.ts +4 -3
- package/components/Dropdown/sgds-dropdown.js +5 -1
- package/components/Dropdown/sgds-dropdown.js.map +1 -1
- package/components/FileUpload/index.umd.js +3 -1
- package/components/FileUpload/index.umd.js.map +1 -1
- package/components/Input/index.umd.js +43 -25
- package/components/Input/index.umd.js.map +1 -1
- package/components/Input/sgds-input.cjs.js +40 -24
- package/components/Input/sgds-input.cjs.js.map +1 -1
- package/components/Input/sgds-input.d.ts +15 -9
- package/components/Input/sgds-input.js +40 -24
- package/components/Input/sgds-input.js.map +1 -1
- package/components/Mainnav/index.umd.js +0 -1
- package/components/Mainnav/index.umd.js.map +1 -1
- package/components/QuantityToggle/index.umd.js +3 -1
- package/components/QuantityToggle/index.umd.js.map +1 -1
- package/components/Radio/index.umd.js +3 -1
- package/components/Radio/index.umd.js.map +1 -1
- package/components/Textarea/index.umd.js +3 -1
- package/components/Textarea/index.umd.js.map +1 -1
- package/components/index.umd.js +9905 -791
- package/components/index.umd.js.map +1 -1
- package/index.umd.js +9905 -791
- package/index.umd.js.map +1 -1
- package/package.json +2 -2
- package/react/datepicker/index.cjs.js +1 -2
- package/react/datepicker/index.cjs.js.map +1 -1
- package/react/datepicker/index.js +1 -2
- package/react/datepicker/index.js.map +1 -1
- package/utils/form.cjs.js +3 -1
- package/utils/form.cjs.js.map +1 -1
- package/utils/form.js +3 -1
- package/utils/form.js.map +1 -1
- package/utils/time.cjs.js +18 -4
- package/utils/time.cjs.js.map +1 -1
- package/utils/time.d.ts +17 -0
- package/utils/time.js +18 -4
- package/utils/time.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/@open-wc/dedupe-mixin/src/dedupeMixin.js","../../../node_modules/@lit/reactive-element/development/css-tag.js","../../../node_modules/@open-wc/scoped-elements/src/ScopedElementsMixin.js","../../../node_modules/@lit/reactive-element/development/reactive-element.js","../../../node_modules/lit-html/development/lit-html.js","../../../node_modules/lit-element/development/lit-element.js","../../../node_modules/@lit/reactive-element/development/decorators/property.js","../../../node_modules/@lit/reactive-element/development/decorators/state.js","../../../node_modules/@lit/reactive-element/development/decorators/base.js","../../../node_modules/@lit/reactive-element/development/decorators/query.js","../../../node_modules/@lit/reactive-element/development/decorators/query-async.js","../../../node_modules/@lit/reactive-element/development/decorators/query-assigned-elements.js","../../../node_modules/lit-html/development/directive.js","../../../node_modules/lit-html/development/directive-helpers.js","../../../node_modules/lit-html/development/directives/live.js","../../../node_modules/lit-html/development/async-directive.js","../../../node_modules/lit-html/development/directives/ref.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/popper-lite.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/bootstrap/js/src/util/index.js","../../../node_modules/bootstrap/js/src/dom/event-handler.js","../../../node_modules/bootstrap/js/src/dom/manipulator.js","../../../node_modules/bootstrap/js/src/dom/selector-engine.js","../../../node_modules/bootstrap/js/src/dom/data.js","../../../node_modules/bootstrap/js/src/base-component.js","../../../node_modules/bootstrap/js/src/dropdown.js","../../../src/utils/object.ts","../../../src/utils/mergeDeep.ts","../../../src/base/sgds-element.ts","../../../src/utils/generateId.ts","../../../src/base/dropdown-element.ts","../../../src/utils/watch.ts","../../../node_modules/lit-html/development/directives/class-map.js","../../../node_modules/lit-html/development/directives/if-defined.js","../../../node_modules/lit-html/development/directives/unsafe-html.js","../../../node_modules/lit-html/development/directives/unsafe-svg.js","../../../node_modules/lit-html/development/static.js","../../../src/utils/defaultvalue.ts","../../../src/utils/form.ts","../../../src/components/Input/sgds-input.ts","../../../node_modules/date-fns/toDate.mjs","../../../node_modules/date-fns/constructFrom.mjs","../../../node_modules/date-fns/endOfDay.mjs","../../../node_modules/date-fns/endOfMonth.mjs","../../../node_modules/date-fns/isLastDayOfMonth.mjs","../../../node_modules/date-fns/getDaysInMonth.mjs","../../../node_modules/date-fns/lastDayOfMonth.mjs","../../../src/utils/time.ts","../../../src/components/Datepicker/datepicker-calendar.ts","../../../src/components/Datepicker/datepicker-header.ts","../../../src/components/Datepicker/sgds-datepicker.ts","../../../src/components/Datepicker/index.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","const appliedClassMixins = new WeakMap();\n\n/** Vefify if the Mixin was previously applyed\n * @private\n * @param {function} mixin Mixin being applyed\n * @param {object} superClass Class receiving the new mixin\n * @returns {boolean}\n */\nfunction wasMixinPreviouslyApplied(mixin, superClass) {\n let klass = superClass;\n while (klass) {\n if (appliedClassMixins.get(klass) === mixin) {\n return true;\n }\n klass = Object.getPrototypeOf(klass);\n }\n return false;\n}\n\n/** Apply each mixin in the chain to make sure they are not applied more than once to the final class.\n * @export\n * @param {function} mixin Mixin to be applyed\n * @returns {object} Mixed class with mixin applied\n */\nexport function dedupeMixin(mixin) {\n return superClass => {\n if (wasMixinPreviouslyApplied(mixin, superClass)) {\n return superClass;\n }\n const mixedClass = mixin(superClass);\n appliedClassMixins.set(mixedClass, mixin);\n return mixedClass;\n };\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets = global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\nconst constructionToken = Symbol();\nconst cssTagCache = new WeakMap();\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n constructor(cssText, strings, safeToken) {\n // This property needs to remain unminified.\n this['_$cssResult$'] = true;\n if (safeToken !== constructionToken) {\n throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet() {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(this.cssText);\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n toString() {\n return this.cssText;\n }\n}\nconst textFromCSSResult = (value) => {\n // This property needs to remain unminified.\n if (value['_$cssResult$'] === true) {\n return value.cssText;\n }\n else if (typeof value === 'number') {\n return value;\n }\n else {\n throw new Error(`Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`);\n }\n};\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value) => new CSSResult(typeof value === 'string' ? value : String(value), undefined, constructionToken);\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (strings, ...values) => {\n const cssText = strings.length === 1\n ? strings[0]\n : values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n return new CSSResult(cssText, strings, constructionToken);\n};\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (renderRoot, styles) => {\n if (supportsAdoptingStyleSheets) {\n renderRoot.adoptedStyleSheets = styles.map((s) => s instanceof CSSStyleSheet ? s : s.styleSheet);\n }\n else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = global['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = s.cssText;\n renderRoot.appendChild(style);\n });\n }\n};\nconst cssResultFromStyleSheet = (sheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\nexport const getCompatibleStyle = supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s) => s\n : (s) => s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n//# sourceMappingURL=css-tag.js.map","import { dedupeMixin } from '@open-wc/dedupe-mixin';\nimport { adoptStyles } from '@lit/reactive-element/css-tag.js';\n\n/**\n * @typedef {import('./types').RenderOptions} RenderOptions\n * @typedef {import('./types').ScopedElementsMixin} ScopedElementsMixin\n * @typedef {import('./types').ScopedElementsHost} ScopedElementsHost\n * @typedef {import('./types').ScopedElementsMap} ScopedElementsMap\n * @typedef {import('@lit/reactive-element').CSSResultOrNative} CSSResultOrNative\n */\n\n// @ts-ignore\nconst supportsScopedRegistry = !!ShadowRoot.prototype.createElement;\n\n/**\n * @template {import('./types').Constructor<HTMLElement>} T\n * @param {T} superclass\n * @return {T & import('./types').Constructor<ScopedElementsHost>}\n */\nconst ScopedElementsMixinImplementation = superclass =>\n /** @type {ScopedElementsHost} */\n class ScopedElementsHost extends superclass {\n /**\n * Obtains the scoped elements definitions map if specified.\n *\n * @returns {ScopedElementsMap}\n */\n static get scopedElements() {\n return {};\n }\n\n /**\n * Obtains the ShadowRoot options.\n *\n * @type {ShadowRootInit}\n */\n static get shadowRootOptions() {\n return this.__shadowRootOptions;\n }\n\n /**\n * Set the shadowRoot options.\n *\n * @param {ShadowRootInit} value\n */\n static set shadowRootOptions(value) {\n this.__shadowRootOptions = value;\n }\n\n /**\n * Obtains the element styles.\n *\n * @returns {CSSResultOrNative[]}\n */\n static get elementStyles() {\n return this.__elementStyles;\n }\n\n static set elementStyles(styles) {\n this.__elementStyles = styles;\n }\n\n // either TS or ESLint will complain here\n // eslint-disable-next-line no-unused-vars\n constructor(..._args) {\n super();\n /** @type {RenderOptions} */\n this.renderOptions = this.renderOptions || undefined;\n }\n\n /**\n * Obtains the CustomElementRegistry associated to the ShadowRoot.\n *\n * @returns {CustomElementRegistry}\n */\n get registry() {\n // @ts-ignore\n return this.constructor.__registry;\n }\n\n /**\n * Set the CustomElementRegistry associated to the ShadowRoot\n *\n * @param {CustomElementRegistry} registry\n */\n set registry(registry) {\n // @ts-ignore\n this.constructor.__registry = registry;\n }\n\n createRenderRoot() {\n const { scopedElements, shadowRootOptions, elementStyles } =\n /** @type {typeof ScopedElementsHost} */ (this.constructor);\n\n const shouldCreateRegistry =\n !this.registry ||\n // @ts-ignore\n (this.registry === this.constructor.__registry &&\n !Object.prototype.hasOwnProperty.call(this.constructor, '__registry'));\n\n /**\n * Create a new registry if:\n * - the registry is not defined\n * - this class doesn't have its own registry *AND* has no shared registry\n */\n if (shouldCreateRegistry) {\n this.registry = supportsScopedRegistry ? new CustomElementRegistry() : customElements;\n for (const [tagName, klass] of Object.entries(scopedElements)) {\n this.defineScopedElement(tagName, klass);\n }\n }\n\n /** @type {ShadowRootInit} */\n const options = {\n mode: 'open',\n ...shadowRootOptions,\n customElements: this.registry,\n };\n\n const createdRoot = this.attachShadow(options);\n if (supportsScopedRegistry) {\n this.renderOptions.creationScope = createdRoot;\n }\n\n if (createdRoot instanceof ShadowRoot) {\n adoptStyles(createdRoot, elementStyles);\n this.renderOptions.renderBefore = this.renderOptions.renderBefore || createdRoot.firstChild;\n }\n\n return createdRoot;\n }\n\n createScopedElement(tagName) {\n const root = supportsScopedRegistry ? this.shadowRoot : document;\n // @ts-ignore polyfill to support createElement on shadowRoot is loaded\n return root.createElement(tagName);\n }\n\n /**\n * Defines a scoped element.\n *\n * @param {string} tagName\n * @param {typeof HTMLElement} klass\n */\n defineScopedElement(tagName, klass) {\n const registeredClass = this.registry.get(tagName);\n if (registeredClass && supportsScopedRegistry === false && registeredClass !== klass) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `You are trying to re-register the \"${tagName}\" custom element with a different class via ScopedElementsMixin.`,\n 'This is only possible with a CustomElementRegistry.',\n 'Your browser does not support this feature so you will need to load a polyfill for it.',\n 'Load \"@webcomponents/scoped-custom-element-registry\" before you register ANY web component to the global customElements registry.',\n 'e.g. add \"<script src=\"/node_modules/@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min.js\"></script>\" as your first script tag.',\n 'For more details you can visit https://open-wc.org/docs/development/scoped-elements/',\n ].join('\\n'),\n );\n }\n if (!registeredClass) {\n return this.registry.define(tagName, klass);\n }\n return this.registry.get(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n getScopedTagName(tagName) {\n // @ts-ignore\n return this.constructor.getScopedTagName(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n static getScopedTagName(tagName) {\n // @ts-ignore\n return this.__registry.get(tagName) ? tagName : undefined;\n }\n };\n\nexport const ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\nvar _e;\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\nimport { getCompatibleStyle, adoptStyles, } from './css-tag.js';\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\nexport * from './css-tag.js';\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\nif (NODE_MODE) {\n (_a = global.customElements) !== null && _a !== void 0 ? _a : (global.customElements = customElements);\n}\nconst DEV_MODE = true;\nlet requestUpdateThenable;\nlet issueWarning;\nconst trustedTypes = global\n .trustedTypes;\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? trustedTypes.emptyScript\n : '';\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_b = global.litIssuedWarnings) !== null && _b !== void 0 ? _b : (global.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n // Issue polyfill support warning.\n if (((_c = global.ShadyDOM) === null || _c === void 0 ? void 0 : _c.inUse) && polyfillSupport === undefined) {\n issueWarning('polyfill-support-missing', `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`);\n }\n requestUpdateThenable = (name) => ({\n then: (onfulfilled, _onrejected) => {\n issueWarning('request-update-promise', `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`);\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event) => {\n const shouldEmit = global\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(new CustomEvent('lit-debug', {\n detail: event,\n }));\n }\n : undefined;\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = (prop, _obj) => prop;\nexport const defaultConverter = {\n toAttribute(value, type) {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n fromAttribute(value, type) {\n let fromValue = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value);\n }\n catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual = (value, old) => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nexport class ReactiveElement\n// In the Node build, this `extends` clause will be substituted with\n// `(globalThis.HTMLElement ?? HTMLElement)`.\n//\n// This way, we will first prefer any global `HTMLElement` polyfill that the\n// user has assigned, and then fall back to the `HTMLElement` shim which has\n// been imported (see note at the top of this file about how this import is\n// generated by Rollup). Note that the `HTMLElement` variable has been\n// shadowed by this import, so it no longer refers to the global.\n extends HTMLElement {\n constructor() {\n super();\n this.__instanceProperties = new Map();\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n this.isUpdatePending = false;\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n this.hasUpdated = false;\n /**\n * Name of currently reflecting property\n */\n this.__reflectingProperty = null;\n this._initialize();\n }\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer) {\n var _a;\n this.finalize();\n ((_a = this._initializers) !== null && _a !== void 0 ? _a : (this._initializers = [])).push(initializer);\n }\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // note: piggy backing on this to ensure we're finalized.\n this.finalize();\n const attributes = [];\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.elementProperties.forEach((v, p) => {\n const attr = this.__attributeNameForProperty(p, v);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n attributes.push(attr);\n }\n });\n return attributes;\n }\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(name, options = defaultPropertyDeclaration) {\n var _a;\n // if this is a state property, force the attribute to false.\n if (options.state) {\n // Cast as any since this is readonly.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.attribute = false;\n }\n // Note, since this can be called by the `@property` decorator which\n // is called before `finalize`, we ensure finalization has been kicked off.\n this.finalize();\n this.elementProperties.set(name, options);\n // Do not generate an accessor if the prototype already has one, since\n // it would be lost otherwise and that would never be the user's intention;\n // Instead, we expect users to call `requestUpdate` themselves from\n // user-defined accessors. Note that if the super has an accessor we will\n // still overwrite it\n if (!options.noAccessor && !this.prototype.hasOwnProperty(name)) {\n const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n Object.defineProperty(this.prototype, name, descriptor);\n if (DEV_MODE) {\n // If this class doesn't have its own set, create one and initialize\n // with the values in the set from the nearest ancestor class, if any.\n if (!this.hasOwnProperty('__reactivePropertyKeys')) {\n this.__reactivePropertyKeys = new Set((_a = this.__reactivePropertyKeys) !== null && _a !== void 0 ? _a : []);\n }\n this.__reactivePropertyKeys.add(name);\n }\n }\n }\n }\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static getPropertyDescriptor(name, key, options) {\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get() {\n return this[key];\n },\n set(value) {\n const oldValue = this[name];\n this[key] = value;\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name) {\n return this.elementProperties.get(name) || defaultPropertyDeclaration;\n }\n /**\n * Creates property accessors for registered properties, sets up element\n * styling, and ensures any superclasses are also finalized. Returns true if\n * the element was finalized.\n * @nocollapse\n */\n static finalize() {\n if (this.hasOwnProperty(finalized)) {\n return false;\n }\n this[finalized] = true;\n // finalize any superclasses\n const superCtor = Object.getPrototypeOf(this);\n superCtor.finalize();\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n this.elementProperties = new Map(superCtor.elementProperties);\n // initialize Map populated in observedAttributes\n this.__attributeToPropertyMap = new Map();\n // make any properties\n // Note, only process \"own\" properties since this element will inherit\n // any properties defined on the superClass, and finalization ensures\n // the entire prototype chain is finalized.\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n // support symbols in properties (IE11 does not support this)\n const propKeys = [\n ...Object.getOwnPropertyNames(props),\n ...Object.getOwnPropertySymbols(props),\n ];\n // This for/of is ok because propKeys is an array\n for (const p of propKeys) {\n // note, use of `any` is due to TypeScript lack of support for symbol in\n // index types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.createProperty(p, props[p]);\n }\n }\n this.elementStyles = this.finalizeStyles(this.styles);\n // DEV mode warnings\n if (DEV_MODE) {\n const warnRemovedOrRenamed = (name, renamed = false) => {\n if (this.prototype.hasOwnProperty(name)) {\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${this.name}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed('initialize');\n warnRemovedOrRenamed('requestUpdateInternal');\n warnRemovedOrRenamed('_getUpdateComplete', true);\n }\n return true;\n }\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n static finalizeStyles(styles) {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array<unknown> works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set(styles.flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s));\n }\n }\n else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n static __attributeNameForProperty(name, options) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n *\n * @internal\n */\n _initialize() {\n var _a;\n this.__updatePromise = new Promise((res) => (this.enableUpdating = res));\n this._$changedProperties = new Map();\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (_a = this.constructor._initializers) === null || _a === void 0 ? void 0 : _a.forEach((i) => i(this));\n }\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller) {\n var _a, _b;\n ((_a = this.__controllers) !== null && _a !== void 0 ? _a : (this.__controllers = [])).push(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n (_b = controller.hostConnected) === null || _b === void 0 ? void 0 : _b.call(controller);\n }\n }\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller) {\n var _a;\n // Note, if the indexOf is -1, the >>> will flip the sign which makes the\n // splice do nothing.\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.splice(this.__controllers.indexOf(controller) >>> 0, 1);\n }\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n * (<=41), properties created for native platform properties like (`id` or\n * `name`) may not have default values set in the element constructor. On\n * these browsers native properties appear on instances and therefore their\n * default value will overwrite any element default (e.g. if the element sets\n * this.id = 'id' in the constructor, the 'id' will become '' since this is\n * the native platform default).\n */\n __saveInstanceProperties() {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.constructor.elementProperties.forEach((_v, p) => {\n if (this.hasOwnProperty(p)) {\n this.__instanceProperties.set(p, this[p]);\n delete this[p];\n }\n });\n }\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n const renderRoot = (_a = this.shadowRoot) !== null && _a !== void 0 ? _a : this.attachShadow(this.constructor.shadowRootOptions);\n adoptStyles(renderRoot, this.constructor.elementStyles);\n return renderRoot;\n }\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n // create renderRoot before first update.\n if (this.renderRoot === undefined) {\n this.renderRoot = this.createRenderRoot();\n }\n this.enableUpdating(true);\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostConnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n enableUpdating(_requestedUpdate) { }\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostDisconnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [using the lifecycle callbacks](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(name, _old, value) {\n this._$attributeToProperty(name, value);\n }\n __propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n var _a;\n const attr = this.constructor.__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter = ((_a = options.converter) === null || _a === void 0 ? void 0 : _a.toAttribute) !==\n undefined\n ? options.converter\n : defaultConverter;\n const attrValue = converter.toAttribute(value, options.type);\n if (DEV_MODE &&\n this.constructor.enabledWarnings.indexOf('migration') >= 0 &&\n attrValue === undefined) {\n issueWarning('undefined-attribute-value', `The attribute value for the ${name} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`);\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n }\n else {\n this.setAttribute(attr, attrValue);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /** @internal */\n _$attributeToProperty(name, value) {\n var _a;\n const ctor = this.constructor;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = ctor.__attributeToPropertyMap.get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter = typeof options.converter === 'function'\n ? { fromAttribute: options.converter }\n : ((_a = options.converter) === null || _a === void 0 ? void 0 : _a.fromAttribute) !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n this[propName] = converter.fromAttribute(value, options.type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @category updates\n */\n requestUpdate(name, oldValue, options) {\n let shouldRequestUpdate = true;\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n options =\n options ||\n this.constructor.getPropertyOptions(name);\n const hasChanged = options.hasChanged || notEqual;\n if (hasChanged(this[name], oldValue)) {\n if (!this._$changedProperties.has(name)) {\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `_reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (options.reflect === true && this.__reflectingProperty !== name) {\n if (this.__reflectingProperties === undefined) {\n this.__reflectingProperties = new Map();\n }\n this.__reflectingProperties.set(name, options);\n }\n }\n else {\n // Abort the request if the property should not be considered changed.\n shouldRequestUpdate = false;\n }\n }\n if (!this.isUpdatePending && shouldRequestUpdate) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n // Note, since this no longer returns a promise, in dev mode we return a\n // thenable which warns if it's called.\n return DEV_MODE\n ? requestUpdateThenable(this.localName)\n : undefined;\n }\n /**\n * Sets up the element to asynchronously update.\n */\n async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n }\n catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise<unknown> {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n scheduleUpdate() {\n return this.performUpdate();\n }\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * Note: To ensure `performUpdate()` synchronously completes a pending update,\n * it should not be overridden. In LitElement 2.x it was suggested to override\n * `performUpdate()` to also customizing update scheduling. Instead, you should now\n * override `scheduleUpdate()`. For backwards compatibility with LitElement 2.x,\n * scheduling updates via `performUpdate()` continues to work, but will make\n * also calling `performUpdate()` to synchronously process updates difficult.\n *\n * @category updates\n */\n performUpdate() {\n var _a, _b;\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({ kind: 'update' });\n // create renderRoot before first update.\n if (!this.hasUpdated) {\n // Produce warning if any class properties are shadowed by class fields\n if (DEV_MODE) {\n const shadowedProperties = [];\n (_a = this.constructor.__reactivePropertyKeys) === null || _a === void 0 ? void 0 : _a.forEach((p) => {\n var _a;\n if (this.hasOwnProperty(p) && !((_a = this.__instanceProperties) === null || _a === void 0 ? void 0 : _a.has(p))) {\n shadowedProperties.push(p);\n }\n });\n if (shadowedProperties.length) {\n throw new Error(`The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`);\n }\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.__instanceProperties.forEach((v, p) => (this[p] = v));\n this.__instanceProperties = undefined;\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n (_b = this.__controllers) === null || _b === void 0 ? void 0 : _b.forEach((c) => { var _a; return (_a = c.hostUpdate) === null || _a === void 0 ? void 0 : _a.call(c); });\n this.update(changedProperties);\n }\n else {\n this.__markUpdated();\n }\n }\n catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n willUpdate(_changedProperties) { }\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties) {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostUpdated) === null || _a === void 0 ? void 0 : _a.call(c); });\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (DEV_MODE &&\n this.isUpdatePending &&\n this.constructor.enabledWarnings.indexOf('change-in-update') >= 0) {\n issueWarning('change-in-update', `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`);\n }\n }\n __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete() {\n return this.getUpdateComplete();\n }\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n getUpdateComplete() {\n return this.__updatePromise;\n }\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n shouldUpdate(_changedProperties) {\n return true;\n }\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n update(_changedProperties) {\n if (this.__reflectingProperties !== undefined) {\n // Use forEach so this works even if for/of loops are compiled to for\n // loops expecting arrays\n this.__reflectingProperties.forEach((v, k) => this.__propertyToAttribute(k, this[k], v));\n this.__reflectingProperties = undefined;\n }\n this.__markUpdated();\n }\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n updated(_changedProperties) { }\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n firstUpdated(_changedProperties) { }\n}\n_e = finalized;\n/**\n * Marks class as having finished creating properties.\n */\nReactiveElement[_e] = true;\n/**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\nReactiveElement.elementProperties = new Map();\n/**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\nReactiveElement.elementStyles = [];\n/**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\nReactiveElement.shadowRootOptions = { mode: 'open' };\n// Apply polyfills if available\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport({ ReactiveElement });\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = ['change-in-update'];\n const ensureOwnWarnings = function (ctor) {\n if (!ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))) {\n ctor.enabledWarnings = ctor.enabledWarnings.slice();\n }\n };\n ReactiveElement.enableWarning = function (warning) {\n ensureOwnWarnings(this);\n if (this.enabledWarnings.indexOf(warning) < 0) {\n this.enabledWarnings.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (warning) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings.splice(i, 1);\n }\n };\n}\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n((_d = global.reactiveElementVersions) !== null && _d !== void 0 ? _d : (global.reactiveElementVersions = [])).push('1.6.2');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=reactive-element.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n// Use window for browser builds because IE11 doesn't have globalThis.\nconst global = NODE_MODE ? globalThis : window;\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event) => {\n const shouldEmit = global\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(new CustomEvent('lit-debug', {\n detail: event,\n }));\n }\n : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\nlet issueWarning;\nif (DEV_MODE) {\n (_a = global.litIssuedWarnings) !== null && _a !== void 0 ? _a : (global.litIssuedWarnings = new Set());\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (!global.litIssuedWarnings.has(warning)) {\n console.warn(warning);\n global.litIssuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n}\nconst wrap = ENABLE_SHADYDOM_NOPATCH &&\n ((_b = global.ShadyDOM) === null || _b === void 0 ? void 0 : _b.inUse) &&\n ((_c = global.ShadyDOM) === null || _c === void 0 ? void 0 : _c.noPatch) === true\n ? global.ShadyDOM.wrap\n : (node) => node;\nconst trustedTypes = global.trustedTypes;\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\nconst identityFunction = (value) => value;\nconst noopSanitizer = (_node, _name, _type) => identityFunction;\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(`Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`);\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\nconst createSanitizer = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${String(Math.random()).slice(9)}$`;\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\nconst d = NODE_MODE && global.document === undefined\n ? {\n createTreeWalker() {\n return {};\n },\n }\n : document;\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\nconst isPrimitive = (value) => value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value) => isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (value === null || value === void 0 ? void 0 : value[Symbol.iterator]) === 'function';\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with <!--, like </{, can be ended by a single `>`\n */\nconst comment2EndRegex = />/g;\n/**\n * The tagEnd regex matches the end of the \"inside an opening\" tag syntax\n * position. It either matches a `>`, an attribute-like sequence, or the end\n * of the string after a space (attribute-name position ending).\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\t\\n\\f\\r\" are HTML space characters:\n * https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * So an attribute is:\n * * The name: any character except a whitespace character, (\"), ('), \">\",\n * \"=\", or \"/\". Note: this is different from the HTML spec which also excludes control characters.\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nconst tagEndRegex = new RegExp(`>|${SPACE_CHAR}(?:(${NAME_CHAR}+)(${SPACE_CHAR}*=${SPACE_CHAR}*(?:${ATTR_VALUE_CHAR}|(\"|')|))|$)`, 'g');\nconst ENTIRE_MATCH = 0;\nconst ATTRIBUTE_NAME = 1;\nconst SPACES_AND_EQUALS = 2;\nconst QUOTE_CHAR = 3;\nconst singleQuoteAttrEndRegex = /'/g;\nconst doubleQuoteAttrEndRegex = /\"/g;\n/**\n * Matches the raw text elements.\n *\n * Comments are not parsed within raw text elements, so we need to search their\n * text content for marker strings.\n */\nconst rawTextElement = /^(?:script|style|textarea|title)$/i;\n/** TemplateResult types */\nconst HTML_RESULT = 1;\nconst SVG_RESULT = 2;\n// TemplatePart types\n// IMPORTANT: these must match the values in PartType\nconst ATTRIBUTE_PART = 1;\nconst CHILD_PART = 2;\nconst PROPERTY_PART = 3;\nconst BOOLEAN_ATTRIBUTE_PART = 4;\nconst EVENT_PART = 5;\nconst ELEMENT_PART = 6;\nconst COMMENT_PART = 7;\n/**\n * Generates a template literal tag function that returns a TemplateResult with\n * the given result type.\n */\nconst tag = (type) => (strings, ...values) => {\n // Warn against templates octal escape sequences\n // We do this here rather than in render so that the warning is closer to the\n // template definition.\n if (DEV_MODE && strings.some((s) => s === undefined)) {\n console.warn('Some template strings are undefined.\\n' +\n 'This is probably caused by illegal octal escape sequences.');\n }\n return {\n // This property needs to remain unminified.\n ['_$litType$']: type,\n strings,\n values,\n };\n};\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const header = (title: string) => html`<h1>${title}</h1>`;\n * ```\n *\n * The `html` tag returns a description of the DOM to render as a value. It is\n * lazy, meaning no work is done until the template is rendered. When rendering,\n * if a template comes from the same expression as a previously rendered result,\n * it's efficiently updated instead of replaced.\n */\nexport const html = tag(HTML_RESULT);\n/**\n * Interprets a template literal as an SVG fragment that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const rect = svg`<rect width=\"10\" height=\"10\"></rect>`;\n *\n * const myImage = html`\n * <svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n * ${rect}\n * </svg>`;\n * ```\n *\n * The `svg` *tag function* should only be used for SVG fragments, or elements\n * that would be contained **inside** an `<svg>` HTML element. A common error is\n * placing an `<svg>` *element* in a template tagged with the `svg` tag\n * function. The `<svg>` element is an HTML element and should be used within a\n * template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an SVG fragment from the\n * `render()` method, as the SVG fragment will be contained within the element's\n * shadow root and thus cannot be used within an `<svg>` HTML element.\n */\nexport const svg = tag(SVG_RESULT);\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = Symbol.for('lit-noChange');\n/**\n * A sentinel value that signals a ChildPart to fully clear its content.\n *\n * ```ts\n * const button = html`${\n * user.isAdmin\n * ? html`<button>DELETE</button>`\n * : nothing\n * }`;\n * ```\n *\n * Prefer using `nothing` over other falsy values as it provides a consistent\n * behavior between various expression binding contexts.\n *\n * In child expressions, `undefined`, `null`, `''`, and `nothing` all behave the\n * same and render no nodes. In attribute expressions, `nothing` _removes_ the\n * attribute, while `undefined` and `null` will render an empty string. In\n * property expressions `nothing` becomes `undefined`.\n */\nexport const nothing = Symbol.for('lit-nothing');\n/**\n * The cache of prepared templates, keyed by the tagged TemplateStringsArray\n * and _not_ accounting for the specific template tag used. This means that\n * template tags cannot be dynamic - the must statically be one of html, svg,\n * or attr. This restriction simplifies the cache lookup, which is on the hot\n * path for rendering.\n */\nconst templateCache = new WeakMap();\nconst walker = d.createTreeWalker(d, 129 /* NodeFilter.SHOW_{ELEMENT|COMMENT} */, null, false);\nlet sanitizerFactoryInternal = noopSanitizer;\nfunction trustFromTemplateString(tsa, stringFromTSA) {\n // A security check to prevent spoofing of Lit template results.\n // In the future, we may be able to replace this with Array.isTemplateObject,\n // though we might need to make that check inside of the html and svg\n // functions, because precompiled templates don't come in as\n // TemplateStringArray objects.\n if (!Array.isArray(tsa) || !tsa.hasOwnProperty('raw')) {\n let message = 'invalid template strings array';\n if (DEV_MODE) {\n message = `\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `\n .trim()\n .replace(/\\n */g, '\\n');\n }\n throw new Error(message);\n }\n return policy !== undefined\n ? policy.createHTML(stringFromTSA)\n : stringFromTSA;\n}\n/**\n * Returns an HTML string for the given TemplateStringsArray and result type\n * (HTML or SVG), along with the case-sensitive bound attribute names in\n * template order. The HTML contains comment markers denoting the `ChildPart`s\n * and suffixes on bound attributes denoting the `AttributeParts`.\n *\n * @param strings template strings array\n * @param type HTML or SVG\n * @return Array containing `[html, attrNames]` (array returned for terseness,\n * to avoid object fields since this code is shared with non-minified SSR\n * code)\n */\nconst getTemplateHtml = (strings, type) => {\n // Insert makers into the template HTML to represent the position of\n // bindings. The following code scans the template strings to determine the\n // syntactic position of the bindings. They can be in text position, where\n // we insert an HTML comment, attribute value position, where we insert a\n // sentinel string and re-write the attribute name, or inside a tag where\n // we insert the sentinel string.\n const l = strings.length - 1;\n // Stores the case-sensitive bound attribute names in the order of their\n // parts. ElementParts are also reflected in this array as undefined\n // rather than a string, to disambiguate from attribute bindings.\n const attrNames = [];\n let html = type === SVG_RESULT ? '<svg>' : '';\n // When we're inside a raw text tag (not it's text content), the regex\n // will still be tagRegex so we can find attributes, but will switch to\n // this regex when the tag ends.\n let rawTextEndRegex;\n // The current parsing state, represented as a reference to one of the\n // regexes\n let regex = textEndRegex;\n for (let i = 0; i < l; i++) {\n const s = strings[i];\n // The index of the end of the last attribute name. When this is\n // positive at end of a string, it means we're in an attribute value\n // position and need to rewrite the attribute name.\n // We also use a special value of -2 to indicate that we encountered\n // the end of a string in attribute name position.\n let attrNameEndIndex = -1;\n let attrName;\n let lastIndex = 0;\n let match;\n // The conditions in this loop handle the current parse state, and the\n // assignments to the `regex` variable are the state transitions.\n while (lastIndex < s.length) {\n // Make sure we start searching from where we previously left off\n regex.lastIndex = lastIndex;\n match = regex.exec(s);\n if (match === null) {\n break;\n }\n lastIndex = regex.lastIndex;\n if (regex === textEndRegex) {\n if (match[COMMENT_START] === '!--') {\n regex = commentEndRegex;\n }\n else if (match[COMMENT_START] !== undefined) {\n // We started a weird comment, like </{\n regex = comment2EndRegex;\n }\n else if (match[TAG_NAME] !== undefined) {\n if (rawTextElement.test(match[TAG_NAME])) {\n // Record if we encounter a raw-text element. We'll switch to\n // this regex at the end of the tag.\n rawTextEndRegex = new RegExp(`</${match[TAG_NAME]}`, 'g');\n }\n regex = tagEndRegex;\n }\n else if (match[DYNAMIC_TAG_NAME] !== undefined) {\n if (DEV_MODE) {\n throw new Error('Bindings in tag names are not supported. Please use static templates instead. ' +\n 'See https://lit.dev/docs/templates/expressions/#static-expressions');\n }\n regex = tagEndRegex;\n }\n }\n else if (regex === tagEndRegex) {\n if (match[ENTIRE_MATCH] === '>') {\n // End of a tag. If we had started a raw-text element, use that\n // regex\n regex = rawTextEndRegex !== null && rawTextEndRegex !== void 0 ? rawTextEndRegex : textEndRegex;\n // We may be ending an unquoted attribute value, so make sure we\n // clear any pending attrNameEndIndex\n attrNameEndIndex = -1;\n }\n else if (match[ATTRIBUTE_NAME] === undefined) {\n // Attribute name position\n attrNameEndIndex = -2;\n }\n else {\n attrNameEndIndex = regex.lastIndex - match[SPACES_AND_EQUALS].length;\n attrName = match[ATTRIBUTE_NAME];\n regex =\n match[QUOTE_CHAR] === undefined\n ? tagEndRegex\n : match[QUOTE_CHAR] === '\"'\n ? doubleQuoteAttrEndRegex\n : singleQuoteAttrEndRegex;\n }\n }\n else if (regex === doubleQuoteAttrEndRegex ||\n regex === singleQuoteAttrEndRegex) {\n regex = tagEndRegex;\n }\n else if (regex === commentEndRegex || regex === comment2EndRegex) {\n regex = textEndRegex;\n }\n else {\n // Not one of the five state regexes, so it must be the dynamically\n // created raw text regex and we're at the close of that element.\n regex = tagEndRegex;\n rawTextEndRegex = undefined;\n }\n }\n if (DEV_MODE) {\n // If we have a attrNameEndIndex, which indicates that we should\n // rewrite the attribute name, assert that we're in a valid attribute\n // position - either in a tag, or a quoted attribute value.\n console.assert(attrNameEndIndex === -1 ||\n regex === tagEndRegex ||\n regex === singleQuoteAttrEndRegex ||\n regex === doubleQuoteAttrEndRegex, 'unexpected parse state B');\n }\n // We have four cases:\n // 1. We're in text position, and not in a raw text element\n // (regex === textEndRegex): insert a comment marker.\n // 2. We have a non-negative attrNameEndIndex which means we need to\n // rewrite the attribute name to add a bound attribute suffix.\n // 3. We're at the non-first binding in a multi-binding attribute, use a\n // plain marker.\n // 4. We're somewhere else inside the tag. If we're in attribute name\n // position (attrNameEndIndex === -2), add a sequential suffix to\n // generate a unique attribute name.\n // Detect a binding next to self-closing tag end and insert a space to\n // separate the marker from the tag end:\n const end = regex === tagEndRegex && strings[i + 1].startsWith('/>') ? ' ' : '';\n html +=\n regex === textEndRegex\n ? s + nodeMarker\n : attrNameEndIndex >= 0\n ? (attrNames.push(attrName),\n s.slice(0, attrNameEndIndex) +\n boundAttributeSuffix +\n s.slice(attrNameEndIndex)) +\n marker +\n end\n : s +\n marker +\n (attrNameEndIndex === -2 ? (attrNames.push(undefined), i) : end);\n }\n const htmlResult = html + (strings[l] || '<?>') + (type === SVG_RESULT ? '</svg>' : '');\n // Returned as an array for terseness\n return [trustFromTemplateString(strings, htmlResult), attrNames];\n};\nclass Template {\n constructor(\n // This property needs to remain unminified.\n { strings, ['_$litType$']: type }, options) {\n this.parts = [];\n let node;\n let nodeIndex = 0;\n let attrNameIndex = 0;\n const partCount = strings.length - 1;\n const parts = this.parts;\n // Create template element\n const [html, attrNames] = getTemplateHtml(strings, type);\n this.el = Template.createElement(html, options);\n walker.currentNode = this.el.content;\n // Reparent SVG nodes into template root\n if (type === SVG_RESULT) {\n const content = this.el.content;\n const svgElement = content.firstChild;\n svgElement.remove();\n content.append(...svgElement.childNodes);\n }\n // Walk the template to find binding markers and create TemplateParts\n while ((node = walker.nextNode()) !== null && parts.length < partCount) {\n if (node.nodeType === 1) {\n if (DEV_MODE) {\n const tag = node.localName;\n // Warn if `textarea` includes an expression and throw if `template`\n // does since these are not supported. We do this by checking\n // innerHTML for anything that looks like a marker. This catches\n // cases like bindings in textarea there markers turn into text nodes.\n if (/^(?:textarea|template)$/i.test(tag) &&\n node.innerHTML.includes(marker)) {\n const m = `Expressions are not supported inside \\`${tag}\\` ` +\n `elements. See https://lit.dev/msg/expression-in-${tag} for more ` +\n `information.`;\n if (tag === 'template') {\n throw new Error(m);\n }\n else\n issueWarning('', m);\n }\n }\n // TODO (justinfagnani): for attempted dynamic tag names, we don't\n // increment the bindingIndex, and it'll be off by 1 in the element\n // and off by two after it.\n if (node.hasAttributes()) {\n // We defer removing bound attributes because on IE we might not be\n // iterating attributes in their template order, and would sometimes\n // remove an attribute that we still need to create a part for.\n const attrsToRemove = [];\n for (const name of node.getAttributeNames()) {\n // `name` is the name of the attribute we're iterating over, but not\n // _necessarily_ the name of the attribute we will create a part\n // for. They can be different in browsers that don't iterate on\n // attributes in source order. In that case the attrNames array\n // contains the attribute name we'll process next. We only need the\n // attribute name here to know if we should process a bound attribute\n // on this element.\n if (name.endsWith(boundAttributeSuffix) ||\n name.startsWith(marker)) {\n const realName = attrNames[attrNameIndex++];\n attrsToRemove.push(name);\n if (realName !== undefined) {\n // Lowercase for case-sensitive SVG attributes like viewBox\n const value = node.getAttribute(realName.toLowerCase() + boundAttributeSuffix);\n const statics = value.split(marker);\n const m = /([.?@])?(.*)/.exec(realName);\n parts.push({\n type: ATTRIBUTE_PART,\n index: nodeIndex,\n name: m[2],\n strings: statics,\n ctor: m[1] === '.'\n ? PropertyPart\n : m[1] === '?'\n ? BooleanAttributePart\n : m[1] === '@'\n ? EventPart\n : AttributePart,\n });\n }\n else {\n parts.push({\n type: ELEMENT_PART,\n index: nodeIndex,\n });\n }\n }\n }\n for (const name of attrsToRemove) {\n node.removeAttribute(name);\n }\n }\n // TODO (justinfagnani): benchmark the regex against testing for each\n // of the 3 raw text element names.\n if (rawTextElement.test(node.tagName)) {\n // For raw text elements we need to split the text content on\n // markers, create a Text node for each segment, and create\n // a TemplatePart for each marker.\n const strings = node.textContent.split(marker);\n const lastIndex = strings.length - 1;\n if (lastIndex > 0) {\n node.textContent = trustedTypes\n ? trustedTypes.emptyScript\n : '';\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n // We can't use empty text nodes as markers because they're\n // normalized when cloning in IE (could simplify when\n // IE is no longer supported)\n for (let i = 0; i < lastIndex; i++) {\n node.append(strings[i], createMarker());\n // Walk past the marker node we just added\n walker.nextNode();\n parts.push({ type: CHILD_PART, index: ++nodeIndex });\n }\n // Note because this marker is added after the walker's current\n // node, it will be walked to in the outer loop (and ignored), so\n // we don't need to adjust nodeIndex here\n node.append(strings[lastIndex], createMarker());\n }\n }\n }\n else if (node.nodeType === 8) {\n const data = node.data;\n if (data === markerMatch) {\n parts.push({ type: CHILD_PART, index: nodeIndex });\n }\n else {\n let i = -1;\n while ((i = node.data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n parts.push({ type: COMMENT_PART, index: nodeIndex });\n // Move to the end of the match\n i += marker.length - 1;\n }\n }\n }\n nodeIndex++;\n }\n // We could set walker.currentNode to another node here to prevent a memory\n // leak, but every time we prepare a template, we immediately render it\n // and re-use the walker in new TemplateInstance._clone().\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template prep',\n template: this,\n clonableTemplate: this.el,\n parts: this.parts,\n strings,\n });\n }\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @nocollapse */\n static createElement(html, _options) {\n const el = d.createElement('template');\n el.innerHTML = html;\n return el;\n }\n}\nfunction resolveDirective(part, value, parent = part, attributeIndex) {\n var _a, _b, _c;\n var _d;\n // Bail early if the value is explicitly noChange. Note, this means any\n // nested directive is still attached and is not run.\n if (value === noChange) {\n return value;\n }\n let currentDirective = attributeIndex !== undefined\n ? (_a = parent.__directives) === null || _a === void 0 ? void 0 : _a[attributeIndex]\n : parent.__directive;\n const nextDirectiveConstructor = isPrimitive(value)\n ? undefined\n : // This property needs to remain unminified.\n value['_$litDirective$'];\n if ((currentDirective === null || currentDirective === void 0 ? void 0 : currentDirective.constructor) !== nextDirectiveConstructor) {\n // This property needs to remain unminified.\n (_b = currentDirective === null || currentDirective === void 0 ? void 0 : currentDirective['_$notifyDirectiveConnectionChanged']) === null || _b === void 0 ? void 0 : _b.call(currentDirective, false);\n if (nextDirectiveConstructor === undefined) {\n currentDirective = undefined;\n }\n else {\n currentDirective = new nextDirectiveConstructor(part);\n currentDirective._$initialize(part, parent, attributeIndex);\n }\n if (attributeIndex !== undefined) {\n ((_c = (_d = parent).__directives) !== null && _c !== void 0 ? _c : (_d.__directives = []))[attributeIndex] =\n currentDirective;\n }\n else {\n parent.__directive = currentDirective;\n }\n }\n if (currentDirective !== undefined) {\n value = resolveDirective(part, currentDirective._$resolve(part, value.values), currentDirective, attributeIndex);\n }\n return value;\n}\n/**\n * An updateable instance of a Template. Holds references to the Parts used to\n * update the template instance.\n */\nclass TemplateInstance {\n constructor(template, parent) {\n this._$parts = [];\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$template = template;\n this._$parent = parent;\n }\n // Called by ChildPart parentNode getter\n get parentNode() {\n return this._$parent.parentNode;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n // This method is separate from the constructor because we need to return a\n // DocumentFragment and we don't want to hold onto it with an instance field.\n _clone(options) {\n var _a;\n const { el: { content }, parts: parts, } = this._$template;\n const fragment = ((_a = options === null || options === void 0 ? void 0 : options.creationScope) !== null && _a !== void 0 ? _a : d).importNode(content, true);\n walker.currentNode = fragment;\n let node = walker.nextNode();\n let nodeIndex = 0;\n let partIndex = 0;\n let templatePart = parts[0];\n while (templatePart !== undefined) {\n if (nodeIndex === templatePart.index) {\n let part;\n if (templatePart.type === CHILD_PART) {\n part = new ChildPart(node, node.nextSibling, this, options);\n }\n else if (templatePart.type === ATTRIBUTE_PART) {\n part = new templatePart.ctor(node, templatePart.name, templatePart.strings, this, options);\n }\n else if (templatePart.type === ELEMENT_PART) {\n part = new ElementPart(node, this, options);\n }\n this._$parts.push(part);\n templatePart = parts[++partIndex];\n }\n if (nodeIndex !== (templatePart === null || templatePart === void 0 ? void 0 : templatePart.index)) {\n node = walker.nextNode();\n nodeIndex++;\n }\n }\n // We need to set the currentNode away from the cloned tree so that we\n // don't hold onto the tree even if the tree is detached and should be\n // freed.\n walker.currentNode = d;\n return fragment;\n }\n _update(values) {\n let i = 0;\n for (const part of this._$parts) {\n if (part !== undefined) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'set part',\n part,\n value: values[i],\n valueIndex: i,\n values,\n templateInstance: this,\n });\n if (part.strings !== undefined) {\n part._$setValue(values, part, i);\n // The number of values the part consumes is part.strings.length - 1\n // since values are in between template spans. We increment i by 1\n // later in the loop, so increment it by part.strings.length - 2 here\n i += part.strings.length - 2;\n }\n else {\n part._$setValue(values[i]);\n }\n }\n i++;\n }\n }\n}\nclass ChildPart {\n constructor(startNode, endNode, parent, options) {\n var _a;\n this.type = CHILD_PART;\n this._$committedValue = nothing;\n // The following fields will be patched onto ChildParts when required by\n // AsyncDirective\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$startNode = startNode;\n this._$endNode = endNode;\n this._$parent = parent;\n this.options = options;\n // Note __isConnected is only ever accessed on RootParts (i.e. when there is\n // no _$parent); the value on a non-root-part is \"don't care\", but checking\n // for parent would be more code\n this.__isConnected = (_a = options === null || options === void 0 ? void 0 : options.isConnected) !== null && _a !== void 0 ? _a : true;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n // Explicitly initialize for consistent class shape.\n this._textSanitizer = undefined;\n }\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n var _a, _b;\n // ChildParts that are not at the root should always be created with a\n // parent; only RootChildNode's won't, so they return the local isConnected\n // state\n return (_b = (_a = this._$parent) === null || _a === void 0 ? void 0 : _a._$isConnected) !== null && _b !== void 0 ? _b : this.__isConnected;\n }\n /**\n * The parent node into which the part renders its content.\n *\n * A ChildPart's content consists of a range of adjacent child nodes of\n * `.parentNode`, possibly bordered by 'marker nodes' (`.startNode` and\n * `.endNode`).\n *\n * - If both `.startNode` and `.endNode` are non-null, then the part's content\n * consists of all siblings between `.startNode` and `.endNode`, exclusively.\n *\n * - If `.startNode` is non-null but `.endNode` is null, then the part's\n * content consists of all siblings following `.startNode`, up to and\n * including the last child of `.parentNode`. If `.endNode` is non-null, then\n * `.startNode` will always be non-null.\n *\n * - If both `.endNode` and `.startNode` are null, then the part's content\n * consists of all child nodes of `.parentNode`.\n */\n get parentNode() {\n let parentNode = wrap(this._$startNode).parentNode;\n const parent = this._$parent;\n if (parent !== undefined &&\n (parentNode === null || parentNode === void 0 ? void 0 : parentNode.nodeType) === 11 /* Node.DOCUMENT_FRAGMENT */) {\n // If the parentNode is a DocumentFragment, it may be because the DOM is\n // still in the cloned fragment during initial render; if so, get the real\n // parentNode the part will be committed into by asking the parent.\n parentNode = parent.parentNode;\n }\n return parentNode;\n }\n /**\n * The part's leading marker node, if any. See `.parentNode` for more\n * information.\n */\n get startNode() {\n return this._$startNode;\n }\n /**\n * The part's trailing marker node, if any. See `.parentNode` for more\n * information.\n */\n get endNode() {\n return this._$endNode;\n }\n _$setValue(value, directiveParent = this) {\n var _a;\n if (DEV_MODE && this.parentNode === null) {\n throw new Error(`This \\`ChildPart\\` has no \\`parentNode\\` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's \\`innerHTML\\` or \\`textContent\\` can do this.`);\n }\n value = resolveDirective(this, value, directiveParent);\n if (isPrimitive(value)) {\n // Non-rendering child values. It's important that these do not render\n // empty text nodes to avoid issues with preventing default <slot>\n // fallback content.\n if (value === nothing || value == null || value === '') {\n if (this._$committedValue !== nothing) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit nothing to child',\n start: this._$startNode,\n end: this._$endNode,\n parent: this._$parent,\n options: this.options,\n });\n this._$clear();\n }\n this._$committedValue = nothing;\n }\n else if (value !== this._$committedValue && value !== noChange) {\n this._commitText(value);\n }\n // This property needs to remain unminified.\n }\n else if (value['_$litType$'] !== undefined) {\n this._commitTemplateResult(value);\n }\n else if (value.nodeType !== undefined) {\n if (DEV_MODE && ((_a = this.options) === null || _a === void 0 ? void 0 : _a.host) === value) {\n this._commitText(`[probable mistake: rendered a template's host in itself ` +\n `(commonly caused by writing \\${this} in a template]`);\n console.warn(`Attempted to render the template host`, value, `inside itself. This is almost always a mistake, and in dev mode `, `we render some warning text. In production however, we'll `, `render it, which will usually result in an error, and sometimes `, `in the element disappearing from the DOM.`);\n return;\n }\n this._commitNode(value);\n }\n else if (isIterable(value)) {\n this._commitIterable(value);\n }\n else {\n // Fallback, will render the string representation\n this._commitText(value);\n }\n }\n _insert(node) {\n return wrap(wrap(this._$startNode).parentNode).insertBefore(node, this._$endNode);\n }\n _commitNode(value) {\n var _a;\n if (this._$committedValue !== value) {\n this._$clear();\n if (ENABLE_EXTRA_SECURITY_HOOKS &&\n sanitizerFactoryInternal !== noopSanitizer) {\n const parentNodeName = (_a = this._$startNode.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName;\n if (parentNodeName === 'STYLE' || parentNodeName === 'SCRIPT') {\n let message = 'Forbidden';\n if (DEV_MODE) {\n if (parentNodeName === 'STYLE') {\n message =\n `Lit does not support binding inside style nodes. ` +\n `This is a security risk, as style injection attacks can ` +\n `exfiltrate data and spoof UIs. ` +\n `Consider instead using css\\`...\\` literals ` +\n `to compose styles, and make do dynamic styling with ` +\n `css custom properties, ::parts, <slot>s, ` +\n `and by mutating the DOM rather than stylesheets.`;\n }\n else {\n message =\n `Lit does not support binding inside script nodes. ` +\n `This is a security risk, as it could allow arbitrary ` +\n `code execution.`;\n }\n }\n throw new Error(message);\n }\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit node',\n start: this._$startNode,\n parent: this._$parent,\n value: value,\n options: this.options,\n });\n this._$committedValue = this._insert(value);\n }\n }\n _commitText(value) {\n // If the committed value is a primitive it means we called _commitText on\n // the previous render, and we know that this._$startNode.nextSibling is a\n // Text node. We can now just replace the text content (.data) of the node.\n if (this._$committedValue !== nothing &&\n isPrimitive(this._$committedValue)) {\n const node = wrap(this._$startNode).nextSibling;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(node, 'data', 'property');\n }\n value = this._textSanitizer(value);\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node,\n value,\n options: this.options,\n });\n node.data = value;\n }\n else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n const textNode = d.createTextNode('');\n this._commitNode(textNode);\n // When setting text content, for security purposes it matters a lot\n // what the parent is. For example, <style> and <script> need to be\n // handled with care, while <span> does not. So first we need to put a\n // text node into the document, then we can sanitize its content.\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(textNode, 'data', 'property');\n }\n value = this._textSanitizer(value);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node: textNode,\n value,\n options: this.options,\n });\n textNode.data = value;\n }\n else {\n this._commitNode(d.createTextNode(value));\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node: wrap(this._$startNode).nextSibling,\n value,\n options: this.options,\n });\n }\n }\n this._$committedValue = value;\n }\n _commitTemplateResult(result) {\n var _a;\n // This property needs to remain unminified.\n const { values, ['_$litType$']: type } = result;\n // If $litType$ is a number, result is a plain TemplateResult and we get\n // the template from the template cache. If not, result is a\n // CompiledTemplateResult and _$litType$ is a CompiledTemplate and we need\n // to create the <template> element the first time we see it.\n const template = typeof type === 'number'\n ? this._$getTemplate(result)\n : (type.el === undefined &&\n (type.el = Template.createElement(trustFromTemplateString(type.h, type.h[0]), this.options)),\n type);\n if (((_a = this._$committedValue) === null || _a === void 0 ? void 0 : _a._$template) === template) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template updating',\n template,\n instance: this._$committedValue,\n parts: this._$committedValue._$parts,\n options: this.options,\n values,\n });\n this._$committedValue._update(values);\n }\n else {\n const instance = new TemplateInstance(template, this);\n const fragment = instance._clone(this.options);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template instantiated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n instance._update(values);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template instantiated and updated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n this._commitNode(fragment);\n this._$committedValue = instance;\n }\n }\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @internal */\n _$getTemplate(result) {\n let template = templateCache.get(result.strings);\n if (template === undefined) {\n templateCache.set(result.strings, (template = new Template(result)));\n }\n return template;\n }\n _commitIterable(value) {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n // If value is an array, then the previous render was of an\n // iterable and value will contain the ChildParts from the previous\n // render. If value is not an array, clear this part and make a new\n // array for ChildParts.\n if (!isArray(this._$committedValue)) {\n this._$committedValue = [];\n this._$clear();\n }\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this._$committedValue;\n let partIndex = 0;\n let itemPart;\n for (const item of value) {\n if (partIndex === itemParts.length) {\n // If no existing part, create a new one\n // TODO (justinfagnani): test perf impact of always creating two parts\n // instead of sharing parts between nodes\n // https://github.com/lit/lit/issues/1266\n itemParts.push((itemPart = new ChildPart(this._insert(createMarker()), this._insert(createMarker()), this, this.options)));\n }\n else {\n // Reuse an existing part\n itemPart = itemParts[partIndex];\n }\n itemPart._$setValue(item);\n partIndex++;\n }\n if (partIndex < itemParts.length) {\n // itemParts always have end nodes\n this._$clear(itemPart && wrap(itemPart._$endNode).nextSibling, partIndex);\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n }\n }\n /**\n * Removes the nodes contained within this Part from the DOM.\n *\n * @param start Start node to clear from, for clearing a subset of the part's\n * DOM (used when truncating iterables)\n * @param from When `start` is specified, the index within the iterable from\n * which ChildParts are being removed, used for disconnecting directives in\n * those Parts.\n *\n * @internal\n */\n _$clear(start = wrap(this._$startNode).nextSibling, from) {\n var _a;\n (_a = this._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(this, false, true, from);\n while (start && start !== this._$endNode) {\n const n = wrap(start).nextSibling;\n wrap(start).remove();\n start = n;\n }\n }\n /**\n * Implementation of RootPart's `isConnected`. Note that this metod\n * should only be called on `RootPart`s (the `ChildPart` returned from a\n * top-level `render()` call). It has no effect on non-root ChildParts.\n * @param isConnected Whether to set\n * @internal\n */\n setConnected(isConnected) {\n var _a;\n if (this._$parent === undefined) {\n this.__isConnected = isConnected;\n (_a = this._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(this, isConnected);\n }\n else if (DEV_MODE) {\n throw new Error('part.setConnected() may only be called on a ' +\n 'RootPart returned from render().');\n }\n }\n}\nclass AttributePart {\n constructor(element, name, strings, parent, options) {\n this.type = ATTRIBUTE_PART;\n /** @internal */\n this._$committedValue = nothing;\n /** @internal */\n this._$disconnectableChildren = undefined;\n this.element = element;\n this.name = name;\n this._$parent = parent;\n this.options = options;\n if (strings.length > 2 || strings[0] !== '' || strings[1] !== '') {\n this._$committedValue = new Array(strings.length - 1).fill(new String());\n this.strings = strings;\n }\n else {\n this._$committedValue = nothing;\n }\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n this._sanitizer = undefined;\n }\n }\n get tagName() {\n return this.element.tagName;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n /**\n * Sets the value of this part by resolving the value from possibly multiple\n * values and static strings and committing it to the DOM.\n * If this part is single-valued, `this._strings` will be undefined, and the\n * method will be called with a single value argument. If this part is\n * multi-value, `this._strings` will be defined, and the method is called\n * with the value array of the part's owning TemplateInstance, and an offset\n * into the value array from which the values should be read.\n * This method is overloaded this way to eliminate short-lived array slices\n * of the template instance values, and allow a fast-path for single-valued\n * parts.\n *\n * @param value The part value, or an array of values for multi-valued parts\n * @param valueIndex the index to start reading values from. `undefined` for\n * single-valued parts\n * @param noCommit causes the part to not commit its value to the DOM. Used\n * in hydration to prime attribute parts with their first-rendered value,\n * but not set the attribute, and in SSR to no-op the DOM operation and\n * capture the value for serialization.\n *\n * @internal\n */\n _$setValue(value, directiveParent = this, valueIndex, noCommit) {\n const strings = this.strings;\n // Whether any of the values has changed, for dirty-checking\n let change = false;\n if (strings === undefined) {\n // Single-value binding case\n value = resolveDirective(this, value, directiveParent, 0);\n change =\n !isPrimitive(value) ||\n (value !== this._$committedValue && value !== noChange);\n if (change) {\n this._$committedValue = value;\n }\n }\n else {\n // Interpolation case\n const values = value;\n value = strings[0];\n let i, v;\n for (i = 0; i < strings.length - 1; i++) {\n v = resolveDirective(this, values[valueIndex + i], directiveParent, i);\n if (v === noChange) {\n // If the user-provided value is `noChange`, use the previous value\n v = this._$committedValue[i];\n }\n change || (change = !isPrimitive(v) || v !== this._$committedValue[i]);\n if (v === nothing) {\n value = nothing;\n }\n else if (value !== nothing) {\n value += (v !== null && v !== void 0 ? v : '') + strings[i + 1];\n }\n // We always record each value, even if one is `nothing`, for future\n // change detection.\n this._$committedValue[i] = v;\n }\n }\n if (change && !noCommit) {\n this._commitValue(value);\n }\n }\n /** @internal */\n _commitValue(value) {\n if (value === nothing) {\n wrap(this.element).removeAttribute(this.name);\n }\n else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(this.element, this.name, 'attribute');\n }\n value = this._sanitizer(value !== null && value !== void 0 ? value : '');\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit attribute',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n wrap(this.element).setAttribute(this.name, (value !== null && value !== void 0 ? value : ''));\n }\n }\n}\nclass PropertyPart extends AttributePart {\n constructor() {\n super(...arguments);\n this.type = PROPERTY_PART;\n }\n /** @internal */\n _commitValue(value) {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(this.element, this.name, 'property');\n }\n value = this._sanitizer(value);\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit property',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.element[this.name] = value === nothing ? undefined : value;\n }\n}\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? trustedTypes.emptyScript\n : '';\nclass BooleanAttributePart extends AttributePart {\n constructor() {\n super(...arguments);\n this.type = BOOLEAN_ATTRIBUTE_PART;\n }\n /** @internal */\n _commitValue(value) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit boolean attribute',\n element: this.element,\n name: this.name,\n value: !!(value && value !== nothing),\n options: this.options,\n });\n if (value && value !== nothing) {\n wrap(this.element).setAttribute(this.name, emptyStringForBooleanAttribute);\n }\n else {\n wrap(this.element).removeAttribute(this.name);\n }\n }\n}\nclass EventPart extends AttributePart {\n constructor(element, name, strings, parent, options) {\n super(element, name, strings, parent, options);\n this.type = EVENT_PART;\n if (DEV_MODE && this.strings !== undefined) {\n throw new Error(`A \\`<${element.localName}>\\` has a \\`@${name}=...\\` listener with ` +\n 'invalid content. Event listeners in templates must have exactly ' +\n 'one expression and no surrounding text.');\n }\n }\n // EventPart does not use the base _$setValue/_resolveValue implementation\n // since the dirty checking is more complex\n /** @internal */\n _$setValue(newListener, directiveParent = this) {\n var _a;\n newListener =\n (_a = resolveDirective(this, newListener, directiveParent, 0)) !== null && _a !== void 0 ? _a : nothing;\n if (newListener === noChange) {\n return;\n }\n const oldListener = this._$committedValue;\n // If the new value is nothing or any options change we have to remove the\n // part as a listener.\n const shouldRemoveListener = (newListener === nothing && oldListener !== nothing) ||\n newListener.capture !==\n oldListener.capture ||\n newListener.once !==\n oldListener.once ||\n newListener.passive !==\n oldListener.passive;\n // If the new value is not nothing and we removed the listener, we have\n // to add the part as a listener.\n const shouldAddListener = newListener !== nothing &&\n (oldListener === nothing || shouldRemoveListener);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit event listener',\n element: this.element,\n name: this.name,\n value: newListener,\n options: this.options,\n removeListener: shouldRemoveListener,\n addListener: shouldAddListener,\n oldListener,\n });\n if (shouldRemoveListener) {\n this.element.removeEventListener(this.name, this, oldListener);\n }\n if (shouldAddListener) {\n // Beware: IE11 and Chrome 41 don't like using the listener as the\n // options object. Figure out how to deal w/ this in IE11 - maybe\n // patch addEventListener?\n this.element.addEventListener(this.name, this, newListener);\n }\n this._$committedValue = newListener;\n }\n handleEvent(event) {\n var _a, _b;\n if (typeof this._$committedValue === 'function') {\n this._$committedValue.call((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.host) !== null && _b !== void 0 ? _b : this.element, event);\n }\n else {\n this._$committedValue.handleEvent(event);\n }\n }\n}\nclass ElementPart {\n constructor(element, parent, options) {\n this.element = element;\n this.type = ELEMENT_PART;\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$parent = parent;\n this.options = options;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n _$setValue(value) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit to element binding',\n element: this.element,\n value,\n options: this.options,\n });\n resolveDirective(this, value);\n }\n}\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LH object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-element, which re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LH = {\n // Used in lit-ssr\n _boundAttributeSuffix: boundAttributeSuffix,\n _marker: marker,\n _markerMatch: markerMatch,\n _HTML_RESULT: HTML_RESULT,\n _getTemplateHtml: getTemplateHtml,\n // Used in tests and private-ssr-support\n _TemplateInstance: TemplateInstance,\n _isIterable: isIterable,\n _resolveDirective: resolveDirective,\n _ChildPart: ChildPart,\n _AttributePart: AttributePart,\n _BooleanAttributePart: BooleanAttributePart,\n _EventPart: EventPart,\n _PropertyPart: PropertyPart,\n _ElementPart: ElementPart,\n};\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litHtmlPolyfillSupportDevMode\n : global.litHtmlPolyfillSupport;\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport(Template, ChildPart);\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n((_d = global.litHtmlVersions) !== null && _d !== void 0 ? _d : (global.litHtmlVersions = [])).push('2.8.0');\nif (DEV_MODE && global.litHtmlVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. ` +\n `Loading multiple versions is not recommended.`);\n}\n/**\n * Renders a value, usually a lit-html TemplateResult, to the container.\n *\n * This example renders the text \"Hello, Zoe!\" inside a paragraph tag, appending\n * it to the container `document.body`.\n *\n * ```js\n * import {html, render} from 'lit';\n *\n * const name = \"Zoe\";\n * render(html`<p>Hello, ${name}!</p>`, document.body);\n * ```\n *\n * @param value Any [renderable\n * value](https://lit.dev/docs/templates/expressions/#child-expressions),\n * typically a {@linkcode TemplateResult} created by evaluating a template tag\n * like {@linkcode html} or {@linkcode svg}.\n * @param container A DOM container to render to. The first render will append\n * the rendered value to the container, and subsequent renders will\n * efficiently update the rendered value if the same result type was\n * previously rendered there.\n * @param options See {@linkcode RenderOptions} for options documentation.\n * @see\n * {@link https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates| Rendering Lit HTML Templates}\n */\nexport const render = (value, container, options) => {\n var _a, _b;\n if (DEV_MODE && container == null) {\n // Give a clearer error message than\n // Uncaught TypeError: Cannot read properties of null (reading\n // '_$litPart$')\n // which reads like an internal Lit error.\n throw new TypeError(`The container to render into may not be ${container}`);\n }\n const renderId = DEV_MODE ? debugLogRenderId++ : 0;\n const partOwnerNode = (_a = options === null || options === void 0 ? void 0 : options.renderBefore) !== null && _a !== void 0 ? _a : container;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let part = partOwnerNode['_$litPart$'];\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'begin render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n if (part === undefined) {\n const endNode = (_b = options === null || options === void 0 ? void 0 : options.renderBefore) !== null && _b !== void 0 ? _b : null;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n partOwnerNode['_$litPart$'] = part = new ChildPart(container.insertBefore(createMarker(), endNode), endNode, undefined, options !== null && options !== void 0 ? options : {});\n }\n part._$setValue(value);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'end render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n return part;\n};\nif (ENABLE_EXTRA_SECURITY_HOOKS) {\n render.setSanitizer = setSanitizer;\n render.createSanitizer = createSanitizer;\n if (DEV_MODE) {\n render._testOnlyClearSanitizerFactoryDoNotCallOrElse =\n _testOnlyClearSanitizerFactoryDoNotCallOrElse;\n }\n}\n//# sourceMappingURL=lit-html.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c;\n/**\n * The main LitElement module, which defines the {@linkcode LitElement} base\n * class and related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import {@linkcode LitElement} and {@linkcode html} from this module to\n * create a component:\n *\n * ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n * // Declare observed properties\n * static get properties() {\n * return {\n * adjective: {}\n * }\n * }\n *\n * constructor() {\n * this.adjective = 'awesome';\n * }\n *\n * // Define the element's template\n * render() {\n * return html`<p>your ${adjective} template here</p>`;\n * }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends {@linkcode ReactiveElement} and adds lit-html\n * templating. The `ReactiveElement` class is provided for users that want to\n * build their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\nimport { ReactiveElement } from '@lit/reactive-element';\nimport { render, noChange } from 'lit-html';\nexport * from '@lit/reactive-element';\nexport * from 'lit-html';\n// For backwards compatibility export ReactiveElement as UpdatingElement. Note,\n// IE transpilation requires exporting like this.\nexport const UpdatingElement = ReactiveElement;\nconst DEV_MODE = true;\nlet issueWarning;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_a = globalThis.litIssuedWarnings) !== null && _a !== void 0 ? _a : (globalThis.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n}\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the {@linkcode LitElement.properties properties} property or the\n * {@linkcode property} decorator.\n */\nexport class LitElement extends ReactiveElement {\n constructor() {\n super(...arguments);\n /**\n * @category rendering\n */\n this.renderOptions = { host: this };\n this.__childPart = undefined;\n }\n /**\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n var _b;\n const renderRoot = super.createRenderRoot();\n // When adoptedStyleSheets are shimmed, they are inserted into the\n // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n // any styles in Lit content render before adoptedStyleSheets. This is\n // important so that adoptedStyleSheets have precedence over styles in\n // the shadowRoot.\n (_a = (_b = this.renderOptions).renderBefore) !== null && _a !== void 0 ? _a : (_b.renderBefore = renderRoot.firstChild);\n return renderRoot;\n }\n /**\n * Updates the element. This method reflects property values to attributes\n * and calls `render` to render DOM via lit-html. Setting properties inside\n * this method will *not* trigger another update.\n * @param changedProperties Map of changed properties with old values\n * @category updates\n */\n update(changedProperties) {\n // Setting properties in `render` should not trigger an update. Since\n // updates are allowed after super.update, it's important to call `render`\n // before that.\n const value = this.render();\n if (!this.hasUpdated) {\n this.renderOptions.isConnected = this.isConnected;\n }\n super.update(changedProperties);\n this.__childPart = render(value, this.renderRoot, this.renderOptions);\n }\n /**\n * Invoked when the component is added to the document's DOM.\n *\n * In `connectedCallback()` you should setup tasks that should only occur when\n * the element is connected to the document. The most common of these is\n * adding event listeners to nodes external to the element, like a keydown\n * event handler added to the window.\n *\n * ```ts\n * connectedCallback() {\n * super.connectedCallback();\n * addEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * Typically, anything done in `connectedCallback()` should be undone when the\n * element is disconnected, in `disconnectedCallback()`.\n *\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n super.connectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(true);\n }\n /**\n * Invoked when the component is removed from the document's DOM.\n *\n * This callback is the main signal to the element that it may no longer be\n * used. `disconnectedCallback()` should ensure that nothing is holding a\n * reference to the element (such as event listeners added to nodes external\n * to the element), so that it is free to be garbage collected.\n *\n * ```ts\n * disconnectedCallback() {\n * super.disconnectedCallback();\n * window.removeEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * An element may be re-connected after being disconnected.\n *\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(false);\n }\n /**\n * Invoked on each update to perform rendering tasks. This method may return\n * any value renderable by lit-html's `ChildPart` - typically a\n * `TemplateResult`. Setting properties inside this method will *not* trigger\n * the element to update.\n * @category rendering\n */\n render() {\n return noChange;\n }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\nLitElement['finalized'] = true;\n// This property needs to remain unminified.\nLitElement['_$litElement$'] = true;\n// Install hydration if available\n(_b = globalThis.litElementHydrateSupport) === null || _b === void 0 ? void 0 : _b.call(globalThis, { LitElement });\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? globalThis.litElementPolyfillSupportDevMode\n : globalThis.litElementPolyfillSupport;\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport({ LitElement });\n// DEV mode warnings\nif (DEV_MODE) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // Note, for compatibility with closure compilation, this access\n // needs to be as a string property index.\n LitElement['finalize'] = function () {\n const finalized = ReactiveElement.finalize.call(this);\n if (!finalized) {\n return false;\n }\n const warnRemovedOrRenamed = (obj, name, renamed = false) => {\n if (obj.hasOwnProperty(name)) {\n const ctorName = (typeof obj === 'function' ? obj : obj.constructor)\n .name;\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${ctorName}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed(this, 'render');\n warnRemovedOrRenamed(this, 'getStyles', true);\n warnRemovedOrRenamed(this.prototype, 'adoptStyles');\n return true;\n };\n /* eslint-enable @typescript-eslint/no-explicit-any */\n}\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LE = {\n _$attributeToProperty: (el, name, value) => {\n // eslint-disable-next-line\n el._$attributeToProperty(name, value);\n },\n // eslint-disable-next-line\n _$changedProperties: (el) => el._$changedProperties,\n};\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n((_c = globalThis.litElementVersions) !== null && _c !== void 0 ? _c : (globalThis.litElementVersions = [])).push('3.3.2');\nif (DEV_MODE && globalThis.litElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=lit-element.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst standardProperty = (options, element) => {\n // When decorating an accessor, pass it through and add property metadata.\n // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n // stomp over the user's accessor.\n if (element.kind === 'method' &&\n element.descriptor &&\n !('value' in element.descriptor)) {\n return {\n ...element,\n finisher(clazz) {\n clazz.createProperty(element.key, options);\n },\n };\n }\n else {\n // createProperty() takes care of defining the property, but we still\n // must return some kind of descriptor, so return a descriptor for an\n // unused prototype field. The finisher calls createProperty().\n return {\n kind: 'field',\n key: Symbol(),\n placement: 'own',\n descriptor: {},\n // store the original key so subsequent decorators have access to it.\n originalKey: element.key,\n // When @babel/plugin-proposal-decorators implements initializers,\n // do this instead of the initializer below. See:\n // https://github.com/babel/babel/issues/9260 extras: [\n // {\n // kind: 'initializer',\n // placement: 'own',\n // initializer: descriptor.initializer,\n // }\n // ],\n initializer() {\n if (typeof element.initializer === 'function') {\n this[element.key] = element.initializer.call(this);\n }\n },\n finisher(clazz) {\n clazz.createProperty(element.key, options);\n },\n };\n }\n};\nconst legacyProperty = (options, proto, name) => {\n proto.constructor.createProperty(name, options);\n};\n/**\n * A property decorator which creates a reactive property that reflects a\n * corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n * @property({ type: Boolean })\n * clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (protoOrDescriptor, name) => name !== undefined\n ? legacyProperty(options, protoOrDescriptor, name)\n : standardProperty(options, protoOrDescriptor);\n}\n//# sourceMappingURL=property.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport { property } from './property.js';\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options) {\n return property({\n ...options,\n state: true,\n });\n}\n//# sourceMappingURL=state.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport const legacyPrototypeMethod = (descriptor, proto, name) => {\n Object.defineProperty(proto, name, descriptor);\n};\nexport const standardPrototypeMethod = (descriptor, element) => ({\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n});\n/**\n * Helper for decorating a property that is compatible with both TypeScript\n * and Babel decorators. The optional `finisher` can be used to perform work on\n * the class. The optional `descriptor` should return a PropertyDescriptor\n * to install for the given property.\n *\n * @param finisher {function} Optional finisher method; receives the element\n * constructor and property key as arguments and has no return value.\n * @param descriptor {function} Optional descriptor method; receives the\n * property key as an argument and returns a property descriptor to define for\n * the given property.\n * @returns {ClassElement|void}\n */\nexport const decorateProperty = ({ finisher, descriptor, }) => (protoOrDescriptor, name\n// Note TypeScript requires the return type to be `void|any`\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => {\n var _a;\n // TypeScript / Babel legacy mode\n if (name !== undefined) {\n const ctor = protoOrDescriptor\n .constructor;\n if (descriptor !== undefined) {\n Object.defineProperty(protoOrDescriptor, name, descriptor(name));\n }\n finisher === null || finisher === void 0 ? void 0 : finisher(ctor, name);\n // Babel standard mode\n }\n else {\n // Note, the @property decorator saves `key` as `originalKey`\n // so try to use it here.\n const key = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (_a = protoOrDescriptor.originalKey) !== null && _a !== void 0 ? _a : protoOrDescriptor.key;\n const info = descriptor != undefined\n ? {\n kind: 'method',\n placement: 'prototype',\n key,\n descriptor: descriptor(protoOrDescriptor.key),\n }\n : { ...protoOrDescriptor, key };\n if (finisher != undefined) {\n info.finisher = function (ctor) {\n finisher(ctor, key);\n };\n }\n return info;\n }\n};\n//# sourceMappingURL=base.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { decorateProperty } from './base.js';\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n * once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @query('#first')\n * first: HTMLDivElement;\n *\n * render() {\n * return html`\n * <div id=\"first\"></div>\n * <div id=\"second\"></div>\n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector, cache) {\n return decorateProperty({\n descriptor: (name) => {\n const descriptor = {\n get() {\n var _a, _b;\n return (_b = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector)) !== null && _b !== void 0 ? _b : null;\n },\n enumerable: true,\n configurable: true,\n };\n if (cache) {\n const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n descriptor.get = function () {\n var _a, _b;\n if (this[key] === undefined) {\n this[key] = (_b = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector)) !== null && _b !== void 0 ? _b : null;\n }\n return this[key];\n };\n }\n return descriptor;\n },\n });\n}\n//# sourceMappingURL=query.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { decorateProperty } from './base.js';\n// Note, in the future, we may extend this decorator to support the use case\n// where the queried element may need to do work to become ready to interact\n// with (e.g. load some implementation code). If so, we might elect to\n// add a second argument defining a function that can be run to make the\n// queried element loaded/updated/ready.\n/**\n * A property decorator that converts a class property into a getter that\n * returns a promise that resolves to the result of a querySelector on the\n * element's renderRoot done after the element's `updateComplete` promise\n * resolves. When the queried property may change with element state, this\n * decorator can be used instead of requiring users to await the\n * `updateComplete` before accessing the property.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @queryAsync('#first')\n * first: Promise<HTMLDivElement>;\n *\n * render() {\n * return html`\n * <div id=\"first\"></div>\n * <div id=\"second\"></div>\n * `;\n * }\n * }\n *\n * // external usage\n * async doSomethingWithFirst() {\n * (await aMyElement.first).doSomething();\n * }\n * ```\n * @category Decorator\n */\nexport function queryAsync(selector) {\n return decorateProperty({\n descriptor: (_name) => ({\n async get() {\n var _a;\n await this.updateComplete;\n return (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector);\n },\n enumerable: true,\n configurable: true,\n }),\n });\n}\n//# sourceMappingURL=query-async.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a;\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport { decorateProperty } from './base.js';\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n/**\n * A tiny module scoped polyfill for HTMLSlotElement.assignedElements.\n */\nconst slotAssignedElements = ((_a = global.HTMLSlotElement) === null || _a === void 0 ? void 0 : _a.prototype.assignedElements) != null\n ? (slot, opts) => slot.assignedElements(opts)\n : (slot, opts) => slot\n .assignedNodes(opts)\n .filter((node) => node.nodeType === Node.ELEMENT_NODE);\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedElements` of the given `slot`. Provides a declarative\n * way to use\n * [`HTMLSlotElement.assignedElements`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n *\n * Can be passed an optional {@linkcode QueryAssignedElementsOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedElements({ slot: 'list' })\n * listItems!: Array<HTMLElement>;\n * @queryAssignedElements()\n * unnamedSlotEls!: Array<HTMLElement>;\n *\n * render() {\n * return html`\n * <slot name=\"list\"></slot>\n * <slot></slot>\n * `;\n * }\n * }\n * ```\n *\n * Note, the type of this property should be annotated as `Array<HTMLElement>`.\n *\n * @category Decorator\n */\nexport function queryAssignedElements(options) {\n const { slot, selector } = options !== null && options !== void 0 ? options : {};\n return decorateProperty({\n descriptor: (_name) => ({\n get() {\n var _a;\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n const slotEl = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(slotSelector);\n const elements = slotEl != null ? slotAssignedElements(slotEl, options) : [];\n if (selector) {\n return elements.filter((node) => node.matches(selector));\n }\n return elements;\n },\n enumerable: true,\n configurable: true,\n }),\n });\n}\n//# sourceMappingURL=query-assigned-elements.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n};\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive = (c) => (...values) => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n});\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport class Directive {\n constructor(_partInfo) { }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n /** @internal */\n _$initialize(part, parent, attributeIndex) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part, props) {\n return this.update(part, props);\n }\n update(_part, props) {\n return this.render(...props);\n }\n}\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b;\nimport { _$LH, } from './lit-html.js';\nconst { _ChildPart: ChildPart } = _$LH;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst wrap = ENABLE_SHADYDOM_NOPATCH &&\n ((_a = window.ShadyDOM) === null || _a === void 0 ? void 0 : _a.inUse) &&\n ((_b = window.ShadyDOM) === null || _b === void 0 ? void 0 : _b.noPatch) === true\n ? window.ShadyDOM.wrap\n : (node) => node;\n/**\n * Tests if a value is a primitive value.\n *\n * See https://tc39.github.io/ecma262/#sec-typeof-operator\n */\nexport const isPrimitive = (value) => value === null || (typeof value != 'object' && typeof value != 'function');\nexport const TemplateResultType = {\n HTML: 1,\n SVG: 2,\n};\n/**\n * Tests if a value is a TemplateResult or a CompiledTemplateResult.\n */\nexport const isTemplateResult = (value, type) => type === undefined\n ? // This property needs to remain unminified.\n (value === null || value === void 0 ? void 0 : value['_$litType$']) !== undefined\n : (value === null || value === void 0 ? void 0 : value['_$litType$']) === type;\n/**\n * Tests if a value is a CompiledTemplateResult.\n */\nexport const isCompiledTemplateResult = (value) => {\n var _a;\n return ((_a = value === null || value === void 0 ? void 0 : value['_$litType$']) === null || _a === void 0 ? void 0 : _a.h) != null;\n};\n/**\n * Tests if a value is a DirectiveResult.\n */\nexport const isDirectiveResult = (value) => \n// This property needs to remain unminified.\n(value === null || value === void 0 ? void 0 : value['_$litDirective$']) !== undefined;\n/**\n * Retrieves the Directive class for a DirectiveResult\n */\nexport const getDirectiveClass = (value) => \n// This property needs to remain unminified.\nvalue === null || value === void 0 ? void 0 : value['_$litDirective$'];\n/**\n * Tests whether a part has only a single-expression with no strings to\n * interpolate between.\n *\n * Only AttributePart and PropertyPart can have multiple expressions.\n * Multi-expression parts have a `strings` property and single-expression\n * parts do not.\n */\nexport const isSingleExpression = (part) => part.strings === undefined;\nconst createMarker = () => document.createComment('');\n/**\n * Inserts a ChildPart into the given container ChildPart's DOM, either at the\n * end of the container ChildPart, or before the optional `refPart`.\n *\n * This does not add the part to the containerPart's committed value. That must\n * be done by callers.\n *\n * @param containerPart Part within which to add the new ChildPart\n * @param refPart Part before which to add the new ChildPart; when omitted the\n * part added to the end of the `containerPart`\n * @param part Part to insert, or undefined to create a new part\n */\nexport const insertPart = (containerPart, refPart, part) => {\n var _a;\n const container = wrap(containerPart._$startNode).parentNode;\n const refNode = refPart === undefined ? containerPart._$endNode : refPart._$startNode;\n if (part === undefined) {\n const startNode = wrap(container).insertBefore(createMarker(), refNode);\n const endNode = wrap(container).insertBefore(createMarker(), refNode);\n part = new ChildPart(startNode, endNode, containerPart, containerPart.options);\n }\n else {\n const endNode = wrap(part._$endNode).nextSibling;\n const oldParent = part._$parent;\n const parentChanged = oldParent !== containerPart;\n if (parentChanged) {\n (_a = part._$reparentDisconnectables) === null || _a === void 0 ? void 0 : _a.call(part, containerPart);\n // Note that although `_$reparentDisconnectables` updates the part's\n // `_$parent` reference after unlinking from its current parent, that\n // method only exists if Disconnectables are present, so we need to\n // unconditionally set it here\n part._$parent = containerPart;\n // Since the _$isConnected getter is somewhat costly, only\n // read it once we know the subtree has directives that need\n // to be notified\n let newConnectionState;\n if (part._$notifyConnectionChanged !== undefined &&\n (newConnectionState = containerPart._$isConnected) !==\n oldParent._$isConnected) {\n part._$notifyConnectionChanged(newConnectionState);\n }\n }\n if (endNode !== refNode || parentChanged) {\n let start = part._$startNode;\n while (start !== endNode) {\n const n = wrap(start).nextSibling;\n wrap(container).insertBefore(start, refNode);\n start = n;\n }\n }\n }\n return part;\n};\n/**\n * Sets the value of a Part.\n *\n * Note that this should only be used to set/update the value of user-created\n * parts (i.e. those created using `insertPart`); it should not be used\n * by directives to set the value of the directive's container part. Directives\n * should return a value from `update`/`render` to update their part state.\n *\n * For directives that require setting their part value asynchronously, they\n * should extend `AsyncDirective` and call `this.setValue()`.\n *\n * @param part Part to set\n * @param value Value to set\n * @param index For `AttributePart`s, the index to set\n * @param directiveParent Used internally; should not be set by user\n */\nexport const setChildPartValue = (part, value, directiveParent = part) => {\n part._$setValue(value, directiveParent);\n return part;\n};\n// A sentinel value that can never appear as a part value except when set by\n// live(). Used to force a dirty-check to fail and cause a re-render.\nconst RESET_VALUE = {};\n/**\n * Sets the committed value of a ChildPart directly without triggering the\n * commit stage of the part.\n *\n * This is useful in cases where a directive needs to update the part such\n * that the next update detects a value change or not. When value is omitted,\n * the next update will be guaranteed to be detected as a change.\n *\n * @param part\n * @param value\n */\nexport const setCommittedValue = (part, value = RESET_VALUE) => (part._$committedValue = value);\n/**\n * Returns the committed value of a ChildPart.\n *\n * The committed value is used for change detection and efficient updates of\n * the part. It can differ from the value set by the template or directive in\n * cases where the template value is transformed before being committed.\n *\n * - `TemplateResult`s are committed as a `TemplateInstance`\n * - Iterables are committed as `Array<ChildPart>`\n * - All other types are committed as the template value or value returned or\n * set by a directive.\n *\n * @param part\n */\nexport const getCommittedValue = (part) => part._$committedValue;\n/**\n * Removes a ChildPart from the DOM, including any of its content.\n *\n * @param part The Part to remove\n */\nexport const removePart = (part) => {\n var _a;\n (_a = part._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(part, false, true);\n let start = part._$startNode;\n const end = wrap(part._$endNode).nextSibling;\n while (start !== end) {\n const n = wrap(start).nextSibling;\n wrap(start).remove();\n start = n;\n }\n};\nexport const clearPart = (part) => {\n part._$clear();\n};\n//# sourceMappingURL=directive-helpers.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { noChange, nothing } from '../lit-html.js';\nimport { directive, Directive, PartType, } from '../directive.js';\nimport { isSingleExpression, setCommittedValue } from '../directive-helpers.js';\nclass LiveDirective extends Directive {\n constructor(partInfo) {\n super(partInfo);\n if (!(partInfo.type === PartType.PROPERTY ||\n partInfo.type === PartType.ATTRIBUTE ||\n partInfo.type === PartType.BOOLEAN_ATTRIBUTE)) {\n throw new Error('The `live` directive is not allowed on child or event bindings');\n }\n if (!isSingleExpression(partInfo)) {\n throw new Error('`live` bindings can only contain a single expression');\n }\n }\n render(value) {\n return value;\n }\n update(part, [value]) {\n if (value === noChange || value === nothing) {\n return value;\n }\n const element = part.element;\n const name = part.name;\n if (part.type === PartType.PROPERTY) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (value === element[name]) {\n return noChange;\n }\n }\n else if (part.type === PartType.BOOLEAN_ATTRIBUTE) {\n if (!!value === element.hasAttribute(name)) {\n return noChange;\n }\n }\n else if (part.type === PartType.ATTRIBUTE) {\n if (element.getAttribute(name) === String(value)) {\n return noChange;\n }\n }\n // Resets the part's value, causing its dirty-check to fail so that it\n // always sets the value.\n setCommittedValue(part);\n return value;\n }\n}\n/**\n * Checks binding values against live DOM values, instead of previously bound\n * values, when determining whether to update the value.\n *\n * This is useful for cases where the DOM value may change from outside of\n * lit-html, such as with a binding to an `<input>` element's `value` property,\n * a content editable elements text, or to a custom element that changes it's\n * own properties or attributes.\n *\n * In these cases if the DOM value changes, but the value set through lit-html\n * bindings hasn't, lit-html won't know to update the DOM value and will leave\n * it alone. If this is not what you want--if you want to overwrite the DOM\n * value with the bound value no matter what--use the `live()` directive:\n *\n * ```js\n * html`<input .value=${live(x)}>`\n * ```\n *\n * `live()` performs a strict equality check against the live DOM value, and if\n * the new value is equal to the live value, does nothing. This means that\n * `live()` should not be used when the binding will cause a type conversion. If\n * you use `live()` with an attribute binding, make sure that only strings are\n * passed in, or the binding will update every render.\n */\nexport const live = directive(LiveDirective);\n//# sourceMappingURL=live.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isSingleExpression } from './directive-helpers.js';\nimport { Directive, PartType } from './directive.js';\nexport * from './directive.js';\nconst DEV_MODE = true;\n/**\n * Recursively walks down the tree of Parts/TemplateInstances/Directives to set\n * the connected state of directives and run `disconnected`/ `reconnected`\n * callbacks.\n *\n * @return True if there were children to disconnect; false otherwise\n */\nconst notifyChildrenConnectedChanged = (parent, isConnected) => {\n var _a, _b;\n const children = parent._$disconnectableChildren;\n if (children === undefined) {\n return false;\n }\n for (const obj of children) {\n // The existence of `_$notifyDirectiveConnectionChanged` is used as a \"brand\" to\n // disambiguate AsyncDirectives from other DisconnectableChildren\n // (as opposed to using an instanceof check to know when to call it); the\n // redundancy of \"Directive\" in the API name is to avoid conflicting with\n // `_$notifyConnectionChanged`, which exists `ChildParts` which are also in\n // this list\n // Disconnect Directive (and any nested directives contained within)\n // This property needs to remain unminified.\n (_b = (_a = obj)['_$notifyDirectiveConnectionChanged']) === null || _b === void 0 ? void 0 : _b.call(_a, isConnected, false);\n // Disconnect Part/TemplateInstance\n notifyChildrenConnectedChanged(obj, isConnected);\n }\n return true;\n};\n/**\n * Removes the given child from its parent list of disconnectable children, and\n * if the parent list becomes empty as a result, removes the parent from its\n * parent, and so forth up the tree when that causes subsequent parent lists to\n * become empty.\n */\nconst removeDisconnectableFromParent = (obj) => {\n let parent, children;\n do {\n if ((parent = obj._$parent) === undefined) {\n break;\n }\n children = parent._$disconnectableChildren;\n children.delete(obj);\n obj = parent;\n } while ((children === null || children === void 0 ? void 0 : children.size) === 0);\n};\nconst addDisconnectableToParent = (obj) => {\n // Climb the parent tree, creating a sparse tree of children needing\n // disconnection\n for (let parent; (parent = obj._$parent); obj = parent) {\n let children = parent._$disconnectableChildren;\n if (children === undefined) {\n parent._$disconnectableChildren = children = new Set();\n }\n else if (children.has(obj)) {\n // Once we've reached a parent that already contains this child, we\n // can short-circuit\n break;\n }\n children.add(obj);\n installDisconnectAPI(parent);\n }\n};\n/**\n * Changes the parent reference of the ChildPart, and updates the sparse tree of\n * Disconnectable children accordingly.\n *\n * Note, this method will be patched onto ChildPart instances and called from\n * the core code when parts are moved between different parents.\n */\nfunction reparentDisconnectables(newParent) {\n if (this._$disconnectableChildren !== undefined) {\n removeDisconnectableFromParent(this);\n this._$parent = newParent;\n addDisconnectableToParent(this);\n }\n else {\n this._$parent = newParent;\n }\n}\n/**\n * Sets the connected state on any directives contained within the committed\n * value of this part (i.e. within a TemplateInstance or iterable of\n * ChildParts) and runs their `disconnected`/`reconnected`s, as well as within\n * any directives stored on the ChildPart (when `valueOnly` is false).\n *\n * `isClearingValue` should be passed as `true` on a top-level part that is\n * clearing itself, and not as a result of recursively disconnecting directives\n * as part of a `clear` operation higher up the tree. This both ensures that any\n * directive on this ChildPart that produced a value that caused the clear\n * operation is not disconnected, and also serves as a performance optimization\n * to avoid needless bookkeeping when a subtree is going away; when clearing a\n * subtree, only the top-most part need to remove itself from the parent.\n *\n * `fromPartIndex` is passed only in the case of a partial `_clear` running as a\n * result of truncating an iterable.\n *\n * Note, this method will be patched onto ChildPart instances and called from the\n * core code when parts are cleared or the connection state is changed by the\n * user.\n */\nfunction notifyChildPartConnectedChanged(isConnected, isClearingValue = false, fromPartIndex = 0) {\n const value = this._$committedValue;\n const children = this._$disconnectableChildren;\n if (children === undefined || children.size === 0) {\n return;\n }\n if (isClearingValue) {\n if (Array.isArray(value)) {\n // Iterable case: Any ChildParts created by the iterable should be\n // disconnected and removed from this ChildPart's disconnectable\n // children (starting at `fromPartIndex` in the case of truncation)\n for (let i = fromPartIndex; i < value.length; i++) {\n notifyChildrenConnectedChanged(value[i], false);\n removeDisconnectableFromParent(value[i]);\n }\n }\n else if (value != null) {\n // TemplateInstance case: If the value has disconnectable children (will\n // only be in the case that it is a TemplateInstance), we disconnect it\n // and remove it from this ChildPart's disconnectable children\n notifyChildrenConnectedChanged(value, false);\n removeDisconnectableFromParent(value);\n }\n }\n else {\n notifyChildrenConnectedChanged(this, isConnected);\n }\n}\n/**\n * Patches disconnection API onto ChildParts.\n */\nconst installDisconnectAPI = (obj) => {\n var _a, _b;\n var _c, _d;\n if (obj.type == PartType.CHILD) {\n (_a = (_c = obj)._$notifyConnectionChanged) !== null && _a !== void 0 ? _a : (_c._$notifyConnectionChanged = notifyChildPartConnectedChanged);\n (_b = (_d = obj)._$reparentDisconnectables) !== null && _b !== void 0 ? _b : (_d._$reparentDisconnectables = reparentDisconnectables);\n }\n};\n/**\n * An abstract `Directive` base class whose `disconnected` method will be\n * called when the part containing the directive is cleared as a result of\n * re-rendering, or when the user calls `part.setConnected(false)` on\n * a part that was previously rendered containing the directive (as happens\n * when e.g. a LitElement disconnects from the DOM).\n *\n * If `part.setConnected(true)` is subsequently called on a\n * containing part, the directive's `reconnected` method will be called prior\n * to its next `update`/`render` callbacks. When implementing `disconnected`,\n * `reconnected` should also be implemented to be compatible with reconnection.\n *\n * Note that updates may occur while the directive is disconnected. As such,\n * directives should generally check the `this.isConnected` flag during\n * render/update to determine whether it is safe to subscribe to resources\n * that may prevent garbage collection.\n */\nexport class AsyncDirective extends Directive {\n constructor() {\n super(...arguments);\n // @internal\n this._$disconnectableChildren = undefined;\n }\n /**\n * Initialize the part with internal fields\n * @param part\n * @param parent\n * @param attributeIndex\n */\n _$initialize(part, parent, attributeIndex) {\n super._$initialize(part, parent, attributeIndex);\n addDisconnectableToParent(this);\n this.isConnected = part._$isConnected;\n }\n // This property needs to remain unminified.\n /**\n * Called from the core code when a directive is going away from a part (in\n * which case `shouldRemoveFromParent` should be true), and from the\n * `setChildrenConnected` helper function when recursively changing the\n * connection state of a tree (in which case `shouldRemoveFromParent` should\n * be false).\n *\n * @param isConnected\n * @param isClearingDirective - True when the directive itself is being\n * removed; false when the tree is being disconnected\n * @internal\n */\n ['_$notifyDirectiveConnectionChanged'](isConnected, isClearingDirective = true) {\n var _a, _b;\n if (isConnected !== this.isConnected) {\n this.isConnected = isConnected;\n if (isConnected) {\n (_a = this.reconnected) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n else {\n (_b = this.disconnected) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n }\n if (isClearingDirective) {\n notifyChildrenConnectedChanged(this, isConnected);\n removeDisconnectableFromParent(this);\n }\n }\n /**\n * Sets the value of the directive's Part outside the normal `update`/`render`\n * lifecycle of a directive.\n *\n * This method should not be called synchronously from a directive's `update`\n * or `render`.\n *\n * @param directive The directive to update\n * @param value The value to set\n */\n setValue(value) {\n if (isSingleExpression(this.__part)) {\n this.__part._$setValue(value, this);\n }\n else {\n // this.__attributeIndex will be defined in this case, but\n // assert it in dev mode\n if (DEV_MODE && this.__attributeIndex === undefined) {\n throw new Error(`Expected this.__attributeIndex to be a number`);\n }\n const newValues = [...this.__part._$committedValue];\n newValues[this.__attributeIndex] = value;\n this.__part._$setValue(newValues, this, 0);\n }\n }\n /**\n * User callbacks for implementing logic to release any resources/subscriptions\n * that may have been retained by this directive. Since directives may also be\n * re-connected, `reconnected` should also be implemented to restore the\n * working state of the directive prior to the next render.\n */\n disconnected() { }\n reconnected() { }\n}\n//# sourceMappingURL=async-directive.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing } from '../lit-html.js';\nimport { directive, AsyncDirective } from '../async-directive.js';\n/**\n * Creates a new Ref object, which is container for a reference to an element.\n */\nexport const createRef = () => new Ref();\n/**\n * An object that holds a ref value.\n */\nclass Ref {\n}\n// When callbacks are used for refs, this map tracks the last value the callback\n// was called with, for ensuring a directive doesn't clear the ref if the ref\n// has already been rendered to a new spot. It is double-keyed on both the\n// context (`options.host`) and the callback, since we auto-bind class methods\n// to `options.host`.\nconst lastElementForContextAndCallback = new WeakMap();\nclass RefDirective extends AsyncDirective {\n render(_ref) {\n return nothing;\n }\n update(part, [ref]) {\n var _a;\n const refChanged = ref !== this._ref;\n if (refChanged && this._ref !== undefined) {\n // The ref passed to the directive has changed;\n // unset the previous ref's value\n this._updateRefValue(undefined);\n }\n if (refChanged || this._lastElementForRef !== this._element) {\n // We either got a new ref or this is the first render;\n // store the ref/element & update the ref value\n this._ref = ref;\n this._context = (_a = part.options) === null || _a === void 0 ? void 0 : _a.host;\n this._updateRefValue((this._element = part.element));\n }\n return nothing;\n }\n _updateRefValue(element) {\n var _a;\n if (typeof this._ref === 'function') {\n // If the current ref was called with a previous value, call with\n // `undefined`; We do this to ensure callbacks are called in a consistent\n // way regardless of whether a ref might be moving up in the tree (in\n // which case it would otherwise be called with the new value before the\n // previous one unsets it) and down in the tree (where it would be unset\n // before being set). Note that element lookup is keyed by\n // both the context and the callback, since we allow passing unbound\n // functions that are called on options.host, and we want to treat\n // these as unique \"instances\" of a function.\n const context = (_a = this._context) !== null && _a !== void 0 ? _a : globalThis;\n let lastElementForCallback = lastElementForContextAndCallback.get(context);\n if (lastElementForCallback === undefined) {\n lastElementForCallback = new WeakMap();\n lastElementForContextAndCallback.set(context, lastElementForCallback);\n }\n if (lastElementForCallback.get(this._ref) !== undefined) {\n this._ref.call(this._context, undefined);\n }\n lastElementForCallback.set(this._ref, element);\n // Call the ref with the new element value\n if (element !== undefined) {\n this._ref.call(this._context, element);\n }\n }\n else {\n this._ref.value = element;\n }\n }\n get _lastElementForRef() {\n var _a, _b, _c;\n return typeof this._ref === 'function'\n ? (_b = lastElementForContextAndCallback\n .get((_a = this._context) !== null && _a !== void 0 ? _a : globalThis)) === null || _b === void 0 ? void 0 : _b.get(this._ref)\n : (_c = this._ref) === null || _c === void 0 ? void 0 : _c.value;\n }\n disconnected() {\n // Only clear the box if our element is still the one in it (i.e. another\n // directive instance hasn't rendered its element to it before us); that\n // only happens in the event of the directive being cleared (not via manual\n // disconnection)\n if (this._lastElementForRef === this._element) {\n this._updateRefValue(undefined);\n }\n }\n reconnected() {\n // If we were manually disconnected, we can safely put our element back in\n // the box, since no rendering could have occurred to change its state\n this._updateRefValue(this._element);\n }\n}\n/**\n * Sets the value of a Ref object or calls a ref callback with the element it's\n * bound to.\n *\n * A Ref object acts as a container for a reference to an element. A ref\n * callback is a function that takes an element as its only argument.\n *\n * The ref directive sets the value of the Ref object or calls the ref callback\n * during rendering, if the referenced element changed.\n *\n * Note: If a ref callback is rendered to a different element position or is\n * removed in a subsequent render, it will first be called with `undefined`,\n * followed by another call with the new element it was rendered to (if any).\n *\n * ```js\n * // Using Ref object\n * const inputRef = createRef();\n * render(html`<input ${ref(inputRef)}>`, container);\n * inputRef.value.focus();\n *\n * // Using callback\n * const callback = (inputElement) => inputElement.focus();\n * render(html`<input ${ref(callback)}>`, container);\n * ```\n */\nexport const ref = directive(RefDirective);\n//# sourceMappingURL=ref.js.map","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport {\n executeAfterTransition,\n getElement\n} from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.3'\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element)\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null\n })\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\n this._createPopper(parent)\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', noop))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', noop))\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i])\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n if (!context._isShown()) {\n continue\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n }\n\n if (event) {\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (isDisabled(this)) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (event.key === ESCAPE_KEY) {\n instance.hide()\n return\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show()\n }\n\n instance._selectMenuItem(event)\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const assign = (target: any, ...args: any[]) => Object.assign(target, ...args);\nexport const keys = (obj: any) => Object.keys(obj);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { assign, keys } from \"./object\";\nfunction _isObject(item: any) {\n return item && typeof item === \"object\" && item.constructor === Object;\n}\n\nconst mergeDeep = (target: any, source: any) => {\n if (_isObject(target) && _isObject(source)) {\n keys(source).forEach(key => {\n if (_isObject(source[key])) {\n if (!target[key] || !_isObject(target[key])) {\n target[key] = source[key];\n }\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, { [key]: source[key] });\n }\n });\n }\n return target;\n};\n\nexport default mergeDeep;\n","import { LitElement } from \"lit\";\nimport styles from \"./sgds-element.scss\";\n\n/**\n * @cssprop --sgds-{stateColor} - State colors in hexadecimal value\n * @cssprop --sgds-{stateColor}-rgb - State colors in rgb value\n * @cssprop --sgds-{stateColor}-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --sgds-gray-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --overlay-background-color - The drawer and modal component overlay background color\n * @cssprop --zindex-modal - The drawer and modal component z-index value\n */\n\nexport default class SgdsElement extends LitElement {\n static styles = styles;\n /** Emits a custom event with more convenient defaults. */\n emit(name: string, options?: CustomEventInit) {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event;\n }\n}\n","export default function (componentName = \"\", elementName = \"\"): string {\n return `id-${Math.random().toString().substring(2, 6)}-sgds-${componentName}-${elementName}`;\n}\n","import type { StrictModifiers } from \"@popperjs/core\";\nimport * as Popper from \"@popperjs/core\";\nimport Dropdown from \"bootstrap/js/src/dropdown\";\nimport type { Dropdown as BsDropdown } from \"bootstrap\";\nimport { property, state } from \"lit/decorators.js\";\nimport { Ref, createRef } from \"lit/directives/ref.js\";\nimport mergeDeep from \"../utils/mergeDeep\";\nimport SgdsElement from \"./sgds-element\";\nimport generateId from \"../utils/generateId\";\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ESC = \"Escape\";\n\nexport type DropDirection = \"left\" | \"right\" | \"up\" | \"down\";\n\n/**\n * @event sgds-show - Emitted event when show instance is called\n * @event sgds-after-show - Emitted event when dropdown has been made visible to the user and CSS transitions have completed\n * @event sgds-hide - Emitted event when hide instance is called\n * @event sgds-after-hide - Emitted event when dropdown has hidden to the user and CSS transitions have completed\n * @event sgds-select - Emitted event when a slot item is selected\n */\n\nexport class DropdownElement extends SgdsElement {\n static styles = SgdsElement.styles;\n\n /** @internal */\n protected myDropdown: Ref<HTMLElement> = createRef();\n /** @internal */\n protected bsDropdown: BsDropdown = null;\n\n /** @internal Unique id generated for the dropdown menu */\n protected dropdownMenuId: string = generateId(\"dropdown-menu\", \"ul\");\n\n /** @internal Controls auto-flipping of menu */\n @property({ type: Boolean, state: true })\n protected noFlip = false;\n\n /** @internal When true, aligns right edge of menu with right edge of button */\n @property({ type: Boolean, reflect: true, state: true })\n protected menuAlignRight = false;\n\n /** @internal The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: true })\n protected drop: DropDirection = \"down\";\n\n /** Additional configuration to pass to Popper.js. See https://popper.js.org/ for config opts */\n @property({ type: Object })\n popperOpts = {};\n\n /** @internal */\n @state()\n dropdownConfig: Partial<Popper.Options>;\n /** @internal */\n @state()\n modifierOpt: StrictModifiers[] = [];\n\n /** When true, dropdown menu shows on first load */\n @property({ type: Boolean, reflect: true })\n menuIsOpen = false;\n\n /** Controls the close behaviour of dropdown menu. By default menu auto-closes when SgdsDropdownItem or area outside dropdown is clicked */\n @property({ type: String })\n close: \"outside\" | \"default\" | \"inside\" = \"default\";\n\n /** Disables the dropdown toggle */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.close !== \"inside\") {\n document.addEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this));\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n document.removeEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this));\n }\n\n firstUpdated() {\n this.bsDropdown = new Dropdown(this.myDropdown.value, {\n // autoClose not working as bootstrap is using attribute data-bs-toggle=\"dropdown\" to configure autoclose. But it doesnt look into this attribute in the shadow dom\n reference: \"toggle\", // working\n popperConfig: (defaultConfig?: Partial<Popper.Options>) => {\n //working\n this.dropdownConfig = {\n placement: \"bottom-start\",\n modifiers: !this.noFlip\n ? this.modifierOpt\n : [\n ...this.modifierOpt,\n {\n name: \"flip\",\n options: { fallbackPlacements: [] }\n }\n ]\n };\n\n switch (this.drop) {\n case \"up\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"top-end\" : \"top-start\";\n break;\n case \"right\":\n this.dropdownConfig.placement = \"right-start\";\n break;\n case \"left\":\n this.dropdownConfig.placement = \"left-start\";\n break;\n case \"down\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"bottom-end\" : \"bottom-start\";\n break;\n default:\n this.dropdownConfig.placement = undefined;\n break;\n }\n return mergeDeep(defaultConfig, mergeDeep(this.dropdownConfig, this.popperOpts));\n }\n });\n\n this.myDropdown.value.addEventListener(\"show.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-show\");\n });\n\n this.myDropdown.value.addEventListener(\"shown.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-after-show\");\n });\n\n this.myDropdown.value.addEventListener(\"hide.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-hide\");\n });\n\n this.myDropdown.value.addEventListener(\"hidden.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-after-hide\");\n });\n\n this.addEventListener(\"keydown\", this._handleKeyboardMenuEvent);\n }\n\n /** When invoked, opens the dropdown menu */\n showMenu() {\n this.bsDropdown.show();\n }\n\n /** When invoked, hides the dropdown menu */\n hideMenu() {\n this.bsDropdown.hide();\n }\n\n toggleMenu() {\n this.bsDropdown.toggle();\n }\n\n private _handleKeyboardMenuEvent(e: KeyboardEvent) {\n switch (e.key) {\n case ARROW_DOWN:\n e.preventDefault();\n if (!this.menuIsOpen) return this.showMenu();\n break;\n case ARROW_UP:\n e.preventDefault();\n if (!this.menuIsOpen) return this.showMenu();\n break;\n case ESC:\n return this.hideMenu();\n default:\n break;\n }\n }\n\n private _handleClickOutOfElement(e: MouseEvent, self: DropdownElement) {\n if (!e.composedPath().includes(self)) {\n this.hideMenu();\n }\n }\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n\nimport type { LitElement } from \"lit\";\n\ntype UpdateHandler = (prev?: unknown, next?: unknown) => void;\n\ntype NonUndefined<A> = A extends undefined ? never : A;\n\ntype UpdateHandlerFunctionKeys<T extends object> = {\n [K in keyof T]-?: NonUndefined<T[K]> extends UpdateHandler ? K : never;\n}[keyof T];\n\ninterface WatchOptions {\n /**\n * If true, will only start watching after the initial update/render\n */\n waitUntilFirstUpdate?: boolean;\n}\n\nexport function watch(propName: string, options?: WatchOptions) {\n const resolvedOptions: Required<WatchOptions> = {\n waitUntilFirstUpdate: false,\n ...options\n };\n return <ElemClass extends LitElement>(\n proto: ElemClass,\n decoratedFnName: UpdateHandlerFunctionKeys<ElemClass>\n ): void => {\n // @ts-expect-error -- update is a protected property\n const { update } = proto;\n if (propName in proto) {\n const propNameKey = propName as keyof ElemClass;\n // @ts-expect-error -- update is a protected property\n proto.update = function (this: ElemClass, changedProps: Map<keyof ElemClass, ElemClass[keyof ElemClass]>) {\n if (changedProps.has(propNameKey)) {\n const oldValue = changedProps.get(propNameKey);\n const newValue = this[propNameKey];\n\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n (this[decoratedFnName] as unknown as UpdateHandler)(oldValue, newValue);\n }\n }\n }\n\n update.call(this, changedProps);\n };\n }\n };\n}\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { noChange } from '../lit-html.js';\nimport { directive, Directive, PartType, } from '../directive.js';\nclass ClassMapDirective extends Directive {\n constructor(partInfo) {\n var _a;\n super(partInfo);\n if (partInfo.type !== PartType.ATTRIBUTE ||\n partInfo.name !== 'class' ||\n ((_a = partInfo.strings) === null || _a === void 0 ? void 0 : _a.length) > 2) {\n throw new Error('`classMap()` can only be used in the `class` attribute ' +\n 'and must be the only part in the attribute.');\n }\n }\n render(classInfo) {\n // Add spaces to ensure separation from static classes\n return (' ' +\n Object.keys(classInfo)\n .filter((key) => classInfo[key])\n .join(' ') +\n ' ');\n }\n update(part, [classInfo]) {\n var _a, _b;\n // Remember dynamic classes on the first render\n if (this._previousClasses === undefined) {\n this._previousClasses = new Set();\n if (part.strings !== undefined) {\n this._staticClasses = new Set(part.strings\n .join(' ')\n .split(/\\s/)\n .filter((s) => s !== ''));\n }\n for (const name in classInfo) {\n if (classInfo[name] && !((_a = this._staticClasses) === null || _a === void 0 ? void 0 : _a.has(name))) {\n this._previousClasses.add(name);\n }\n }\n return this.render(classInfo);\n }\n const classList = part.element.classList;\n // Remove old classes that no longer apply\n // We use forEach() instead of for-of so that we don't require down-level\n // iteration.\n this._previousClasses.forEach((name) => {\n if (!(name in classInfo)) {\n classList.remove(name);\n this._previousClasses.delete(name);\n }\n });\n // Add or remove classes based on their classMap value\n for (const name in classInfo) {\n // We explicitly want a loose truthy check of `value` because it seems\n // more convenient that '' and 0 are skipped.\n const value = !!classInfo[name];\n if (value !== this._previousClasses.has(name) &&\n !((_b = this._staticClasses) === null || _b === void 0 ? void 0 : _b.has(name))) {\n if (value) {\n classList.add(name);\n this._previousClasses.add(name);\n }\n else {\n classList.remove(name);\n this._previousClasses.delete(name);\n }\n }\n }\n return noChange;\n }\n}\n/**\n * A directive that applies dynamic CSS classes.\n *\n * This must be used in the `class` attribute and must be the only part used in\n * the attribute. It takes each property in the `classInfo` argument and adds\n * the property name to the element's `classList` if the property value is\n * truthy; if the property value is falsey, the property name is removed from\n * the element's `class`.\n *\n * For example `{foo: bar}` applies the class `foo` if the value of `bar` is\n * truthy.\n *\n * @param classInfo\n */\nexport const classMap = directive(ClassMapDirective);\n//# sourceMappingURL=class-map.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing } from '../lit-html.js';\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = (value) => value !== null && value !== void 0 ? value : nothing;\n//# sourceMappingURL=if-defined.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing, noChange } from '../lit-html.js';\nimport { directive, Directive, PartType } from '../directive.js';\nconst HTML_RESULT = 1;\nexport class UnsafeHTMLDirective extends Directive {\n constructor(partInfo) {\n super(partInfo);\n this._value = nothing;\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(`${this.constructor.directiveName}() can only be used in child bindings`);\n }\n }\n render(value) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(`${this.constructor.directiveName}() called with a non-string value`);\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strings.raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: this.constructor\n .resultType,\n strings,\n values: [],\n });\n }\n}\nUnsafeHTMLDirective.directiveName = 'unsafeHTML';\nUnsafeHTMLDirective.resultType = HTML_RESULT;\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n//# sourceMappingURL=unsafe-html.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { directive } from '../directive.js';\nimport { UnsafeHTMLDirective } from './unsafe-html.js';\nconst SVG_RESULT = 2;\nclass UnsafeSVGDirective extends UnsafeHTMLDirective {\n}\nUnsafeSVGDirective.directiveName = 'unsafeSVG';\nUnsafeSVGDirective.resultType = SVG_RESULT;\n/**\n * Renders the result as SVG, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeSVG = directive(UnsafeSVGDirective);\n//# sourceMappingURL=unsafe-svg.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n// Any new exports need to be added to the export statement in\n// `packages/lit/src/index.all.ts`.\nimport { html as coreHtml, svg as coreSvg } from './lit-html.js';\n/**\n * Prevents JSON injection attacks.\n *\n * The goals of this brand:\n * 1) fast to check\n * 2) code is small on the wire\n * 3) multiple versions of Lit in a single page will all produce mutually\n * interoperable StaticValues\n * 4) normal JSON.parse (without an unusual reviver) can not produce a\n * StaticValue\n *\n * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but\n * we don't care about the key, so we break ties via (2) and use the empty\n * string.\n */\nconst brand = Symbol.for('');\n/** Safely extracts the string part of a StaticValue. */\nconst unwrapStaticValue = (value) => {\n if ((value === null || value === void 0 ? void 0 : value.r) !== brand) {\n return undefined;\n }\n return value === null || value === void 0 ? void 0 : value['_$litStatic$'];\n};\n/**\n * Wraps a string so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Note that this function is unsafe to use on untrusted content, as it will be\n * directly parsed into HTML. Do not pass user input to this function\n * without sanitizing it.\n *\n * Static values can be changed, but they will cause a complete re-render\n * since they effectively create a new template.\n */\nexport const unsafeStatic = (value) => ({\n ['_$litStatic$']: value,\n r: brand,\n});\nconst textFromStatic = (value) => {\n if (value['_$litStatic$'] !== undefined) {\n return value['_$litStatic$'];\n }\n else {\n throw new Error(`Value passed to 'literal' function must be a 'literal' result: ${value}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`);\n }\n};\n/**\n * Tags a string literal so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * The only values that may be used in template expressions are other tagged\n * `literal` results or `unsafeStatic` values (note that untrusted content\n * should never be passed to `unsafeStatic`).\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Static values can be changed, but they will cause a complete re-render since\n * they effectively create a new template.\n */\nexport const literal = (strings, ...values) => ({\n ['_$litStatic$']: values.reduce((acc, v, idx) => acc + textFromStatic(v) + strings[idx + 1], strings[0]),\n r: brand,\n});\nconst stringsCache = new Map();\n/**\n * Wraps a lit-html template tag (`html` or `svg`) to add static value support.\n */\nexport const withStatic = (coreTag) => (strings, ...values) => {\n const l = values.length;\n let staticValue;\n let dynamicValue;\n const staticStrings = [];\n const dynamicValues = [];\n let i = 0;\n let hasStatics = false;\n let s;\n while (i < l) {\n s = strings[i];\n // Collect any unsafeStatic values, and their following template strings\n // so that we treat a run of template strings and unsafe static values as\n // a single template string.\n while (i < l &&\n ((dynamicValue = values[i]),\n (staticValue = unwrapStaticValue(dynamicValue))) !== undefined) {\n s += staticValue + strings[++i];\n hasStatics = true;\n }\n // If the last value is static, we don't need to push it.\n if (i !== l) {\n dynamicValues.push(dynamicValue);\n }\n staticStrings.push(s);\n i++;\n }\n // If the last value isn't static (which would have consumed the last\n // string), then we need to add the last string.\n if (i === l) {\n staticStrings.push(strings[l]);\n }\n if (hasStatics) {\n const key = staticStrings.join('$$lit$$');\n strings = stringsCache.get(key);\n if (strings === undefined) {\n // Beware: in general this pattern is unsafe, and doing so may bypass\n // lit's security checks and allow an attacker to execute arbitrary\n // code and inject arbitrary content.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n staticStrings.raw = staticStrings;\n stringsCache.set(key, (strings = staticStrings));\n }\n values = dynamicValues;\n }\n return coreTag(strings, ...values);\n};\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const html = withStatic(coreHtml);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const svg = withStatic(coreSvg);\n//# sourceMappingURL=static.js.map","// @defaultValue decorator\n//\n// Runs when the corresponding attribute of the observed property changes, e.g. after calling Element.setAttribute or after updating\n// the observed property.\n//\n// The decorator checks whether the value of the attribute is different from the value of the property and in that case\n// it saves the new value.\n//\n//\n// Usage:\n//\n// @property({ type: Boolean, reflect: true })\n// checked = false;\n//\n// @defaultValue('checked')\n// defaultChecked = false;\n//\n\nimport { defaultConverter } from \"lit\";\nimport type { ReactiveElement } from \"lit\";\n\nexport const defaultValue =\n (propertyName = \"value\") =>\n (proto: ReactiveElement, key: string) => {\n const ctor = proto.constructor as typeof ReactiveElement;\n\n const attributeChangedCallback = ctor.prototype.attributeChangedCallback;\n ctor.prototype.attributeChangedCallback = function (\n this: ReactiveElement & { [name: string]: unknown },\n name,\n old,\n value\n ) {\n const options = ctor.getPropertyOptions(propertyName);\n const attributeName = (typeof options.attribute === \"string\" ? options.attribute : propertyName).toLowerCase();\n if (name === attributeName) {\n const converter = options.converter || defaultConverter;\n const fromAttribute =\n typeof converter === \"function\" ? converter : converter?.fromAttribute ?? defaultConverter.fromAttribute;\n\n const newValue: unknown = fromAttribute(value, options.type);\n if (this[propertyName] !== newValue) {\n this[key] = newValue;\n }\n }\n attributeChangedCallback.call(this, name, old, value);\n };\n };\n","import type SgdsButton from \"../components/Button/sgds-button\";\nimport type { ReactiveController, ReactiveControllerHost } from \"lit\";\nimport SgdsElement from \"../base/sgds-element\";\nconst reportValidityOverloads: WeakMap<HTMLFormElement, () => boolean> = new WeakMap();\n\nexport class FormSubmitController implements ReactiveController {\n host?: ReactiveControllerHost & Element;\n form?: HTMLFormElement | null;\n options: FormSubmitControllerOptions;\n\n constructor(host: ReactiveControllerHost & Element, options?: Partial<FormSubmitControllerOptions>) {\n (this.host = host).addController(this);\n this.options = {\n form: (input: HTMLInputElement) => input.closest(\"form\"),\n name: (input: HTMLInputElement) => input.name,\n value: (input: HTMLInputElement) => input.value,\n defaultValue: (input: HTMLInputElement) => input.defaultValue,\n disabled: (input: HTMLInputElement) => input.disabled,\n reportValidity: (input: HTMLInputElement) => {\n return typeof input.reportValidity === \"function\" ? input.reportValidity() : true;\n },\n setValue: (input: HTMLInputElement, value: string) => {\n input.value = value;\n },\n ...options\n };\n this.handleFormData = this.handleFormData.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.handleFormReset = this.handleFormReset.bind(this);\n this.reportFormValidity = this.reportFormValidity.bind(this);\n }\n\n hostConnected() {\n this.form = this.options.form(this.host);\n\n if (this.form) {\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n\n // Overload the form's reportValidity() method so it looks at Shoelace form controls\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n }\n }\n\n hostDisconnected() {\n if (this.form) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n\n // Remove the overload and restore the original method\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n\n this.form = undefined;\n }\n }\n\n handleFormData(event: FormDataEvent) {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n\n if (!disabled && typeof name === \"string\" && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n (value as unknown[]).forEach(val => {\n event.formData.append(name, (val as string | number | boolean).toString());\n });\n } else {\n event.formData.append(name, (value as string | number | boolean).toString());\n }\n }\n }\n\n handleFormSubmit(event: Event) {\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n handleFormReset() {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n }\n\n reportFormValidity() {\n //\n // Shoelace form controls work hard to act like regular form controls. They support the Constraint Validation API\n // and its associated methods such as setCustomValidity() and reportValidity(). However, the HTMLFormElement also\n // has a reportValidity() method that will trigger validation on all child controls. Since we're not yet using\n // ElementInternals, we need to overload this method so it looks for any element with the reportValidity() method.\n //\n // We preserve the original method in a WeakMap, but we don't call it from the overload because that would trigger\n // validations in an unexpected order. When the element disconnects, we revert to the original behavior. This won't\n // be necessary once we can use ElementInternals.\n //\n // Note that we're also honoring the form's novalidate attribute.\n //\n if (this.form && !this.form.noValidate) {\n // This seems sloppy, but checking all elements will cover native inputs, Shoelace inputs, and other custom\n // elements that support the constraint validation API.\n const elements = this.form.querySelectorAll<HTMLInputElement>(\"*\");\n\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n\n return true;\n }\n\n doAction(type: \"submit\" | \"reset\", invoker?: HTMLInputElement | SgdsButton) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n\n // Pass form attributes through to the temporary button\n if (invoker) {\n [\"formaction\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach(attr => {\n if (invoker.hasAttribute(attr)) {\n button.setAttribute(attr, invoker.getAttribute(attr));\n }\n });\n }\n\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n\n /** Resets the form, restoring all the control to their default value */\n reset(invoker?: HTMLInputElement | SgdsButton) {\n this.doAction(\"reset\", invoker);\n }\n\n /** Submits the form, triggering validation and form data injection. */\n submit(invoker?: HTMLInputElement | SgdsButton) {\n // Calling form.submit() bypasses the submit event and constraint validation. To prevent this, we can inject a\n // native submit button into the form, \"click\" it, then remove it to simulate a standard form submission.\n this.doAction(\"submit\", invoker);\n }\n}\n\nexport interface FormSubmitControllerOptions {\n /** A function that returns the form containing the form control. */\n form: (input: unknown) => HTMLFormElement | null;\n /** A function that returns the form control's name, which will be submitted with the form data. */\n name: (input: unknown) => string;\n /** A function that returns the form control's current value. */\n value: (input: unknown) => unknown | unknown[];\n /** A function that returns the form control's default value. */\n defaultValue: (input: unknown) => unknown | unknown[];\n /** A function that returns the form control's current disabled state. If disabled, the value won't be submitted. */\n disabled: (input: unknown) => boolean;\n /**\n * A function that maps to the form control's reportValidity() function. When the control is invalid, this will\n * prevent submission and trigger the browser's constraint violation warning.\n */\n reportValidity: (input: unknown) => boolean;\n\n /** A function that sets the form control's value */\n setValue: (input: unknown, value: unknown) => void;\n}\n\nexport interface SgdsFormControl extends SgdsElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | \"any\";\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n}\n","import { property, query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { unsafeSVG } from \"lit/directives/unsafe-svg.js\";\nimport { html } from \"lit/static-html.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/form\";\nimport { FormSubmitController } from \"../../utils/form\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\n\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n *\n */\nexport class SgdsInput extends SgdsElement implements SgdsFormControl {\n static styles = SgdsElement.styles;\n /**@internal */\n @query(\"input.form-control\") input: HTMLInputElement;\n /**@internal */\n private readonly formSubmitController = new FormSubmitController(this);\n /** The type of input which works the same as HTMLInputElement*/\n @property({ reflect: true }) type:\n | \"date\"\n | \"datetime-local\"\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"time\"\n | \"url\" = \"text\";\n /** The input's label */\n @property({ reflect: true }) label = \"\";\n /** The input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n /**The input's name attribute */\n @property({ reflect: true }) name: string;\n /**Forwards classes to the native HTMLInputElement of the component. Can be used to insert any classes from bootstrap such as mt-2 */\n @property({ reflect: true }) inputClasses: string;\n /**Optional. Pass svg html of icons in string form*/\n @property({ type: String }) icon: string;\n /**Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n /**Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n /**The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n /**A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n /**Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n /**Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n /**Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n /**Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback = \"\";\n\n /**@internal */\n @state() invalid = false;\n /**@internal */\n @state() valid = false;\n\n /**@internal */\n private inputId: string = genId(\"input\", this.type);\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n public reportValidity() {\n return this.input.reportValidity();\n }\n handleInvalid() {\n this.invalid = true;\n }\n\n handleChange(event: string) {\n this.value = this.input.value;\n this.emit(event);\n }\n\n handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n handleBlur() {\n this.emit(\"sgds-blur\");\n }\n\n handleKeyDown(event: KeyboardEvent) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === \"Enter\" && !hasModifier) {\n setTimeout(() => {\n // Prevent submission when enter is click on a submission in an Input Method Editor with isComposing\n if (!event.defaultPrevented && !event.isComposing) {\n this.formSubmitController.submit();\n }\n });\n }\n }\n\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.input.disabled = this.disabled;\n this.invalid = !this.input.checkValidity();\n }\n\n @watch(\"value\", { waitUntilFirstUpdate: true })\n handleValueChange() {\n this.invalid = !this.input.checkValidity();\n this.valid = this.input.checkValidity();\n // remove validation for input that is not required, is already dirty and has empty value\n if (!this.required && this.value === \"\") {\n this.valid = false;\n }\n }\n\n render() {\n const input = html`\n <input\n class=${classMap({\n \"form-control\": true,\n \"is-invalid\": this.hasFeedback && this.invalid,\n \"is-valid\": this.hasFeedback && this.valid,\n [`${this.inputClasses}`]: this.inputClasses\n })}\n type=${this.type}\n id=${this.inputId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n @input=${() => this.handleChange(\"sgds-input\")}\n @change=${() => this.handleChange(\"sgds-change\")}\n @keydown=${this.handleKeyDown}\n @invalid=${this.handleInvalid}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n ${this.hasFeedback\n ? html`<div id=\"${this.inputId}-invalid\" class=\"invalid-feedback\">${this.invalidFeedback}</div>`\n : \"\"}\n `;\n // if iconName is defined\n const inputWithIcon = html`\n <div class=\"sgds form-control-group ${this.inputClasses}\">\n <span class=\"form-control-icon\"> ${unsafeSVG(this.icon)} </span>\n ${input}\n </div>\n `;\n // if hintText is defined\n const withHintText = html` <small id=\"${this.inputId}Help\" class=\"text-muted form-text\">${this.hintText}</small> `;\n\n // if label is defined\n const withLabel = html` <label for=${this.inputId} class=\"form-label\">${this.label}</label> `;\n\n return html`\n <div class=\"d-flex flex-column w-100\">\n ${html`${this.label && withLabel} ${this.hintText && withHintText} ${this.icon ? inputWithIcon : input} `}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date(date: DateType): DateType {\n * return constructFrom(\n * date, // Use contrustor from the given date\n * date.getTime() // Use the date value to create a new date\n * )\n * }\n */\nexport function constructFrom(date, value) {\n if (date instanceof Date) {\n return new date.constructor(value);\n } else {\n return new Date(value);\n }\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { endOfDay } from \"./endOfDay.mjs\";\nimport { endOfMonth } from \"./endOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date) {\n const _date = toDate(date);\n return +endOfDay(_date) === +endOfMonth(_date);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n","import { getDaysInMonth, isLastDayOfMonth, lastDayOfMonth } from \"date-fns\";\n\n/**\n * @description - creates calendar's year view years array with context of\n * datepicker's displayDate and current year\n * Fixes current year to the start of array\n */\nexport const createYearViewArray = (displayDate: Date, currentYear: number) => {\n // keeping the year range position to be always fixed by setting current year to the first element of the calendar\n const displayYear = displayDate.getFullYear();\n const remainder = (displayYear - currentYear) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n\n const yearArray = [];\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1; // -1 to match the index of the years (index starts from 0)\n\n for (let i = startLimit; i < endLimit + 1; i++) {\n yearArray.push(i);\n }\n\n return yearArray;\n};\nexport const sanitizedNextMonth = (d: Date) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const nextMonthDate = new Date(year, month + 1);\n const numberOfDaysNextMonth = getDaysInMonth(nextMonthDate);\n\n if (isLastDayOfMonth(d) && numberOfDaysNextMonth < date) {\n return lastDayOfMonth(nextMonthDate);\n } else {\n return new Date(year, month + 1, date);\n }\n};\nexport const sanitizedPreviousMonth = (d: Date) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const prevMonthDate = new Date(year, month - 1);\n const numberOfDaysPrevMonth = getDaysInMonth(prevMonthDate);\n if (isLastDayOfMonth(d) && numberOfDaysPrevMonth < date) {\n return lastDayOfMonth(prevMonthDate);\n } else {\n return new Date(year, month - 1, date);\n }\n};\nexport const setTimeToNoon = (date: Date): Date => {\n const newDate = new Date(date);\n newDate.setHours(12);\n newDate.setMinutes(0);\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n return newDate;\n};\n\nexport const sortAscDates = (dates: Date[]) => {\n return dates.sort((a, b) => a.getTime() - b.getTime());\n};\n","import { HTMLTemplateResult, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { createYearViewArray, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport styles from \"./datepicker-calendar.scss\";\nimport { ViewEnum } from \"./types\";\n\nconst TODAY_DATE = new Date();\n\nconst keyPressAction = {\n ArrowUp: {\n days: -7,\n months: -3,\n years: -3\n },\n ArrowDown: {\n days: 7,\n months: 3,\n years: 3\n },\n ArrowRight: {\n days: 1,\n months: 1,\n years: 1\n },\n ArrowLeft: {\n days: -1,\n months: -1,\n years: -1\n }\n};\nexport class DatepickerCalendar extends SgdsElement {\n static styles = [SgdsElement.styles, styles];\n\n /** @internal */\n static DAY_LABELS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\n /** @internal */\n static daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n /** @internal */\n static MONTHVIEW_LABELS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n /** @internal */\n @property({ type: Array }) selectedDate: Date[] = [];\n\n /** @internal */\n @property({ attribute: false }) displayDate: Date = TODAY_DATE;\n\n /** @internal */\n @property({ type: String }) minDate?: string;\n\n /** @internal */\n @property({ type: String }) maxDate?: string;\n\n /** @internal */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n private focusedDate: Date = setTimeToNoon(this.displayDate);\n\n /** @internal */\n @property() view: ViewEnum;\n\n /** @internal */\n @property({ type: Boolean }) show: boolean;\n\n @property()\n focusedTabIndex: number;\n\n /**Shifts focus from Input to Calendar */\n public focusOnCalendar(toBlurEl: HTMLElement) {\n toBlurEl.blur();\n this._focusOnCalendarCell();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(\"keydown\", this._handleKeyPress);\n }\n\n firstUpdated() {\n if (this.selectedDate.length > 0) {\n this.focusedDate = setTimeToNoon(this.selectedDate[0]);\n }\n }\n updated() {\n /** For KeyboardNavigation (switching months) and ClickNavigation:\n * Runs after render has completed and td of next month has appeared.\n * For the case when calendar view changes to the next month\n * */\n if (this.focusedTabIndex === 3) {\n this._focusOnCalendarCell();\n }\n }\n\n @watch(\"displayDate\", { waitUntilFirstUpdate: true })\n _updateFocusedDate() {\n this.focusedDate = setTimeToNoon(this.displayDate);\n }\n\n private _setFocusedDate(shift: number) {\n switch (this.view) {\n case \"days\": {\n this.focusedDate = setTimeToNoon(new Date(this.focusedDate.setDate(this.focusedDate.getDate() + shift)));\n break;\n }\n case \"months\": {\n this.focusedDate = setTimeToNoon(new Date(this.focusedDate.setMonth(this.focusedDate.getMonth() + shift)));\n break;\n }\n case \"years\": {\n this.focusedDate = setTimeToNoon(\n new Date(this.focusedDate.setFullYear(this.focusedDate.getFullYear() + shift))\n );\n break;\n }\n }\n }\n private _handleEnterDateKeyboard(event: KeyboardEvent) {\n const targetElement = event.composedPath()[0] as HTMLElement;\n if (targetElement.classList.contains(\"disabled\")) return;\n\n switch (this.view) {\n case \"days\":\n this._onClickDay(event);\n break;\n case \"months\": {\n const { month } = targetElement.dataset;\n this._onClickMonth(parseInt(month));\n break;\n }\n case \"years\": {\n const { year } = targetElement.dataset;\n this._onClickYear(parseInt(year));\n }\n }\n }\n private _handleKeyPress(event: KeyboardEvent) {\n if (event.key === \"Enter\") {\n event.preventDefault();\n this._handleEnterDateKeyboard(event);\n return;\n }\n if (event.key === \"Tab\") {\n const targetEl: HTMLElement = this._getFocusedTarget();\n if (this.focusedTabIndex !== 3) targetEl.blur();\n return;\n }\n if (event.key.includes(\"Arrow\")) {\n event.preventDefault();\n this._blurCalendarCell();\n const keyShiftObject = keyPressAction[event.key];\n const shiftNumber = keyShiftObject[this.view];\n this._setFocusedDate(shiftNumber);\n\n this._focusOnCalendarCell();\n }\n }\n\n private _generateIncrementDates(): Date[] {\n const start = setTimeToNoon(this.selectedDate[0]);\n\n if (this.selectedDate.length < 2) {\n return [start];\n }\n\n const end = setTimeToNoon(this.selectedDate[1]);\n const arr: Date[] = [];\n if (start.getTime() < end.getTime()) {\n for (let dt = start; dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n } else {\n for (let dt = end; dt <= start; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n }\n return arr;\n }\n\n private _onClickDay(event: MouseEvent | KeyboardEvent) {\n const { day, date } = (event.composedPath()[0] as HTMLTableCellElement).dataset;\n\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setDate(parseInt(day));\n /** update new focused date for mouse click */\n if (event.type === \"click\") {\n this.focusedDate = setTimeToNoon(new Date(date));\n }\n\n if (this.mode === \"single\") {\n // Single mode: Select a single date\n\n this.selectedDate = [displayDateClone];\n\n // Emit event with selected date\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n } else if (this.mode === \"range\") {\n // Range mode: Select a range of dates\n const selectedDates = [...this.selectedDate];\n\n if (selectedDates.length === 0 || selectedDates.length === 2) {\n // No dates selected yet or both dates already selected,\n // start a new range by clearing the selected dates array\n selectedDates.length = 0;\n }\n\n // Add the selected date to the range\n selectedDates.push(displayDateClone);\n\n // Update the selectedDate property\n this.selectedDate = selectedDates;\n\n // Emit event with the range of selected dates\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n }\n\n // Check if the selected date is before minDate or after maxDate\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n\n const selectedDate = setTimeToNoon(displayDateClone);\n if ((minimumDate && selectedDate < minimumDate) || (maximumDate && selectedDate > maximumDate)) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private _onClickMonth(month: number, year: number = this.focusedDate.getFullYear()) {\n const displayDateClone = new Date(this.displayDate);\n this.view = \"days\";\n displayDateClone.setMonth(month);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.emit(\"sgds-view\", { detail: this.view });\n //once clicked, should change view to days, and hold value and change view\n this.emit(\"sgds-selectmonth\", { detail: this.displayDate });\n }\n\n private _onClickYear(year: number) {\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.view = \"months\";\n this.emit(\"sgds-view\", { detail: this.view });\n\n this.emit(\"sgds-selectyear\", { detail: this.displayDate });\n }\n\n private _getFocusedTarget(): HTMLElement {\n const queryObj = {\n days: `td[data-date=\"${this.focusedDate.toISOString()}\"]`,\n months: `button[data-month=\"${this.focusedDate.getMonth()}\"][data-year=\"${this.focusedDate.getFullYear()}\"]`,\n years: `button[data-year=\"${this.focusedDate.getFullYear()}\"]`\n };\n const queryString = queryObj[this.view];\n const targetEl: HTMLElement = this.shadowRoot.querySelector(`${queryString}`);\n return targetEl;\n }\n private _blurCalendarCell() {\n const targetEl = this._getFocusedTarget();\n targetEl.setAttribute(\"tabindex\", \"-1\");\n targetEl.blur();\n }\n private _focusOnCalendarCell() {\n const targetEl = this._getFocusedTarget();\n if (targetEl) {\n targetEl.setAttribute(\"tabindex\", \"3\");\n targetEl.focus();\n this.emit(\"sgds-update-focus\", { detail: this.focusedDate });\n } else {\n /** Change month view */\n this.emit(\"sgds-change-calendar\", { detail: this.focusedDate });\n }\n }\n private _generateDays() {\n const selectedDates = this.selectedDate.map(d => setTimeToNoon(d));\n\n const rangeSelectedDates = this._generateIncrementDates();\n\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n const year = this.displayDate.getFullYear();\n const month = this.displayDate.getMonth();\n const firstDateOfMonth = new Date(year, month, 1);\n const startingDayOfMonth = firstDateOfMonth.getDay();\n let monthLength = DatepickerCalendar.daysInMonth[month];\n if (month === 1) {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n monthLength = 29;\n }\n }\n\n const weeks = [];\n let day = 1;\n for (let i = 0; i < 9; i++) {\n const week = [];\n for (let j = 0; j <= 6; j++) {\n if (day <= monthLength && (i > 0 || j >= startingDayOfMonth)) {\n const date = new Date(year, month, day, 12, 0, 0, 0).toISOString();\n\n const beforeMinDate = minimumDate && Date.parse(date) < Date.parse(minimumDate.toISOString());\n const afterMinDate = maximumDate && Date.parse(date) > Date.parse(maximumDate.toISOString());\n const clickHandler = beforeMinDate || afterMinDate ? undefined : this._onClickDay;\n\n const isCurrentMonth = TODAY_DATE.getMonth() === this.displayDate.getMonth();\n const isCurrentYear = TODAY_DATE.getFullYear() === this.displayDate.getFullYear();\n const isCurrentDay = TODAY_DATE.getDate() === day;\n\n const isSelected =\n selectedDates.length > 0 && rangeSelectedDates.some(d => Date.parse(date) === Date.parse(d.toISOString()));\n const isFirstSelectedDate = selectedDates.length > 0 && rangeSelectedDates[0].toISOString() === date;\n const isLastSelectedDate =\n selectedDates.length > 1 && rangeSelectedDates[rangeSelectedDates.length - 1].toISOString() === date;\n\n week.push(\n html`<td\n key=${j}\n data-date=${date}\n data-day=${day}\n class=${classMap({\n today: isCurrentDay && isCurrentMonth && isCurrentYear,\n \"selected-ends\": isFirstSelectedDate || isLastSelectedDate,\n active: isSelected,\n disabled: beforeMinDate || afterMinDate\n })}\n @click=${clickHandler}\n tabindex=${this.focusedDate === new Date(date) ? \"3\" : \"-1\"}\n disabled=${beforeMinDate || afterMinDate}\n >\n ${day}\n </td>`\n );\n day++;\n } else {\n week.push(html`<td key=${j}></td>`);\n }\n }\n\n weeks.push(\n html`<tr key=${i}>\n ${week}\n </tr>`\n );\n if (day > monthLength) {\n break;\n }\n }\n\n const dayView = html`\n <table class=\"text-center\">\n <thead>\n <tr>\n ${DatepickerCalendar.DAY_LABELS.map(\n (label: string, index: number) =>\n html`\n <td key=${index}>\n <small>${label}</small>\n </td>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${weeks}\n </tbody>\n </table>\n `;\n return dayView;\n }\n\n private _generateMonths() {\n const rangeDates = this._generateIncrementDates();\n const selectedTime = rangeDates.map(e => setTimeToNoon(new Date(e.getFullYear(), e.getMonth())).getTime());\n\n const year = this.displayDate.getFullYear();\n\n const monthView = html`\n <div class=\"sgds monthpicker\">\n ${DatepickerCalendar.MONTHVIEW_LABELS.map((m, idx) => {\n const isCurrentMonth = idx === TODAY_DATE.getMonth() && year === TODAY_DATE.getFullYear();\n const time = setTimeToNoon(new Date(year, idx)).getTime();\n const isFirstSelectedMonth = rangeDates[0].getMonth() === idx;\n const isFirstSelectedYear = rangeDates[0].getFullYear() === year;\n const isLastSelectedMonth = rangeDates[rangeDates.length - 1].getMonth() === idx;\n const isLastSelectedYear = rangeDates[rangeDates.length - 1].getFullYear() === year;\n return html` <button\n class=${classMap({\n active: selectedTime.includes(time),\n today: isCurrentMonth,\n month: true,\n \"selected-ends\":\n (isFirstSelectedMonth && isFirstSelectedYear) || (isLastSelectedMonth && isLastSelectedYear)\n })}\n @click=${() => this._onClickMonth(idx)}\n data-month=${idx}\n data-year=${year}\n tabindex=\"3\"\n >\n ${m}\n </button>`;\n })}\n </div>\n `;\n return monthView;\n }\n\n private _generateYears() {\n const selectedYears = this._generateIncrementDates().map(e => e.getFullYear());\n const CURRENT_YEAR = TODAY_DATE.getFullYear();\n\n const yearArray = createYearViewArray(this.displayDate, CURRENT_YEAR);\n\n const yearView = html`\n <div class=\"sgds yearpicker\">\n ${yearArray.map(y => {\n const isFirstSelectedYear = selectedYears[0] === y;\n const isLastSectedYear = selectedYears[selectedYears.length - 1] === y;\n return html`\n <button\n class=${classMap({\n active: selectedYears.includes(y),\n year: true,\n today: CURRENT_YEAR === y,\n \"selected-ends\": isFirstSelectedYear || isLastSectedYear\n })}\n @click=${() => this._onClickYear(y)}\n data-year=${y}\n tabindex=\"3\"\n >\n ${y}\n </button>\n `;\n })}\n </div>\n `;\n return yearView;\n }\n render() {\n let viewContent: HTMLTemplateResult;\n\n switch (this.view) {\n case \"days\":\n viewContent = html` ${this._generateDays()} `;\n break;\n case \"months\":\n viewContent = html` ${this._generateMonths()} `;\n break;\n case \"years\":\n viewContent = html` ${this._generateYears()} `;\n break;\n default:\n viewContent = html` ${this._generateDays()} `; // Set a default view\n break;\n }\n\n return html` <div class=\"datepicker-body\">${viewContent}</div> `;\n }\n}\n\nexport default DatepickerCalendar;\n","import { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { sanitizedNextMonth, sanitizedPreviousMonth } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport styles from \"./datepicker-header.scss\";\nimport { ViewEnum } from \"./types\";\n\nconst MONTH_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport class DatepickerHeader extends SgdsElement {\n static styles = [SgdsElement.styles, styles];\n\n /** @internal */\n @property({ attribute: false })\n displayDate: Date;\n /** @internal */\n @property({ attribute: false })\n focusedDate: Date;\n /** @internal */\n @property({ attribute: false })\n selectedDate: Date[] = [];\n\n /** @internal */\n @property()\n view: ViewEnum;\n /** @internal */\n @property()\n focusedTabIndex: number;\n\n @watch(\"focusedTabIndex\", { waitUntilFirstUpdate: true })\n _handleFocusedTabIndexChange() {\n if (this.focusedTabIndex < 3) {\n const buttonToFocus: HTMLButtonElement = this.shadowRoot.querySelector(\n `button[tabindex=\"${this.focusedTabIndex}\"]`\n );\n buttonToFocus.focus();\n return;\n }\n return;\n }\n\n private _changeView() {\n switch (this.view) {\n case \"days\":\n this.view = \"months\";\n break;\n case \"months\":\n this.view = \"years\";\n break;\n case \"years\":\n break;\n }\n this.emit(\"sgds-view\", { detail: this.view }); // emit event to render the correct view\n }\n\n private _renderHeader() {\n const { view, displayDate } = this;\n if (view === \"months\") {\n return html` ${displayDate.getFullYear()} `;\n }\n if (view === \"years\") {\n const CURRENT_YEAR = new Date().getFullYear();\n const displayYear = this.displayDate.getFullYear();\n const remainder = (displayYear - CURRENT_YEAR) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1;\n return html` ${startLimit} - ${endLimit} `;\n }\n return html` ${MONTH_LABELS[displayDate.getMonth()]} ${displayDate.getFullYear()} `;\n }\n\n /** @internal */\n private handleClickPrevious() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 1);\n } else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 12);\n } else {\n /**\n * FocusedDate gets precedence over displayDate.\n * This happens when the arrow keys are pressed to\n * change focus date and user clicks the arrow buttons to\n * shift months\n */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedPreviousMonth(focusedDate);\n } else {\n newDisplayDate = sanitizedPreviousMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n // emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n\n /** @internal */\n private _handleClickNext() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 1);\n } else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 12);\n } else {\n /** FocusedDate gets precedence over displayDate */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedNextMonth(focusedDate);\n } else {\n newDisplayDate = sanitizedNextMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n\n //emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n\n render() {\n return html`\n <div class=\"datepicker-header dropdown-header\" role=\"heading\">\n <div class=\"text-center d-flex justify-content-between align-items-center\">\n <button @click=\"${this.handleClickPrevious}\" tabindex=\"0\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\"\n />\n </svg>\n </button>\n <button @click=${this._changeView} tabindex=\"1\">${this._renderHeader()}</button>\n <button @click=\"${this._handleClickNext}\" tabindex=\"2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n </div>\n </div>\n `;\n }\n}\n\nexport default DatepickerHeader;\n","import { ScopedElementsMixin } from \"@open-wc/scoped-elements\";\nimport { html } from \"lit\";\nimport { property, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsInput } from \"../Input/sgds-input\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport styles from \"./sgds-datepicker.scss\";\nimport { ViewEnum } from \"./types\";\nimport { sortAscDates } from \"../../utils/time\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to current date and input has no value. The input is a read-only and users can only pick dates using the Calendar.\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @cssproperty --datepicker-theme-color - Datepicker's overall theme color\n * @cssproperty --datepicker-hover-bg-color - Datepicker's calendar menu hover color\n * @cssproperty --datepicker-bg-color - Datepicker's menu background color\n * @cssproperty --datepicker-closebutton-bg-color - Datepicker's close button background color\n * @cssproperty --datepicker-closebutton-hover-bg-color - Datepicker's close button hover background color\n * @cssproperty --datepicker-closebutton-color - Datepicker's close button color\n * @cssproperty --datepicker-selected-date-bg-color - Selected date's background color\n * @cssproperty --datepicker-selected-date-text-color - Selected date's text color\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\n\nexport class SgdsDatepicker extends ScopedElementsMixin(DropdownElement) {\n static styles = [DropdownElement.styles, styles];\n\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-input\": SgdsInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader\n };\n }\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'[\"22/12/2023\"]' for single & '[\"22/12/2023\",\"25/12/2023\"]' for range respectively */\n @property({ type: Array, reflect: true }) initialValue: string[];\n\n /** Date format reflected on input */\n @property({ type: String }) dateFormat: DateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate: string;\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate: string;\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /** @internal */\n @state() value: string;\n\n /** @internal */\n @state()\n private view: ViewEnum = \"days\";\n\n /** @internal */\n @state() private selectedDateRange: Date[] = [];\n\n /** @internal */\n @state() private displayDate: Date = new Date();\n\n /** @internal */\n @state() private focusedDate: Date = new Date();\n\n @state() private focusedTabIndex = 3;\n\n @queryAsync(\"sgds-input\")\n private dropdownRef: Promise<SgdsInput>;\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n constructor() {\n super();\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 10]\n }\n }\n ];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDates);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n const startDateString = this.initialValue[0];\n\n if (!dateFormatRegex.test(startDateString)) {\n // Handle invalid date format in initialValue\n console.error(\"Invalid date format in initialValue:\", startDateString);\n return;\n }\n\n const startDate = this._parseDateStringToDate(startDateString);\n\n if (this.mode === \"single\" && startDate) {\n // Single mode\n this.selectedDateRange = [startDate];\n this.displayDate = startDate;\n } else if (this.mode === \"range\" && this.initialValue.length === 2) {\n // Range mode\n const endDateString = this.initialValue[1];\n\n if (!dateFormatRegex.test(endDateString)) {\n // Handle invalid date format in initialValue\n console.error(\"Invalid date format in initialValue:\", endDateString);\n return;\n }\n\n const endDate = this._parseDateStringToDate(endDateString);\n\n if (startDate && endDate) {\n this.selectedDateRange = [startDate, endDate];\n this.selectedDateRange = sortAscDates(this.selectedDateRange);\n // this.selectedDateRange.sort((a, b) => a.getTime() - b.getTime());\n\n this.displayDate = startDate;\n }\n }\n }\n\n if (this.selectedDateRange && this.selectedDateRange.length > 0) {\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n this.value = formattedDate;\n } else {\n // If selectedDateRange is empty, emit sgds-change-date event with an empty string\n this.value = \"\";\n }\n }\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.dropdownRef;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n }\n\n private _parseDateStringToDate(dateString: string): Date | null {\n let year: string, month: string, day: string;\n\n switch (this.dateFormat) {\n case \"MM/DD/YYYY\":\n [month, day, year] = dateString.split(\"/\");\n break;\n case \"DD/MM/YYYY\":\n [day, month, year] = dateString.split(\"/\");\n break;\n case \"YYYY/MM/DD\":\n [year, month, day] = dateString.split(\"/\");\n break;\n default:\n return null;\n }\n\n return new Date(`${year}-${month}-${day}`);\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\")\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n }\n\n private async _handleCloseMenu() {\n if (this.selectedDateRange.length === 0) {\n this.displayDate = new Date();\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return \"\";\n\n const formatDate = (date: Date) => {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n return \"\"; // Return an empty string if the date is not a valid Date object\n }\n\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const separator = \"/\";\n const formattedMonth = month > 9 ? month.toString() : `0${month}`;\n const formattedDay = day > 9 ? day.toString() : `0${day}`;\n\n return dateFormat === \"YYYY/MM/DD\"\n ? `${date.getFullYear()}${separator}${formattedMonth}${separator}${formattedDay}`\n : dateFormat === \"DD/MM/YYYY\"\n ? `${formattedDay}${separator}${formattedMonth}${separator}${date.getFullYear()}`\n : `${formattedMonth}${separator}${formattedDay}${separator}${date.getFullYear()}`;\n };\n\n if (startDate && endDate) {\n return `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n\n if (startDate) {\n return formatDate(startDate);\n }\n\n return \"\";\n };\n\n private _handleSelectDates(event: CustomEvent<Date[]>) {\n const newSelectedDates = event.detail;\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n if (this.mode === \"range\") {\n // Sort the newSelectedDates array in ascending order\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n\n this.selectedDateRange = newSelectedDates;\n if (this.selectedDateRange.length === 2) {\n this.hideMenu();\n }\n } else if (this.mode === \"single\") {\n this.selectedDateRange = [newSelectedDates[0]];\n\n if (this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n }\n\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleButtonResetClick() {\n this.displayDate = new Date();\n this.selectedDateRange = [];\n this.value = \"\";\n this.view = \"days\";\n\n this.hideMenu();\n }\n\n render() {\n let formattedDate = \"\";\n if (this.mode === \"single\") {\n formattedDate = this._makeInputValueString(this.selectedDateRange[0], undefined, this.dateFormat);\n } else if (this.mode === \"range\") {\n formattedDate = this._makeInputValueString(this.selectedDateRange[0], this.selectedDateRange[1], this.dateFormat);\n }\n\n const getPlaceholder = (): string => {\n const validDateFormats: DateFormat[] = [\"MM/DD/YYYY\", \"DD/MM/YYYY\", \"YYYY/MM/DD\"];\n\n if (this.mode === \"range\" && validDateFormats.includes(this.dateFormat)) {\n return `${this.dateFormat.toLowerCase()} - ${this.dateFormat.toLowerCase()}`;\n } else if (this.mode === \"single\" && validDateFormats.includes(this.dateFormat)) {\n return this.dateFormat.toLowerCase();\n }\n\n return \"\";\n };\n\n const svgEl = html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-x\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n `;\n\n const svgIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-calendar\" viewBox=\"0 0 16 16\">\n <path d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z\"/>\n </svg>\n `;\n return html`\n <div>\n <sgds-input\n id=\"myInput\"\n icon=${svgIcon}\n .value=${live(formattedDate)}\n inputClasses=\"rounded-0 rounded-start\"\n placeholder=\"${getPlaceholder()}\"\n aria-expanded=\"${this.menuIsOpen}\"\n ${ref(this.myDropdown)}\n @click=${() => this.toggleMenu()}\n readonly\n ?required=${this.required}\n ?disabled=${this.disabled}\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n ></sgds-input>\n <button\n ?disabled=${this.disabled}\n class=\"btn sgds rounded-0 d-flex align-items-center\"\n aria-label=\"reset the datepicker\"\n @click=${() => this._handleButtonResetClick()}\n >\n ${svgEl}\n </button>\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n part=\"menu\"\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n","import { SgdsDatepicker } from \"./sgds-datepicker\";\n\ncustomElements.define(\"sgds-datepicker\", SgdsDatepicker);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"sgds-datepicker\": SgdsDatepicker;\n }\n}\n"],"names":["global","_b","_c","_d","issueWarning","trustedTypes","emptyStringForBooleanAttribute","polyfillSupport","debugLogEvent","_a","HTML_RESULT","SVG_RESULT","html","isElement","effect","getComputedStyle","min","max","mathMax","mathMin","hash","allPlacements","placements","createPopper","defaultModifiers","popperOffsets","computeStyles","applyStyles","offset","flip","preventOverflow","arrow","hide","Popper.createPopper","styles","generateId","coreHtml"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/@open-wc/dedupe-mixin/src/dedupeMixin.js","../../../node_modules/@lit/reactive-element/development/css-tag.js","../../../node_modules/@open-wc/scoped-elements/src/ScopedElementsMixin.js","../../../node_modules/date-fns/toDate.mjs","../../../node_modules/date-fns/constructFrom.mjs","../../../node_modules/date-fns/addDays.mjs","../../../node_modules/date-fns/constants.mjs","../../../node_modules/date-fns/_lib/defaultOptions.mjs","../../../node_modules/date-fns/startOfWeek.mjs","../../../node_modules/date-fns/startOfISOWeek.mjs","../../../node_modules/date-fns/getISOWeekYear.mjs","../../../node_modules/date-fns/startOfDay.mjs","../../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../../node_modules/date-fns/differenceInCalendarDays.mjs","../../../node_modules/date-fns/startOfISOWeekYear.mjs","../../../node_modules/date-fns/isDate.mjs","../../../node_modules/date-fns/isValid.mjs","../../../node_modules/date-fns/endOfDay.mjs","../../../node_modules/date-fns/endOfMonth.mjs","../../../node_modules/date-fns/isLastDayOfMonth.mjs","../../../node_modules/date-fns/startOfYear.mjs","../../../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../../node_modules/date-fns/locale/en-US/_lib/match.mjs","../../../node_modules/date-fns/locale/en-US.mjs","../../../node_modules/date-fns/getDayOfYear.mjs","../../../node_modules/date-fns/getISOWeek.mjs","../../../node_modules/date-fns/getWeekYear.mjs","../../../node_modules/date-fns/startOfWeekYear.mjs","../../../node_modules/date-fns/getWeek.mjs","../../../node_modules/date-fns/_lib/addLeadingZeros.mjs","../../../node_modules/date-fns/_lib/format/lightFormatters.mjs","../../../node_modules/date-fns/_lib/format/formatters.mjs","../../../node_modules/date-fns/_lib/format/longFormatters.mjs","../../../node_modules/date-fns/_lib/protectedTokens.mjs","../../../node_modules/date-fns/format.mjs","../../../node_modules/date-fns/getDaysInMonth.mjs","../../../node_modules/date-fns/getDefaultOptions.mjs","../../../node_modules/date-fns/getISODay.mjs","../../../node_modules/date-fns/lastDayOfMonth.mjs","../../../node_modules/date-fns/isAfter.mjs","../../../node_modules/date-fns/isBefore.mjs","../../../node_modules/date-fns/isEqual.mjs","../../../node_modules/date-fns/transpose.mjs","../../../node_modules/date-fns/parse/_lib/Setter.mjs","../../../node_modules/date-fns/parse/_lib/Parser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../../node_modules/date-fns/parse/_lib/constants.mjs","../../../node_modules/date-fns/parse/_lib/utils.mjs","../../../node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../../node_modules/date-fns/setWeek.mjs","../../../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../../node_modules/date-fns/setISOWeek.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../../node_modules/date-fns/setDay.mjs","../../../node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../../node_modules/date-fns/setISODay.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../../node_modules/date-fns/parse/_lib/parsers.mjs","../../../node_modules/date-fns/parse.mjs","../../../node_modules/@lit/reactive-element/development/reactive-element.js","../../../node_modules/lit-html/development/lit-html.js","../../../node_modules/lit-element/development/lit-element.js","../../../node_modules/@lit/reactive-element/development/decorators/property.js","../../../node_modules/@lit/reactive-element/development/decorators/state.js","../../../node_modules/@lit/reactive-element/development/decorators/base.js","../../../node_modules/@lit/reactive-element/development/decorators/query.js","../../../node_modules/@lit/reactive-element/development/decorators/query-async.js","../../../node_modules/@lit/reactive-element/development/decorators/query-assigned-elements.js","../../../node_modules/lit-html/development/directive.js","../../../node_modules/lit-html/development/directive-helpers.js","../../../node_modules/lit-html/development/directives/live.js","../../../node_modules/lit-html/development/async-directive.js","../../../node_modules/lit-html/development/directives/ref.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/popper-lite.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/bootstrap/js/src/util/index.js","../../../node_modules/bootstrap/js/src/dom/event-handler.js","../../../node_modules/bootstrap/js/src/dom/manipulator.js","../../../node_modules/bootstrap/js/src/dom/selector-engine.js","../../../node_modules/bootstrap/js/src/dom/data.js","../../../node_modules/bootstrap/js/src/base-component.js","../../../node_modules/bootstrap/js/src/dropdown.js","../../../src/utils/object.ts","../../../src/utils/mergeDeep.ts","../../../src/base/sgds-element.ts","../../../src/utils/generateId.ts","../../../src/base/dropdown-element.ts","../../../src/utils/watch.ts","../../../src/utils/time.ts","../../../node_modules/lit-html/development/directives/class-map.js","../../../src/components/Datepicker/datepicker-calendar.ts","../../../src/components/Datepicker/datepicker-header.ts","../../../node_modules/imask/esm/core/utils.js","../../../node_modules/imask/esm/core/action-details.js","../../../node_modules/imask/esm/core/holder.js","../../../node_modules/imask/esm/masked/factory.js","../../../node_modules/imask/esm/controls/mask-element.js","../../../node_modules/imask/esm/controls/html-mask-element.js","../../../node_modules/imask/esm/controls/html-input-mask-element.js","../../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js","../../../node_modules/imask/esm/controls/input-history.js","../../../node_modules/imask/esm/controls/input.js","../../../node_modules/imask/esm/core/change-details.js","../../../node_modules/imask/esm/core/continuous-tail-details.js","../../../node_modules/imask/esm/masked/base.js","../../../node_modules/imask/esm/masked/pattern/chunk-tail-details.js","../../../node_modules/imask/esm/masked/pattern/cursor.js","../../../node_modules/imask/esm/masked/pattern/fixed-definition.js","../../../node_modules/imask/esm/masked/pattern/input-definition.js","../../../node_modules/imask/esm/masked/regexp.js","../../../node_modules/imask/esm/masked/pattern.js","../../../node_modules/imask/esm/masked/range.js","../../../node_modules/imask/esm/masked/date.js","../../../node_modules/imask/esm/masked/dynamic.js","../../../node_modules/imask/esm/masked/enum.js","../../../node_modules/imask/esm/masked/function.js","../../../node_modules/imask/esm/masked/number.js","../../../node_modules/imask/esm/masked/pipe.js","../../../node_modules/imask/esm/masked/repeat.js","../../../node_modules/imask/esm/index.js","../../../node_modules/lit-html/development/directives/if-defined.js","../../../node_modules/lit-html/development/directives/unsafe-html.js","../../../node_modules/lit-html/development/directives/unsafe-svg.js","../../../node_modules/lit-html/development/static.js","../../../src/utils/defaultvalue.ts","../../../src/utils/form.ts","../../../src/components/Input/sgds-input.ts","../../../src/components/Datepicker/datepicker-input.ts","../../../src/components/Datepicker/sgds-datepicker.ts","../../../src/components/Datepicker/index.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","const appliedClassMixins = new WeakMap();\n\n/** Vefify if the Mixin was previously applyed\n * @private\n * @param {function} mixin Mixin being applyed\n * @param {object} superClass Class receiving the new mixin\n * @returns {boolean}\n */\nfunction wasMixinPreviouslyApplied(mixin, superClass) {\n let klass = superClass;\n while (klass) {\n if (appliedClassMixins.get(klass) === mixin) {\n return true;\n }\n klass = Object.getPrototypeOf(klass);\n }\n return false;\n}\n\n/** Apply each mixin in the chain to make sure they are not applied more than once to the final class.\n * @export\n * @param {function} mixin Mixin to be applyed\n * @returns {object} Mixed class with mixin applied\n */\nexport function dedupeMixin(mixin) {\n return superClass => {\n if (wasMixinPreviouslyApplied(mixin, superClass)) {\n return superClass;\n }\n const mixedClass = mixin(superClass);\n appliedClassMixins.set(mixedClass, mixin);\n return mixedClass;\n };\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets = global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\nconst constructionToken = Symbol();\nconst cssTagCache = new WeakMap();\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n constructor(cssText, strings, safeToken) {\n // This property needs to remain unminified.\n this['_$cssResult$'] = true;\n if (safeToken !== constructionToken) {\n throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet() {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(this.cssText);\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n toString() {\n return this.cssText;\n }\n}\nconst textFromCSSResult = (value) => {\n // This property needs to remain unminified.\n if (value['_$cssResult$'] === true) {\n return value.cssText;\n }\n else if (typeof value === 'number') {\n return value;\n }\n else {\n throw new Error(`Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`);\n }\n};\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value) => new CSSResult(typeof value === 'string' ? value : String(value), undefined, constructionToken);\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (strings, ...values) => {\n const cssText = strings.length === 1\n ? strings[0]\n : values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n return new CSSResult(cssText, strings, constructionToken);\n};\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (renderRoot, styles) => {\n if (supportsAdoptingStyleSheets) {\n renderRoot.adoptedStyleSheets = styles.map((s) => s instanceof CSSStyleSheet ? s : s.styleSheet);\n }\n else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = global['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = s.cssText;\n renderRoot.appendChild(style);\n });\n }\n};\nconst cssResultFromStyleSheet = (sheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\nexport const getCompatibleStyle = supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s) => s\n : (s) => s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n//# sourceMappingURL=css-tag.js.map","import { dedupeMixin } from '@open-wc/dedupe-mixin';\nimport { adoptStyles } from '@lit/reactive-element/css-tag.js';\n\n/**\n * @typedef {import('./types').RenderOptions} RenderOptions\n * @typedef {import('./types').ScopedElementsMixin} ScopedElementsMixin\n * @typedef {import('./types').ScopedElementsHost} ScopedElementsHost\n * @typedef {import('./types').ScopedElementsMap} ScopedElementsMap\n * @typedef {import('@lit/reactive-element').CSSResultOrNative} CSSResultOrNative\n */\n\n// @ts-ignore\nconst supportsScopedRegistry = !!ShadowRoot.prototype.createElement;\n\n/**\n * @template {import('./types').Constructor<HTMLElement>} T\n * @param {T} superclass\n * @return {T & import('./types').Constructor<ScopedElementsHost>}\n */\nconst ScopedElementsMixinImplementation = superclass =>\n /** @type {ScopedElementsHost} */\n class ScopedElementsHost extends superclass {\n /**\n * Obtains the scoped elements definitions map if specified.\n *\n * @returns {ScopedElementsMap}\n */\n static get scopedElements() {\n return {};\n }\n\n /**\n * Obtains the ShadowRoot options.\n *\n * @type {ShadowRootInit}\n */\n static get shadowRootOptions() {\n return this.__shadowRootOptions;\n }\n\n /**\n * Set the shadowRoot options.\n *\n * @param {ShadowRootInit} value\n */\n static set shadowRootOptions(value) {\n this.__shadowRootOptions = value;\n }\n\n /**\n * Obtains the element styles.\n *\n * @returns {CSSResultOrNative[]}\n */\n static get elementStyles() {\n return this.__elementStyles;\n }\n\n static set elementStyles(styles) {\n this.__elementStyles = styles;\n }\n\n // either TS or ESLint will complain here\n // eslint-disable-next-line no-unused-vars\n constructor(..._args) {\n super();\n /** @type {RenderOptions} */\n this.renderOptions = this.renderOptions || undefined;\n }\n\n /**\n * Obtains the CustomElementRegistry associated to the ShadowRoot.\n *\n * @returns {CustomElementRegistry}\n */\n get registry() {\n // @ts-ignore\n return this.constructor.__registry;\n }\n\n /**\n * Set the CustomElementRegistry associated to the ShadowRoot\n *\n * @param {CustomElementRegistry} registry\n */\n set registry(registry) {\n // @ts-ignore\n this.constructor.__registry = registry;\n }\n\n createRenderRoot() {\n const { scopedElements, shadowRootOptions, elementStyles } =\n /** @type {typeof ScopedElementsHost} */ (this.constructor);\n\n const shouldCreateRegistry =\n !this.registry ||\n // @ts-ignore\n (this.registry === this.constructor.__registry &&\n !Object.prototype.hasOwnProperty.call(this.constructor, '__registry'));\n\n /**\n * Create a new registry if:\n * - the registry is not defined\n * - this class doesn't have its own registry *AND* has no shared registry\n */\n if (shouldCreateRegistry) {\n this.registry = supportsScopedRegistry ? new CustomElementRegistry() : customElements;\n for (const [tagName, klass] of Object.entries(scopedElements)) {\n this.defineScopedElement(tagName, klass);\n }\n }\n\n /** @type {ShadowRootInit} */\n const options = {\n mode: 'open',\n ...shadowRootOptions,\n customElements: this.registry,\n };\n\n const createdRoot = this.attachShadow(options);\n if (supportsScopedRegistry) {\n this.renderOptions.creationScope = createdRoot;\n }\n\n if (createdRoot instanceof ShadowRoot) {\n adoptStyles(createdRoot, elementStyles);\n this.renderOptions.renderBefore = this.renderOptions.renderBefore || createdRoot.firstChild;\n }\n\n return createdRoot;\n }\n\n createScopedElement(tagName) {\n const root = supportsScopedRegistry ? this.shadowRoot : document;\n // @ts-ignore polyfill to support createElement on shadowRoot is loaded\n return root.createElement(tagName);\n }\n\n /**\n * Defines a scoped element.\n *\n * @param {string} tagName\n * @param {typeof HTMLElement} klass\n */\n defineScopedElement(tagName, klass) {\n const registeredClass = this.registry.get(tagName);\n if (registeredClass && supportsScopedRegistry === false && registeredClass !== klass) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `You are trying to re-register the \"${tagName}\" custom element with a different class via ScopedElementsMixin.`,\n 'This is only possible with a CustomElementRegistry.',\n 'Your browser does not support this feature so you will need to load a polyfill for it.',\n 'Load \"@webcomponents/scoped-custom-element-registry\" before you register ANY web component to the global customElements registry.',\n 'e.g. add \"<script src=\"/node_modules/@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min.js\"></script>\" as your first script tag.',\n 'For more details you can visit https://open-wc.org/docs/development/scoped-elements/',\n ].join('\\n'),\n );\n }\n if (!registeredClass) {\n return this.registry.define(tagName, klass);\n }\n return this.registry.get(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n getScopedTagName(tagName) {\n // @ts-ignore\n return this.constructor.getScopedTagName(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n static getScopedTagName(tagName) {\n // @ts-ignore\n return this.__registry.get(tagName) ? tagName : undefined;\n }\n };\n\nexport const ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date(date: DateType): DateType {\n * return constructFrom(\n * date, // Use contrustor from the given date\n * date.getTime() // Use the date value to create a new date\n * )\n * }\n */\nexport function constructFrom(date, value) {\n if (date instanceof Date) {\n return new date.constructor(value);\n } else {\n return new Date(value);\n }\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { endOfDay } from \"./endOfDay.mjs\";\nimport { endOfMonth } from \"./endOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date) {\n const _date = toDate(date);\n return +endOfDay(_date) === +endOfMonth(_date);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n const _dateLeft = toDate(leftDate);\n const _dateRight = toDate(rightDate);\n return +_dateLeft === +_dateRight;\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { enUS as defaultLocale } from \"./locale/en-US.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\nvar _e;\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\nimport { getCompatibleStyle, adoptStyles, } from './css-tag.js';\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\nexport * from './css-tag.js';\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\nif (NODE_MODE) {\n (_a = global.customElements) !== null && _a !== void 0 ? _a : (global.customElements = customElements);\n}\nconst DEV_MODE = true;\nlet requestUpdateThenable;\nlet issueWarning;\nconst trustedTypes = global\n .trustedTypes;\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? trustedTypes.emptyScript\n : '';\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_b = global.litIssuedWarnings) !== null && _b !== void 0 ? _b : (global.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n // Issue polyfill support warning.\n if (((_c = global.ShadyDOM) === null || _c === void 0 ? void 0 : _c.inUse) && polyfillSupport === undefined) {\n issueWarning('polyfill-support-missing', `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`);\n }\n requestUpdateThenable = (name) => ({\n then: (onfulfilled, _onrejected) => {\n issueWarning('request-update-promise', `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`);\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event) => {\n const shouldEmit = global\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(new CustomEvent('lit-debug', {\n detail: event,\n }));\n }\n : undefined;\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = (prop, _obj) => prop;\nexport const defaultConverter = {\n toAttribute(value, type) {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n fromAttribute(value, type) {\n let fromValue = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value);\n }\n catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual = (value, old) => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nexport class ReactiveElement\n// In the Node build, this `extends` clause will be substituted with\n// `(globalThis.HTMLElement ?? HTMLElement)`.\n//\n// This way, we will first prefer any global `HTMLElement` polyfill that the\n// user has assigned, and then fall back to the `HTMLElement` shim which has\n// been imported (see note at the top of this file about how this import is\n// generated by Rollup). Note that the `HTMLElement` variable has been\n// shadowed by this import, so it no longer refers to the global.\n extends HTMLElement {\n constructor() {\n super();\n this.__instanceProperties = new Map();\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n this.isUpdatePending = false;\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n this.hasUpdated = false;\n /**\n * Name of currently reflecting property\n */\n this.__reflectingProperty = null;\n this._initialize();\n }\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer) {\n var _a;\n this.finalize();\n ((_a = this._initializers) !== null && _a !== void 0 ? _a : (this._initializers = [])).push(initializer);\n }\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // note: piggy backing on this to ensure we're finalized.\n this.finalize();\n const attributes = [];\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.elementProperties.forEach((v, p) => {\n const attr = this.__attributeNameForProperty(p, v);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n attributes.push(attr);\n }\n });\n return attributes;\n }\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(name, options = defaultPropertyDeclaration) {\n var _a;\n // if this is a state property, force the attribute to false.\n if (options.state) {\n // Cast as any since this is readonly.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.attribute = false;\n }\n // Note, since this can be called by the `@property` decorator which\n // is called before `finalize`, we ensure finalization has been kicked off.\n this.finalize();\n this.elementProperties.set(name, options);\n // Do not generate an accessor if the prototype already has one, since\n // it would be lost otherwise and that would never be the user's intention;\n // Instead, we expect users to call `requestUpdate` themselves from\n // user-defined accessors. Note that if the super has an accessor we will\n // still overwrite it\n if (!options.noAccessor && !this.prototype.hasOwnProperty(name)) {\n const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n Object.defineProperty(this.prototype, name, descriptor);\n if (DEV_MODE) {\n // If this class doesn't have its own set, create one and initialize\n // with the values in the set from the nearest ancestor class, if any.\n if (!this.hasOwnProperty('__reactivePropertyKeys')) {\n this.__reactivePropertyKeys = new Set((_a = this.__reactivePropertyKeys) !== null && _a !== void 0 ? _a : []);\n }\n this.__reactivePropertyKeys.add(name);\n }\n }\n }\n }\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static getPropertyDescriptor(name, key, options) {\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get() {\n return this[key];\n },\n set(value) {\n const oldValue = this[name];\n this[key] = value;\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name) {\n return this.elementProperties.get(name) || defaultPropertyDeclaration;\n }\n /**\n * Creates property accessors for registered properties, sets up element\n * styling, and ensures any superclasses are also finalized. Returns true if\n * the element was finalized.\n * @nocollapse\n */\n static finalize() {\n if (this.hasOwnProperty(finalized)) {\n return false;\n }\n this[finalized] = true;\n // finalize any superclasses\n const superCtor = Object.getPrototypeOf(this);\n superCtor.finalize();\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n this.elementProperties = new Map(superCtor.elementProperties);\n // initialize Map populated in observedAttributes\n this.__attributeToPropertyMap = new Map();\n // make any properties\n // Note, only process \"own\" properties since this element will inherit\n // any properties defined on the superClass, and finalization ensures\n // the entire prototype chain is finalized.\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n // support symbols in properties (IE11 does not support this)\n const propKeys = [\n ...Object.getOwnPropertyNames(props),\n ...Object.getOwnPropertySymbols(props),\n ];\n // This for/of is ok because propKeys is an array\n for (const p of propKeys) {\n // note, use of `any` is due to TypeScript lack of support for symbol in\n // index types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.createProperty(p, props[p]);\n }\n }\n this.elementStyles = this.finalizeStyles(this.styles);\n // DEV mode warnings\n if (DEV_MODE) {\n const warnRemovedOrRenamed = (name, renamed = false) => {\n if (this.prototype.hasOwnProperty(name)) {\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${this.name}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed('initialize');\n warnRemovedOrRenamed('requestUpdateInternal');\n warnRemovedOrRenamed('_getUpdateComplete', true);\n }\n return true;\n }\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n static finalizeStyles(styles) {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array<unknown> works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set(styles.flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s));\n }\n }\n else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n static __attributeNameForProperty(name, options) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n *\n * @internal\n */\n _initialize() {\n var _a;\n this.__updatePromise = new Promise((res) => (this.enableUpdating = res));\n this._$changedProperties = new Map();\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (_a = this.constructor._initializers) === null || _a === void 0 ? void 0 : _a.forEach((i) => i(this));\n }\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller) {\n var _a, _b;\n ((_a = this.__controllers) !== null && _a !== void 0 ? _a : (this.__controllers = [])).push(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n (_b = controller.hostConnected) === null || _b === void 0 ? void 0 : _b.call(controller);\n }\n }\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller) {\n var _a;\n // Note, if the indexOf is -1, the >>> will flip the sign which makes the\n // splice do nothing.\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.splice(this.__controllers.indexOf(controller) >>> 0, 1);\n }\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n * (<=41), properties created for native platform properties like (`id` or\n * `name`) may not have default values set in the element constructor. On\n * these browsers native properties appear on instances and therefore their\n * default value will overwrite any element default (e.g. if the element sets\n * this.id = 'id' in the constructor, the 'id' will become '' since this is\n * the native platform default).\n */\n __saveInstanceProperties() {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.constructor.elementProperties.forEach((_v, p) => {\n if (this.hasOwnProperty(p)) {\n this.__instanceProperties.set(p, this[p]);\n delete this[p];\n }\n });\n }\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n const renderRoot = (_a = this.shadowRoot) !== null && _a !== void 0 ? _a : this.attachShadow(this.constructor.shadowRootOptions);\n adoptStyles(renderRoot, this.constructor.elementStyles);\n return renderRoot;\n }\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n // create renderRoot before first update.\n if (this.renderRoot === undefined) {\n this.renderRoot = this.createRenderRoot();\n }\n this.enableUpdating(true);\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostConnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n enableUpdating(_requestedUpdate) { }\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostDisconnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [using the lifecycle callbacks](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(name, _old, value) {\n this._$attributeToProperty(name, value);\n }\n __propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n var _a;\n const attr = this.constructor.__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter = ((_a = options.converter) === null || _a === void 0 ? void 0 : _a.toAttribute) !==\n undefined\n ? options.converter\n : defaultConverter;\n const attrValue = converter.toAttribute(value, options.type);\n if (DEV_MODE &&\n this.constructor.enabledWarnings.indexOf('migration') >= 0 &&\n attrValue === undefined) {\n issueWarning('undefined-attribute-value', `The attribute value for the ${name} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`);\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n }\n else {\n this.setAttribute(attr, attrValue);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /** @internal */\n _$attributeToProperty(name, value) {\n var _a;\n const ctor = this.constructor;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = ctor.__attributeToPropertyMap.get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter = typeof options.converter === 'function'\n ? { fromAttribute: options.converter }\n : ((_a = options.converter) === null || _a === void 0 ? void 0 : _a.fromAttribute) !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n this[propName] = converter.fromAttribute(value, options.type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @category updates\n */\n requestUpdate(name, oldValue, options) {\n let shouldRequestUpdate = true;\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n options =\n options ||\n this.constructor.getPropertyOptions(name);\n const hasChanged = options.hasChanged || notEqual;\n if (hasChanged(this[name], oldValue)) {\n if (!this._$changedProperties.has(name)) {\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `_reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (options.reflect === true && this.__reflectingProperty !== name) {\n if (this.__reflectingProperties === undefined) {\n this.__reflectingProperties = new Map();\n }\n this.__reflectingProperties.set(name, options);\n }\n }\n else {\n // Abort the request if the property should not be considered changed.\n shouldRequestUpdate = false;\n }\n }\n if (!this.isUpdatePending && shouldRequestUpdate) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n // Note, since this no longer returns a promise, in dev mode we return a\n // thenable which warns if it's called.\n return DEV_MODE\n ? requestUpdateThenable(this.localName)\n : undefined;\n }\n /**\n * Sets up the element to asynchronously update.\n */\n async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n }\n catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise<unknown> {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n scheduleUpdate() {\n return this.performUpdate();\n }\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * Note: To ensure `performUpdate()` synchronously completes a pending update,\n * it should not be overridden. In LitElement 2.x it was suggested to override\n * `performUpdate()` to also customizing update scheduling. Instead, you should now\n * override `scheduleUpdate()`. For backwards compatibility with LitElement 2.x,\n * scheduling updates via `performUpdate()` continues to work, but will make\n * also calling `performUpdate()` to synchronously process updates difficult.\n *\n * @category updates\n */\n performUpdate() {\n var _a, _b;\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({ kind: 'update' });\n // create renderRoot before first update.\n if (!this.hasUpdated) {\n // Produce warning if any class properties are shadowed by class fields\n if (DEV_MODE) {\n const shadowedProperties = [];\n (_a = this.constructor.__reactivePropertyKeys) === null || _a === void 0 ? void 0 : _a.forEach((p) => {\n var _a;\n if (this.hasOwnProperty(p) && !((_a = this.__instanceProperties) === null || _a === void 0 ? void 0 : _a.has(p))) {\n shadowedProperties.push(p);\n }\n });\n if (shadowedProperties.length) {\n throw new Error(`The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`);\n }\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.__instanceProperties.forEach((v, p) => (this[p] = v));\n this.__instanceProperties = undefined;\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n (_b = this.__controllers) === null || _b === void 0 ? void 0 : _b.forEach((c) => { var _a; return (_a = c.hostUpdate) === null || _a === void 0 ? void 0 : _a.call(c); });\n this.update(changedProperties);\n }\n else {\n this.__markUpdated();\n }\n }\n catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n willUpdate(_changedProperties) { }\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties) {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostUpdated) === null || _a === void 0 ? void 0 : _a.call(c); });\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (DEV_MODE &&\n this.isUpdatePending &&\n this.constructor.enabledWarnings.indexOf('change-in-update') >= 0) {\n issueWarning('change-in-update', `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`);\n }\n }\n __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete() {\n return this.getUpdateComplete();\n }\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n getUpdateComplete() {\n return this.__updatePromise;\n }\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n shouldUpdate(_changedProperties) {\n return true;\n }\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n update(_changedProperties) {\n if (this.__reflectingProperties !== undefined) {\n // Use forEach so this works even if for/of loops are compiled to for\n // loops expecting arrays\n this.__reflectingProperties.forEach((v, k) => this.__propertyToAttribute(k, this[k], v));\n this.__reflectingProperties = undefined;\n }\n this.__markUpdated();\n }\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n updated(_changedProperties) { }\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n firstUpdated(_changedProperties) { }\n}\n_e = finalized;\n/**\n * Marks class as having finished creating properties.\n */\nReactiveElement[_e] = true;\n/**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\nReactiveElement.elementProperties = new Map();\n/**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\nReactiveElement.elementStyles = [];\n/**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\nReactiveElement.shadowRootOptions = { mode: 'open' };\n// Apply polyfills if available\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport({ ReactiveElement });\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = ['change-in-update'];\n const ensureOwnWarnings = function (ctor) {\n if (!ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))) {\n ctor.enabledWarnings = ctor.enabledWarnings.slice();\n }\n };\n ReactiveElement.enableWarning = function (warning) {\n ensureOwnWarnings(this);\n if (this.enabledWarnings.indexOf(warning) < 0) {\n this.enabledWarnings.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (warning) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings.splice(i, 1);\n }\n };\n}\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n((_d = global.reactiveElementVersions) !== null && _d !== void 0 ? _d : (global.reactiveElementVersions = [])).push('1.6.2');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=reactive-element.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n// Use window for browser builds because IE11 doesn't have globalThis.\nconst global = NODE_MODE ? globalThis : window;\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event) => {\n const shouldEmit = global\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(new CustomEvent('lit-debug', {\n detail: event,\n }));\n }\n : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\nlet issueWarning;\nif (DEV_MODE) {\n (_a = global.litIssuedWarnings) !== null && _a !== void 0 ? _a : (global.litIssuedWarnings = new Set());\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (!global.litIssuedWarnings.has(warning)) {\n console.warn(warning);\n global.litIssuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n}\nconst wrap = ENABLE_SHADYDOM_NOPATCH &&\n ((_b = global.ShadyDOM) === null || _b === void 0 ? void 0 : _b.inUse) &&\n ((_c = global.ShadyDOM) === null || _c === void 0 ? void 0 : _c.noPatch) === true\n ? global.ShadyDOM.wrap\n : (node) => node;\nconst trustedTypes = global.trustedTypes;\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\nconst identityFunction = (value) => value;\nconst noopSanitizer = (_node, _name, _type) => identityFunction;\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(`Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`);\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\nconst createSanitizer = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${String(Math.random()).slice(9)}$`;\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\nconst d = NODE_MODE && global.document === undefined\n ? {\n createTreeWalker() {\n return {};\n },\n }\n : document;\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\nconst isPrimitive = (value) => value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value) => isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (value === null || value === void 0 ? void 0 : value[Symbol.iterator]) === 'function';\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with <!--, like </{, can be ended by a single `>`\n */\nconst comment2EndRegex = />/g;\n/**\n * The tagEnd regex matches the end of the \"inside an opening\" tag syntax\n * position. It either matches a `>`, an attribute-like sequence, or the end\n * of the string after a space (attribute-name position ending).\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\t\\n\\f\\r\" are HTML space characters:\n * https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * So an attribute is:\n * * The name: any character except a whitespace character, (\"), ('), \">\",\n * \"=\", or \"/\". Note: this is different from the HTML spec which also excludes control characters.\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nconst tagEndRegex = new RegExp(`>|${SPACE_CHAR}(?:(${NAME_CHAR}+)(${SPACE_CHAR}*=${SPACE_CHAR}*(?:${ATTR_VALUE_CHAR}|(\"|')|))|$)`, 'g');\nconst ENTIRE_MATCH = 0;\nconst ATTRIBUTE_NAME = 1;\nconst SPACES_AND_EQUALS = 2;\nconst QUOTE_CHAR = 3;\nconst singleQuoteAttrEndRegex = /'/g;\nconst doubleQuoteAttrEndRegex = /\"/g;\n/**\n * Matches the raw text elements.\n *\n * Comments are not parsed within raw text elements, so we need to search their\n * text content for marker strings.\n */\nconst rawTextElement = /^(?:script|style|textarea|title)$/i;\n/** TemplateResult types */\nconst HTML_RESULT = 1;\nconst SVG_RESULT = 2;\n// TemplatePart types\n// IMPORTANT: these must match the values in PartType\nconst ATTRIBUTE_PART = 1;\nconst CHILD_PART = 2;\nconst PROPERTY_PART = 3;\nconst BOOLEAN_ATTRIBUTE_PART = 4;\nconst EVENT_PART = 5;\nconst ELEMENT_PART = 6;\nconst COMMENT_PART = 7;\n/**\n * Generates a template literal tag function that returns a TemplateResult with\n * the given result type.\n */\nconst tag = (type) => (strings, ...values) => {\n // Warn against templates octal escape sequences\n // We do this here rather than in render so that the warning is closer to the\n // template definition.\n if (DEV_MODE && strings.some((s) => s === undefined)) {\n console.warn('Some template strings are undefined.\\n' +\n 'This is probably caused by illegal octal escape sequences.');\n }\n return {\n // This property needs to remain unminified.\n ['_$litType$']: type,\n strings,\n values,\n };\n};\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const header = (title: string) => html`<h1>${title}</h1>`;\n * ```\n *\n * The `html` tag returns a description of the DOM to render as a value. It is\n * lazy, meaning no work is done until the template is rendered. When rendering,\n * if a template comes from the same expression as a previously rendered result,\n * it's efficiently updated instead of replaced.\n */\nexport const html = tag(HTML_RESULT);\n/**\n * Interprets a template literal as an SVG fragment that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const rect = svg`<rect width=\"10\" height=\"10\"></rect>`;\n *\n * const myImage = html`\n * <svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n * ${rect}\n * </svg>`;\n * ```\n *\n * The `svg` *tag function* should only be used for SVG fragments, or elements\n * that would be contained **inside** an `<svg>` HTML element. A common error is\n * placing an `<svg>` *element* in a template tagged with the `svg` tag\n * function. The `<svg>` element is an HTML element and should be used within a\n * template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an SVG fragment from the\n * `render()` method, as the SVG fragment will be contained within the element's\n * shadow root and thus cannot be used within an `<svg>` HTML element.\n */\nexport const svg = tag(SVG_RESULT);\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = Symbol.for('lit-noChange');\n/**\n * A sentinel value that signals a ChildPart to fully clear its content.\n *\n * ```ts\n * const button = html`${\n * user.isAdmin\n * ? html`<button>DELETE</button>`\n * : nothing\n * }`;\n * ```\n *\n * Prefer using `nothing` over other falsy values as it provides a consistent\n * behavior between various expression binding contexts.\n *\n * In child expressions, `undefined`, `null`, `''`, and `nothing` all behave the\n * same and render no nodes. In attribute expressions, `nothing` _removes_ the\n * attribute, while `undefined` and `null` will render an empty string. In\n * property expressions `nothing` becomes `undefined`.\n */\nexport const nothing = Symbol.for('lit-nothing');\n/**\n * The cache of prepared templates, keyed by the tagged TemplateStringsArray\n * and _not_ accounting for the specific template tag used. This means that\n * template tags cannot be dynamic - the must statically be one of html, svg,\n * or attr. This restriction simplifies the cache lookup, which is on the hot\n * path for rendering.\n */\nconst templateCache = new WeakMap();\nconst walker = d.createTreeWalker(d, 129 /* NodeFilter.SHOW_{ELEMENT|COMMENT} */, null, false);\nlet sanitizerFactoryInternal = noopSanitizer;\nfunction trustFromTemplateString(tsa, stringFromTSA) {\n // A security check to prevent spoofing of Lit template results.\n // In the future, we may be able to replace this with Array.isTemplateObject,\n // though we might need to make that check inside of the html and svg\n // functions, because precompiled templates don't come in as\n // TemplateStringArray objects.\n if (!Array.isArray(tsa) || !tsa.hasOwnProperty('raw')) {\n let message = 'invalid template strings array';\n if (DEV_MODE) {\n message = `\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `\n .trim()\n .replace(/\\n */g, '\\n');\n }\n throw new Error(message);\n }\n return policy !== undefined\n ? policy.createHTML(stringFromTSA)\n : stringFromTSA;\n}\n/**\n * Returns an HTML string for the given TemplateStringsArray and result type\n * (HTML or SVG), along with the case-sensitive bound attribute names in\n * template order. The HTML contains comment markers denoting the `ChildPart`s\n * and suffixes on bound attributes denoting the `AttributeParts`.\n *\n * @param strings template strings array\n * @param type HTML or SVG\n * @return Array containing `[html, attrNames]` (array returned for terseness,\n * to avoid object fields since this code is shared with non-minified SSR\n * code)\n */\nconst getTemplateHtml = (strings, type) => {\n // Insert makers into the template HTML to represent the position of\n // bindings. The following code scans the template strings to determine the\n // syntactic position of the bindings. They can be in text position, where\n // we insert an HTML comment, attribute value position, where we insert a\n // sentinel string and re-write the attribute name, or inside a tag where\n // we insert the sentinel string.\n const l = strings.length - 1;\n // Stores the case-sensitive bound attribute names in the order of their\n // parts. ElementParts are also reflected in this array as undefined\n // rather than a string, to disambiguate from attribute bindings.\n const attrNames = [];\n let html = type === SVG_RESULT ? '<svg>' : '';\n // When we're inside a raw text tag (not it's text content), the regex\n // will still be tagRegex so we can find attributes, but will switch to\n // this regex when the tag ends.\n let rawTextEndRegex;\n // The current parsing state, represented as a reference to one of the\n // regexes\n let regex = textEndRegex;\n for (let i = 0; i < l; i++) {\n const s = strings[i];\n // The index of the end of the last attribute name. When this is\n // positive at end of a string, it means we're in an attribute value\n // position and need to rewrite the attribute name.\n // We also use a special value of -2 to indicate that we encountered\n // the end of a string in attribute name position.\n let attrNameEndIndex = -1;\n let attrName;\n let lastIndex = 0;\n let match;\n // The conditions in this loop handle the current parse state, and the\n // assignments to the `regex` variable are the state transitions.\n while (lastIndex < s.length) {\n // Make sure we start searching from where we previously left off\n regex.lastIndex = lastIndex;\n match = regex.exec(s);\n if (match === null) {\n break;\n }\n lastIndex = regex.lastIndex;\n if (regex === textEndRegex) {\n if (match[COMMENT_START] === '!--') {\n regex = commentEndRegex;\n }\n else if (match[COMMENT_START] !== undefined) {\n // We started a weird comment, like </{\n regex = comment2EndRegex;\n }\n else if (match[TAG_NAME] !== undefined) {\n if (rawTextElement.test(match[TAG_NAME])) {\n // Record if we encounter a raw-text element. We'll switch to\n // this regex at the end of the tag.\n rawTextEndRegex = new RegExp(`</${match[TAG_NAME]}`, 'g');\n }\n regex = tagEndRegex;\n }\n else if (match[DYNAMIC_TAG_NAME] !== undefined) {\n if (DEV_MODE) {\n throw new Error('Bindings in tag names are not supported. Please use static templates instead. ' +\n 'See https://lit.dev/docs/templates/expressions/#static-expressions');\n }\n regex = tagEndRegex;\n }\n }\n else if (regex === tagEndRegex) {\n if (match[ENTIRE_MATCH] === '>') {\n // End of a tag. If we had started a raw-text element, use that\n // regex\n regex = rawTextEndRegex !== null && rawTextEndRegex !== void 0 ? rawTextEndRegex : textEndRegex;\n // We may be ending an unquoted attribute value, so make sure we\n // clear any pending attrNameEndIndex\n attrNameEndIndex = -1;\n }\n else if (match[ATTRIBUTE_NAME] === undefined) {\n // Attribute name position\n attrNameEndIndex = -2;\n }\n else {\n attrNameEndIndex = regex.lastIndex - match[SPACES_AND_EQUALS].length;\n attrName = match[ATTRIBUTE_NAME];\n regex =\n match[QUOTE_CHAR] === undefined\n ? tagEndRegex\n : match[QUOTE_CHAR] === '\"'\n ? doubleQuoteAttrEndRegex\n : singleQuoteAttrEndRegex;\n }\n }\n else if (regex === doubleQuoteAttrEndRegex ||\n regex === singleQuoteAttrEndRegex) {\n regex = tagEndRegex;\n }\n else if (regex === commentEndRegex || regex === comment2EndRegex) {\n regex = textEndRegex;\n }\n else {\n // Not one of the five state regexes, so it must be the dynamically\n // created raw text regex and we're at the close of that element.\n regex = tagEndRegex;\n rawTextEndRegex = undefined;\n }\n }\n if (DEV_MODE) {\n // If we have a attrNameEndIndex, which indicates that we should\n // rewrite the attribute name, assert that we're in a valid attribute\n // position - either in a tag, or a quoted attribute value.\n console.assert(attrNameEndIndex === -1 ||\n regex === tagEndRegex ||\n regex === singleQuoteAttrEndRegex ||\n regex === doubleQuoteAttrEndRegex, 'unexpected parse state B');\n }\n // We have four cases:\n // 1. We're in text position, and not in a raw text element\n // (regex === textEndRegex): insert a comment marker.\n // 2. We have a non-negative attrNameEndIndex which means we need to\n // rewrite the attribute name to add a bound attribute suffix.\n // 3. We're at the non-first binding in a multi-binding attribute, use a\n // plain marker.\n // 4. We're somewhere else inside the tag. If we're in attribute name\n // position (attrNameEndIndex === -2), add a sequential suffix to\n // generate a unique attribute name.\n // Detect a binding next to self-closing tag end and insert a space to\n // separate the marker from the tag end:\n const end = regex === tagEndRegex && strings[i + 1].startsWith('/>') ? ' ' : '';\n html +=\n regex === textEndRegex\n ? s + nodeMarker\n : attrNameEndIndex >= 0\n ? (attrNames.push(attrName),\n s.slice(0, attrNameEndIndex) +\n boundAttributeSuffix +\n s.slice(attrNameEndIndex)) +\n marker +\n end\n : s +\n marker +\n (attrNameEndIndex === -2 ? (attrNames.push(undefined), i) : end);\n }\n const htmlResult = html + (strings[l] || '<?>') + (type === SVG_RESULT ? '</svg>' : '');\n // Returned as an array for terseness\n return [trustFromTemplateString(strings, htmlResult), attrNames];\n};\nclass Template {\n constructor(\n // This property needs to remain unminified.\n { strings, ['_$litType$']: type }, options) {\n this.parts = [];\n let node;\n let nodeIndex = 0;\n let attrNameIndex = 0;\n const partCount = strings.length - 1;\n const parts = this.parts;\n // Create template element\n const [html, attrNames] = getTemplateHtml(strings, type);\n this.el = Template.createElement(html, options);\n walker.currentNode = this.el.content;\n // Reparent SVG nodes into template root\n if (type === SVG_RESULT) {\n const content = this.el.content;\n const svgElement = content.firstChild;\n svgElement.remove();\n content.append(...svgElement.childNodes);\n }\n // Walk the template to find binding markers and create TemplateParts\n while ((node = walker.nextNode()) !== null && parts.length < partCount) {\n if (node.nodeType === 1) {\n if (DEV_MODE) {\n const tag = node.localName;\n // Warn if `textarea` includes an expression and throw if `template`\n // does since these are not supported. We do this by checking\n // innerHTML for anything that looks like a marker. This catches\n // cases like bindings in textarea there markers turn into text nodes.\n if (/^(?:textarea|template)$/i.test(tag) &&\n node.innerHTML.includes(marker)) {\n const m = `Expressions are not supported inside \\`${tag}\\` ` +\n `elements. See https://lit.dev/msg/expression-in-${tag} for more ` +\n `information.`;\n if (tag === 'template') {\n throw new Error(m);\n }\n else\n issueWarning('', m);\n }\n }\n // TODO (justinfagnani): for attempted dynamic tag names, we don't\n // increment the bindingIndex, and it'll be off by 1 in the element\n // and off by two after it.\n if (node.hasAttributes()) {\n // We defer removing bound attributes because on IE we might not be\n // iterating attributes in their template order, and would sometimes\n // remove an attribute that we still need to create a part for.\n const attrsToRemove = [];\n for (const name of node.getAttributeNames()) {\n // `name` is the name of the attribute we're iterating over, but not\n // _necessarily_ the name of the attribute we will create a part\n // for. They can be different in browsers that don't iterate on\n // attributes in source order. In that case the attrNames array\n // contains the attribute name we'll process next. We only need the\n // attribute name here to know if we should process a bound attribute\n // on this element.\n if (name.endsWith(boundAttributeSuffix) ||\n name.startsWith(marker)) {\n const realName = attrNames[attrNameIndex++];\n attrsToRemove.push(name);\n if (realName !== undefined) {\n // Lowercase for case-sensitive SVG attributes like viewBox\n const value = node.getAttribute(realName.toLowerCase() + boundAttributeSuffix);\n const statics = value.split(marker);\n const m = /([.?@])?(.*)/.exec(realName);\n parts.push({\n type: ATTRIBUTE_PART,\n index: nodeIndex,\n name: m[2],\n strings: statics,\n ctor: m[1] === '.'\n ? PropertyPart\n : m[1] === '?'\n ? BooleanAttributePart\n : m[1] === '@'\n ? EventPart\n : AttributePart,\n });\n }\n else {\n parts.push({\n type: ELEMENT_PART,\n index: nodeIndex,\n });\n }\n }\n }\n for (const name of attrsToRemove) {\n node.removeAttribute(name);\n }\n }\n // TODO (justinfagnani): benchmark the regex against testing for each\n // of the 3 raw text element names.\n if (rawTextElement.test(node.tagName)) {\n // For raw text elements we need to split the text content on\n // markers, create a Text node for each segment, and create\n // a TemplatePart for each marker.\n const strings = node.textContent.split(marker);\n const lastIndex = strings.length - 1;\n if (lastIndex > 0) {\n node.textContent = trustedTypes\n ? trustedTypes.emptyScript\n : '';\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n // We can't use empty text nodes as markers because they're\n // normalized when cloning in IE (could simplify when\n // IE is no longer supported)\n for (let i = 0; i < lastIndex; i++) {\n node.append(strings[i], createMarker());\n // Walk past the marker node we just added\n walker.nextNode();\n parts.push({ type: CHILD_PART, index: ++nodeIndex });\n }\n // Note because this marker is added after the walker's current\n // node, it will be walked to in the outer loop (and ignored), so\n // we don't need to adjust nodeIndex here\n node.append(strings[lastIndex], createMarker());\n }\n }\n }\n else if (node.nodeType === 8) {\n const data = node.data;\n if (data === markerMatch) {\n parts.push({ type: CHILD_PART, index: nodeIndex });\n }\n else {\n let i = -1;\n while ((i = node.data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n parts.push({ type: COMMENT_PART, index: nodeIndex });\n // Move to the end of the match\n i += marker.length - 1;\n }\n }\n }\n nodeIndex++;\n }\n // We could set walker.currentNode to another node here to prevent a memory\n // leak, but every time we prepare a template, we immediately render it\n // and re-use the walker in new TemplateInstance._clone().\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template prep',\n template: this,\n clonableTemplate: this.el,\n parts: this.parts,\n strings,\n });\n }\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @nocollapse */\n static createElement(html, _options) {\n const el = d.createElement('template');\n el.innerHTML = html;\n return el;\n }\n}\nfunction resolveDirective(part, value, parent = part, attributeIndex) {\n var _a, _b, _c;\n var _d;\n // Bail early if the value is explicitly noChange. Note, this means any\n // nested directive is still attached and is not run.\n if (value === noChange) {\n return value;\n }\n let currentDirective = attributeIndex !== undefined\n ? (_a = parent.__directives) === null || _a === void 0 ? void 0 : _a[attributeIndex]\n : parent.__directive;\n const nextDirectiveConstructor = isPrimitive(value)\n ? undefined\n : // This property needs to remain unminified.\n value['_$litDirective$'];\n if ((currentDirective === null || currentDirective === void 0 ? void 0 : currentDirective.constructor) !== nextDirectiveConstructor) {\n // This property needs to remain unminified.\n (_b = currentDirective === null || currentDirective === void 0 ? void 0 : currentDirective['_$notifyDirectiveConnectionChanged']) === null || _b === void 0 ? void 0 : _b.call(currentDirective, false);\n if (nextDirectiveConstructor === undefined) {\n currentDirective = undefined;\n }\n else {\n currentDirective = new nextDirectiveConstructor(part);\n currentDirective._$initialize(part, parent, attributeIndex);\n }\n if (attributeIndex !== undefined) {\n ((_c = (_d = parent).__directives) !== null && _c !== void 0 ? _c : (_d.__directives = []))[attributeIndex] =\n currentDirective;\n }\n else {\n parent.__directive = currentDirective;\n }\n }\n if (currentDirective !== undefined) {\n value = resolveDirective(part, currentDirective._$resolve(part, value.values), currentDirective, attributeIndex);\n }\n return value;\n}\n/**\n * An updateable instance of a Template. Holds references to the Parts used to\n * update the template instance.\n */\nclass TemplateInstance {\n constructor(template, parent) {\n this._$parts = [];\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$template = template;\n this._$parent = parent;\n }\n // Called by ChildPart parentNode getter\n get parentNode() {\n return this._$parent.parentNode;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n // This method is separate from the constructor because we need to return a\n // DocumentFragment and we don't want to hold onto it with an instance field.\n _clone(options) {\n var _a;\n const { el: { content }, parts: parts, } = this._$template;\n const fragment = ((_a = options === null || options === void 0 ? void 0 : options.creationScope) !== null && _a !== void 0 ? _a : d).importNode(content, true);\n walker.currentNode = fragment;\n let node = walker.nextNode();\n let nodeIndex = 0;\n let partIndex = 0;\n let templatePart = parts[0];\n while (templatePart !== undefined) {\n if (nodeIndex === templatePart.index) {\n let part;\n if (templatePart.type === CHILD_PART) {\n part = new ChildPart(node, node.nextSibling, this, options);\n }\n else if (templatePart.type === ATTRIBUTE_PART) {\n part = new templatePart.ctor(node, templatePart.name, templatePart.strings, this, options);\n }\n else if (templatePart.type === ELEMENT_PART) {\n part = new ElementPart(node, this, options);\n }\n this._$parts.push(part);\n templatePart = parts[++partIndex];\n }\n if (nodeIndex !== (templatePart === null || templatePart === void 0 ? void 0 : templatePart.index)) {\n node = walker.nextNode();\n nodeIndex++;\n }\n }\n // We need to set the currentNode away from the cloned tree so that we\n // don't hold onto the tree even if the tree is detached and should be\n // freed.\n walker.currentNode = d;\n return fragment;\n }\n _update(values) {\n let i = 0;\n for (const part of this._$parts) {\n if (part !== undefined) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'set part',\n part,\n value: values[i],\n valueIndex: i,\n values,\n templateInstance: this,\n });\n if (part.strings !== undefined) {\n part._$setValue(values, part, i);\n // The number of values the part consumes is part.strings.length - 1\n // since values are in between template spans. We increment i by 1\n // later in the loop, so increment it by part.strings.length - 2 here\n i += part.strings.length - 2;\n }\n else {\n part._$setValue(values[i]);\n }\n }\n i++;\n }\n }\n}\nclass ChildPart {\n constructor(startNode, endNode, parent, options) {\n var _a;\n this.type = CHILD_PART;\n this._$committedValue = nothing;\n // The following fields will be patched onto ChildParts when required by\n // AsyncDirective\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$startNode = startNode;\n this._$endNode = endNode;\n this._$parent = parent;\n this.options = options;\n // Note __isConnected is only ever accessed on RootParts (i.e. when there is\n // no _$parent); the value on a non-root-part is \"don't care\", but checking\n // for parent would be more code\n this.__isConnected = (_a = options === null || options === void 0 ? void 0 : options.isConnected) !== null && _a !== void 0 ? _a : true;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n // Explicitly initialize for consistent class shape.\n this._textSanitizer = undefined;\n }\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n var _a, _b;\n // ChildParts that are not at the root should always be created with a\n // parent; only RootChildNode's won't, so they return the local isConnected\n // state\n return (_b = (_a = this._$parent) === null || _a === void 0 ? void 0 : _a._$isConnected) !== null && _b !== void 0 ? _b : this.__isConnected;\n }\n /**\n * The parent node into which the part renders its content.\n *\n * A ChildPart's content consists of a range of adjacent child nodes of\n * `.parentNode`, possibly bordered by 'marker nodes' (`.startNode` and\n * `.endNode`).\n *\n * - If both `.startNode` and `.endNode` are non-null, then the part's content\n * consists of all siblings between `.startNode` and `.endNode`, exclusively.\n *\n * - If `.startNode` is non-null but `.endNode` is null, then the part's\n * content consists of all siblings following `.startNode`, up to and\n * including the last child of `.parentNode`. If `.endNode` is non-null, then\n * `.startNode` will always be non-null.\n *\n * - If both `.endNode` and `.startNode` are null, then the part's content\n * consists of all child nodes of `.parentNode`.\n */\n get parentNode() {\n let parentNode = wrap(this._$startNode).parentNode;\n const parent = this._$parent;\n if (parent !== undefined &&\n (parentNode === null || parentNode === void 0 ? void 0 : parentNode.nodeType) === 11 /* Node.DOCUMENT_FRAGMENT */) {\n // If the parentNode is a DocumentFragment, it may be because the DOM is\n // still in the cloned fragment during initial render; if so, get the real\n // parentNode the part will be committed into by asking the parent.\n parentNode = parent.parentNode;\n }\n return parentNode;\n }\n /**\n * The part's leading marker node, if any. See `.parentNode` for more\n * information.\n */\n get startNode() {\n return this._$startNode;\n }\n /**\n * The part's trailing marker node, if any. See `.parentNode` for more\n * information.\n */\n get endNode() {\n return this._$endNode;\n }\n _$setValue(value, directiveParent = this) {\n var _a;\n if (DEV_MODE && this.parentNode === null) {\n throw new Error(`This \\`ChildPart\\` has no \\`parentNode\\` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's \\`innerHTML\\` or \\`textContent\\` can do this.`);\n }\n value = resolveDirective(this, value, directiveParent);\n if (isPrimitive(value)) {\n // Non-rendering child values. It's important that these do not render\n // empty text nodes to avoid issues with preventing default <slot>\n // fallback content.\n if (value === nothing || value == null || value === '') {\n if (this._$committedValue !== nothing) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit nothing to child',\n start: this._$startNode,\n end: this._$endNode,\n parent: this._$parent,\n options: this.options,\n });\n this._$clear();\n }\n this._$committedValue = nothing;\n }\n else if (value !== this._$committedValue && value !== noChange) {\n this._commitText(value);\n }\n // This property needs to remain unminified.\n }\n else if (value['_$litType$'] !== undefined) {\n this._commitTemplateResult(value);\n }\n else if (value.nodeType !== undefined) {\n if (DEV_MODE && ((_a = this.options) === null || _a === void 0 ? void 0 : _a.host) === value) {\n this._commitText(`[probable mistake: rendered a template's host in itself ` +\n `(commonly caused by writing \\${this} in a template]`);\n console.warn(`Attempted to render the template host`, value, `inside itself. This is almost always a mistake, and in dev mode `, `we render some warning text. In production however, we'll `, `render it, which will usually result in an error, and sometimes `, `in the element disappearing from the DOM.`);\n return;\n }\n this._commitNode(value);\n }\n else if (isIterable(value)) {\n this._commitIterable(value);\n }\n else {\n // Fallback, will render the string representation\n this._commitText(value);\n }\n }\n _insert(node) {\n return wrap(wrap(this._$startNode).parentNode).insertBefore(node, this._$endNode);\n }\n _commitNode(value) {\n var _a;\n if (this._$committedValue !== value) {\n this._$clear();\n if (ENABLE_EXTRA_SECURITY_HOOKS &&\n sanitizerFactoryInternal !== noopSanitizer) {\n const parentNodeName = (_a = this._$startNode.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName;\n if (parentNodeName === 'STYLE' || parentNodeName === 'SCRIPT') {\n let message = 'Forbidden';\n if (DEV_MODE) {\n if (parentNodeName === 'STYLE') {\n message =\n `Lit does not support binding inside style nodes. ` +\n `This is a security risk, as style injection attacks can ` +\n `exfiltrate data and spoof UIs. ` +\n `Consider instead using css\\`...\\` literals ` +\n `to compose styles, and make do dynamic styling with ` +\n `css custom properties, ::parts, <slot>s, ` +\n `and by mutating the DOM rather than stylesheets.`;\n }\n else {\n message =\n `Lit does not support binding inside script nodes. ` +\n `This is a security risk, as it could allow arbitrary ` +\n `code execution.`;\n }\n }\n throw new Error(message);\n }\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit node',\n start: this._$startNode,\n parent: this._$parent,\n value: value,\n options: this.options,\n });\n this._$committedValue = this._insert(value);\n }\n }\n _commitText(value) {\n // If the committed value is a primitive it means we called _commitText on\n // the previous render, and we know that this._$startNode.nextSibling is a\n // Text node. We can now just replace the text content (.data) of the node.\n if (this._$committedValue !== nothing &&\n isPrimitive(this._$committedValue)) {\n const node = wrap(this._$startNode).nextSibling;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(node, 'data', 'property');\n }\n value = this._textSanitizer(value);\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node,\n value,\n options: this.options,\n });\n node.data = value;\n }\n else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n const textNode = d.createTextNode('');\n this._commitNode(textNode);\n // When setting text content, for security purposes it matters a lot\n // what the parent is. For example, <style> and <script> need to be\n // handled with care, while <span> does not. So first we need to put a\n // text node into the document, then we can sanitize its content.\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(textNode, 'data', 'property');\n }\n value = this._textSanitizer(value);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node: textNode,\n value,\n options: this.options,\n });\n textNode.data = value;\n }\n else {\n this._commitNode(d.createTextNode(value));\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit text',\n node: wrap(this._$startNode).nextSibling,\n value,\n options: this.options,\n });\n }\n }\n this._$committedValue = value;\n }\n _commitTemplateResult(result) {\n var _a;\n // This property needs to remain unminified.\n const { values, ['_$litType$']: type } = result;\n // If $litType$ is a number, result is a plain TemplateResult and we get\n // the template from the template cache. If not, result is a\n // CompiledTemplateResult and _$litType$ is a CompiledTemplate and we need\n // to create the <template> element the first time we see it.\n const template = typeof type === 'number'\n ? this._$getTemplate(result)\n : (type.el === undefined &&\n (type.el = Template.createElement(trustFromTemplateString(type.h, type.h[0]), this.options)),\n type);\n if (((_a = this._$committedValue) === null || _a === void 0 ? void 0 : _a._$template) === template) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template updating',\n template,\n instance: this._$committedValue,\n parts: this._$committedValue._$parts,\n options: this.options,\n values,\n });\n this._$committedValue._update(values);\n }\n else {\n const instance = new TemplateInstance(template, this);\n const fragment = instance._clone(this.options);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template instantiated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n instance._update(values);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'template instantiated and updated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n this._commitNode(fragment);\n this._$committedValue = instance;\n }\n }\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @internal */\n _$getTemplate(result) {\n let template = templateCache.get(result.strings);\n if (template === undefined) {\n templateCache.set(result.strings, (template = new Template(result)));\n }\n return template;\n }\n _commitIterable(value) {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n // If value is an array, then the previous render was of an\n // iterable and value will contain the ChildParts from the previous\n // render. If value is not an array, clear this part and make a new\n // array for ChildParts.\n if (!isArray(this._$committedValue)) {\n this._$committedValue = [];\n this._$clear();\n }\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this._$committedValue;\n let partIndex = 0;\n let itemPart;\n for (const item of value) {\n if (partIndex === itemParts.length) {\n // If no existing part, create a new one\n // TODO (justinfagnani): test perf impact of always creating two parts\n // instead of sharing parts between nodes\n // https://github.com/lit/lit/issues/1266\n itemParts.push((itemPart = new ChildPart(this._insert(createMarker()), this._insert(createMarker()), this, this.options)));\n }\n else {\n // Reuse an existing part\n itemPart = itemParts[partIndex];\n }\n itemPart._$setValue(item);\n partIndex++;\n }\n if (partIndex < itemParts.length) {\n // itemParts always have end nodes\n this._$clear(itemPart && wrap(itemPart._$endNode).nextSibling, partIndex);\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n }\n }\n /**\n * Removes the nodes contained within this Part from the DOM.\n *\n * @param start Start node to clear from, for clearing a subset of the part's\n * DOM (used when truncating iterables)\n * @param from When `start` is specified, the index within the iterable from\n * which ChildParts are being removed, used for disconnecting directives in\n * those Parts.\n *\n * @internal\n */\n _$clear(start = wrap(this._$startNode).nextSibling, from) {\n var _a;\n (_a = this._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(this, false, true, from);\n while (start && start !== this._$endNode) {\n const n = wrap(start).nextSibling;\n wrap(start).remove();\n start = n;\n }\n }\n /**\n * Implementation of RootPart's `isConnected`. Note that this metod\n * should only be called on `RootPart`s (the `ChildPart` returned from a\n * top-level `render()` call). It has no effect on non-root ChildParts.\n * @param isConnected Whether to set\n * @internal\n */\n setConnected(isConnected) {\n var _a;\n if (this._$parent === undefined) {\n this.__isConnected = isConnected;\n (_a = this._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(this, isConnected);\n }\n else if (DEV_MODE) {\n throw new Error('part.setConnected() may only be called on a ' +\n 'RootPart returned from render().');\n }\n }\n}\nclass AttributePart {\n constructor(element, name, strings, parent, options) {\n this.type = ATTRIBUTE_PART;\n /** @internal */\n this._$committedValue = nothing;\n /** @internal */\n this._$disconnectableChildren = undefined;\n this.element = element;\n this.name = name;\n this._$parent = parent;\n this.options = options;\n if (strings.length > 2 || strings[0] !== '' || strings[1] !== '') {\n this._$committedValue = new Array(strings.length - 1).fill(new String());\n this.strings = strings;\n }\n else {\n this._$committedValue = nothing;\n }\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n this._sanitizer = undefined;\n }\n }\n get tagName() {\n return this.element.tagName;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n /**\n * Sets the value of this part by resolving the value from possibly multiple\n * values and static strings and committing it to the DOM.\n * If this part is single-valued, `this._strings` will be undefined, and the\n * method will be called with a single value argument. If this part is\n * multi-value, `this._strings` will be defined, and the method is called\n * with the value array of the part's owning TemplateInstance, and an offset\n * into the value array from which the values should be read.\n * This method is overloaded this way to eliminate short-lived array slices\n * of the template instance values, and allow a fast-path for single-valued\n * parts.\n *\n * @param value The part value, or an array of values for multi-valued parts\n * @param valueIndex the index to start reading values from. `undefined` for\n * single-valued parts\n * @param noCommit causes the part to not commit its value to the DOM. Used\n * in hydration to prime attribute parts with their first-rendered value,\n * but not set the attribute, and in SSR to no-op the DOM operation and\n * capture the value for serialization.\n *\n * @internal\n */\n _$setValue(value, directiveParent = this, valueIndex, noCommit) {\n const strings = this.strings;\n // Whether any of the values has changed, for dirty-checking\n let change = false;\n if (strings === undefined) {\n // Single-value binding case\n value = resolveDirective(this, value, directiveParent, 0);\n change =\n !isPrimitive(value) ||\n (value !== this._$committedValue && value !== noChange);\n if (change) {\n this._$committedValue = value;\n }\n }\n else {\n // Interpolation case\n const values = value;\n value = strings[0];\n let i, v;\n for (i = 0; i < strings.length - 1; i++) {\n v = resolveDirective(this, values[valueIndex + i], directiveParent, i);\n if (v === noChange) {\n // If the user-provided value is `noChange`, use the previous value\n v = this._$committedValue[i];\n }\n change || (change = !isPrimitive(v) || v !== this._$committedValue[i]);\n if (v === nothing) {\n value = nothing;\n }\n else if (value !== nothing) {\n value += (v !== null && v !== void 0 ? v : '') + strings[i + 1];\n }\n // We always record each value, even if one is `nothing`, for future\n // change detection.\n this._$committedValue[i] = v;\n }\n }\n if (change && !noCommit) {\n this._commitValue(value);\n }\n }\n /** @internal */\n _commitValue(value) {\n if (value === nothing) {\n wrap(this.element).removeAttribute(this.name);\n }\n else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(this.element, this.name, 'attribute');\n }\n value = this._sanitizer(value !== null && value !== void 0 ? value : '');\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit attribute',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n wrap(this.element).setAttribute(this.name, (value !== null && value !== void 0 ? value : ''));\n }\n }\n}\nclass PropertyPart extends AttributePart {\n constructor() {\n super(...arguments);\n this.type = PROPERTY_PART;\n }\n /** @internal */\n _commitValue(value) {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(this.element, this.name, 'property');\n }\n value = this._sanitizer(value);\n }\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit property',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.element[this.name] = value === nothing ? undefined : value;\n }\n}\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? trustedTypes.emptyScript\n : '';\nclass BooleanAttributePart extends AttributePart {\n constructor() {\n super(...arguments);\n this.type = BOOLEAN_ATTRIBUTE_PART;\n }\n /** @internal */\n _commitValue(value) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit boolean attribute',\n element: this.element,\n name: this.name,\n value: !!(value && value !== nothing),\n options: this.options,\n });\n if (value && value !== nothing) {\n wrap(this.element).setAttribute(this.name, emptyStringForBooleanAttribute);\n }\n else {\n wrap(this.element).removeAttribute(this.name);\n }\n }\n}\nclass EventPart extends AttributePart {\n constructor(element, name, strings, parent, options) {\n super(element, name, strings, parent, options);\n this.type = EVENT_PART;\n if (DEV_MODE && this.strings !== undefined) {\n throw new Error(`A \\`<${element.localName}>\\` has a \\`@${name}=...\\` listener with ` +\n 'invalid content. Event listeners in templates must have exactly ' +\n 'one expression and no surrounding text.');\n }\n }\n // EventPart does not use the base _$setValue/_resolveValue implementation\n // since the dirty checking is more complex\n /** @internal */\n _$setValue(newListener, directiveParent = this) {\n var _a;\n newListener =\n (_a = resolveDirective(this, newListener, directiveParent, 0)) !== null && _a !== void 0 ? _a : nothing;\n if (newListener === noChange) {\n return;\n }\n const oldListener = this._$committedValue;\n // If the new value is nothing or any options change we have to remove the\n // part as a listener.\n const shouldRemoveListener = (newListener === nothing && oldListener !== nothing) ||\n newListener.capture !==\n oldListener.capture ||\n newListener.once !==\n oldListener.once ||\n newListener.passive !==\n oldListener.passive;\n // If the new value is not nothing and we removed the listener, we have\n // to add the part as a listener.\n const shouldAddListener = newListener !== nothing &&\n (oldListener === nothing || shouldRemoveListener);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit event listener',\n element: this.element,\n name: this.name,\n value: newListener,\n options: this.options,\n removeListener: shouldRemoveListener,\n addListener: shouldAddListener,\n oldListener,\n });\n if (shouldRemoveListener) {\n this.element.removeEventListener(this.name, this, oldListener);\n }\n if (shouldAddListener) {\n // Beware: IE11 and Chrome 41 don't like using the listener as the\n // options object. Figure out how to deal w/ this in IE11 - maybe\n // patch addEventListener?\n this.element.addEventListener(this.name, this, newListener);\n }\n this._$committedValue = newListener;\n }\n handleEvent(event) {\n var _a, _b;\n if (typeof this._$committedValue === 'function') {\n this._$committedValue.call((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.host) !== null && _b !== void 0 ? _b : this.element, event);\n }\n else {\n this._$committedValue.handleEvent(event);\n }\n }\n}\nclass ElementPart {\n constructor(element, parent, options) {\n this.element = element;\n this.type = ELEMENT_PART;\n /** @internal */\n this._$disconnectableChildren = undefined;\n this._$parent = parent;\n this.options = options;\n }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n _$setValue(value) {\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'commit to element binding',\n element: this.element,\n value,\n options: this.options,\n });\n resolveDirective(this, value);\n }\n}\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LH object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-element, which re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LH = {\n // Used in lit-ssr\n _boundAttributeSuffix: boundAttributeSuffix,\n _marker: marker,\n _markerMatch: markerMatch,\n _HTML_RESULT: HTML_RESULT,\n _getTemplateHtml: getTemplateHtml,\n // Used in tests and private-ssr-support\n _TemplateInstance: TemplateInstance,\n _isIterable: isIterable,\n _resolveDirective: resolveDirective,\n _ChildPart: ChildPart,\n _AttributePart: AttributePart,\n _BooleanAttributePart: BooleanAttributePart,\n _EventPart: EventPart,\n _PropertyPart: PropertyPart,\n _ElementPart: ElementPart,\n};\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litHtmlPolyfillSupportDevMode\n : global.litHtmlPolyfillSupport;\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport(Template, ChildPart);\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n((_d = global.litHtmlVersions) !== null && _d !== void 0 ? _d : (global.litHtmlVersions = [])).push('2.8.0');\nif (DEV_MODE && global.litHtmlVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. ` +\n `Loading multiple versions is not recommended.`);\n}\n/**\n * Renders a value, usually a lit-html TemplateResult, to the container.\n *\n * This example renders the text \"Hello, Zoe!\" inside a paragraph tag, appending\n * it to the container `document.body`.\n *\n * ```js\n * import {html, render} from 'lit';\n *\n * const name = \"Zoe\";\n * render(html`<p>Hello, ${name}!</p>`, document.body);\n * ```\n *\n * @param value Any [renderable\n * value](https://lit.dev/docs/templates/expressions/#child-expressions),\n * typically a {@linkcode TemplateResult} created by evaluating a template tag\n * like {@linkcode html} or {@linkcode svg}.\n * @param container A DOM container to render to. The first render will append\n * the rendered value to the container, and subsequent renders will\n * efficiently update the rendered value if the same result type was\n * previously rendered there.\n * @param options See {@linkcode RenderOptions} for options documentation.\n * @see\n * {@link https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates| Rendering Lit HTML Templates}\n */\nexport const render = (value, container, options) => {\n var _a, _b;\n if (DEV_MODE && container == null) {\n // Give a clearer error message than\n // Uncaught TypeError: Cannot read properties of null (reading\n // '_$litPart$')\n // which reads like an internal Lit error.\n throw new TypeError(`The container to render into may not be ${container}`);\n }\n const renderId = DEV_MODE ? debugLogRenderId++ : 0;\n const partOwnerNode = (_a = options === null || options === void 0 ? void 0 : options.renderBefore) !== null && _a !== void 0 ? _a : container;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let part = partOwnerNode['_$litPart$'];\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'begin render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n if (part === undefined) {\n const endNode = (_b = options === null || options === void 0 ? void 0 : options.renderBefore) !== null && _b !== void 0 ? _b : null;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n partOwnerNode['_$litPart$'] = part = new ChildPart(container.insertBefore(createMarker(), endNode), endNode, undefined, options !== null && options !== void 0 ? options : {});\n }\n part._$setValue(value);\n debugLogEvent === null || debugLogEvent === void 0 ? void 0 : debugLogEvent({\n kind: 'end render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n return part;\n};\nif (ENABLE_EXTRA_SECURITY_HOOKS) {\n render.setSanitizer = setSanitizer;\n render.createSanitizer = createSanitizer;\n if (DEV_MODE) {\n render._testOnlyClearSanitizerFactoryDoNotCallOrElse =\n _testOnlyClearSanitizerFactoryDoNotCallOrElse;\n }\n}\n//# sourceMappingURL=lit-html.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c;\n/**\n * The main LitElement module, which defines the {@linkcode LitElement} base\n * class and related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import {@linkcode LitElement} and {@linkcode html} from this module to\n * create a component:\n *\n * ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n * // Declare observed properties\n * static get properties() {\n * return {\n * adjective: {}\n * }\n * }\n *\n * constructor() {\n * this.adjective = 'awesome';\n * }\n *\n * // Define the element's template\n * render() {\n * return html`<p>your ${adjective} template here</p>`;\n * }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends {@linkcode ReactiveElement} and adds lit-html\n * templating. The `ReactiveElement` class is provided for users that want to\n * build their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\nimport { ReactiveElement } from '@lit/reactive-element';\nimport { render, noChange } from 'lit-html';\nexport * from '@lit/reactive-element';\nexport * from 'lit-html';\n// For backwards compatibility export ReactiveElement as UpdatingElement. Note,\n// IE transpilation requires exporting like this.\nexport const UpdatingElement = ReactiveElement;\nconst DEV_MODE = true;\nlet issueWarning;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_a = globalThis.litIssuedWarnings) !== null && _a !== void 0 ? _a : (globalThis.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n}\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the {@linkcode LitElement.properties properties} property or the\n * {@linkcode property} decorator.\n */\nexport class LitElement extends ReactiveElement {\n constructor() {\n super(...arguments);\n /**\n * @category rendering\n */\n this.renderOptions = { host: this };\n this.__childPart = undefined;\n }\n /**\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n var _b;\n const renderRoot = super.createRenderRoot();\n // When adoptedStyleSheets are shimmed, they are inserted into the\n // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n // any styles in Lit content render before adoptedStyleSheets. This is\n // important so that adoptedStyleSheets have precedence over styles in\n // the shadowRoot.\n (_a = (_b = this.renderOptions).renderBefore) !== null && _a !== void 0 ? _a : (_b.renderBefore = renderRoot.firstChild);\n return renderRoot;\n }\n /**\n * Updates the element. This method reflects property values to attributes\n * and calls `render` to render DOM via lit-html. Setting properties inside\n * this method will *not* trigger another update.\n * @param changedProperties Map of changed properties with old values\n * @category updates\n */\n update(changedProperties) {\n // Setting properties in `render` should not trigger an update. Since\n // updates are allowed after super.update, it's important to call `render`\n // before that.\n const value = this.render();\n if (!this.hasUpdated) {\n this.renderOptions.isConnected = this.isConnected;\n }\n super.update(changedProperties);\n this.__childPart = render(value, this.renderRoot, this.renderOptions);\n }\n /**\n * Invoked when the component is added to the document's DOM.\n *\n * In `connectedCallback()` you should setup tasks that should only occur when\n * the element is connected to the document. The most common of these is\n * adding event listeners to nodes external to the element, like a keydown\n * event handler added to the window.\n *\n * ```ts\n * connectedCallback() {\n * super.connectedCallback();\n * addEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * Typically, anything done in `connectedCallback()` should be undone when the\n * element is disconnected, in `disconnectedCallback()`.\n *\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n super.connectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(true);\n }\n /**\n * Invoked when the component is removed from the document's DOM.\n *\n * This callback is the main signal to the element that it may no longer be\n * used. `disconnectedCallback()` should ensure that nothing is holding a\n * reference to the element (such as event listeners added to nodes external\n * to the element), so that it is free to be garbage collected.\n *\n * ```ts\n * disconnectedCallback() {\n * super.disconnectedCallback();\n * window.removeEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * An element may be re-connected after being disconnected.\n *\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(false);\n }\n /**\n * Invoked on each update to perform rendering tasks. This method may return\n * any value renderable by lit-html's `ChildPart` - typically a\n * `TemplateResult`. Setting properties inside this method will *not* trigger\n * the element to update.\n * @category rendering\n */\n render() {\n return noChange;\n }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\nLitElement['finalized'] = true;\n// This property needs to remain unminified.\nLitElement['_$litElement$'] = true;\n// Install hydration if available\n(_b = globalThis.litElementHydrateSupport) === null || _b === void 0 ? void 0 : _b.call(globalThis, { LitElement });\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? globalThis.litElementPolyfillSupportDevMode\n : globalThis.litElementPolyfillSupport;\npolyfillSupport === null || polyfillSupport === void 0 ? void 0 : polyfillSupport({ LitElement });\n// DEV mode warnings\nif (DEV_MODE) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // Note, for compatibility with closure compilation, this access\n // needs to be as a string property index.\n LitElement['finalize'] = function () {\n const finalized = ReactiveElement.finalize.call(this);\n if (!finalized) {\n return false;\n }\n const warnRemovedOrRenamed = (obj, name, renamed = false) => {\n if (obj.hasOwnProperty(name)) {\n const ctorName = (typeof obj === 'function' ? obj : obj.constructor)\n .name;\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${ctorName}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed(this, 'render');\n warnRemovedOrRenamed(this, 'getStyles', true);\n warnRemovedOrRenamed(this.prototype, 'adoptStyles');\n return true;\n };\n /* eslint-enable @typescript-eslint/no-explicit-any */\n}\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LE = {\n _$attributeToProperty: (el, name, value) => {\n // eslint-disable-next-line\n el._$attributeToProperty(name, value);\n },\n // eslint-disable-next-line\n _$changedProperties: (el) => el._$changedProperties,\n};\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n((_c = globalThis.litElementVersions) !== null && _c !== void 0 ? _c : (globalThis.litElementVersions = [])).push('3.3.2');\nif (DEV_MODE && globalThis.litElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=lit-element.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst standardProperty = (options, element) => {\n // When decorating an accessor, pass it through and add property metadata.\n // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n // stomp over the user's accessor.\n if (element.kind === 'method' &&\n element.descriptor &&\n !('value' in element.descriptor)) {\n return {\n ...element,\n finisher(clazz) {\n clazz.createProperty(element.key, options);\n },\n };\n }\n else {\n // createProperty() takes care of defining the property, but we still\n // must return some kind of descriptor, so return a descriptor for an\n // unused prototype field. The finisher calls createProperty().\n return {\n kind: 'field',\n key: Symbol(),\n placement: 'own',\n descriptor: {},\n // store the original key so subsequent decorators have access to it.\n originalKey: element.key,\n // When @babel/plugin-proposal-decorators implements initializers,\n // do this instead of the initializer below. See:\n // https://github.com/babel/babel/issues/9260 extras: [\n // {\n // kind: 'initializer',\n // placement: 'own',\n // initializer: descriptor.initializer,\n // }\n // ],\n initializer() {\n if (typeof element.initializer === 'function') {\n this[element.key] = element.initializer.call(this);\n }\n },\n finisher(clazz) {\n clazz.createProperty(element.key, options);\n },\n };\n }\n};\nconst legacyProperty = (options, proto, name) => {\n proto.constructor.createProperty(name, options);\n};\n/**\n * A property decorator which creates a reactive property that reflects a\n * corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n * @property({ type: Boolean })\n * clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (protoOrDescriptor, name) => name !== undefined\n ? legacyProperty(options, protoOrDescriptor, name)\n : standardProperty(options, protoOrDescriptor);\n}\n//# sourceMappingURL=property.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport { property } from './property.js';\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options) {\n return property({\n ...options,\n state: true,\n });\n}\n//# sourceMappingURL=state.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport const legacyPrototypeMethod = (descriptor, proto, name) => {\n Object.defineProperty(proto, name, descriptor);\n};\nexport const standardPrototypeMethod = (descriptor, element) => ({\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n});\n/**\n * Helper for decorating a property that is compatible with both TypeScript\n * and Babel decorators. The optional `finisher` can be used to perform work on\n * the class. The optional `descriptor` should return a PropertyDescriptor\n * to install for the given property.\n *\n * @param finisher {function} Optional finisher method; receives the element\n * constructor and property key as arguments and has no return value.\n * @param descriptor {function} Optional descriptor method; receives the\n * property key as an argument and returns a property descriptor to define for\n * the given property.\n * @returns {ClassElement|void}\n */\nexport const decorateProperty = ({ finisher, descriptor, }) => (protoOrDescriptor, name\n// Note TypeScript requires the return type to be `void|any`\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => {\n var _a;\n // TypeScript / Babel legacy mode\n if (name !== undefined) {\n const ctor = protoOrDescriptor\n .constructor;\n if (descriptor !== undefined) {\n Object.defineProperty(protoOrDescriptor, name, descriptor(name));\n }\n finisher === null || finisher === void 0 ? void 0 : finisher(ctor, name);\n // Babel standard mode\n }\n else {\n // Note, the @property decorator saves `key` as `originalKey`\n // so try to use it here.\n const key = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (_a = protoOrDescriptor.originalKey) !== null && _a !== void 0 ? _a : protoOrDescriptor.key;\n const info = descriptor != undefined\n ? {\n kind: 'method',\n placement: 'prototype',\n key,\n descriptor: descriptor(protoOrDescriptor.key),\n }\n : { ...protoOrDescriptor, key };\n if (finisher != undefined) {\n info.finisher = function (ctor) {\n finisher(ctor, key);\n };\n }\n return info;\n }\n};\n//# sourceMappingURL=base.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { decorateProperty } from './base.js';\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n * once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @query('#first')\n * first: HTMLDivElement;\n *\n * render() {\n * return html`\n * <div id=\"first\"></div>\n * <div id=\"second\"></div>\n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector, cache) {\n return decorateProperty({\n descriptor: (name) => {\n const descriptor = {\n get() {\n var _a, _b;\n return (_b = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector)) !== null && _b !== void 0 ? _b : null;\n },\n enumerable: true,\n configurable: true,\n };\n if (cache) {\n const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n descriptor.get = function () {\n var _a, _b;\n if (this[key] === undefined) {\n this[key] = (_b = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector)) !== null && _b !== void 0 ? _b : null;\n }\n return this[key];\n };\n }\n return descriptor;\n },\n });\n}\n//# sourceMappingURL=query.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { decorateProperty } from './base.js';\n// Note, in the future, we may extend this decorator to support the use case\n// where the queried element may need to do work to become ready to interact\n// with (e.g. load some implementation code). If so, we might elect to\n// add a second argument defining a function that can be run to make the\n// queried element loaded/updated/ready.\n/**\n * A property decorator that converts a class property into a getter that\n * returns a promise that resolves to the result of a querySelector on the\n * element's renderRoot done after the element's `updateComplete` promise\n * resolves. When the queried property may change with element state, this\n * decorator can be used instead of requiring users to await the\n * `updateComplete` before accessing the property.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @queryAsync('#first')\n * first: Promise<HTMLDivElement>;\n *\n * render() {\n * return html`\n * <div id=\"first\"></div>\n * <div id=\"second\"></div>\n * `;\n * }\n * }\n *\n * // external usage\n * async doSomethingWithFirst() {\n * (await aMyElement.first).doSomething();\n * }\n * ```\n * @category Decorator\n */\nexport function queryAsync(selector) {\n return decorateProperty({\n descriptor: (_name) => ({\n async get() {\n var _a;\n await this.updateComplete;\n return (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(selector);\n },\n enumerable: true,\n configurable: true,\n }),\n });\n}\n//# sourceMappingURL=query-async.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a;\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport { decorateProperty } from './base.js';\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n/**\n * A tiny module scoped polyfill for HTMLSlotElement.assignedElements.\n */\nconst slotAssignedElements = ((_a = global.HTMLSlotElement) === null || _a === void 0 ? void 0 : _a.prototype.assignedElements) != null\n ? (slot, opts) => slot.assignedElements(opts)\n : (slot, opts) => slot\n .assignedNodes(opts)\n .filter((node) => node.nodeType === Node.ELEMENT_NODE);\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedElements` of the given `slot`. Provides a declarative\n * way to use\n * [`HTMLSlotElement.assignedElements`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n *\n * Can be passed an optional {@linkcode QueryAssignedElementsOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedElements({ slot: 'list' })\n * listItems!: Array<HTMLElement>;\n * @queryAssignedElements()\n * unnamedSlotEls!: Array<HTMLElement>;\n *\n * render() {\n * return html`\n * <slot name=\"list\"></slot>\n * <slot></slot>\n * `;\n * }\n * }\n * ```\n *\n * Note, the type of this property should be annotated as `Array<HTMLElement>`.\n *\n * @category Decorator\n */\nexport function queryAssignedElements(options) {\n const { slot, selector } = options !== null && options !== void 0 ? options : {};\n return decorateProperty({\n descriptor: (_name) => ({\n get() {\n var _a;\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n const slotEl = (_a = this.renderRoot) === null || _a === void 0 ? void 0 : _a.querySelector(slotSelector);\n const elements = slotEl != null ? slotAssignedElements(slotEl, options) : [];\n if (selector) {\n return elements.filter((node) => node.matches(selector));\n }\n return elements;\n },\n enumerable: true,\n configurable: true,\n }),\n });\n}\n//# sourceMappingURL=query-assigned-elements.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n};\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive = (c) => (...values) => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n});\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport class Directive {\n constructor(_partInfo) { }\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n /** @internal */\n _$initialize(part, parent, attributeIndex) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part, props) {\n return this.update(part, props);\n }\n update(_part, props) {\n return this.render(...props);\n }\n}\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b;\nimport { _$LH, } from './lit-html.js';\nconst { _ChildPart: ChildPart } = _$LH;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst wrap = ENABLE_SHADYDOM_NOPATCH &&\n ((_a = window.ShadyDOM) === null || _a === void 0 ? void 0 : _a.inUse) &&\n ((_b = window.ShadyDOM) === null || _b === void 0 ? void 0 : _b.noPatch) === true\n ? window.ShadyDOM.wrap\n : (node) => node;\n/**\n * Tests if a value is a primitive value.\n *\n * See https://tc39.github.io/ecma262/#sec-typeof-operator\n */\nexport const isPrimitive = (value) => value === null || (typeof value != 'object' && typeof value != 'function');\nexport const TemplateResultType = {\n HTML: 1,\n SVG: 2,\n};\n/**\n * Tests if a value is a TemplateResult or a CompiledTemplateResult.\n */\nexport const isTemplateResult = (value, type) => type === undefined\n ? // This property needs to remain unminified.\n (value === null || value === void 0 ? void 0 : value['_$litType$']) !== undefined\n : (value === null || value === void 0 ? void 0 : value['_$litType$']) === type;\n/**\n * Tests if a value is a CompiledTemplateResult.\n */\nexport const isCompiledTemplateResult = (value) => {\n var _a;\n return ((_a = value === null || value === void 0 ? void 0 : value['_$litType$']) === null || _a === void 0 ? void 0 : _a.h) != null;\n};\n/**\n * Tests if a value is a DirectiveResult.\n */\nexport const isDirectiveResult = (value) => \n// This property needs to remain unminified.\n(value === null || value === void 0 ? void 0 : value['_$litDirective$']) !== undefined;\n/**\n * Retrieves the Directive class for a DirectiveResult\n */\nexport const getDirectiveClass = (value) => \n// This property needs to remain unminified.\nvalue === null || value === void 0 ? void 0 : value['_$litDirective$'];\n/**\n * Tests whether a part has only a single-expression with no strings to\n * interpolate between.\n *\n * Only AttributePart and PropertyPart can have multiple expressions.\n * Multi-expression parts have a `strings` property and single-expression\n * parts do not.\n */\nexport const isSingleExpression = (part) => part.strings === undefined;\nconst createMarker = () => document.createComment('');\n/**\n * Inserts a ChildPart into the given container ChildPart's DOM, either at the\n * end of the container ChildPart, or before the optional `refPart`.\n *\n * This does not add the part to the containerPart's committed value. That must\n * be done by callers.\n *\n * @param containerPart Part within which to add the new ChildPart\n * @param refPart Part before which to add the new ChildPart; when omitted the\n * part added to the end of the `containerPart`\n * @param part Part to insert, or undefined to create a new part\n */\nexport const insertPart = (containerPart, refPart, part) => {\n var _a;\n const container = wrap(containerPart._$startNode).parentNode;\n const refNode = refPart === undefined ? containerPart._$endNode : refPart._$startNode;\n if (part === undefined) {\n const startNode = wrap(container).insertBefore(createMarker(), refNode);\n const endNode = wrap(container).insertBefore(createMarker(), refNode);\n part = new ChildPart(startNode, endNode, containerPart, containerPart.options);\n }\n else {\n const endNode = wrap(part._$endNode).nextSibling;\n const oldParent = part._$parent;\n const parentChanged = oldParent !== containerPart;\n if (parentChanged) {\n (_a = part._$reparentDisconnectables) === null || _a === void 0 ? void 0 : _a.call(part, containerPart);\n // Note that although `_$reparentDisconnectables` updates the part's\n // `_$parent` reference after unlinking from its current parent, that\n // method only exists if Disconnectables are present, so we need to\n // unconditionally set it here\n part._$parent = containerPart;\n // Since the _$isConnected getter is somewhat costly, only\n // read it once we know the subtree has directives that need\n // to be notified\n let newConnectionState;\n if (part._$notifyConnectionChanged !== undefined &&\n (newConnectionState = containerPart._$isConnected) !==\n oldParent._$isConnected) {\n part._$notifyConnectionChanged(newConnectionState);\n }\n }\n if (endNode !== refNode || parentChanged) {\n let start = part._$startNode;\n while (start !== endNode) {\n const n = wrap(start).nextSibling;\n wrap(container).insertBefore(start, refNode);\n start = n;\n }\n }\n }\n return part;\n};\n/**\n * Sets the value of a Part.\n *\n * Note that this should only be used to set/update the value of user-created\n * parts (i.e. those created using `insertPart`); it should not be used\n * by directives to set the value of the directive's container part. Directives\n * should return a value from `update`/`render` to update their part state.\n *\n * For directives that require setting their part value asynchronously, they\n * should extend `AsyncDirective` and call `this.setValue()`.\n *\n * @param part Part to set\n * @param value Value to set\n * @param index For `AttributePart`s, the index to set\n * @param directiveParent Used internally; should not be set by user\n */\nexport const setChildPartValue = (part, value, directiveParent = part) => {\n part._$setValue(value, directiveParent);\n return part;\n};\n// A sentinel value that can never appear as a part value except when set by\n// live(). Used to force a dirty-check to fail and cause a re-render.\nconst RESET_VALUE = {};\n/**\n * Sets the committed value of a ChildPart directly without triggering the\n * commit stage of the part.\n *\n * This is useful in cases where a directive needs to update the part such\n * that the next update detects a value change or not. When value is omitted,\n * the next update will be guaranteed to be detected as a change.\n *\n * @param part\n * @param value\n */\nexport const setCommittedValue = (part, value = RESET_VALUE) => (part._$committedValue = value);\n/**\n * Returns the committed value of a ChildPart.\n *\n * The committed value is used for change detection and efficient updates of\n * the part. It can differ from the value set by the template or directive in\n * cases where the template value is transformed before being committed.\n *\n * - `TemplateResult`s are committed as a `TemplateInstance`\n * - Iterables are committed as `Array<ChildPart>`\n * - All other types are committed as the template value or value returned or\n * set by a directive.\n *\n * @param part\n */\nexport const getCommittedValue = (part) => part._$committedValue;\n/**\n * Removes a ChildPart from the DOM, including any of its content.\n *\n * @param part The Part to remove\n */\nexport const removePart = (part) => {\n var _a;\n (_a = part._$notifyConnectionChanged) === null || _a === void 0 ? void 0 : _a.call(part, false, true);\n let start = part._$startNode;\n const end = wrap(part._$endNode).nextSibling;\n while (start !== end) {\n const n = wrap(start).nextSibling;\n wrap(start).remove();\n start = n;\n }\n};\nexport const clearPart = (part) => {\n part._$clear();\n};\n//# sourceMappingURL=directive-helpers.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { noChange, nothing } from '../lit-html.js';\nimport { directive, Directive, PartType, } from '../directive.js';\nimport { isSingleExpression, setCommittedValue } from '../directive-helpers.js';\nclass LiveDirective extends Directive {\n constructor(partInfo) {\n super(partInfo);\n if (!(partInfo.type === PartType.PROPERTY ||\n partInfo.type === PartType.ATTRIBUTE ||\n partInfo.type === PartType.BOOLEAN_ATTRIBUTE)) {\n throw new Error('The `live` directive is not allowed on child or event bindings');\n }\n if (!isSingleExpression(partInfo)) {\n throw new Error('`live` bindings can only contain a single expression');\n }\n }\n render(value) {\n return value;\n }\n update(part, [value]) {\n if (value === noChange || value === nothing) {\n return value;\n }\n const element = part.element;\n const name = part.name;\n if (part.type === PartType.PROPERTY) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (value === element[name]) {\n return noChange;\n }\n }\n else if (part.type === PartType.BOOLEAN_ATTRIBUTE) {\n if (!!value === element.hasAttribute(name)) {\n return noChange;\n }\n }\n else if (part.type === PartType.ATTRIBUTE) {\n if (element.getAttribute(name) === String(value)) {\n return noChange;\n }\n }\n // Resets the part's value, causing its dirty-check to fail so that it\n // always sets the value.\n setCommittedValue(part);\n return value;\n }\n}\n/**\n * Checks binding values against live DOM values, instead of previously bound\n * values, when determining whether to update the value.\n *\n * This is useful for cases where the DOM value may change from outside of\n * lit-html, such as with a binding to an `<input>` element's `value` property,\n * a content editable elements text, or to a custom element that changes it's\n * own properties or attributes.\n *\n * In these cases if the DOM value changes, but the value set through lit-html\n * bindings hasn't, lit-html won't know to update the DOM value and will leave\n * it alone. If this is not what you want--if you want to overwrite the DOM\n * value with the bound value no matter what--use the `live()` directive:\n *\n * ```js\n * html`<input .value=${live(x)}>`\n * ```\n *\n * `live()` performs a strict equality check against the live DOM value, and if\n * the new value is equal to the live value, does nothing. This means that\n * `live()` should not be used when the binding will cause a type conversion. If\n * you use `live()` with an attribute binding, make sure that only strings are\n * passed in, or the binding will update every render.\n */\nexport const live = directive(LiveDirective);\n//# sourceMappingURL=live.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isSingleExpression } from './directive-helpers.js';\nimport { Directive, PartType } from './directive.js';\nexport * from './directive.js';\nconst DEV_MODE = true;\n/**\n * Recursively walks down the tree of Parts/TemplateInstances/Directives to set\n * the connected state of directives and run `disconnected`/ `reconnected`\n * callbacks.\n *\n * @return True if there were children to disconnect; false otherwise\n */\nconst notifyChildrenConnectedChanged = (parent, isConnected) => {\n var _a, _b;\n const children = parent._$disconnectableChildren;\n if (children === undefined) {\n return false;\n }\n for (const obj of children) {\n // The existence of `_$notifyDirectiveConnectionChanged` is used as a \"brand\" to\n // disambiguate AsyncDirectives from other DisconnectableChildren\n // (as opposed to using an instanceof check to know when to call it); the\n // redundancy of \"Directive\" in the API name is to avoid conflicting with\n // `_$notifyConnectionChanged`, which exists `ChildParts` which are also in\n // this list\n // Disconnect Directive (and any nested directives contained within)\n // This property needs to remain unminified.\n (_b = (_a = obj)['_$notifyDirectiveConnectionChanged']) === null || _b === void 0 ? void 0 : _b.call(_a, isConnected, false);\n // Disconnect Part/TemplateInstance\n notifyChildrenConnectedChanged(obj, isConnected);\n }\n return true;\n};\n/**\n * Removes the given child from its parent list of disconnectable children, and\n * if the parent list becomes empty as a result, removes the parent from its\n * parent, and so forth up the tree when that causes subsequent parent lists to\n * become empty.\n */\nconst removeDisconnectableFromParent = (obj) => {\n let parent, children;\n do {\n if ((parent = obj._$parent) === undefined) {\n break;\n }\n children = parent._$disconnectableChildren;\n children.delete(obj);\n obj = parent;\n } while ((children === null || children === void 0 ? void 0 : children.size) === 0);\n};\nconst addDisconnectableToParent = (obj) => {\n // Climb the parent tree, creating a sparse tree of children needing\n // disconnection\n for (let parent; (parent = obj._$parent); obj = parent) {\n let children = parent._$disconnectableChildren;\n if (children === undefined) {\n parent._$disconnectableChildren = children = new Set();\n }\n else if (children.has(obj)) {\n // Once we've reached a parent that already contains this child, we\n // can short-circuit\n break;\n }\n children.add(obj);\n installDisconnectAPI(parent);\n }\n};\n/**\n * Changes the parent reference of the ChildPart, and updates the sparse tree of\n * Disconnectable children accordingly.\n *\n * Note, this method will be patched onto ChildPart instances and called from\n * the core code when parts are moved between different parents.\n */\nfunction reparentDisconnectables(newParent) {\n if (this._$disconnectableChildren !== undefined) {\n removeDisconnectableFromParent(this);\n this._$parent = newParent;\n addDisconnectableToParent(this);\n }\n else {\n this._$parent = newParent;\n }\n}\n/**\n * Sets the connected state on any directives contained within the committed\n * value of this part (i.e. within a TemplateInstance or iterable of\n * ChildParts) and runs their `disconnected`/`reconnected`s, as well as within\n * any directives stored on the ChildPart (when `valueOnly` is false).\n *\n * `isClearingValue` should be passed as `true` on a top-level part that is\n * clearing itself, and not as a result of recursively disconnecting directives\n * as part of a `clear` operation higher up the tree. This both ensures that any\n * directive on this ChildPart that produced a value that caused the clear\n * operation is not disconnected, and also serves as a performance optimization\n * to avoid needless bookkeeping when a subtree is going away; when clearing a\n * subtree, only the top-most part need to remove itself from the parent.\n *\n * `fromPartIndex` is passed only in the case of a partial `_clear` running as a\n * result of truncating an iterable.\n *\n * Note, this method will be patched onto ChildPart instances and called from the\n * core code when parts are cleared or the connection state is changed by the\n * user.\n */\nfunction notifyChildPartConnectedChanged(isConnected, isClearingValue = false, fromPartIndex = 0) {\n const value = this._$committedValue;\n const children = this._$disconnectableChildren;\n if (children === undefined || children.size === 0) {\n return;\n }\n if (isClearingValue) {\n if (Array.isArray(value)) {\n // Iterable case: Any ChildParts created by the iterable should be\n // disconnected and removed from this ChildPart's disconnectable\n // children (starting at `fromPartIndex` in the case of truncation)\n for (let i = fromPartIndex; i < value.length; i++) {\n notifyChildrenConnectedChanged(value[i], false);\n removeDisconnectableFromParent(value[i]);\n }\n }\n else if (value != null) {\n // TemplateInstance case: If the value has disconnectable children (will\n // only be in the case that it is a TemplateInstance), we disconnect it\n // and remove it from this ChildPart's disconnectable children\n notifyChildrenConnectedChanged(value, false);\n removeDisconnectableFromParent(value);\n }\n }\n else {\n notifyChildrenConnectedChanged(this, isConnected);\n }\n}\n/**\n * Patches disconnection API onto ChildParts.\n */\nconst installDisconnectAPI = (obj) => {\n var _a, _b;\n var _c, _d;\n if (obj.type == PartType.CHILD) {\n (_a = (_c = obj)._$notifyConnectionChanged) !== null && _a !== void 0 ? _a : (_c._$notifyConnectionChanged = notifyChildPartConnectedChanged);\n (_b = (_d = obj)._$reparentDisconnectables) !== null && _b !== void 0 ? _b : (_d._$reparentDisconnectables = reparentDisconnectables);\n }\n};\n/**\n * An abstract `Directive` base class whose `disconnected` method will be\n * called when the part containing the directive is cleared as a result of\n * re-rendering, or when the user calls `part.setConnected(false)` on\n * a part that was previously rendered containing the directive (as happens\n * when e.g. a LitElement disconnects from the DOM).\n *\n * If `part.setConnected(true)` is subsequently called on a\n * containing part, the directive's `reconnected` method will be called prior\n * to its next `update`/`render` callbacks. When implementing `disconnected`,\n * `reconnected` should also be implemented to be compatible with reconnection.\n *\n * Note that updates may occur while the directive is disconnected. As such,\n * directives should generally check the `this.isConnected` flag during\n * render/update to determine whether it is safe to subscribe to resources\n * that may prevent garbage collection.\n */\nexport class AsyncDirective extends Directive {\n constructor() {\n super(...arguments);\n // @internal\n this._$disconnectableChildren = undefined;\n }\n /**\n * Initialize the part with internal fields\n * @param part\n * @param parent\n * @param attributeIndex\n */\n _$initialize(part, parent, attributeIndex) {\n super._$initialize(part, parent, attributeIndex);\n addDisconnectableToParent(this);\n this.isConnected = part._$isConnected;\n }\n // This property needs to remain unminified.\n /**\n * Called from the core code when a directive is going away from a part (in\n * which case `shouldRemoveFromParent` should be true), and from the\n * `setChildrenConnected` helper function when recursively changing the\n * connection state of a tree (in which case `shouldRemoveFromParent` should\n * be false).\n *\n * @param isConnected\n * @param isClearingDirective - True when the directive itself is being\n * removed; false when the tree is being disconnected\n * @internal\n */\n ['_$notifyDirectiveConnectionChanged'](isConnected, isClearingDirective = true) {\n var _a, _b;\n if (isConnected !== this.isConnected) {\n this.isConnected = isConnected;\n if (isConnected) {\n (_a = this.reconnected) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n else {\n (_b = this.disconnected) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n }\n if (isClearingDirective) {\n notifyChildrenConnectedChanged(this, isConnected);\n removeDisconnectableFromParent(this);\n }\n }\n /**\n * Sets the value of the directive's Part outside the normal `update`/`render`\n * lifecycle of a directive.\n *\n * This method should not be called synchronously from a directive's `update`\n * or `render`.\n *\n * @param directive The directive to update\n * @param value The value to set\n */\n setValue(value) {\n if (isSingleExpression(this.__part)) {\n this.__part._$setValue(value, this);\n }\n else {\n // this.__attributeIndex will be defined in this case, but\n // assert it in dev mode\n if (DEV_MODE && this.__attributeIndex === undefined) {\n throw new Error(`Expected this.__attributeIndex to be a number`);\n }\n const newValues = [...this.__part._$committedValue];\n newValues[this.__attributeIndex] = value;\n this.__part._$setValue(newValues, this, 0);\n }\n }\n /**\n * User callbacks for implementing logic to release any resources/subscriptions\n * that may have been retained by this directive. Since directives may also be\n * re-connected, `reconnected` should also be implemented to restore the\n * working state of the directive prior to the next render.\n */\n disconnected() { }\n reconnected() { }\n}\n//# sourceMappingURL=async-directive.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing } from '../lit-html.js';\nimport { directive, AsyncDirective } from '../async-directive.js';\n/**\n * Creates a new Ref object, which is container for a reference to an element.\n */\nexport const createRef = () => new Ref();\n/**\n * An object that holds a ref value.\n */\nclass Ref {\n}\n// When callbacks are used for refs, this map tracks the last value the callback\n// was called with, for ensuring a directive doesn't clear the ref if the ref\n// has already been rendered to a new spot. It is double-keyed on both the\n// context (`options.host`) and the callback, since we auto-bind class methods\n// to `options.host`.\nconst lastElementForContextAndCallback = new WeakMap();\nclass RefDirective extends AsyncDirective {\n render(_ref) {\n return nothing;\n }\n update(part, [ref]) {\n var _a;\n const refChanged = ref !== this._ref;\n if (refChanged && this._ref !== undefined) {\n // The ref passed to the directive has changed;\n // unset the previous ref's value\n this._updateRefValue(undefined);\n }\n if (refChanged || this._lastElementForRef !== this._element) {\n // We either got a new ref or this is the first render;\n // store the ref/element & update the ref value\n this._ref = ref;\n this._context = (_a = part.options) === null || _a === void 0 ? void 0 : _a.host;\n this._updateRefValue((this._element = part.element));\n }\n return nothing;\n }\n _updateRefValue(element) {\n var _a;\n if (typeof this._ref === 'function') {\n // If the current ref was called with a previous value, call with\n // `undefined`; We do this to ensure callbacks are called in a consistent\n // way regardless of whether a ref might be moving up in the tree (in\n // which case it would otherwise be called with the new value before the\n // previous one unsets it) and down in the tree (where it would be unset\n // before being set). Note that element lookup is keyed by\n // both the context and the callback, since we allow passing unbound\n // functions that are called on options.host, and we want to treat\n // these as unique \"instances\" of a function.\n const context = (_a = this._context) !== null && _a !== void 0 ? _a : globalThis;\n let lastElementForCallback = lastElementForContextAndCallback.get(context);\n if (lastElementForCallback === undefined) {\n lastElementForCallback = new WeakMap();\n lastElementForContextAndCallback.set(context, lastElementForCallback);\n }\n if (lastElementForCallback.get(this._ref) !== undefined) {\n this._ref.call(this._context, undefined);\n }\n lastElementForCallback.set(this._ref, element);\n // Call the ref with the new element value\n if (element !== undefined) {\n this._ref.call(this._context, element);\n }\n }\n else {\n this._ref.value = element;\n }\n }\n get _lastElementForRef() {\n var _a, _b, _c;\n return typeof this._ref === 'function'\n ? (_b = lastElementForContextAndCallback\n .get((_a = this._context) !== null && _a !== void 0 ? _a : globalThis)) === null || _b === void 0 ? void 0 : _b.get(this._ref)\n : (_c = this._ref) === null || _c === void 0 ? void 0 : _c.value;\n }\n disconnected() {\n // Only clear the box if our element is still the one in it (i.e. another\n // directive instance hasn't rendered its element to it before us); that\n // only happens in the event of the directive being cleared (not via manual\n // disconnection)\n if (this._lastElementForRef === this._element) {\n this._updateRefValue(undefined);\n }\n }\n reconnected() {\n // If we were manually disconnected, we can safely put our element back in\n // the box, since no rendering could have occurred to change its state\n this._updateRefValue(this._element);\n }\n}\n/**\n * Sets the value of a Ref object or calls a ref callback with the element it's\n * bound to.\n *\n * A Ref object acts as a container for a reference to an element. A ref\n * callback is a function that takes an element as its only argument.\n *\n * The ref directive sets the value of the Ref object or calls the ref callback\n * during rendering, if the referenced element changed.\n *\n * Note: If a ref callback is rendered to a different element position or is\n * removed in a subsequent render, it will first be called with `undefined`,\n * followed by another call with the new element it was rendered to (if any).\n *\n * ```js\n * // Using Ref object\n * const inputRef = createRef();\n * render(html`<input ${ref(inputRef)}>`, container);\n * inputRef.value.focus();\n *\n * // Using callback\n * const callback = (inputElement) => inputElement.focus();\n * render(html`<input ${ref(callback)}>`, container);\n * ```\n */\nexport const ref = directive(RefDirective);\n//# sourceMappingURL=ref.js.map","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport {\n executeAfterTransition,\n getElement\n} from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.3'\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element)\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null\n })\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\n this._createPopper(parent)\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', noop))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', noop))\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i])\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n if (!context._isShown()) {\n continue\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n }\n\n if (event) {\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (isDisabled(this)) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (event.key === ESCAPE_KEY) {\n instance.hide()\n return\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show()\n }\n\n instance._selectMenuItem(event)\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const assign = (target: any, ...args: any[]) => Object.assign(target, ...args);\nexport const keys = (obj: any) => Object.keys(obj);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { assign, keys } from \"./object\";\nfunction _isObject(item: any) {\n return item && typeof item === \"object\" && item.constructor === Object;\n}\n\nconst mergeDeep = (target: any, source: any) => {\n if (_isObject(target) && _isObject(source)) {\n keys(source).forEach(key => {\n if (_isObject(source[key])) {\n if (!target[key] || !_isObject(target[key])) {\n target[key] = source[key];\n }\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, { [key]: source[key] });\n }\n });\n }\n return target;\n};\n\nexport default mergeDeep;\n","import { LitElement } from \"lit\";\nimport styles from \"./sgds-element.scss\";\n\n/**\n * @cssprop --sgds-{stateColor} - State colors in hexadecimal value\n * @cssprop --sgds-{stateColor}-rgb - State colors in rgb value\n * @cssprop --sgds-{stateColor}-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --sgds-gray-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --overlay-background-color - The drawer and modal component overlay background color\n * @cssprop --zindex-modal - The drawer and modal component z-index value\n */\n\nexport default class SgdsElement extends LitElement {\n static styles = styles;\n /** Emits a custom event with more convenient defaults. */\n emit(name: string, options?: CustomEventInit) {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event;\n }\n}\n","export default function (componentName = \"\", elementName = \"\"): string {\n return `id-${Math.random().toString().substring(2, 6)}-sgds-${componentName}-${elementName}`;\n}\n","import type { StrictModifiers } from \"@popperjs/core\";\nimport * as Popper from \"@popperjs/core\";\nimport Dropdown from \"bootstrap/js/src/dropdown\";\nimport type { Dropdown as BsDropdown } from \"bootstrap\";\nimport { property, state } from \"lit/decorators.js\";\nimport { Ref, createRef } from \"lit/directives/ref.js\";\nimport mergeDeep from \"../utils/mergeDeep\";\nimport SgdsElement from \"./sgds-element\";\nimport generateId from \"../utils/generateId\";\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ESC = \"Escape\";\n\nexport type DropDirection = \"left\" | \"right\" | \"up\" | \"down\";\n\n/**\n * @event sgds-show - Emitted event when show instance is called\n * @event sgds-after-show - Emitted event when dropdown has been made visible to the user and CSS transitions have completed\n * @event sgds-hide - Emitted event when hide instance is called\n * @event sgds-after-hide - Emitted event when dropdown has hidden to the user and CSS transitions have completed\n */\n\nexport class DropdownElement extends SgdsElement {\n static styles = SgdsElement.styles;\n\n /** @internal */\n protected myDropdown: Ref<HTMLElement> = createRef();\n /** @internal */\n protected bsDropdown: BsDropdown = null;\n\n /** @internal Unique id generated for the dropdown menu */\n protected dropdownMenuId: string = generateId(\"dropdown-menu\", \"ul\");\n\n /** @internal Controls auto-flipping of menu */\n @property({ type: Boolean, state: true })\n protected noFlip = false;\n\n /** @internal When true, aligns right edge of menu with right edge of button */\n @property({ type: Boolean, reflect: true, state: true })\n protected menuAlignRight = false;\n\n /** @internal The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: true })\n protected drop: DropDirection = \"down\";\n\n /** Additional configuration to pass to Popper.js. See https://popper.js.org/ for config opts */\n @property({ type: Object })\n popperOpts = {};\n\n /** @internal */\n @state()\n dropdownConfig: Partial<Popper.Options>;\n /** @internal */\n @state()\n protected modifierOpt: StrictModifiers[] = [];\n\n /** When true, dropdown menu shows on first load */\n @property({ type: Boolean, reflect: true })\n menuIsOpen = false;\n\n /** Controls the close behaviour of dropdown menu. By default menu auto-closes when SgdsDropdownItem or area outside dropdown is clicked */\n @property({ type: String })\n close: \"outside\" | \"default\" | \"inside\" = \"default\";\n\n /** Disables the dropdown toggle */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.close !== \"inside\") {\n document.addEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this));\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n document.removeEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this));\n }\n\n firstUpdated() {\n this.bsDropdown = new Dropdown(this.myDropdown.value, {\n // autoClose not working as bootstrap is using attribute data-bs-toggle=\"dropdown\" to configure autoclose. But it doesnt look into this attribute in the shadow dom\n reference: \"toggle\", // working\n popperConfig: (defaultConfig?: Partial<Popper.Options>) => {\n //working\n this.dropdownConfig = {\n placement: \"bottom-start\",\n modifiers: !this.noFlip\n ? this.modifierOpt\n : [\n ...this.modifierOpt,\n {\n name: \"flip\",\n options: { fallbackPlacements: [] }\n }\n ]\n };\n\n switch (this.drop) {\n case \"up\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"top-end\" : \"top-start\";\n break;\n case \"right\":\n this.dropdownConfig.placement = \"right-start\";\n break;\n case \"left\":\n this.dropdownConfig.placement = \"left-start\";\n break;\n case \"down\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"bottom-end\" : \"bottom-start\";\n break;\n default:\n this.dropdownConfig.placement = undefined;\n break;\n }\n return mergeDeep(defaultConfig, mergeDeep(this.dropdownConfig, this.popperOpts));\n }\n });\n\n this.myDropdown.value.addEventListener(\"show.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-show\");\n });\n\n this.myDropdown.value.addEventListener(\"shown.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-after-show\");\n });\n\n this.myDropdown.value.addEventListener(\"hide.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-hide\");\n });\n\n this.myDropdown.value.addEventListener(\"hidden.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-after-hide\");\n });\n\n this.addEventListener(\"keydown\", this._handleKeyboardMenuEvent);\n }\n\n /** When invoked, opens the dropdown menu */\n showMenu() {\n this.bsDropdown.show();\n }\n\n /** When invoked, hides the dropdown menu */\n hideMenu() {\n this.bsDropdown.hide();\n }\n\n toggleMenu() {\n this.bsDropdown.toggle();\n }\n\n private _handleKeyboardMenuEvent(e: KeyboardEvent) {\n switch (e.key) {\n case ARROW_DOWN:\n e.preventDefault();\n if (!this.menuIsOpen) return this.showMenu();\n break;\n case ARROW_UP:\n e.preventDefault();\n if (!this.menuIsOpen) return this.showMenu();\n break;\n case ESC:\n return this.hideMenu();\n default:\n break;\n }\n }\n\n private _handleClickOutOfElement(e: MouseEvent, self: DropdownElement) {\n if (!e.composedPath().includes(self)) {\n this.hideMenu();\n }\n }\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n\nimport type { LitElement } from \"lit\";\n\ntype UpdateHandler = (prev?: unknown, next?: unknown) => void;\n\ntype NonUndefined<A> = A extends undefined ? never : A;\n\ntype UpdateHandlerFunctionKeys<T extends object> = {\n [K in keyof T]-?: NonUndefined<T[K]> extends UpdateHandler ? K : never;\n}[keyof T];\n\ninterface WatchOptions {\n /**\n * If true, will only start watching after the initial update/render\n */\n waitUntilFirstUpdate?: boolean;\n}\n\nexport function watch(propName: string, options?: WatchOptions) {\n const resolvedOptions: Required<WatchOptions> = {\n waitUntilFirstUpdate: false,\n ...options\n };\n return <ElemClass extends LitElement>(\n proto: ElemClass,\n decoratedFnName: UpdateHandlerFunctionKeys<ElemClass>\n ): void => {\n // @ts-expect-error -- update is a protected property\n const { update } = proto;\n if (propName in proto) {\n const propNameKey = propName as keyof ElemClass;\n // @ts-expect-error -- update is a protected property\n proto.update = function (this: ElemClass, changedProps: Map<keyof ElemClass, ElemClass[keyof ElemClass]>) {\n if (changedProps.has(propNameKey)) {\n const oldValue = changedProps.get(propNameKey);\n const newValue = this[propNameKey];\n\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n (this[decoratedFnName] as unknown as UpdateHandler)(oldValue, newValue);\n }\n }\n }\n\n update.call(this, changedProps);\n };\n }\n };\n}\n","import { getDaysInMonth, isLastDayOfMonth, lastDayOfMonth } from \"date-fns\";\n\nexport const DATE_PATTERNS = {\n \"DD/MM/YYYY\": {\n imPattern: \"`dd{/}`mm{/}`yyyy\",\n imRangePattern: \"`dd{/}`mm{/}`yyyy - `DD{/}`MM{/}`YYYY\",\n fnsPattern: \"dd/MM/yyyy\"\n },\n \"MM/DD/YYYY\": {\n imPattern: \"`mm{/}`dd{/}`yyyy\",\n imRangePattern: \"`mm{/}`dd{/}`yyyy - `MM{/}`DD{/}`YYYY\",\n fnsPattern: \"MM/dd/yyyy\"\n },\n \"YYYY/MM/DD\": {\n imPattern: \"`yyyy{/}`mm{/}`dd\",\n imRangePattern: \"`yyyy{/}`mm{/}`dd - `YYYY{/}`MM{/}`DD\",\n fnsPattern: \"yyyy/MM/dd\"\n }\n};\n\n/**\n * @description - creates calendar's year view years array with context of\n * datepicker's displayDate and current year\n * Fixes current year to the start of array\n */\nexport const createYearViewArray = (displayDate: Date, currentYear: number) => {\n // keeping the year range position to be always fixed by setting current year to the first element of the calendar\n const displayYear = displayDate.getFullYear();\n const remainder = (displayYear - currentYear) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n\n const yearArray = [];\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1; // -1 to match the index of the years (index starts from 0)\n\n for (let i = startLimit; i < endLimit + 1; i++) {\n yearArray.push(i);\n }\n\n return yearArray;\n};\nexport const sanitizedNextMonth = (d: Date) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const nextMonthDate = new Date(year, month + 1);\n const numberOfDaysNextMonth = getDaysInMonth(nextMonthDate);\n\n if (isLastDayOfMonth(d) && numberOfDaysNextMonth < date) {\n return lastDayOfMonth(nextMonthDate);\n } else {\n return new Date(year, month + 1, date);\n }\n};\nexport const sanitizedPreviousMonth = (d: Date) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const prevMonthDate = new Date(year, month - 1);\n const numberOfDaysPrevMonth = getDaysInMonth(prevMonthDate);\n if (isLastDayOfMonth(d) && numberOfDaysPrevMonth < date) {\n return lastDayOfMonth(prevMonthDate);\n } else {\n return new Date(year, month - 1, date);\n }\n};\nexport const setTimeToNoon = (date: Date): Date => {\n const newDate = new Date(date);\n newDate.setHours(12);\n newDate.setMinutes(0);\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n return newDate;\n};\n\nexport const sortAscDates = (dates: Date[]) => {\n return dates.sort((a, b) => a.getTime() - b.getTime());\n};\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { noChange } from '../lit-html.js';\nimport { directive, Directive, PartType, } from '../directive.js';\nclass ClassMapDirective extends Directive {\n constructor(partInfo) {\n var _a;\n super(partInfo);\n if (partInfo.type !== PartType.ATTRIBUTE ||\n partInfo.name !== 'class' ||\n ((_a = partInfo.strings) === null || _a === void 0 ? void 0 : _a.length) > 2) {\n throw new Error('`classMap()` can only be used in the `class` attribute ' +\n 'and must be the only part in the attribute.');\n }\n }\n render(classInfo) {\n // Add spaces to ensure separation from static classes\n return (' ' +\n Object.keys(classInfo)\n .filter((key) => classInfo[key])\n .join(' ') +\n ' ');\n }\n update(part, [classInfo]) {\n var _a, _b;\n // Remember dynamic classes on the first render\n if (this._previousClasses === undefined) {\n this._previousClasses = new Set();\n if (part.strings !== undefined) {\n this._staticClasses = new Set(part.strings\n .join(' ')\n .split(/\\s/)\n .filter((s) => s !== ''));\n }\n for (const name in classInfo) {\n if (classInfo[name] && !((_a = this._staticClasses) === null || _a === void 0 ? void 0 : _a.has(name))) {\n this._previousClasses.add(name);\n }\n }\n return this.render(classInfo);\n }\n const classList = part.element.classList;\n // Remove old classes that no longer apply\n // We use forEach() instead of for-of so that we don't require down-level\n // iteration.\n this._previousClasses.forEach((name) => {\n if (!(name in classInfo)) {\n classList.remove(name);\n this._previousClasses.delete(name);\n }\n });\n // Add or remove classes based on their classMap value\n for (const name in classInfo) {\n // We explicitly want a loose truthy check of `value` because it seems\n // more convenient that '' and 0 are skipped.\n const value = !!classInfo[name];\n if (value !== this._previousClasses.has(name) &&\n !((_b = this._staticClasses) === null || _b === void 0 ? void 0 : _b.has(name))) {\n if (value) {\n classList.add(name);\n this._previousClasses.add(name);\n }\n else {\n classList.remove(name);\n this._previousClasses.delete(name);\n }\n }\n }\n return noChange;\n }\n}\n/**\n * A directive that applies dynamic CSS classes.\n *\n * This must be used in the `class` attribute and must be the only part used in\n * the attribute. It takes each property in the `classInfo` argument and adds\n * the property name to the element's `classList` if the property value is\n * truthy; if the property value is falsey, the property name is removed from\n * the element's `class`.\n *\n * For example `{foo: bar}` applies the class `foo` if the value of `bar` is\n * truthy.\n *\n * @param classInfo\n */\nexport const classMap = directive(ClassMapDirective);\n//# sourceMappingURL=class-map.js.map","import { HTMLTemplateResult, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { createYearViewArray, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport styles from \"./datepicker-calendar.scss\";\nimport { ViewEnum } from \"./types\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { isAfter, isEqual } from \"date-fns\";\n\nconst TODAY_DATE = new Date();\n\nconst keyPressAction = {\n ArrowUp: {\n days: -7,\n months: -3,\n years: -3\n },\n ArrowDown: {\n days: 7,\n months: 3,\n years: 3\n },\n ArrowRight: {\n days: 1,\n months: 1,\n years: 1\n },\n ArrowLeft: {\n days: -1,\n months: -1,\n years: -1\n }\n};\nexport class DatepickerCalendar extends SgdsElement {\n static styles = [SgdsElement.styles, styles];\n\n /** @internal */\n static DAY_LABELS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\n /** @internal */\n static daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n /** @internal */\n static MONTHVIEW_LABELS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n /** @internal */\n @property({ type: Array }) selectedDate: Date[] = [];\n\n /** @internal */\n @property({ attribute: false }) displayDate: Date;\n\n /** @internal */\n @property({ type: String }) minDate?: string;\n\n /** @internal */\n @property({ type: String }) maxDate?: string;\n\n /** @internal */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n private focusedDate: Date;\n\n /** @internal */\n @property() view: ViewEnum;\n\n /** @internal */\n @property({ type: Boolean }) show: boolean;\n\n @property()\n focusedTabIndex: number;\n\n /**Shifts focus from Input to Calendar */\n public focusOnCalendar(toBlurEl: HTMLElement) {\n toBlurEl.blur();\n this._focusOnCalendarCell();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(\"keydown\", this._handleKeyPress);\n }\n\n firstUpdated() {\n // if (this.selectedDate.length > 0) {\n // this.focusedDate = setTimeToNoon(this.selectedDate[0]);\n // } else {\n // this.focusedDate = this.displayDate && setTimeToNoon(this.displayDate);\n // }\n }\n updated() {\n /** For KeyboardNavigation (switching months) and ClickNavigation:\n * Runs after render has completed and td of next month has appeared.\n * For the case when calendar view changes to the next month\n * */\n\n if (this.focusedTabIndex === 3) {\n this._focusOnCalendarCell();\n }\n }\n\n @watch(\"displayDate\")\n _updateFocusedDate() {\n this.focusedDate = setTimeToNoon(this.displayDate);\n if (this.focusedDate.getFullYear() < 1900) {\n this.focusedDate.setFullYear(1900);\n }\n }\n\n private _setFocusedDate(shift: number) {\n const currentFocusedDate = this.focusedDate.getDate();\n const currentFocusedMonth = this.focusedDate.getMonth();\n const currentFocusedYear = this.focusedDate.getFullYear();\n switch (this.view) {\n case \"days\": {\n const newFocusedDate = setTimeToNoon(\n new Date(currentFocusedYear, currentFocusedMonth, currentFocusedDate + shift)\n );\n if (isAfter(newFocusedDate, new Date(0, 0, 1, 12)) || isEqual(newFocusedDate, new Date(0, 0, 1, 12)))\n this.focusedDate = newFocusedDate;\n break;\n }\n case \"months\": {\n const newFocusedDate = setTimeToNoon(\n new Date(currentFocusedYear, currentFocusedMonth + shift, currentFocusedDate)\n );\n\n if (isAfter(newFocusedDate, new Date(0, 0, 1, 12)) || isEqual(newFocusedDate, new Date(0, 0, 1, 12))) {\n this.focusedDate = newFocusedDate;\n }\n break;\n }\n case \"years\": {\n const newFocusedDate = setTimeToNoon(\n new Date(currentFocusedYear + shift, currentFocusedMonth, currentFocusedDate)\n );\n if (newFocusedDate.getFullYear() >= 1900) {\n this.focusedDate = newFocusedDate;\n }\n break;\n }\n }\n }\n private _handleEnterDateKeyboard(event: KeyboardEvent) {\n const targetElement = event.composedPath()[0] as HTMLElement;\n if (targetElement.classList.contains(\"disabled\")) return;\n\n switch (this.view) {\n case \"days\":\n this._onClickDay(event);\n break;\n case \"months\": {\n const { month } = targetElement.dataset;\n this._onClickMonth(parseInt(month));\n break;\n }\n case \"years\": {\n const { year } = targetElement.dataset;\n this._onClickYear(parseInt(year));\n }\n }\n }\n private _handleKeyPress(event: KeyboardEvent) {\n if (event.key === \"Enter\") {\n event.preventDefault();\n this._handleEnterDateKeyboard(event);\n return;\n }\n if (event.key === \"Tab\") {\n const targetEl: HTMLElement = this._getFocusedTarget();\n if (this.focusedTabIndex !== 3) targetEl.blur();\n return;\n }\n if (event.key.includes(\"Arrow\")) {\n event.preventDefault();\n this._blurCalendarCell();\n const keyShiftObject = keyPressAction[event.key];\n const shiftNumber = keyShiftObject[this.view];\n\n this._setFocusedDate(shiftNumber);\n\n this._focusOnCalendarCell();\n }\n }\n\n private _generateIncrementDates(): Date[] {\n const start = setTimeToNoon(this.selectedDate[0]);\n\n if (this.selectedDate.length < 2) {\n return [start];\n }\n\n const end = setTimeToNoon(this.selectedDate[1]);\n const arr: Date[] = [];\n if (start.getTime() < end.getTime()) {\n for (let dt = start; dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n } else {\n for (let dt = end; dt <= start; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n }\n return arr;\n }\n\n private _onClickDay(event: MouseEvent | KeyboardEvent) {\n const { day, date } = (event.composedPath()[0] as HTMLTableCellElement).dataset;\n\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setDate(parseInt(day));\n /** update new focused date for mouse click */\n if (event.type === \"click\") {\n this.focusedDate = setTimeToNoon(new Date(date));\n }\n\n if (this.mode === \"single\") {\n // Single mode: Select a single date\n\n this.selectedDate = [displayDateClone];\n\n // Emit event with selected date\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n } else if (this.mode === \"range\") {\n // Range mode: Select a range of dates\n const selectedDates = [...this.selectedDate];\n\n if (selectedDates.length === 0 || selectedDates.length === 2) {\n // No dates selected yet or both dates already selected,\n // start a new range by clearing the selected dates array\n selectedDates.length = 0;\n }\n\n // Add the selected date to the range\n selectedDates.push(displayDateClone);\n\n // Update the selectedDate property\n this.selectedDate = selectedDates;\n\n // Emit event with the range of selected dates\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n }\n\n // Check if the selected date is before minDate or after maxDate\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n\n const selectedDate = setTimeToNoon(displayDateClone);\n if ((minimumDate && selectedDate < minimumDate) || (maximumDate && selectedDate > maximumDate)) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private _onClickMonth(month: number, year: number = this.focusedDate.getFullYear()) {\n const displayDateClone = new Date(this.displayDate);\n this.view = \"days\";\n displayDateClone.setMonth(month);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.emit(\"sgds-view\", { detail: this.view });\n //once clicked, should change view to days, and hold value and change view\n this.emit(\"sgds-selectmonth\", { detail: this.displayDate });\n }\n\n private _onClickYear(year: number) {\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.view = \"months\";\n this.emit(\"sgds-view\", { detail: this.view });\n\n this.emit(\"sgds-selectyear\", { detail: this.displayDate });\n }\n\n private _getFocusedTarget(): HTMLElement {\n const queryObj = {\n days: `td[data-date=\"${this.focusedDate.toISOString()}\"]`,\n months: `button[data-month=\"${this.focusedDate.getMonth()}\"][data-year=\"${this.focusedDate.getFullYear()}\"]`,\n years: `button[data-year=\"${this.focusedDate.getFullYear()}\"]`\n };\n const queryString = queryObj[this.view];\n const targetEl: HTMLElement = this.shadowRoot.querySelector(`${queryString}`);\n return targetEl;\n }\n private _blurCalendarCell() {\n const targetEl = this._getFocusedTarget();\n targetEl.setAttribute(\"tabindex\", \"-1\");\n targetEl.blur();\n }\n private _focusOnCalendarCell() {\n const targetEl = this._getFocusedTarget();\n if (targetEl) {\n targetEl.setAttribute(\"tabindex\", \"3\");\n targetEl.focus();\n this.emit(\"sgds-update-focus\", { detail: this.focusedDate });\n } else {\n /** Change month view */\n this.emit(\"sgds-change-calendar\", { detail: this.focusedDate });\n }\n }\n private _generateDays() {\n const selectedDates = this.selectedDate.map(d => setTimeToNoon(d));\n\n const rangeSelectedDates = this._generateIncrementDates();\n\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n const year = this.displayDate.getFullYear();\n const month = this.displayDate.getMonth();\n const firstDateOfMonth = new Date(year, month, 1);\n const startingDayOfMonth = firstDateOfMonth.getDay();\n let monthLength = DatepickerCalendar.daysInMonth[month];\n if (month === 1) {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n monthLength = 29;\n }\n }\n\n const weeks = [];\n let day = 1;\n for (let i = 0; i < 9; i++) {\n const week = [];\n for (let j = 0; j <= 6; j++) {\n if (day <= monthLength && (i > 0 || j >= startingDayOfMonth)) {\n const date = new Date(year, month, day, 12, 0, 0, 0).toISOString();\n const beforeMinDate = minimumDate && Date.parse(date) < Date.parse(minimumDate.toISOString());\n const afterMinDate = maximumDate && Date.parse(date) > Date.parse(maximumDate.toISOString());\n const clickHandler = beforeMinDate || afterMinDate ? undefined : this._onClickDay;\n\n const isCurrentMonth = TODAY_DATE.getMonth() === this.displayDate.getMonth();\n const isCurrentYear = TODAY_DATE.getFullYear() === this.displayDate.getFullYear();\n const isCurrentDay = TODAY_DATE.getDate() === day;\n\n const isSelected =\n selectedDates.length > 0 && rangeSelectedDates.some(d => Date.parse(date) === Date.parse(d.toISOString()));\n const isFirstSelectedDate = selectedDates.length > 0 && rangeSelectedDates[0].toISOString() === date;\n const isLastSelectedDate =\n selectedDates.length > 1 && rangeSelectedDates[rangeSelectedDates.length - 1].toISOString() === date;\n\n week.push(\n html`<td\n key=${j}\n data-date=${date}\n data-day=${day}\n class=${classMap({\n today: isCurrentDay && isCurrentMonth && isCurrentYear,\n \"selected-ends\": isFirstSelectedDate || isLastSelectedDate,\n active: isSelected,\n disabled: beforeMinDate || afterMinDate\n })}\n @click=${clickHandler}\n tabindex=${this.focusedDate === new Date(date) ? \"3\" : \"-1\"}\n ?disabled=${beforeMinDate || afterMinDate}\n >\n ${day}\n </td>`\n );\n day++;\n } else {\n week.push(html`<td key=${j}></td>`);\n }\n }\n\n weeks.push(\n html`<tr key=${i}>\n ${week}\n </tr>`\n );\n if (day > monthLength) {\n break;\n }\n }\n\n const dayView = html`\n <table class=\"text-center\">\n <thead>\n <tr>\n ${DatepickerCalendar.DAY_LABELS.map(\n (label: string, index: number) =>\n html`\n <th key=${index}>\n <small>${label}</small>\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${weeks}\n </tbody>\n </table>\n `;\n return dayView;\n }\n\n private _generateMonths() {\n const rangeDates = this._generateIncrementDates();\n const selectedTime = rangeDates.map(e => setTimeToNoon(new Date(e.getFullYear(), e.getMonth())).getTime());\n\n const year = this.displayDate.getFullYear();\n\n const monthView = html`\n <div class=\"sgds monthpicker\">\n ${DatepickerCalendar.MONTHVIEW_LABELS.map((m, idx) => {\n const isCurrentMonth = idx === TODAY_DATE.getMonth() && year === TODAY_DATE.getFullYear();\n const time = setTimeToNoon(new Date(year, idx)).getTime();\n const isFirstSelectedMonth = rangeDates[0].getMonth() === idx;\n const isFirstSelectedYear = rangeDates[0].getFullYear() === year;\n const isLastSelectedMonth = rangeDates[rangeDates.length - 1].getMonth() === idx;\n const isLastSelectedYear = rangeDates[rangeDates.length - 1].getFullYear() === year;\n return html` <button\n class=${classMap({\n active: selectedTime.includes(time),\n today: isCurrentMonth,\n month: true,\n \"selected-ends\":\n (isFirstSelectedMonth && isFirstSelectedYear) || (isLastSelectedMonth && isLastSelectedYear)\n })}\n @click=${() => this._onClickMonth(idx)}\n data-month=${idx}\n data-year=${year}\n tabindex=\"3\"\n >\n ${m}\n </button>`;\n })}\n </div>\n `;\n return monthView;\n }\n\n private _generateYears() {\n const selectedYears = this._generateIncrementDates().map(e => e.getFullYear());\n const CURRENT_YEAR = TODAY_DATE.getFullYear();\n\n const yearArray = createYearViewArray(this.displayDate, CURRENT_YEAR);\n\n const yearView = html`\n <div class=\"sgds yearpicker\">\n ${yearArray.map(y => {\n const isFirstSelectedYear = selectedYears[0] === y;\n const isLastSectedYear = selectedYears[selectedYears.length - 1] === y;\n return html`\n <button\n class=${classMap({\n active: selectedYears.includes(y),\n year: true,\n today: CURRENT_YEAR === y,\n \"selected-ends\": isFirstSelectedYear || isLastSectedYear\n })}\n @click=${() => this._onClickYear(y)}\n data-year=${y}\n tabindex=\"3\"\n ?disabled=${y < 1900}\n >\n ${y}\n </button>\n `;\n })}\n </div>\n `;\n return yearView;\n }\n render() {\n let viewContent: HTMLTemplateResult;\n\n switch (this.view) {\n case \"days\":\n viewContent = html` ${this._generateDays()} `;\n break;\n case \"months\":\n viewContent = html` ${this._generateMonths()} `;\n break;\n case \"years\":\n viewContent = html` ${this._generateYears()} `;\n break;\n default:\n viewContent = html` ${this._generateDays()} `; // Set a default view\n break;\n }\n\n return html` <div class=\"datepicker-body\">${viewContent}</div> `;\n }\n}\n\nexport default DatepickerCalendar;\n","import { isBefore, isEqual } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { sanitizedNextMonth, sanitizedPreviousMonth } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport styles from \"./datepicker-header.scss\";\nimport { ViewEnum } from \"./types\";\n\nexport class DatepickerHeader extends SgdsElement {\n static styles = [SgdsElement.styles, styles];\n\n /** @internal */\n @property({ attribute: false })\n displayDate: Date;\n /** @internal */\n @property({ attribute: false })\n focusedDate: Date;\n /** @internal */\n @property({ attribute: false })\n selectedDate: Date[] = [];\n\n /** @internal */\n @property()\n view: ViewEnum;\n /** @internal */\n @property()\n focusedTabIndex: number;\n\n @watch(\"focusedTabIndex\", { waitUntilFirstUpdate: true })\n _handleFocusedTabIndexChange() {\n if (this.focusedTabIndex < 3) {\n const buttonToFocus: HTMLButtonElement = this.shadowRoot.querySelector(\n `button[tabindex=\"${this.focusedTabIndex}\"]`\n );\n buttonToFocus.focus();\n }\n return;\n }\n\n private _changeView() {\n switch (this.view) {\n case \"days\":\n this.view = \"months\";\n break;\n case \"months\":\n this.view = \"years\";\n break;\n case \"years\":\n break;\n }\n this.emit(\"sgds-view\", { detail: this.view }); // emit event to render the correct view\n }\n\n private _renderHeader() {\n const { view, displayDate } = this;\n if (view === \"months\") {\n return html` ${displayDate.getFullYear()} `;\n }\n if (view === \"years\") {\n const CURRENT_YEAR = new Date().getFullYear();\n const displayYear = this.displayDate.getFullYear();\n const remainder = (displayYear - CURRENT_YEAR) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1;\n return html` ${startLimit} - ${endLimit} `;\n }\n return html`${MONTH_LABELS[displayDate.getMonth()]} ${displayDate.getFullYear()}`;\n }\n\n /** @internal */\n private handleClickPrevious() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 1);\n } else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 12);\n } else {\n /**\n * FocusedDate gets precedence over displayDate.\n * This happens when the arrow keys are pressed to\n * change focus date and user clicks the arrow buttons to\n * shift months\n */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedPreviousMonth(focusedDate);\n } else {\n newDisplayDate = sanitizedPreviousMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n // emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n\n /** @internal */\n private _handleClickNext() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 1);\n } else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 12);\n } else {\n /** FocusedDate gets precedence over displayDate */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedNextMonth(focusedDate);\n } else {\n newDisplayDate = sanitizedNextMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n\n //emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n private _removeCaret(): boolean {\n const displayYear = this.displayDate.getFullYear();\n const displayMonth = this.displayDate.getMonth();\n const displayMonthYear = new Date(displayYear, displayMonth);\n\n if (this.view === \"months\") {\n return displayYear <= 1900;\n }\n if (this.view === \"years\") {\n return displayYear < 1904;\n }\n return isEqual(displayMonthYear, new Date(0, 0, 1)) || isBefore(displayMonthYear, new Date(0, 0, 1));\n }\n\n render() {\n return html`\n <div class=\"datepicker-header dropdown-header\" role=\"heading\">\n <div class=\"text-center d-flex justify-content-between align-items-center\">\n <button\n @click=\"${this.handleClickPrevious}\"\n tabindex=\"0\"\n class=\"${classMap({ invisible: this._removeCaret() })}\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\"\n />\n </svg>\n </button>\n <button @click=${this._changeView} tabindex=\"1\">${this._renderHeader()}</button>\n <button @click=\"${this._handleClickNext}\" tabindex=\"2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n </div>\n </div>\n `;\n }\n}\n\nexport default DatepickerHeader;\n\nexport const MONTH_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n","/** Checks if value is string */\nfunction isString(str) {\n return typeof str === 'string' || str instanceof String;\n}\n\n/** Checks if value is object */\nfunction isObject(obj) {\n var _obj$constructor;\n return typeof obj === 'object' && obj != null && (obj == null || (_obj$constructor = obj.constructor) == null ? void 0 : _obj$constructor.name) === 'Object';\n}\nfunction pick(obj, keys) {\n if (Array.isArray(keys)) return pick(obj, (_, k) => keys.includes(k));\n return Object.entries(obj).reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (keys(v, k)) acc[k] = v;\n return acc;\n }, {});\n}\n\n/** Direction */\nconst DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT'\n};\n\n/** Direction */\n\nfunction forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n}\n\n/** Escapes regular expression control chars */\nfunction escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nfunction objectIncludes(b, a) {\n if (a === b) return true;\n const arrA = Array.isArray(a),\n arrB = Array.isArray(b);\n let i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n const dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n const regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n const keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n}\n\n/** Selection range */\n\nexport { DIRECTION, escapeRegExp, forceDirection, isObject, isString, objectIncludes, pick };\n","import { DIRECTION } from './utils.js';\n\n/** Provides details of changing input */\nclass ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(opts) {\n Object.assign(this, opts);\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {\n --this.oldSelection.start;\n }\n\n // double check right part\n while (this.value.slice(this.cursorPos) !== this.oldValue.slice(this.oldSelection.end)) {\n if (this.value.length - this.cursorPos < this.oldValue.length - this.oldSelection.end) ++this.oldSelection.end;else ++this.cursorPos;\n }\n }\n\n /** Start changing position */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /** Inserted symbols count */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /** Inserted symbols */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /** Removed symbols count */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length, 0);\n }\n\n /** Removed symbols */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /** Unchanged head symbols */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /** Unchanged tail symbols */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /** Remove direction */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;\n }\n}\n\nexport { ActionDetails as default };\n","/** Applies mask on element */\nfunction IMask(el, opts) {\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\nexport { IMask as default };\n","import { isString, isObject, pick } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n// export function maskedClass(mask: string): typeof MaskedPattern;\n// export function maskedClass(mask: DateConstructor): typeof MaskedDate;\n// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;\n// export function maskedClass(mask: Array<any> | ArrayConstructor): typeof MaskedDynamic;\n// export function maskedClass(mask: MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass(mask: Masked): typeof Masked;\n// export function maskedClass(mask: typeof Masked): typeof Masked;\n// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass<Mask extends typeof Masked> (mask: Mask): Mask;\n// export function maskedClass(mask: RegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;\n\n/** Get Masked class by mask type */\nfunction maskedClass(mask) /* TODO */{\n if (mask == null) throw new Error('mask property should be defined');\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n if (isString(mask)) return IMask.MaskedPattern;\n if (mask === Date) return IMask.MaskedDate;\n if (mask === Number) return IMask.MaskedNumber;\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n return IMask.Masked;\n}\nfunction normalizeOpts(opts) {\n if (!opts) throw new Error('Options in not defined');\n if (IMask.Masked) {\n if (opts.prototype instanceof IMask.Masked) return {\n mask: opts\n };\n\n /*\n handle cases like:\n 1) opts = Masked\n 2) opts = { mask: Masked, ...instanceOpts }\n */\n const {\n mask = undefined,\n ...instanceOpts\n } = opts instanceof IMask.Masked ? {\n mask: opts\n } : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};\n if (mask) {\n const _mask = mask.mask;\n return {\n ...pick(mask, (_, k) => !k.startsWith('_')),\n mask: mask.constructor,\n _mask,\n ...instanceOpts\n };\n }\n }\n if (!isObject(opts)) return {\n mask: opts\n };\n return {\n ...opts\n };\n}\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n\n// From masked\n// export default function createMask<Opts extends Masked, ReturnMasked=Opts> (opts: Opts): ReturnMasked;\n// // From masked class\n// export default function createMask<Opts extends MaskedOptions<typeof Masked>, ReturnMasked extends Masked=InstanceType<Opts['mask']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedDate>, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedNumber>, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedEnum>, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedRange>, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedRegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedFunction>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedPattern>, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedDynamic>, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;\n// // From mask opts\n// export default function createMask<Opts extends MaskedOptions<Masked>, ReturnMasked=Opts extends MaskedOptions<infer M> ? M : never> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedNumberOptions, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedDateFactoryOptions, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedEnumOptions, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedRangeOptions, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedPatternOptions, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedDynamicOptions, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<RegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<Function>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n const nOpts = normalizeOpts(opts);\n const MaskedClass = maskedClass(nOpts.mask);\n if (!MaskedClass) throw new Error(\"Masked class is not found for provided mask \" + nOpts.mask + \", appropriate module needs to be imported manually before creating mask.\");\n if (nOpts.mask === MaskedClass) delete nOpts.mask;\n if (nOpts._mask) {\n nOpts.mask = nOpts._mask;\n delete nOpts._mask;\n }\n return new MaskedClass(nOpts);\n}\nIMask.createMask = createMask;\n\nexport { createMask as default, maskedClass, normalizeOpts };\n","import IMask from '../core/holder.js';\n\n/** Generic element API to use with mask */\nclass MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;\n try {\n this._unsafeSelect(start, end);\n } catch {}\n }\n\n /** */\n get isActive() {\n return false;\n }\n /** */\n\n /** */\n\n /** */\n}\nIMask.MaskElement = MaskElement;\n\nexport { MaskElement as default };\n","import MaskElement from './mask-element.js';\nimport IMask from '../core/holder.js';\n\nconst KEY_Z = 90;\nconst KEY_Y = 89;\n\n/** Bridge between HTMLElement and {@link Masked} */\nclass HTMLMaskElement extends MaskElement {\n /** HTMLElement to use mask on */\n\n constructor(input) {\n super();\n this.input = input;\n this._onKeydown = this._onKeydown.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onBeforeinput = this._onBeforeinput.bind(this);\n this._onCompositionEnd = this._onCompositionEnd.bind(this);\n }\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) == null ? void 0 : _this$input$getRootNo2.call(_this$input)) != null ? _this$input$getRootNo : document;\n }\n\n /** Is element in focus */\n get isActive() {\n return this.input === this.rootElement.activeElement;\n }\n\n /** Binds HTMLElement events to mask internal events */\n bindEvents(handlers) {\n this.input.addEventListener('keydown', this._onKeydown);\n this.input.addEventListener('input', this._onInput);\n this.input.addEventListener('beforeinput', this._onBeforeinput);\n this.input.addEventListener('compositionend', this._onCompositionEnd);\n this.input.addEventListener('drop', handlers.drop);\n this.input.addEventListener('click', handlers.click);\n this.input.addEventListener('focus', handlers.focus);\n this.input.addEventListener('blur', handlers.commit);\n this._handlers = handlers;\n }\n _onKeydown(e) {\n if (this._handlers.redo && (e.keyCode === KEY_Z && e.shiftKey && (e.metaKey || e.ctrlKey) || e.keyCode === KEY_Y && e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n if (this._handlers.undo && e.keyCode === KEY_Z && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (!e.isComposing) this._handlers.selectionChange(e);\n }\n _onBeforeinput(e) {\n if (e.inputType === 'historyUndo' && this._handlers.undo) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (e.inputType === 'historyRedo' && this._handlers.redo) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n }\n _onCompositionEnd(e) {\n this._handlers.input(e);\n }\n _onInput(e) {\n if (!e.isComposing) this._handlers.input(e);\n }\n\n /** Unbinds HTMLElement events to mask internal events */\n unbindEvents() {\n this.input.removeEventListener('keydown', this._onKeydown);\n this.input.removeEventListener('input', this._onInput);\n this.input.removeEventListener('beforeinput', this._onBeforeinput);\n this.input.removeEventListener('compositionend', this._onCompositionEnd);\n this.input.removeEventListener('drop', this._handlers.drop);\n this.input.removeEventListener('click', this._handlers.click);\n this.input.removeEventListener('focus', this._handlers.focus);\n this.input.removeEventListener('blur', this._handlers.commit);\n this._handlers = {};\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\n/** Bridge between InputElement and {@link Masked} */\nclass HTMLInputMaskElement extends HTMLMaskElement {\n /** InputElement to use mask on */\n\n constructor(input) {\n super(input);\n this.input = input;\n }\n\n /** Returns InputElement selection start */\n get _unsafeSelectionStart() {\n return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;\n }\n\n /** Returns InputElement selection end */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /** Sets InputElement selection */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLInputMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\nclass HTMLContenteditableMaskElement extends HTMLMaskElement {\n /** Returns HTMLElement selection start */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Returns HTMLElement selection end */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Sets HTMLElement selection */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /** HTMLElement value */\n get value() {\n return this.input.textContent || '';\n }\n set value(value) {\n this.input.textContent = value;\n }\n}\nIMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\nexport { HTMLContenteditableMaskElement as default };\n","class InputHistory {\n constructor() {\n this.states = [];\n this.currentIndex = 0;\n }\n get currentState() {\n return this.states[this.currentIndex];\n }\n get isEmpty() {\n return this.states.length === 0;\n }\n push(state) {\n // if current index points before the last element then remove the future\n if (this.currentIndex < this.states.length - 1) this.states.length = this.currentIndex + 1;\n this.states.push(state);\n if (this.states.length > InputHistory.MAX_LENGTH) this.states.shift();\n this.currentIndex = this.states.length - 1;\n }\n go(steps) {\n this.currentIndex = Math.min(Math.max(this.currentIndex + steps, 0), this.states.length - 1);\n return this.currentState;\n }\n undo() {\n return this.go(-1);\n }\n redo() {\n return this.go(+1);\n }\n clear() {\n this.states.length = 0;\n this.currentIndex = 0;\n }\n}\nInputHistory.MAX_LENGTH = 100;\n\nexport { InputHistory as default };\n","import { DIRECTION } from '../core/utils.js';\nimport ActionDetails from '../core/action-details.js';\nimport createMask, { maskedClass } from '../masked/factory.js';\nimport MaskElement from './mask-element.js';\nimport HTMLInputMaskElement from './html-input-mask-element.js';\nimport HTMLContenteditableMaskElement from './html-contenteditable-mask-element.js';\nimport IMask from '../core/holder.js';\nimport InputHistory from './input-history.js';\nimport './html-mask-element.js';\n\n/** Listens to element events and controls changes between element and {@link Masked} */\nclass InputMask {\n /**\n View element\n */\n\n /** Internal {@link Masked} model */\n\n constructor(el, opts) {\n this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLInputMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._rawInputValue = '';\n this.history = new InputHistory();\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onUndo = this._onUndo.bind(this);\n this._onRedo = this._onRedo.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n maskEquals(mask) {\n var _this$masked;\n return mask == null || ((_this$masked = this.masked) == null ? void 0 : _this$masked.maskEquals(mask));\n }\n\n /** Masked */\n get mask() {\n return this.masked.mask;\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {\n // TODO \"any\" no idea\n this.masked.updateOptions({\n mask\n });\n return;\n }\n const masked = mask instanceof IMask.Masked ? mask : createMask({\n mask\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl('auto');\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl('auto');\n }\n\n /** Raw input value */\n get rawInputValue() {\n return this._rawInputValue;\n }\n set rawInputValue(str) {\n if (this.rawInputValue === str) return;\n this.masked.rawInputValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl('auto');\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /** Starts listening to element events */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange,\n undo: this._onUndo,\n redo: this._onRedo\n });\n }\n\n /** Stops listening to element events */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /** Fires custom event */\n _fireEvent(ev, e) {\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach(l => l(e));\n }\n\n /** Current selection start */\n get selectionStart() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /** Stores current selection */\n _saveSelection( /* ev */\n ) {\n if (this.displayValue !== this.el.value) {\n console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console\n }\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl(cursorPos) {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newRawInputValue = this.masked.rawInputValue;\n const newDisplayValue = this.displayValue;\n const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue || this._rawInputValue !== newRawInputValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n this._rawInputValue = newRawInputValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (cursorPos === 'auto') this.alignCursor();else if (cursorPos != null) this.cursorPos = cursorPos;\n if (isChanged) this._fireChangeEvents();\n if (!this._historyChanging && (isChanged || this.history.isEmpty)) this.history.push({\n unmaskedValue: newUnmaskedValue,\n selection: {\n start: this.selectionStart,\n end: this.cursorPos\n }\n });\n }\n\n /** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */\n updateOptions(opts) {\n const {\n mask,\n ...restOpts\n } = opts; // TODO types, yes, mask is optional\n\n const updateMask = !this.maskEquals(mask);\n const updateOpts = this.masked.optionsIsChanged(restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts); // TODO\n\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /** Delays cursor update to support mobile browsers */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /** Fires custom events */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /** Aborts delayed cursor update */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n const details = new ActionDetails({\n // new state\n value: this.el.value,\n cursorPos: this.cursorPos,\n // old state\n oldValue: this.displayValue,\n oldSelection: this._selection\n });\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {\n input: true,\n raw: true\n }).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);\n if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) {\n this.updateValue();\n }\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n _onUndo() {\n this._applyHistoryState(this.history.undo());\n }\n _onRedo() {\n this._applyHistoryState(this.history.redo());\n }\n _applyHistoryState(state) {\n if (!state) return;\n this._historyChanging = true;\n this.unmaskedValue = state.unmaskedValue;\n this.el.select(state.selection.start, state.selection.end);\n this._saveSelection();\n this._historyChanging = false;\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n this._listeners.length = 0;\n delete this.el;\n }\n}\nIMask.InputMask = InputMask;\n\nexport { InputMask as default };\n","import IMask from './holder.js';\n\n/** Provides details of changing model value */\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n /** Can skip chars */\n\n static normalize(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n tailShift: 0,\n skip: false\n }, details);\n }\n\n /** Aggregate changes */\n aggregate(details) {\n this.inserted += details.inserted;\n this.rawInserted += details.rawInserted;\n this.tailShift += details.tailShift;\n this.skip = this.skip || details.skip;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n get consumed() {\n return Boolean(this.rawInserted) || this.skip;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\nexport { ChangeDetails as default };\n","/** Provides details of continuous extracted tail */\nclass ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor(value, from, stop) {\n if (value === void 0) {\n value = '';\n }\n if (from === void 0) {\n from = 0;\n }\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked.append(this.toString(), {\n tail: true\n }).aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || beforePos != null && this.from >= beforePos) return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n}\n\nexport { ContinuousTailDetails as default };\n","import ChangeDetails from '../core/change-details.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport { isString, DIRECTION, objectIncludes, forceDirection } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n/** Append flags */\n\n/** Extract flags */\n\n// see https://github.com/microsoft/TypeScript/issues/6223\n\n/** Provides common masking stuff */\nclass Masked {\n /** */\n\n /** */\n\n /** Transforms value before mask processing */\n\n /** Transforms each char before mask processing */\n\n /** Validates if value is acceptable */\n\n /** Does additional processing at the end of editing */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n this._value = '';\n this._update({\n ...Masked.DEFAULTS,\n ...opts\n });\n this._initialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!this.optionsIsChanged(opts)) return;\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /** Sets new options */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value, {\n input: true\n });\n }\n\n /** Resolve new value */\n resolve(value, flags) {\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n this.reset();\n this.append(value, flags, '');\n this.doCommit();\n }\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.resolve(value, {});\n }\n get typedValue() {\n return this.parse ? this.parse(this.value, this) : this.unmaskedValue;\n }\n set typedValue(value) {\n if (this.format) {\n this.value = this.format(value, this);\n } else {\n this.unmaskedValue = String(value);\n }\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.displayValue.length, {\n raw: true\n });\n }\n set rawInputValue(value) {\n this.resolve(value, {\n raw: true\n });\n }\n get displayValue() {\n return this.value;\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return Math.min(this.displayValue.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return this.displayValue.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);\n }\n\n /** Appends tail */\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch, flags) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch\n });\n }\n\n /** Appends char */\n _appendChar(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const consistentState = this.state;\n let details;\n [ch, details] = this.doPrepareChar(ch, flags);\n if (ch) details = details.aggregate(this._appendCharRaw(ch, flags));\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.unshift(this.displayValue.length - details.tailShift);\n }\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n\n // not ok, try shift\n if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.shift();\n }\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at the end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at the end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;\n if (flags != null && flags.tail) flags._beforeTailState = this.state;\n let details;\n [str, details] = this.doPrepare(str, flags);\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;\n details.aggregate(d);\n }\n if ((this.eager === true || this.eager === 'append') && flags != null && flags.input && str) {\n details.aggregate(this._appendEager());\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n return details;\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n this._value = this.displayValue.slice(0, fromPos) + this.displayValue.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this._initialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at the end\n if (this.value && this.value !== value && value.indexOf(this.value) === 0) {\n this.append(value.slice(this.displayValue.length), {}, '');\n this.doCommit();\n }\n delete this._refreshing;\n return ret;\n }\n runIsolated(fn) {\n if (this._isolated || !this._initialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n doSkipInvalid(ch, flags, checkTail) {\n return Boolean(this.skipInvalid);\n }\n\n /** Prepares string before mask processing */\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepare ? this.prepare(str, this, flags) : str);\n }\n\n /** Prepares each char before mask processing */\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepareChar ? this.prepareChar(str, this, flags) : str);\n }\n\n /** Validates if value is acceptable */\n doValidate(flags) {\n return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));\n }\n\n /** Does additional processing at the end of editing */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n splice(start, deleteCount, inserted, removeDirection, flags) {\n if (removeDirection === void 0) {\n removeDirection = DIRECTION.NONE;\n }\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (oldRawValue === this.rawInputValue && (valLength = this.displayValue.length)) {\n details.aggregate(new ChangeDetails({\n tailShift: -1\n })).aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n optionsIsChanged(opts) {\n return !objectIncludes(this, opts);\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || (this.format ? this.format(value, this) === this.format(this.typedValue, this) : false);\n }\n}\nMasked.DEFAULTS = {\n skipInvalid: true\n};\nMasked.EMPTY_VALUES = [undefined, null, ''];\nIMask.Masked = Masked;\n\nexport { Masked as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport IMask from '../../core/holder.js';\n\nclass ChunksTailDetails {\n /** */\n\n constructor(chunks, from) {\n if (chunks === void 0) {\n chunks = [];\n }\n if (from === void 0) {\n from = 0;\n }\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n details.aggregate(masked._appendPlaceholder(stop));\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n details.aggregate(tailDetails);\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks,\n ...props\n } = state;\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nexport { ChunksTailDetails as default };\n","import { DIRECTION } from '../../core/utils.js';\n\nclass PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const {\n offset,\n index\n } = masked._mapPosToBlock(pos) || (pos < 0 ?\n // first\n {\n index: 0,\n offset: 0\n } :\n // last\n {\n index: this.masked._blocks.length,\n offset: 0\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n if (s) this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.displayValue.length; // TODO this is stupid type error, `block` depends on index that was changed above\n }\n }\n _pushLeft(fn) {\n this.pushState();\n for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) == null ? void 0 : _this$block.displayValue.length) || 0) {\n var _this$block;\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n _pushRight(fn) {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aa<X|[]>X_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n\nexport { PatternCursor as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION, isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport '../../core/holder.js';\n\nclass PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get rawInputValue() {\n return this._isRawInput ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n const details = new ChangeDetails({\n inserted: this.char,\n rawInserted: isResolved ? this.char : ''\n });\n this._value = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n return new ContinuousTailDetails('');\n }\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n this._isRawInput = Boolean(state._rawInputValue);\n }\n}\n\nexport { PatternFixedDefinition as default };\n","import createMask from '../factory.js';\nimport ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION } from '../../core/utils.js';\nimport '../../core/holder.js';\n\nclass PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager,\n ...maskOpts\n } = opts;\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get rawInputValue() {\n return this.masked.rawInputValue;\n }\n get displayValue() {\n return this.masked.value && this.displayChar || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n let details = this.masked._appendChar(ch, this.currentMaskFlags(flags));\n if (details.inserted && this.doValidate(flags) === false) {\n details = new ChangeDetails();\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append(str, flags, tail) {\n // TODO probably should be done via _appendChar\n return this.masked.append(str, this.currentMaskFlags(flags), tail);\n }\n _appendPlaceholder() {\n if (this.isFilled || this.isOptional) return new ChangeDetails();\n this.isFilled = true;\n return new ChangeDetails({\n inserted: this.placeholderChar\n });\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail(fromPos, toPos) {\n return this.masked.extractTail(fromPos, toPos);\n }\n appendTail(tail) {\n return this.masked.appendTail(tail);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate(flags) {\n return this.masked.doValidate(this.currentMaskFlags(flags)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(flags)));\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue,\n masked: this.masked.state,\n isFilled: this.isFilled\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta;\n return {\n ...flags,\n _beforeTailState: (flags == null || (_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.masked) || (flags == null ? void 0 : flags._beforeTailState)\n };\n }\n}\nPatternInputDefinition.DEFAULT_DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./\n};\n\nexport { PatternInputDefinition as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by RegExp */\nclass MaskedRegExp extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const mask = opts.mask;\n if (mask) opts.validate = value => value.search(mask) >= 0;\n super._update(opts);\n }\n}\nIMask.MaskedRegExp = MaskedRegExp;\n\nexport { MaskedRegExp as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport { DIRECTION } from '../core/utils.js';\nimport Masked from './base.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport ChunksTailDetails from './pattern/chunk-tail-details.js';\nimport PatternCursor from './pattern/cursor.js';\nimport PatternFixedDefinition from './pattern/fixed-definition.js';\nimport PatternInputDefinition from './pattern/input-definition.js';\nimport './regexp.js';\nimport '../core/continuous-tail-details.js';\n\n/** Pattern mask */\nclass MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n constructor(opts) {\n super({\n ...MaskedPattern.DEFAULTS,\n ...opts,\n definitions: Object.assign({}, PatternInputDefinition.DEFAULT_DEFINITIONS, opts == null ? void 0 : opts.definitions)\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this.exposeBlock = undefined;\n this._stops = [];\n this._maskedBlocks = {};\n const pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n const {\n expose,\n repeat,\n ...bOpts\n } = normalizeOpts(this.blocks[bName]); // TODO type Opts<Arg & Extra>\n const blockOpts = {\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite,\n ...bOpts,\n repeat,\n parent: this\n };\n const maskedBlock = repeat != null ? new IMask.RepeatBlock(blockOpts /* TODO */) : createMask(blockOpts);\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n if (expose) this.exposeBlock = maskedBlock;\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = (char in defs);\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const def = isInput ? new PatternInputDefinition({\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n ...normalizeOpts(defs[char]),\n parent: this\n }) : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock\n });\n this._blocks.push(def);\n }\n }\n get state() {\n return {\n ...super.state,\n _blocks: this._blocks.map(b => b.state)\n };\n }\n set state(state) {\n if (!state) {\n this.reset();\n return;\n }\n const {\n _blocks,\n ...maskedState\n } = state;\n this._blocks.forEach((b, bi) => b.state = _blocks[bi]);\n super.state = maskedState;\n }\n reset() {\n super.reset();\n this._blocks.forEach(b => b.reset());\n }\n get isComplete() {\n return this.exposeBlock ? this.exposeBlock.isComplete : this._blocks.every(b => b.isComplete);\n }\n get isFilled() {\n return this._blocks.every(b => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every(b => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every(b => b.isOptional);\n }\n doCommit() {\n this._blocks.forEach(b => b.doCommit());\n super.doCommit();\n }\n get unmaskedValue() {\n return this.exposeBlock ? this.exposeBlock.unmaskedValue : this._blocks.reduce((str, b) => str += b.unmaskedValue, '');\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.unmaskedValue = unmaskedValue;\n this.appendTail(tail);\n this.doCommit();\n } else super.unmaskedValue = unmaskedValue;\n }\n get value() {\n return this.exposeBlock ? this.exposeBlock.value :\n // TODO return _value when not in change?\n this._blocks.reduce((str, b) => str += b.value, '');\n }\n set value(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.value = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.value = value;\n }\n get typedValue() {\n return this.exposeBlock ? this.exposeBlock.typedValue : super.typedValue;\n }\n set typedValue(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.typedValue = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.typedValue = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => str += b.displayValue, '');\n }\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const blockIter = this._mapPosToBlock(this.displayValue.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index, block; block = this._blocks[bi]; ++bi) {\n var _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.displayValue.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {\n if (!b.lazy || toBlockIndex != null) {\n var _blocks2;\n details.aggregate(b._appendPlaceholder((_blocks2 = b._blocks) == null ? void 0 : _blocks2.length));\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.displayValue;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos\n };\n }\n }\n }\n _blockStartPos(blockIndex) {\n return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.displayValue.length, 0);\n }\n _forEachBlocksInRange(fromPos, toPos, fn) {\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].displayValue.length;\n fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].displayValue.length);\n }\n\n // process last block\n fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);\n }\n }\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.displayValue.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return 0;\n }\n if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.displayValue.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map(gi => this._blocks[gi]);\n }\n}\nMaskedPattern.DEFAULTS = {\n lazy: true,\n placeholderChar: '_'\n};\nMaskedPattern.STOP_CHAR = '`';\nMaskedPattern.ESCAPE_CHAR = '\\\\';\nMaskedPattern.InputDefinition = PatternInputDefinition;\nMaskedPattern.FixedDefinition = PatternFixedDefinition;\nIMask.MaskedPattern = MaskedPattern;\n\nexport { MaskedPattern as default };\n","import IMask from '../core/holder.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/change-details.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which accepts ranges */\nclass MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n /** */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n to = this.to || 0,\n from = this.from || 0,\n maxLength = this.maxLength || 0,\n autofix = this.autofix,\n ...patternOpts\n } = opts;\n this.to = to;\n this.from = from;\n this.maxLength = Math.max(String(to).length, maxLength);\n this.autofix = autofix;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let sameCharsCount = 0;\n while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;\n patternOpts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') + '0'.repeat(this.maxLength - sameCharsCount);\n super._update(patternOpts);\n }\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let details;\n [ch, details] = super.doPrepareChar(ch.replace(/\\D/g, ''), flags);\n if (!this.autofix || !ch) {\n details.skip = !this.isComplete;\n return [ch, details];\n }\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n const nextVal = this.value + ch;\n if (nextVal.length > this.maxLength) return ['', details];\n const [minstr, maxstr] = this.boundaries(nextVal);\n if (Number(maxstr) < this.from) return [fromStr[nextVal.length - 1], details];\n if (Number(minstr) > this.to) {\n if (this.autofix === 'pad' && nextVal.length < this.maxLength) {\n return ['', details.aggregate(this.append(fromStr[nextVal.length - 1] + ch, flags))];\n }\n return [toStr[nextVal.length - 1], details];\n }\n return [ch, details];\n }\n doValidate(flags) {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(flags);\n }\n}\nIMask.MaskedRange = MaskedRange;\n\nexport { MaskedRange as default };\n","import MaskedPattern from './pattern.js';\nimport MaskedRange from './range.js';\nimport IMask from '../core/holder.js';\nimport { isString } from '../core/utils.js';\nimport '../core/change-details.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Date mask */\nclass MaskedDate extends MaskedPattern {\n static extractPatternOptions(opts) {\n const {\n mask,\n pattern,\n ...patternOpts\n } = opts;\n return {\n ...patternOpts,\n mask: isString(mask) ? mask : pattern\n };\n }\n\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super(MaskedDate.extractPatternOptions({\n ...MaskedDate.DEFAULTS,\n ...opts\n }));\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n mask,\n pattern,\n blocks,\n ...patternOpts\n } = {\n ...MaskedDate.DEFAULTS,\n ...opts\n };\n const patternBlocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) patternBlocks.Y.from = opts.min.getFullYear();\n if (opts.max) patternBlocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && patternBlocks.Y.from === patternBlocks.Y.to) {\n patternBlocks.m.from = opts.min.getMonth() + 1;\n patternBlocks.m.to = opts.max.getMonth() + 1;\n if (patternBlocks.m.from === patternBlocks.m.to) {\n patternBlocks.d.from = opts.min.getDate();\n patternBlocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(patternBlocks, this.blocks, blocks);\n\n // add autofix\n Object.keys(patternBlocks).forEach(bk => {\n const b = patternBlocks[bk];\n if (!('autofix' in b) && 'autofix' in opts) b.autofix = opts.autofix;\n });\n super._update({\n ...patternOpts,\n mask: isString(mask) ? mask : pattern,\n blocks: patternBlocks\n });\n }\n doValidate(flags) {\n const date = this.date;\n return super.doValidate(flags) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n optionsIsChanged(opts) {\n return super.optionsIsChanged(MaskedDate.extractPatternOptions(opts));\n }\n}\nMaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999\n }\n});\nMaskedDate.DEFAULTS = {\n mask: Date,\n pattern: 'd{.}`m{.}`Y',\n format: (date, masked) => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: (str, masked) => {\n const [day, month, year] = str.split('.').map(Number);\n return new Date(year, month - 1, day);\n }\n};\nIMask.MaskedDate = MaskedDate;\n\nexport { MaskedDate as default };\n","import { DIRECTION, objectIncludes } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Dynamic mask for choosing appropriate mask in run-time */\nclass MaskedDynamic extends Masked {\n /** Currently chosen mask */\n\n /** Currently chosen mask */\n\n /** Compliled {@link Masked} options */\n\n /** Chooses {@link Masked} depending on input value */\n\n constructor(opts) {\n super({\n ...MaskedDynamic.DEFAULTS,\n ...opts\n });\n this.currentMask = undefined;\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n this.exposeMask = undefined;\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {\n const {\n expose,\n ...maskOpts\n } = normalizeOpts(m);\n const masked = createMask({\n overwrite: this._overwrite,\n eager: this._eager,\n skipInvalid: this._skipInvalid,\n ...maskOpts\n });\n if (expose) this.exposeMask = masked;\n return masked;\n }) : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));\n }\n return details;\n }\n _applyDispatch(appended, flags, tail) {\n if (appended === void 0) {\n appended = '';\n }\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;\n const inputValue = this.rawInputValue;\n const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState = prevMask == null ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(appended, {\n ...flags\n }, tail);\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n this.currentMask.append(insertValue, {\n raw: true\n });\n details.tailShift = this.currentMask.value.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true\n }).tailShift;\n }\n } else if (prevMaskState) {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n _appendEager() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return {\n ...flags,\n _beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState\n };\n }\n doDispatch(appended, flags, tail) {\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n return this.dispatch(appended, this, flags, tail);\n }\n doValidate(flags) {\n return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));\n }\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepare(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepareChar(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) == null || _this$currentMask.reset();\n this.compiledMasks.forEach(m => m.reset());\n }\n get value() {\n return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n if (this.exposeMask) {\n this.exposeMask.value = value;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.value = value;\n }\n get unmaskedValue() {\n return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeMask) {\n this.exposeMask.unmaskedValue = unmaskedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';\n }\n set typedValue(typedValue) {\n if (this.exposeMask) {\n this.exposeMask.typedValue = typedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n return;\n }\n let unmaskedValue = String(typedValue);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = typedValue;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n get isComplete() {\n var _this$currentMask2;\n return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);\n }\n get isFilled() {\n var _this$currentMask3;\n return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);\n }\n remove(fromPos, toPos) {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details.aggregate(this.currentMask.remove(fromPos, toPos))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n get state() {\n var _this$currentMask4;\n return {\n ...super.state,\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map(m => m.state),\n currentMaskRef: this.currentMask,\n currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state\n };\n }\n set state(state) {\n const {\n compiledMasks,\n currentMaskRef,\n currentMask,\n ...maskedState\n } = state;\n if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n extractInput(fromPos, toPos, flags) {\n return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';\n }\n extractTail(fromPos, toPos) {\n return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);\n }\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n nearestInputPos(cursorPos, direction) {\n return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : this._overwrite;\n }\n set overwrite(overwrite) {\n this._overwrite = overwrite;\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : this._eager;\n }\n set eager(eager) {\n this._eager = eager;\n }\n get skipInvalid() {\n return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n this._skipInvalid = skipInvalid;\n }\n maskEquals(mask) {\n return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const {\n mask: oldMask,\n ...restOpts\n } = mask[mi];\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n }) : super.maskEquals(mask);\n }\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));\n }\n}\nMaskedDynamic.DEFAULTS = void 0;\nMaskedDynamic.DEFAULTS = {\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))\n };\n });\n\n // pop masks with longer values first\n inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);\n return masked.compiledMasks[inputs[0].index];\n }\n};\nIMask.MaskedDynamic = MaskedDynamic;\n\nexport { MaskedDynamic as default };\n","import MaskedPattern from './pattern.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which validates enum values */\nclass MaskedEnum extends MaskedPattern {\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n enum: _enum,\n ...eopts\n } = opts;\n if (_enum) {\n const lengths = _enum.map(e => e.length);\n const requiredLength = Math.min(...lengths);\n const optionalLength = Math.max(...lengths) - requiredLength;\n eopts.mask = '*'.repeat(requiredLength);\n if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';\n this.enum = _enum;\n }\n super._update(eopts);\n }\n doValidate(flags) {\n return this.enum.some(e => e.indexOf(this.unmaskedValue) === 0) && super.doValidate(flags);\n }\n}\nIMask.MaskedEnum = MaskedEnum;\n\nexport { MaskedEnum as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by custom Function */\nclass MaskedFunction extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update({\n ...opts,\n validate: opts.mask\n });\n }\n}\nIMask.MaskedFunction = MaskedFunction;\n\nexport { MaskedFunction as default };\n","import { escapeRegExp, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\nvar _MaskedNumber;\n/** Number mask */\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n /** */\n\n constructor(opts) {\n super({\n ...MaskedNumber.DEFAULTS,\n ...opts\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n _updateRegExps() {\n const start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n const mid = '\\\\d*';\n const end = (this.scale ? \"(\" + escapeRegExp(this.radix) + \"\\\\d{0,\" + this.scale + \"})?\" : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\" + this.mapToRadix.map(escapeRegExp).join('') + \"]\", 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);\n if (ch && !prepCh) details.skip = true;\n if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));\n return [prepCh, details];\n }\n _separatorsCount(to, extendOnSeparators) {\n if (extendOnSeparators === void 0) {\n extendOnSeparators = false;\n }\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n _separatorsCountFromSlice(slice) {\n if (slice === void 0) {\n slice = this._value;\n }\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const oldValue = this._value;\n this._value += ch;\n const num = this.number;\n let accepted = !isNaN(num);\n let skip = false;\n if (accepted) {\n let fixedNum;\n if (this.min != null && this.min < 0 && this.number < this.min) fixedNum = this.min;\n if (this.max != null && this.max > 0 && this.number > this.max) fixedNum = this.max;\n if (fixedNum != null) {\n if (this.autofix) {\n this._value = this.format(fixedNum, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n skip || (skip = oldValue === this._value && !flags.tail); // if not changed on tail it's still ok to proceed\n } else {\n accepted = false;\n }\n }\n accepted && (accepted = Boolean(this._value.match(this._numberRegExp)));\n }\n let appendDetails;\n if (!accepted) {\n this._value = oldValue;\n appendDetails = new ChangeDetails();\n } else {\n appendDetails = new ChangeDetails({\n inserted: this._value.slice(oldValue.length),\n rawInserted: skip ? '' : ch,\n skip\n });\n }\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n return appendDetails;\n }\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.format(validnum, this);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n doSkipInvalid(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.parse(this.unmaskedValue, this);\n }\n set typedValue(n) {\n this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n get allowNegative() {\n return this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n get allowPositive() {\n return this.min != null && this.min > 0 || this.max != null && this.max > 0;\n }\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\n_MaskedNumber = MaskedNumber;\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nMaskedNumber.DEFAULTS = {\n mask: Number,\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [_MaskedNumber.UNMASKED_RADIX],\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n scale: 2,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n","import createMask from './factory.js';\nimport IMask from '../core/holder.js';\nimport '../core/utils.js';\n\n/** Mask pipe source and destination types */\nconst PIPE_TYPE = {\n MASKED: 'value',\n UNMASKED: 'unmaskedValue',\n TYPED: 'typedValue'\n};\n/** Creates new pipe function depending on mask type, source and destination options */\nfunction createPipe(arg, from, to) {\n if (from === void 0) {\n from = PIPE_TYPE.MASKED;\n }\n if (to === void 0) {\n to = PIPE_TYPE.MASKED;\n }\n const masked = createMask(arg);\n return value => masked.runIsolated(m => {\n m[from] = value;\n return m[to];\n });\n}\n\n/** Pipes value through mask depending on mask type, source and destination options */\nfunction pipe(value, mask, from, to) {\n return createPipe(mask, from, to)(value);\n}\nIMask.PIPE_TYPE = PIPE_TYPE;\nIMask.createPipe = createPipe;\nIMask.pipe = pipe;\n\nexport { PIPE_TYPE, createPipe, pipe };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern mask */\nclass RepeatBlock extends MaskedPattern {\n get repeatFrom() {\n var _ref;\n return (_ref = Array.isArray(this.repeat) ? this.repeat[0] : this.repeat === Infinity ? 0 : this.repeat) != null ? _ref : 0;\n }\n get repeatTo() {\n var _ref2;\n return (_ref2 = Array.isArray(this.repeat) ? this.repeat[1] : this.repeat) != null ? _ref2 : Infinity;\n }\n constructor(opts) {\n super(opts);\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n var _ref3, _ref4, _this$_blocks;\n const {\n repeat,\n ...blockOpts\n } = normalizeOpts(opts); // TODO type\n this._blockOpts = Object.assign({}, this._blockOpts, blockOpts);\n const block = createMask(this._blockOpts);\n this.repeat = (_ref3 = (_ref4 = repeat != null ? repeat : block.repeat) != null ? _ref4 : this.repeat) != null ? _ref3 : Infinity; // TODO type\n\n super._update({\n mask: 'm'.repeat(Math.max(this.repeatTo === Infinity && ((_this$_blocks = this._blocks) == null ? void 0 : _this$_blocks.length) || 0, this.repeatFrom)),\n blocks: {\n m: block\n },\n eager: block.eager,\n overwrite: block.overwrite,\n skipInvalid: block.skipInvalid,\n lazy: block.lazy,\n placeholderChar: block.placeholderChar,\n displayChar: block.displayChar\n });\n }\n _allocateBlock(bi) {\n if (bi < this._blocks.length) return this._blocks[bi];\n if (this.repeatTo === Infinity || this._blocks.length < this.repeatTo) {\n this._blocks.push(createMask(this._blockOpts));\n this.mask += 'm';\n return this._blocks[this._blocks.length - 1];\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = new ChangeDetails();\n for (let bi = (_this$_mapPosToBlock$ = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index) != null ? _this$_mapPosToBlock$ : Math.max(this._blocks.length - 1, 0), block, allocated;\n // try to get a block or\n // try to allocate a new block if not allocated already\n block = (_this$_blocks$bi = this._blocks[bi]) != null ? _this$_blocks$bi : allocated = !allocated && this._allocateBlock(bi); ++bi) {\n var _this$_mapPosToBlock$, _this$_mapPosToBlock, _this$_blocks$bi, _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n if (blockDetails.skip && allocated) {\n // remove the last allocated block and break\n this._blocks.pop();\n this.mask = this.mask.slice(1);\n break;\n }\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n _trimEmptyTail(fromPos, toPos) {\n var _this$_mapPosToBlock2, _this$_mapPosToBlock3;\n if (fromPos === void 0) {\n fromPos = 0;\n }\n const firstBlockIndex = Math.max(((_this$_mapPosToBlock2 = this._mapPosToBlock(fromPos)) == null ? void 0 : _this$_mapPosToBlock2.index) || 0, this.repeatFrom, 0);\n let lastBlockIndex;\n if (toPos != null) lastBlockIndex = (_this$_mapPosToBlock3 = this._mapPosToBlock(toPos)) == null ? void 0 : _this$_mapPosToBlock3.index;\n if (lastBlockIndex == null) lastBlockIndex = this._blocks.length - 1;\n let removeCount = 0;\n for (let blockIndex = lastBlockIndex; firstBlockIndex <= blockIndex; --blockIndex, ++removeCount) {\n if (this._blocks[blockIndex].unmaskedValue) break;\n }\n if (removeCount) {\n this._blocks.splice(lastBlockIndex - removeCount + 1, removeCount);\n this.mask = this.mask.slice(removeCount);\n }\n }\n reset() {\n super.reset();\n this._trimEmptyTail();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._trimEmptyTail(fromPos, toPos);\n return removeDetails;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos == null && this.repeatTo === Infinity) return Infinity;\n return super.totalInputPositions(fromPos, toPos);\n }\n get state() {\n return super.state;\n }\n set state(state) {\n this._blocks.length = state._blocks.length;\n this.mask = this.mask.slice(0, this._blocks.length);\n super.state = state;\n }\n}\nIMask.RepeatBlock = RepeatBlock;\n\nexport { RepeatBlock as default };\n","export { default as InputMask } from './controls/input.js';\nimport IMask from './core/holder.js';\nexport { default as HTMLContenteditableMaskElement } from './controls/html-contenteditable-mask-element.js';\nexport { default as HTMLInputMaskElement } from './controls/html-input-mask-element.js';\nexport { default as HTMLMaskElement } from './controls/html-mask-element.js';\nexport { default as MaskElement } from './controls/mask-element.js';\nexport { default as ChangeDetails } from './core/change-details.js';\nexport { DIRECTION, forceDirection } from './core/utils.js';\nexport { default as Masked } from './masked/base.js';\nexport { default as MaskedDate } from './masked/date.js';\nexport { default as MaskedDynamic } from './masked/dynamic.js';\nexport { default as MaskedEnum } from './masked/enum.js';\nexport { default as createMask, normalizeOpts } from './masked/factory.js';\nexport { default as MaskedFunction } from './masked/function.js';\nexport { default as MaskedNumber } from './masked/number.js';\nexport { default as MaskedPattern } from './masked/pattern.js';\nexport { default as ChunksTailDetails } from './masked/pattern/chunk-tail-details.js';\nexport { default as PatternFixedDefinition } from './masked/pattern/fixed-definition.js';\nexport { default as PatternInputDefinition } from './masked/pattern/input-definition.js';\nexport { PIPE_TYPE, createPipe, pipe } from './masked/pipe.js';\nexport { default as MaskedRange } from './masked/range.js';\nexport { default as MaskedRegExp } from './masked/regexp.js';\nexport { default as RepeatBlock } from './masked/repeat.js';\nimport './core/action-details.js';\nimport './controls/input-history.js';\nimport './core/continuous-tail-details.js';\nimport './masked/pattern/cursor.js';\n\ntry {\n globalThis.IMask = IMask;\n} catch {}\n\nexport { IMask as default };\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing } from '../lit-html.js';\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = (value) => value !== null && value !== void 0 ? value : nothing;\n//# sourceMappingURL=if-defined.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { nothing, noChange } from '../lit-html.js';\nimport { directive, Directive, PartType } from '../directive.js';\nconst HTML_RESULT = 1;\nexport class UnsafeHTMLDirective extends Directive {\n constructor(partInfo) {\n super(partInfo);\n this._value = nothing;\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(`${this.constructor.directiveName}() can only be used in child bindings`);\n }\n }\n render(value) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(`${this.constructor.directiveName}() called with a non-string value`);\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strings.raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: this.constructor\n .resultType,\n strings,\n values: [],\n });\n }\n}\nUnsafeHTMLDirective.directiveName = 'unsafeHTML';\nUnsafeHTMLDirective.resultType = HTML_RESULT;\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n//# sourceMappingURL=unsafe-html.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { directive } from '../directive.js';\nimport { UnsafeHTMLDirective } from './unsafe-html.js';\nconst SVG_RESULT = 2;\nclass UnsafeSVGDirective extends UnsafeHTMLDirective {\n}\nUnsafeSVGDirective.directiveName = 'unsafeSVG';\nUnsafeSVGDirective.resultType = SVG_RESULT;\n/**\n * Renders the result as SVG, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeSVG = directive(UnsafeSVGDirective);\n//# sourceMappingURL=unsafe-svg.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n// Any new exports need to be added to the export statement in\n// `packages/lit/src/index.all.ts`.\nimport { html as coreHtml, svg as coreSvg } from './lit-html.js';\n/**\n * Prevents JSON injection attacks.\n *\n * The goals of this brand:\n * 1) fast to check\n * 2) code is small on the wire\n * 3) multiple versions of Lit in a single page will all produce mutually\n * interoperable StaticValues\n * 4) normal JSON.parse (without an unusual reviver) can not produce a\n * StaticValue\n *\n * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but\n * we don't care about the key, so we break ties via (2) and use the empty\n * string.\n */\nconst brand = Symbol.for('');\n/** Safely extracts the string part of a StaticValue. */\nconst unwrapStaticValue = (value) => {\n if ((value === null || value === void 0 ? void 0 : value.r) !== brand) {\n return undefined;\n }\n return value === null || value === void 0 ? void 0 : value['_$litStatic$'];\n};\n/**\n * Wraps a string so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Note that this function is unsafe to use on untrusted content, as it will be\n * directly parsed into HTML. Do not pass user input to this function\n * without sanitizing it.\n *\n * Static values can be changed, but they will cause a complete re-render\n * since they effectively create a new template.\n */\nexport const unsafeStatic = (value) => ({\n ['_$litStatic$']: value,\n r: brand,\n});\nconst textFromStatic = (value) => {\n if (value['_$litStatic$'] !== undefined) {\n return value['_$litStatic$'];\n }\n else {\n throw new Error(`Value passed to 'literal' function must be a 'literal' result: ${value}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`);\n }\n};\n/**\n * Tags a string literal so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * The only values that may be used in template expressions are other tagged\n * `literal` results or `unsafeStatic` values (note that untrusted content\n * should never be passed to `unsafeStatic`).\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Static values can be changed, but they will cause a complete re-render since\n * they effectively create a new template.\n */\nexport const literal = (strings, ...values) => ({\n ['_$litStatic$']: values.reduce((acc, v, idx) => acc + textFromStatic(v) + strings[idx + 1], strings[0]),\n r: brand,\n});\nconst stringsCache = new Map();\n/**\n * Wraps a lit-html template tag (`html` or `svg`) to add static value support.\n */\nexport const withStatic = (coreTag) => (strings, ...values) => {\n const l = values.length;\n let staticValue;\n let dynamicValue;\n const staticStrings = [];\n const dynamicValues = [];\n let i = 0;\n let hasStatics = false;\n let s;\n while (i < l) {\n s = strings[i];\n // Collect any unsafeStatic values, and their following template strings\n // so that we treat a run of template strings and unsafe static values as\n // a single template string.\n while (i < l &&\n ((dynamicValue = values[i]),\n (staticValue = unwrapStaticValue(dynamicValue))) !== undefined) {\n s += staticValue + strings[++i];\n hasStatics = true;\n }\n // If the last value is static, we don't need to push it.\n if (i !== l) {\n dynamicValues.push(dynamicValue);\n }\n staticStrings.push(s);\n i++;\n }\n // If the last value isn't static (which would have consumed the last\n // string), then we need to add the last string.\n if (i === l) {\n staticStrings.push(strings[l]);\n }\n if (hasStatics) {\n const key = staticStrings.join('$$lit$$');\n strings = stringsCache.get(key);\n if (strings === undefined) {\n // Beware: in general this pattern is unsafe, and doing so may bypass\n // lit's security checks and allow an attacker to execute arbitrary\n // code and inject arbitrary content.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n staticStrings.raw = staticStrings;\n stringsCache.set(key, (strings = staticStrings));\n }\n values = dynamicValues;\n }\n return coreTag(strings, ...values);\n};\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const html = withStatic(coreHtml);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const svg = withStatic(coreSvg);\n//# sourceMappingURL=static.js.map","// @defaultValue decorator\n//\n// Runs when the corresponding attribute of the observed property changes, e.g. after calling Element.setAttribute or after updating\n// the observed property.\n//\n// The decorator checks whether the value of the attribute is different from the value of the property and in that case\n// it saves the new value.\n//\n//\n// Usage:\n//\n// @property({ type: Boolean, reflect: true })\n// checked = false;\n//\n// @defaultValue('checked')\n// defaultChecked = false;\n//\n\nimport { defaultConverter } from \"lit\";\nimport type { ReactiveElement } from \"lit\";\n\nexport const defaultValue =\n (propertyName = \"value\") =>\n (proto: ReactiveElement, key: string) => {\n const ctor = proto.constructor as typeof ReactiveElement;\n\n const attributeChangedCallback = ctor.prototype.attributeChangedCallback;\n ctor.prototype.attributeChangedCallback = function (\n this: ReactiveElement & { [name: string]: unknown },\n name,\n old,\n value\n ) {\n const options = ctor.getPropertyOptions(propertyName);\n const attributeName = (typeof options.attribute === \"string\" ? options.attribute : propertyName).toLowerCase();\n if (name === attributeName) {\n const converter = options.converter || defaultConverter;\n const fromAttribute =\n typeof converter === \"function\" ? converter : converter?.fromAttribute ?? defaultConverter.fromAttribute;\n\n const newValue: unknown = fromAttribute(value, options.type);\n if (this[propertyName] !== newValue) {\n this[key] = newValue;\n }\n }\n attributeChangedCallback.call(this, name, old, value);\n };\n };\n","import type SgdsButton from \"../components/Button/sgds-button\";\nimport type { ReactiveController, ReactiveControllerHost } from \"lit\";\nimport SgdsElement from \"../base/sgds-element\";\nconst reportValidityOverloads: WeakMap<HTMLFormElement, () => boolean> = new WeakMap();\n\nexport class FormSubmitController implements ReactiveController {\n host?: ReactiveControllerHost & Element;\n form?: HTMLFormElement | null;\n options: FormSubmitControllerOptions;\n\n constructor(host: ReactiveControllerHost & Element, options?: Partial<FormSubmitControllerOptions>) {\n (this.host = host).addController(this);\n this.options = {\n form: (input: HTMLInputElement) => {\n return input.closest(\"form\");\n },\n name: (input: HTMLInputElement) => input.name,\n value: (input: HTMLInputElement) => input.value,\n defaultValue: (input: HTMLInputElement) => input.defaultValue,\n disabled: (input: HTMLInputElement) => input.disabled,\n reportValidity: (input: HTMLInputElement) => {\n return typeof input.reportValidity === \"function\" ? input.reportValidity() : true;\n },\n setValue: (input: HTMLInputElement, value: string) => {\n input.value = value;\n },\n ...options\n };\n this.handleFormData = this.handleFormData.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.handleFormReset = this.handleFormReset.bind(this);\n this.reportFormValidity = this.reportFormValidity.bind(this);\n }\n\n hostConnected() {\n this.form = this.options.form(this.host);\n\n if (this.form) {\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n\n // Overload the form's reportValidity() method so it looks at Shoelace form controls\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n }\n }\n\n hostDisconnected() {\n if (this.form) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n\n // Remove the overload and restore the original method\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n\n this.form = undefined;\n }\n }\n\n handleFormData(event: FormDataEvent) {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n\n if (!disabled && typeof name === \"string\" && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n (value as unknown[]).forEach(val => {\n event.formData.append(name, (val as string | number | boolean).toString());\n });\n } else {\n event.formData.append(name, (value as string | number | boolean).toString());\n }\n }\n }\n\n handleFormSubmit(event: Event) {\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n handleFormReset() {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n }\n\n reportFormValidity() {\n //\n // Shoelace form controls work hard to act like regular form controls. They support the Constraint Validation API\n // and its associated methods such as setCustomValidity() and reportValidity(). However, the HTMLFormElement also\n // has a reportValidity() method that will trigger validation on all child controls. Since we're not yet using\n // ElementInternals, we need to overload this method so it looks for any element with the reportValidity() method.\n //\n // We preserve the original method in a WeakMap, but we don't call it from the overload because that would trigger\n // validations in an unexpected order. When the element disconnects, we revert to the original behavior. This won't\n // be necessary once we can use ElementInternals.\n //\n // Note that we're also honoring the form's novalidate attribute.\n //\n if (this.form && !this.form.noValidate) {\n // This seems sloppy, but checking all elements will cover native inputs, Shoelace inputs, and other custom\n // elements that support the constraint validation API.\n const elements = this.form.querySelectorAll<HTMLInputElement>(\"*\");\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n\n return true;\n }\n\n doAction(type: \"submit\" | \"reset\", invoker?: HTMLInputElement | SgdsButton) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n\n // Pass form attributes through to the temporary button\n if (invoker) {\n [\"formaction\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach(attr => {\n if (invoker.hasAttribute(attr)) {\n button.setAttribute(attr, invoker.getAttribute(attr));\n }\n });\n }\n\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n\n /** Resets the form, restoring all the control to their default value */\n reset(invoker?: HTMLInputElement | SgdsButton) {\n this.doAction(\"reset\", invoker);\n }\n\n /** Submits the form, triggering validation and form data injection. */\n submit(invoker?: HTMLInputElement | SgdsButton) {\n // Calling form.submit() bypasses the submit event and constraint validation. To prevent this, we can inject a\n // native submit button into the form, \"click\" it, then remove it to simulate a standard form submission.\n this.doAction(\"submit\", invoker);\n }\n}\n\nexport interface FormSubmitControllerOptions {\n /** A function that returns the form containing the form control. */\n form: (input: unknown) => HTMLFormElement | null;\n /** A function that returns the form control's name, which will be submitted with the form data. */\n name: (input: unknown) => string;\n /** A function that returns the form control's current value. */\n value: (input: unknown) => unknown | unknown[];\n /** A function that returns the form control's default value. */\n defaultValue: (input: unknown) => unknown | unknown[];\n /** A function that returns the form control's current disabled state. If disabled, the value won't be submitted. */\n disabled: (input: unknown) => boolean;\n /**\n * A function that maps to the form control's reportValidity() function. When the control is invalid, this will\n * prevent submission and trigger the browser's constraint violation warning.\n */\n reportValidity: (input: unknown) => boolean;\n\n /** A function that sets the form control's value */\n setValue: (input: unknown, value: unknown) => void;\n}\n\nexport interface SgdsFormControl extends SgdsElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | \"any\";\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n}\n","import { property, query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { unsafeSVG } from \"lit/directives/unsafe-svg.js\";\nimport { html } from \"lit/static-html.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/form\";\nimport { FormSubmitController } from \"../../utils/form\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\n\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n *\n */\nexport class SgdsInput extends SgdsElement implements SgdsFormControl {\n static styles = SgdsElement.styles;\n /**@internal */\n @query(\"input.form-control\") input: HTMLInputElement;\n /**@internal */\n protected readonly formSubmitController = new FormSubmitController(this);\n /** The type of input which works the same as HTMLInputElement*/\n @property({ reflect: true }) type:\n | \"date\"\n | \"datetime-local\"\n | \"email\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"text\"\n | \"time\"\n | \"url\" = \"text\";\n /** The input's label */\n @property({ reflect: true }) label = \"\";\n /** The input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n /**The input's name attribute */\n @property({ reflect: true }) name: string;\n /**Forwards classes to the native HTMLInputElement of the component. Can be used to insert any classes from bootstrap such as mt-2 */\n @property({ reflect: true }) inputClasses: string;\n /**Optional. Pass svg html of icons in string form*/\n @property({ type: String }) icon: string;\n /**Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n /**Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n /**The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n /**A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n /**Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n /**Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n /**Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n /**Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback = \"\";\n\n /**@internal */\n @state() invalid = false;\n /**@internal */\n @state() valid = false;\n\n /**@internal */\n protected inputId: string = genId(\"input\", this.type);\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n public reportValidity() {\n return this.input.reportValidity();\n }\n public setCustomValidity(err: string) {\n return this.input.setCustomValidity(err);\n }\n public setInvalid(bool: boolean) {\n this.invalid = bool;\n }\n protected _handleChange(event: string) {\n this.value = this.input.value;\n this.emit(event);\n }\n\n protected _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n protected _handleBlur() {\n this.emit(\"sgds-blur\");\n }\n\n protected _handleKeyDown(event: KeyboardEvent) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === \"Enter\" && !hasModifier) {\n setTimeout(() => {\n // Prevent submission when enter is click on a submission in an Input Method Editor with isComposing\n if (!event.defaultPrevented && !event.isComposing) {\n this.formSubmitController.submit();\n }\n });\n }\n }\n\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.input.disabled = this.disabled;\n this.invalid = !this.input.checkValidity();\n }\n\n @watch(\"value\", { waitUntilFirstUpdate: true })\n _handleValueChange() {\n this.invalid = !this.input.checkValidity();\n this.valid = this.input.checkValidity();\n // remove validation for input that is not required, is already dirty and has empty value\n if (!this.required && this.value === \"\") {\n this.valid = false;\n }\n }\n protected _renderInput() {\n return html`<input\n class=${classMap({\n \"form-control\": true,\n \"is-invalid\": this.hasFeedback && this.invalid,\n \"is-valid\": this.hasFeedback && this.valid,\n [`${this.inputClasses}`]: this.inputClasses\n })}\n type=${this.type}\n id=${this.inputId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n @input=${() => this._handleChange(\"sgds-input\")}\n @change=${() => this._handleChange(\"sgds-change\")}\n @keydown=${this._handleKeyDown}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n ${this.hasFeedback\n ? html`<div id=\"${this.inputId}-invalid\" class=\"invalid-feedback\">${this.invalidFeedback}</div>`\n : \"\"} `;\n }\n protected _renderFeedback() {\n return this.hasFeedback\n ? html`<div id=\"${this.inputId}-invalid\" class=\"invalid-feedback\">${this.invalidFeedback}</div>`\n : \"\";\n }\n protected _renderLabel() {\n const labelTemplate = html` <label for=${this.inputId} class=\"form-label\">${this.label}</label> `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html`\n <small id=\"${this.inputId}Help\" class=\"text-muted form-text\">${this.hintText}</small>\n `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n const input = html`${this._renderInput()}`;\n // if iconName is defined\n const inputWithIcon = html`\n <div class=\"sgds form-control-group ${this.inputClasses}\">\n <span class=\"form-control-icon\"> ${unsafeSVG(this.icon)} </span>\n ${input}\n </div>\n `;\n // if hintText is defined\n\n return html`\n <div class=\"d-flex flex-column w-100\">\n ${html`${this._renderLabel()} ${this._renderHintText()} ${this.icon ? inputWithIcon : input} `}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n","import { isAfter, isBefore, isValid, parse } from \"date-fns\";\nimport IMask, { InputMask } from \"imask\";\nimport { html } from \"lit\";\nimport { property, queryAsync } from \"lit/decorators.js\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { SgdsInput } from \"../Input/sgds-input\";\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\nexport class DatepickerInput extends SgdsInput {\n /** Date format reflected on input */\n @property({ type: String }) dateFormat: DateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate: string;\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate: string;\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n @queryAsync(\"input\")\n shadowInput: Promise<HTMLInputElement>;\n\n private mask: InputMask;\n constructor() {\n super();\n this.inputClasses = `rounded-0 rounded-start`;\n this.type = \"text\";\n this.hasFeedback = true;\n this._handleValueChange = () => null;\n }\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(\"sgds-change\", this._validateInput);\n }\n\n async firstUpdated(changes) {\n super.firstUpdated(changes);\n this._applyInputMask(this.dateFormat);\n }\n private async _applyInputMask(dateFormat: string) {\n const shadowInput = await this.shadowInput;\n const imPattern =\n this.mode === \"single\" ? DATE_PATTERNS[dateFormat].imPattern : DATE_PATTERNS[dateFormat].imRangePattern;\n const blocks = {\n d: { mask: IMask.MaskedRange, placeholderChar: \"d\", from: 0, to: 9, maxLength: 1 },\n m: { mask: IMask.MaskedRange, placeholderChar: \"m\", from: 0, to: 9, maxLength: 1 },\n y: { mask: IMask.MaskedRange, placeholderChar: \"y\", from: 0, to: 9, maxLength: 1 },\n D: { mask: IMask.MaskedRange, placeholderChar: \"d\", from: 0, to: 9, maxLength: 1 },\n M: { mask: IMask.MaskedRange, placeholderChar: \"m\", from: 0, to: 9, maxLength: 1 },\n Y: { mask: IMask.MaskedRange, placeholderChar: \"y\", from: 0, to: 9, maxLength: 1 }\n };\n const maskOptions = {\n mask: imPattern,\n pattern: imPattern,\n eager: true,\n overwrite: true,\n // define str -> date convertion\n parse: function (str: string) {\n const dates = str.split(\" - \");\n return dates.map(date => parse(date, DATE_PATTERNS[dateFormat].fnsPattern, new Date()));\n },\n format: function (dateArr: Date[]) {\n const dateStrings = dateArr.map(date => {\n let dayStr: string,\n monthStr = \"\";\n const day = date.getDate();\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n\n if (day < 10) dayStr = \"0\" + day;\n if (month < 10) monthStr = \"0\" + month;\n\n return [dayStr, monthStr, year].join(\"/\");\n });\n return dateStrings.join(\" - \");\n },\n lazy: false,\n blocks\n };\n\n this.mask = IMask(shadowInput, maskOptions);\n this.mask.on(\"accept\", () => {\n this.value = this.mask.masked.value;\n this.emit(\"sgds-mask-input-change\", { detail: this.value });\n });\n /**\n * Validation after date is complete\n */\n this.mask.on(\"complete\", this._validateInput);\n }\n public updateMaskValue() {\n this.mask?.updateValue();\n }\n private _validateInput = async () => {\n const dates = this.mask.value.split(\" - \");\n const noEmptyDates = dates.filter(d => d !== this.dateFormat.toLowerCase());\n const dateArray: Date[] | string[] = noEmptyDates.map(date =>\n setTimeToNoon(parse(date, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n const invalidDates = dateArray.filter(\n date =>\n !isValid(date) ||\n isBefore(date, new Date(0, 0, 1)) ||\n isBefore(date, setTimeToNoon(new Date(this.minDate))) ||\n isAfter(date, setTimeToNoon(new Date(this.maxDate)))\n );\n\n if (invalidDates.length > 0) {\n this.setInvalid(true);\n return this.emit(\"sgds-invalid-input\");\n }\n if (this.mode === \"range\" && dateArray.length === 1) {\n this.setInvalid(true);\n return this.emit(\"sgds-invalid-input\");\n }\n if (invalidDates.length === 0 && dateArray.length > 0) {\n this.setInvalid(false);\n return this.emit(\"sgds-selectdates-input\", { detail: dateArray });\n }\n if (dateArray.length === 0 && invalidDates.length === 0) {\n this.setInvalid(false);\n return this.emit(\"sgds-empty-input\");\n }\n };\n\n public destroyInputMask() {\n this.mask?.destroy();\n }\n public async applyInputMask() {\n return await this._applyInputMask(this.dateFormat);\n }\n\n render() {\n return html`\n ${this._renderLabel()} ${this._renderHintText()}\n <div class=\"d-flex\">\n <div class=\"d-flex flex-column w-100\">${this._renderInput()}</div>\n <slot name=\"calendar-btn\"></slot>\n <slot name=\"reset-btn\"></slot>\n </div>\n `;\n }\n}\n\nexport default DatepickerInput;\n","import { ScopedElementsMixin } from \"@open-wc/scoped-elements\";\nimport { format, parse } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property, query, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { watch } from \"../../utils/watch\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport DatepickerInput from \"./datepicker-input\";\nimport styles from \"./sgds-datepicker.scss\";\nimport { ViewEnum } from \"./types\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { type SgdsFormControl } from \"../../utils/form\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @cssproperty --datepicker-theme-color - Datepicker's overall theme color\n * @cssproperty --datepicker-hover-bg-color - Datepicker's calendar menu hover color\n * @cssproperty --datepicker-bg-color - Datepicker's menu background color\n * @cssproperty --datepicker-closebutton-bg-color - Datepicker's close button background color\n * @cssproperty --datepicker-closebutton-hover-bg-color - Datepicker's close button hover background color\n * @cssproperty --datepicker-closebutton-color - Datepicker's close button color\n * @cssproperty --datepicker-selected-date-bg-color - Selected date's background color\n * @cssproperty --datepicker-selected-date-text-color - Selected date's text color\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nexport class SgdsDatepicker extends ScopedElementsMixin(DropdownElement) implements SgdsFormControl {\n static styles = [DropdownElement.styles, styles];\n static formAssociated = true;\n private _internals: ElementInternals;\n\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader\n };\n }\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n /**The datepicker input's name attribute */\n @property({ reflect: true }) name: string;\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'[\"22/12/2023\"]' for single & '[\"22/12/2023\",\"25/12/2023\"]' for range respectively */\n @property({ type: Array, reflect: true }) initialValue: string[] = [];\n\n /** Date format reflected on input */\n @property({ type: String }) dateFormat: DateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate = \"\";\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate = \"\";\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /**Feedback text for error state when date input is invalid */\n @property({ type: String, reflect: true }) invalidFeedback = \"Please enter a valid date\";\n\n /** The datepicker input's label */\n @property({ reflect: true }) label = \"\";\n\n /** The datepicker input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n\n /** Controls auto-flipping of menu */\n @property({ type: Boolean, reflect: true, state: false })\n noFlip = false;\n\n /** The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: false })\n drop: \"up\" | \"down\" = \"down\";\n\n /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */\n @property({ attribute: false }) displayDate: Date;\n\n @state() value = \"\";\n\n @state()\n private view: ViewEnum = \"days\";\n\n @state() private selectedDateRange: Date[] = [];\n\n @state() private focusedDate: Date;\n\n @state() private focusedTabIndex = 3;\n\n private initialDisplayDate: Date;\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n @queryAsync(\"sgds-datepicker-input\")\n private datepickerInputAsync: Promise<DatepickerInput>;\n\n @query(\"sgds-datepicker-input\")\n private datepickerInput: DatepickerInput;\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n public reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n constructor() {\n super();\n this._internals = this.attachInternals();\n /**@internal */\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 10]\n }\n }\n ];\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n } else {\n const initialSelectedDates = this.initialValue.map(v =>\n setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n this._handleSelectDates(initialSelectedDates);\n }\n } else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n\n const shadowInput = await this.datepickerInput.shadowInput;\n this._manageInternalsDefault(shadowInput);\n this._internals.setValidity(shadowInput.validity, shadowInput.validationMessage, shadowInput);\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\")\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n this._setInternalFormValue(this.value);\n }\n\n private async _handleCloseMenu() {\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return this.value;\n const formatDate = (date: Date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat.toLowerCase()}`;\n }\n break;\n }\n }\n return this.value;\n };\n private _handleSelectDatesInput(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n this._manageInternalsDefault(this._shadowInput);\n }\n private async _handleSelectDates(newSelectedDates: Date[]) {\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n }\n\n private get _shadowInput() {\n return this.datepickerInput.shadowRoot.querySelector(\"input\");\n }\n private _handleSelectDatesAndClose(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n } else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n this._manageInternalsValid();\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this._manageInternalsBadInput();\n }\n private async _handleButtonResetClick() {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = \"\";\n this.view = \"days\";\n this.hideMenu();\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n\n this._manageInternalsRequired();\n }\n\n private async _handleEmptyInput() {\n this._manageInternalsRequired();\n }\n\n private _manageInternalsRequired() {\n this.required\n ? this._internals.setValidity(\n {\n valueMissing: true\n },\n \"Please fill in this field\",\n this._shadowInput\n )\n : this._internals.setValidity({});\n }\n private _manageInternalsBadInput() {\n this._internals.setValidity(\n {\n badInput: true\n },\n \"The chosen date(s) are invalid\",\n this._shadowInput\n );\n }\n\n private _manageInternalsValid() {\n this._internals.setValidity({});\n }\n\n private _manageInternalsDefault(inputEl: HTMLInputElement) {\n this._internals.setValidity(inputEl.validity, inputEl.validationMessage, inputEl);\n }\n\n private _setInternalFormValue(value: string) {\n this._internals.setFormValue(value);\n }\n\n private async _handleInputMaskChange(e: CustomEvent) {\n this.value = e.detail;\n }\n render() {\n const svgEl = html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-x\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n `;\n\n return html`\n <div>\n <sgds-datepicker-input\n .value=${live(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n placeholder=\"\"\n ${ref(this.myDropdown)}\n mode=${this.mode}\n dateFormat=${this.dateFormat}\n invalidFeedback=${this.invalidFeedback}\n @sgds-mask-input-change=${this._handleInputMaskChange}\n @sgds-invalid-input=${this._handleInvalidInput}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n label=${this.label}\n hintText=${this.hintText}\n name=${this.name}\n >\n <button\n slot=\"calendar-btn\"\n class=${classMap({\n \"sgds btn rounded-0 border btn-outline-dark\": true\n })}\n aria-expanded=\"${this.menuIsOpen}\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n @click=${() => this.toggleMenu()}\n aria-label=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-calendar\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z\"\n />\n </svg>\n </button>\n <button\n slot=\"reset-btn\"\n ?disabled=${this.disabled}\n class=\"btn sgds rounded-0 reset-btn\"\n @click=${() => this._handleButtonResetClick()}\n aria-label=\"Reset Datepicker\"\n >\n ${svgEl}\n </button>\n </sgds-datepicker-input>\n\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n part=\"menu\"\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n","import { SgdsDatepicker } from \"./sgds-datepicker\";\n\ncustomElements.define(\"sgds-datepicker\", SgdsDatepicker);\ndeclare global {\n interface HTMLElementTagNameMap {\n \"sgds-datepicker\": SgdsDatepicker;\n }\n}\n"],"names":["global","getDefaultOptions","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","cleanEscapedString","getInternalDefaultOptions","_b","_c","_d","issueWarning","trustedTypes","emptyStringForBooleanAttribute","polyfillSupport","debugLogEvent","_a","HTML_RESULT","SVG_RESULT","html","isElement","effect","getComputedStyle","min","max","mathMax","mathMin","hash","allPlacements","placements","createPopper","defaultModifiers","popperOffsets","computeStyles","applyStyles","offset","flip","preventOverflow","arrow","hide","Popper.createPopper","styles","generateId","coreHtml"],"mappings":"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AAC;EACzB,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;EAClE,CAAC;AACD;EACA,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;EACvC,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,mBAAmB,CAAC;EACnE,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,+EAA+E,CAAC,CAAC;EACtN;;ECNA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,wBAAsB;EAC5B,EAAE,uDAAuD,CAAC;AAC1D;EACA;EACA;EACA,MAAMC,4BAA0B,GAAG,mCAAmC,CAAC;AACvE;EACA,MAAMC,qBAAmB,GAAG,cAAc,CAAC;EAC3C,MAAMC,mBAAiB,GAAG,KAAK,CAAC;EAChC,MAAMC,+BAA6B,GAAG,UAAU,CAAC;AAGjD;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACO,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;EACjD,EAAE,MAAM,cAAc,GAAGL,mBAAiB,EAAE,CAAC;EAC7C,EAAE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,CAAC,MAAM,IAAIM,IAAa,CAAC;AAC3E;EACA,EAAE,MAAM,qBAAqB;EAC7B,IAAI,OAAO,EAAE,qBAAqB;EAClC,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;EACnD,IAAI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Ac,CAAC;EAC3C,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC;EACA,MAAM,mBAAmB,GAAG,IAAI,CAAC;EACjC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA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"}
|