@m3e/web 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +636 -1299
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +54 -114
- package/dist/all.min.js.map +1 -1
- package/dist/app-bar.js +2 -34
- package/dist/app-bar.js.map +1 -1
- package/dist/app-bar.min.js +1 -1
- package/dist/app-bar.min.js.map +1 -1
- package/dist/autocomplete.js +17 -40
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/avatar.js +1 -28
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.min.js +1 -1
- package/dist/avatar.min.js.map +1 -1
- package/dist/badge.js +1 -39
- package/dist/badge.js.map +1 -1
- package/dist/badge.min.js +1 -1
- package/dist/badge.min.js.map +1 -1
- package/dist/bottom-sheet.js +22 -58
- package/dist/bottom-sheet.js.map +1 -1
- package/dist/bottom-sheet.min.js +1 -1
- package/dist/bottom-sheet.min.js.map +1 -1
- package/dist/button-group.js +2 -34
- package/dist/button-group.js.map +1 -1
- package/dist/button-group.min.js +1 -1
- package/dist/button-group.min.js.map +1 -1
- package/dist/button.js +2 -34
- package/dist/button.js.map +1 -1
- package/dist/button.min.js +1 -1
- package/dist/button.min.js.map +1 -1
- package/dist/card.js +4 -34
- package/dist/card.js.map +1 -1
- package/dist/card.min.js +1 -1
- package/dist/card.min.js.map +1 -1
- package/dist/checkbox.js +2 -34
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/checkbox.min.js.map +1 -1
- package/dist/chips.js +2 -40
- package/dist/chips.js.map +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/chips.min.js.map +1 -1
- package/dist/core-a11y.js +1 -39
- package/dist/core-a11y.js.map +1 -1
- package/dist/core-a11y.min.js +4 -4
- package/dist/core-a11y.min.js.map +1 -1
- package/dist/core-anchoring.js +164 -177
- package/dist/core-anchoring.js.map +1 -1
- package/dist/core-anchoring.min.js +1 -1
- package/dist/core-anchoring.min.js.map +1 -1
- package/dist/core-bidi.js +1 -31
- package/dist/core-bidi.js.map +1 -1
- package/dist/core-bidi.min.js +2 -3
- package/dist/core-bidi.min.js.map +1 -1
- package/dist/core.js +84 -43
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +492 -487
- package/dist/custom-elements.json +6233 -4722
- package/dist/dialog.js +3 -41
- package/dist/dialog.js.map +1 -1
- package/dist/dialog.min.js +1 -1
- package/dist/dialog.min.js.map +1 -1
- package/dist/divider.js +1 -28
- package/dist/divider.js.map +1 -1
- package/dist/divider.min.js +1 -1
- package/dist/divider.min.js.map +1 -1
- package/dist/drawer-container.js +18 -48
- package/dist/drawer-container.js.map +1 -1
- package/dist/drawer-container.min.js +1 -1
- package/dist/drawer-container.min.js.map +1 -1
- package/dist/expansion-panel.js +8 -41
- package/dist/expansion-panel.js.map +1 -1
- package/dist/expansion-panel.min.js +1 -1
- package/dist/expansion-panel.min.js.map +1 -1
- package/dist/fab-menu.js +3 -47
- package/dist/fab-menu.js.map +1 -1
- package/dist/fab-menu.min.js +1 -1
- package/dist/fab-menu.min.js.map +1 -1
- package/dist/fab.js +1 -33
- package/dist/fab.js.map +1 -1
- package/dist/fab.min.js +1 -1
- package/dist/fab.min.js.map +1 -1
- package/dist/form-field.js +19 -49
- package/dist/form-field.js.map +1 -1
- package/dist/form-field.min.js +3 -4
- package/dist/form-field.min.js.map +1 -1
- package/dist/heading.js +1 -28
- package/dist/heading.js.map +1 -1
- package/dist/heading.min.js +1 -1
- package/dist/heading.min.js.map +1 -1
- package/dist/html-custom-data.json +223 -202
- package/dist/icon-button.js +2 -34
- package/dist/icon-button.js.map +1 -1
- package/dist/icon-button.min.js +1 -1
- package/dist/icon-button.min.js.map +1 -1
- package/dist/icon.js +1 -28
- package/dist/icon.js.map +1 -1
- package/dist/icon.min.js +1 -1
- package/dist/icon.min.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +7 -0
- package/dist/index.min.js.map +1 -0
- package/dist/list.js +17 -46
- package/dist/list.js.map +1 -1
- package/dist/list.min.js +1 -1
- package/dist/list.min.js.map +1 -1
- package/dist/loading-indicator.js +8 -31
- package/dist/loading-indicator.js.map +1 -1
- package/dist/loading-indicator.min.js +1 -1
- package/dist/loading-indicator.min.js.map +1 -1
- package/dist/menu.js +3 -47
- package/dist/menu.js.map +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/menu.min.js.map +1 -1
- package/dist/nav-bar.js +3 -41
- package/dist/nav-bar.js.map +1 -1
- package/dist/nav-bar.min.js +1 -1
- package/dist/nav-bar.min.js.map +1 -1
- package/dist/nav-menu.js +2 -40
- package/dist/nav-menu.js.map +1 -1
- package/dist/nav-menu.min.js +1 -1
- package/dist/nav-menu.min.js.map +1 -1
- package/dist/nav-rail.js +1 -33
- package/dist/nav-rail.js.map +1 -1
- package/dist/nav-rail.min.js +1 -1
- package/dist/nav-rail.min.js.map +1 -1
- package/dist/option.js +3 -59
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/paginator.js +2 -34
- package/dist/paginator.js.map +1 -1
- package/dist/paginator.min.js +2 -3
- package/dist/paginator.min.js.map +1 -1
- package/dist/progress-indicator.js +41 -63
- package/dist/progress-indicator.js.map +1 -1
- package/dist/progress-indicator.min.js +32 -32
- package/dist/progress-indicator.min.js.map +1 -1
- package/dist/radio-group.js +1 -39
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.min.js +1 -1
- package/dist/radio-group.min.js.map +1 -1
- package/dist/segmented-button.js +2 -40
- package/dist/segmented-button.js.map +1 -1
- package/dist/segmented-button.min.js +1 -1
- package/dist/segmented-button.min.js.map +1 -1
- package/dist/select.js +16 -40
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.min.js.map +1 -1
- package/dist/shape.js +1 -28
- package/dist/shape.js.map +1 -1
- package/dist/shape.min.js +1 -1
- package/dist/shape.min.js.map +1 -1
- package/dist/slide-group.js +9 -42
- package/dist/slide-group.js.map +1 -1
- package/dist/slide-group.min.js +1 -1
- package/dist/slide-group.min.js.map +1 -1
- package/dist/slider.js +1 -39
- package/dist/slider.js.map +1 -1
- package/dist/slider.min.js +1 -1
- package/dist/slider.min.js.map +1 -1
- package/dist/snackbar.js +2 -40
- package/dist/snackbar.js.map +1 -1
- package/dist/snackbar.min.js +1 -1
- package/dist/snackbar.min.js.map +1 -1
- package/dist/split-button.js +1 -39
- package/dist/split-button.js.map +1 -1
- package/dist/split-button.min.js +1 -1
- package/dist/split-button.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts +6 -0
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts +3 -3
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
- package/dist/src/card/CardElement.d.ts +1 -0
- package/dist/src/card/CardElement.d.ts.map +1 -1
- package/dist/src/card/styles/CardVariantToken.d.ts +1 -1
- package/dist/src/card/styles/CardVariantToken.d.ts.map +1 -1
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts +6 -3
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -1
- package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts +3 -0
- package/dist/src/core/anchoring/FloatingPanelScrollStrategy.d.ts.map +1 -0
- package/dist/src/core/anchoring/index.d.ts +1 -0
- package/dist/src/core/anchoring/index.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/AttachInternals.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts +15 -0
- package/dist/src/core/shared/mixins/ReconnectedCallback.d.ts.map +1 -0
- package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts +11 -0
- package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts.map +1 -0
- package/dist/src/core/shared/mixins/index.d.ts +2 -0
- package/dist/src/core/shared/mixins/index.d.ts.map +1 -1
- package/dist/src/drawer-container/DrawerContainerElement.d.ts +4 -2
- package/dist/src/drawer-container/DrawerContainerElement.d.ts.map +1 -1
- package/dist/src/expansion-panel/ExpansionPanelElement.d.ts +3 -1
- package/dist/src/expansion-panel/ExpansionPanelElement.d.ts.map +1 -1
- package/dist/src/fab-menu/FabMenuElement.d.ts +1 -3
- package/dist/src/fab-menu/FabMenuElement.d.ts.map +1 -1
- package/dist/src/form-field/FormFieldElement.d.ts +4 -2
- package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
- package/dist/src/list/ActionListElement.d.ts.map +1 -1
- package/dist/src/list/ListItemElement.d.ts +3 -1
- package/dist/src/list/ListItemElement.d.ts.map +1 -1
- package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts +3 -1
- package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts.map +1 -1
- package/dist/src/menu/MenuElement.d.ts +1 -3
- package/dist/src/menu/MenuElement.d.ts.map +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelElement.d.ts +0 -4
- package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts +2 -0
- package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts +2 -0
- package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts +1 -1
- package/dist/src/progress-indicator/ProgressElementIndicatorBase.d.ts.map +1 -1
- package/dist/src/select/SelectElement.d.ts +6 -0
- package/dist/src/select/SelectElement.d.ts.map +1 -1
- package/dist/src/slide-group/SlideGroupElement.d.ts +5 -1
- package/dist/src/slide-group/SlideGroupElement.d.ts.map +1 -1
- package/dist/src/stepper/StepperElement.d.ts +1 -1
- package/dist/src/stepper/StepperElement.d.ts.map +1 -1
- package/dist/src/toc/TocElement.d.ts +1 -1
- package/dist/src/toc/TocElement.d.ts.map +1 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts +3 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts.map +1 -1
- package/dist/stepper.js +3 -41
- package/dist/stepper.js.map +1 -1
- package/dist/stepper.min.js +1 -1
- package/dist/stepper.min.js.map +1 -1
- package/dist/switch.js +1 -33
- package/dist/switch.js.map +1 -1
- package/dist/switch.min.js +1 -1
- package/dist/switch.min.js.map +1 -1
- package/dist/tabs.js +1 -39
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.min.js +1 -1
- package/dist/tabs.min.js.map +1 -1
- package/dist/textarea-autosize.js +1 -39
- package/dist/textarea-autosize.js.map +1 -1
- package/dist/textarea-autosize.min.js +2 -3
- package/dist/textarea-autosize.min.js.map +1 -1
- package/dist/theme.js +1 -39
- package/dist/theme.js.map +1 -1
- package/dist/theme.min.js +19 -19
- package/dist/theme.min.js.map +1 -1
- package/dist/toc.js +4 -42
- package/dist/toc.js.map +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toc.min.js.map +1 -1
- package/dist/toolbar.js +1 -39
- package/dist/toolbar.js.map +1 -1
- package/dist/toolbar.min.js +1 -1
- package/dist/toolbar.min.js.map +1 -1
- package/dist/tooltip.js +15 -46
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.min.js +1 -1
- package/dist/tooltip.min.js.map +1 -1
- package/package.json +3 -2
package/dist/autocomplete.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../src/autocomplete/AutocompleteElement.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport {\r\n HtmlFor,\r\n prefersReducedMotion,\r\n scrollIntoViewIfNeeded,\r\n forcedColorsActive,\r\n setCustomState,\r\n deleteCustomState,\r\n addCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager, M3eLiveAnnouncer } from \"@m3e/web/core/a11y\";\r\nimport { M3eOptGroupElement, M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\nimport type { M3eFormFieldElement } from \"@m3e/web/form-field\";\r\n\r\nimport { AutocompleteFilterMode } from \"./AutocompleteFilterMode\";\r\nimport { QueryEventDetail } from \"./QueryEventDetail\";\r\n\r\n/**\r\n * Enhances a text input with suggested options.\r\n *\r\n * @description\r\n * The `m3e-autocomplete` component augments a text input field with a dynamically positioned menu of filterable suggestions,\r\n * following Material Design 3 principles. It provides real-time filtering, keyboard navigation, automatic option activation,\r\n * and text highlighting to guide user selection. The component manages focus, selection state, and menu visibility while\r\n * integrating seamlessly with form field containers and supporting both required and optional selection modes.\r\n *\r\n * @example\r\n * The following example illustrates use of the `m3e-autocomplete` paired with a `m3e-form-field`.\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"fruit\">Choose your favorite fruit</label>\r\n * <input id=\"fruit\" />\r\n * </m3e-form-field>\r\n * <m3e-autocomplete for=\"fruit\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-autocomplete>\r\n * ```\r\n *\r\n * @tag m3e-autocomplete\r\n *\r\n * @attr auto-activate - Whether the first option should be automatically activated.\r\n * @attr case-sensitive - Whether filtering is case sensitive.\r\n * @attr filter - Mode in which to filter options.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator.\r\n * @attr hide-loading - Whether to hide the menu when loading options.\r\n * @attr hide-no-data - Whether to hide the menu when there are no options to show.\r\n * @attr loading - Whether options are being loaded.\r\n * @attr loading-label - The text announced and presented when loading options.\r\n * @attr no-data-label - The text announced and presented when no options are available for the current term.\r\n * @attr required - Whether the user is required to make a selection when interacting with the autocomplete.\r\n * @attr results-label - The text announced when available options change for the current term.\r\n *\r\n * @slot - Renders the options of the autocomplete.\r\n * @slot loading - Renders content when loading options.\r\n * @slot no-data - Renders content when there are no options to show.\r\n *\r\n * @fires toggle - Emitted when the options menu opens or closes.\r\n * @fires query - Emitted when the input is focused or when the user modifies its value.\r\n */\r\n@customElement(\"m3e-autocomplete\")\r\nexport class M3eAutocompleteElement extends HtmlFor(LitElement) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: contents;\r\n }\r\n .options {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ private static __nextId = 0;\r\n\r\n /** @private */ readonly #id = `m3e-autocomplete-${M3eAutocompleteElement.__nextId}`;\r\n /** @private */ readonly #menuId = `${this.#id}-menu`;\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n /** @private */ #ignoreFocusVisible = false;\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreHideMenuOnBlur = false;\r\n /** @private */ #inputChanged = false;\r\n /** @private */ #hasFocus = false;\r\n /** @private */ #mutationAbortController?: AbortController;\r\n\r\n /** @private */ readonly #clickHandler = () => this.#handleClick();\r\n /** @private */ readonly #formFieldPointerDownHandler = () => this.#handleFormFieldPointerDown();\r\n /** @private */ readonly #focusHandler = () => this.#handleFocus();\r\n /** @private */ readonly #blurHandler = () => this.#handleBlur();\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #inputHandler = (e: Event) => this.#handleInput(e);\r\n /** @private */ readonly #changeHandler = () => this.#handleChange();\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: PointerEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withSkipPredicate((item) => item.disabled || item.hidden)\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n constructor() {\r\n super();\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether the user is required to make a selection when interacting with the autocomplete.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) required = false;\r\n\r\n /**\r\n * Whether the first option should be automatically activated.\r\n * @default false\r\n */\r\n @property({ attribute: \"auto-activate\", type: Boolean }) autoActivate = false;\r\n\r\n /**\r\n * Whether filtering is case sensitive.\r\n * @default false\r\n */\r\n @property({ attribute: \"case-sensitive\", type: Boolean }) caseSensitive = false;\r\n\r\n /**\r\n * Mode in which to filter options.\r\n * @default \"contains\"\r\n */\r\n @property({\r\n converter: {\r\n fromAttribute(value: string | null): AutocompleteFilterMode {\r\n if (value === null) return \"contains\";\r\n if (value === \"starts-with\" || value === \"ends-with\" || value === \"contains\" || value === \"none\") {\r\n return value;\r\n }\r\n return \"contains\";\r\n },\r\n },\r\n })\r\n filter: AutocompleteFilterMode | ((option: M3eOptionElement, term: string) => boolean) = \"contains\";\r\n\r\n /**\r\n * Whether options are being loaded.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) loading = false;\r\n\r\n /**\r\n * Whether to hide the menu when there are no options to show.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-no-data\", type: Boolean }) hideNoData = false;\r\n\r\n /**\r\n * Whether to hide the menu when loading options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-loading\", type: Boolean }) hideLoading = false;\r\n\r\n /**\r\n * The text announced and presented when loading options.\r\n * @default \"Loading...\"\r\n */\r\n @property({ attribute: \"loading-label\" }) loadingLabel = \"Loading...\";\r\n\r\n /**\r\n * The text announced and presented when no options are available for the current term.\r\n * @default \"No options\"\r\n */\r\n @property({ attribute: \"no-data-label\" }) noDataLabel = \"No options\";\r\n\r\n /**\r\n * The text announced when available options change for the current term.\r\n * @default (count) => `${count} options`\r\n */\r\n @property({ attribute: \"results-label\" }) resultsLabel: string | ((count: number) => string) = (count) =>\r\n `${count} options`;\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** @private */\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n /** @private */\r\n get #input(): HTMLInputElement | null {\r\n return this.control ? <HTMLInputElement>this.control : null;\r\n }\r\n\r\n /** @private */\r\n get #hasNoDataSlot(): boolean {\r\n return (this.#clone?.querySelector(\"[slot='no-data']\") ?? null) !== null;\r\n }\r\n\r\n /** @private */\r\n get #hasLoadingSlot(): boolean {\r\n return (this.#clone?.querySelector(\"[slot='loading']\") ?? null) !== null;\r\n }\r\n\r\n /** @private */\r\n get #shouldShowMenu(): boolean {\r\n return (\r\n this.#options.some((x) => !x.hidden) ||\r\n (this.loading && !this.hideLoading && this.loadingLabel.length > 0) ||\r\n (!this.loading && !this.hideNoData && this.noDataLabel.length > 0)\r\n );\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : (this.control?.clientWidth ?? 0)}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.control?.closest(\"m3e-form-field\") ?? null;\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n if (!(control instanceof HTMLInputElement)) return;\r\n\r\n super.attach(control);\r\n\r\n control.autocomplete = \"off\";\r\n control.role = \"combobox\";\r\n control.ariaAutoComplete = \"list\";\r\n control.ariaExpanded = \"false\";\r\n\r\n control.addEventListener(\"click\", this.#clickHandler);\r\n control.addEventListener(\"focus\", this.#focusHandler);\r\n control.addEventListener(\"blur\", this.#blurHandler);\r\n control.addEventListener(\"keydown\", this.#keyDownHandler);\r\n control.addEventListener(\"input\", this.#inputHandler);\r\n control.addEventListener(\"change\", this.#changeHandler);\r\n\r\n this.#formField?.addEventListener(\"pointerdown\", this.#formFieldPointerDownHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#formField?.removeEventListener(\"pointerdown\", this.#formFieldPointerDownHandler);\r\n\r\n this.control.role = null;\r\n this.control.ariaAutoComplete = null;\r\n this.control.ariaExpanded = null;\r\n\r\n this.control.removeEventListener(\"click\", this.#clickHandler);\r\n this.control.removeEventListener(\"focus\", this.#focusHandler);\r\n this.control.removeEventListener(\"blur\", this.#blurHandler);\r\n this.control.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.control.removeEventListener(\"input\", this.#inputHandler);\r\n this.control.removeEventListener(\"change\", this.#changeHandler);\r\n }\r\n super.detach();\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n if (!this.#input) return;\r\n\r\n this.#input.value = \"\";\r\n this.#filterOptions();\r\n\r\n if (restoreFocus) {\r\n this.#input.focus();\r\n } else {\r\n this.#hideMenu();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideNoData\") && this.hideNoData && this.#menu) {\r\n setCustomState(this.#menu, \"-no-data\", false);\r\n }\r\n\r\n if (changedProperties.has(\"loading\")) {\r\n if (this.loading) {\r\n if (this.#hasFocus) {\r\n if (this.loadingLabel) {\r\n M3eLiveAnnouncer.announce(this.loadingLabel, \"polite\");\r\n }\r\n if (!this.#menu && this.#shouldShowMenu) {\r\n this.#showMenu();\r\n }\r\n }\r\n } else if (this.#menu && !this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n } else if (this.#menu) {\r\n deleteCustomState(this.#menu, \"-loading\");\r\n } else if (this.#hasFocus) {\r\n this.#showMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n async #handleMutation(): Promise<void> {\r\n if (this.#mutationAbortController) {\r\n this.#mutationAbortController.abort();\r\n }\r\n const mutationAbortController = new AbortController();\r\n this.#mutationAbortController = mutationAbortController;\r\n\r\n const options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n for (const option of options) {\r\n if (mutationAbortController.signal.aborted) {\r\n break;\r\n }\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n }\r\n\r\n if (mutationAbortController.signal.aborted) {\r\n return;\r\n }\r\n\r\n this._options = options;\r\n\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n if (this.#menu) {\r\n const count = this.#filterOptions();\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (!this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#updateMenuState(this.#menu, count);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#showMenu();\r\n }\r\n\r\n /** @private */\r\n #handleFormFieldPointerDown(): void {\r\n this.#ignoreHideMenuOnBlur = true;\r\n }\r\n\r\n /** @private */\r\n #handleFocus(): void {\r\n this.#hasFocus = true;\r\n this.#ignoreFocusVisible = true;\r\n\r\n if (this.options.length == 0 && !(<HTMLInputElement>this.control).readOnly) {\r\n this.dispatchEvent(\r\n new CustomEvent<QueryEventDetail>(\"query\", {\r\n detail: { term: this.#input?.value ?? \"\" },\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n }\r\n\r\n this.#showMenu();\r\n }\r\n\r\n /** @private */\r\n #handleBlur(): void {\r\n this.#hasFocus = false;\r\n if (!this.#ignoreHideMenuOnBlur) {\r\n this.#hideMenu();\r\n }\r\n this.#ignoreHideMenuOnBlur = false;\r\n }\r\n\r\n /** @private */\r\n #handleInput(e: Event): void {\r\n if (!this.#input || e.defaultPrevented) return;\r\n\r\n this.dispatchEvent(\r\n new CustomEvent<QueryEventDetail>(\"query\", {\r\n detail: { term: this.#input.value },\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n\r\n this.#inputChanged = true;\r\n try {\r\n if (!this.#menu) {\r\n this.#showMenu();\r\n } else {\r\n this.#filterOptions();\r\n if (!this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n }\r\n }\r\n } finally {\r\n this.#inputChanged = false;\r\n this.#formField?.notifyControlStateChange(true);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleChange(): void {\r\n if (this.#input && this.required && !this.#options.some((x) => x.selected && !x.disabled)) {\r\n this.#input.value = \"\";\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \"Backspace\":\r\n case \"Delete\":\r\n if (this.#input && !this.#input.value) {\r\n this.#hideMenu();\r\n }\r\n break;\r\n\r\n case \"Enter\":\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n e.preventDefault();\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else if (this.#menu) {\r\n setTimeout(() => {\r\n if (this.#input && !this.#input.value) {\r\n this.#hideMenu();\r\n }\r\n });\r\n }\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n if (e.altKey) {\r\n this.#hideMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n }\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (!this.#menu) {\r\n this.#showMenu();\r\n e.preventDefault();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: PointerEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this._listKeyManager.setActiveItem(option);\r\n this.#selectOption(option);\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#options.find((x) => x.selected && !x.disabled);\r\n if (option) {\r\n this._listKeyManager.setActiveItem(option);\r\n scrollIntoViewIfNeeded(option, this.#menu);\r\n } else {\r\n this.#autoActivate();\r\n }\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private*/\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n if (this.#input) {\r\n this.#input.ariaExpanded = \"false\";\r\n this.#input.removeAttribute(\"aria-controls\");\r\n this.#input.removeAttribute(\"aria-owns\");\r\n }\r\n this.requestUpdate();\r\n\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || !this.#input || this.#input.readOnly || this.#input.disabled) return;\r\n\r\n const count = this.#filterOptions();\r\n\r\n if (!this.#shouldShowMenu) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n this.#menu.id = this.#menuId;\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n const children = [...this.#clone.childNodes];\r\n if (!this.#hasNoDataSlot && this.noDataLabel) {\r\n const noDataSpan = document.createElement(\"span\");\r\n noDataSpan.slot = \"no-data\";\r\n noDataSpan.textContent = this.noDataLabel;\r\n children.push(noDataSpan);\r\n }\r\n if (!this.#hasLoadingSlot && this.loadingLabel) {\r\n const loadingSpan = document.createElement(\"span\");\r\n loadingSpan.slot = \"loading\";\r\n loadingSpan.textContent = this.loadingLabel;\r\n children.push(loadingSpan);\r\n }\r\n this.#menu.replaceChildren(...children);\r\n }\r\n\r\n this.#updateMenuState(this.#menu, count);\r\n\r\n (this.#formField ?? this.#input).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.#input.setAttribute(\"aria-controls\", this.#menuId);\r\n this.#input.setAttribute(\"aria-owns\", this.#menuId);\r\n\r\n this.#formField?.notifyControlStateChange();\r\n\r\n if (this._listKeyManager.activeItem && this.autoActivate) {\r\n this.#activateOption(this._listKeyManager.activeItem, true);\r\n }\r\n\r\n const input = this.#input;\r\n setTimeout(() => this.#menu?.show(input, this.#formField?.menuAnchor));\r\n }\r\n\r\n /** @private */\r\n #updateMenuState(menu: M3eOptionPanelElement, count: number): void {\r\n setCustomState(menu, \"-loading\", this.loading);\r\n setCustomState(menu, \"-no-data\", count == 0);\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n this.#menu?.hide();\r\n this.#input?.removeAttribute(\"aria-activedescendant\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement, forceFocusVisible = false): void {\r\n if (!this.#input) return;\r\n\r\n this.#input.setAttribute(\"aria-activedescendant\", option.id);\r\n\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible =\r\n forceFocusVisible ||\r\n (!this.#ignoreFocusVisible && (this.#input.matches(\":focus-visible\") || forcedColorsActive()));\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n async #updateSelectionState(clone: M3eOptionElement): Promise<void> {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n async #selectOption(option: M3eOptionElement): Promise<void> {\r\n if (option.selected) return;\r\n\r\n option.selected = true;\r\n await this.#updateSelectionState(option);\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n\r\n this.requestUpdate();\r\n if (this.isUpdatePending) {\r\n await this.updateComplete;\r\n }\r\n\r\n if (this.#input) {\r\n this.#input.value = option.value;\r\n }\r\n\r\n this.#formField?.notifyControlStateChange(true);\r\n }\r\n\r\n /** @private */\r\n #filterOption(clone: M3eOptionElement, option: M3eOptionElement, term: string, exactTerm: string): boolean {\r\n const value = this.caseSensitive ? option.value : option.value.toLowerCase();\r\n switch (this.filter) {\r\n case \"starts-with\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.startsWith(term);\r\n case \"ends-with\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.endsWith(term);\r\n case \"contains\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.includes(term);\r\n case \"none\":\r\n clone.disableHighlight = true;\r\n return true;\r\n default:\r\n clone.disableHighlight = true;\r\n return this.filter(option, exactTerm);\r\n }\r\n }\r\n\r\n /** @private */\r\n #filterOptions(): number {\r\n if (!this.#input) return 0;\r\n\r\n const oldCount = this.#options.filter((x) => !x.hidden).length;\r\n const shouldAnnounce = !this.loading && this.#inputChanged;\r\n this.#inputChanged = false;\r\n\r\n const exactTerm = this.#input.value;\r\n const term = this.caseSensitive ? exactTerm : exactTerm.toLocaleLowerCase();\r\n\r\n let newCount = 0;\r\n let first = false;\r\n let last: M3eOptionElement | undefined;\r\n\r\n for (let i = 0; i < this.#options.length; i++) {\r\n const clone = this.#options[i];\r\n const option = this._options[i];\r\n clone.hidden = !this.#filterOption(clone, option, term, exactTerm);\r\n\r\n if (clone.hidden) {\r\n this.#deactivateOption(clone);\r\n deleteCustomState(clone, \"-first\");\r\n deleteCustomState(clone, \"-last\");\r\n } else {\r\n newCount++;\r\n if (!first && !(clone.parentElement instanceof M3eOptGroupElement)) {\r\n addCustomState(clone, \"-first\");\r\n first = true;\r\n addCustomState(clone, \"-last\");\r\n last = clone;\r\n } else {\r\n deleteCustomState(clone, \"-first\");\r\n if (last) {\r\n deleteCustomState(last, \"-last\");\r\n }\r\n addCustomState(clone, \"-last\");\r\n last = clone;\r\n }\r\n }\r\n\r\n if (clone.selected && option.value !== exactTerm) {\r\n clone.selected = false;\r\n this.#updateSelectionState(clone);\r\n }\r\n }\r\n\r\n if (this.#menu) {\r\n this.#updateMenuState(this.#menu, newCount);\r\n }\r\n\r\n const groups = this.#menu?.querySelectorAll(\"m3e-optgroup\") ?? this.#clone?.querySelectorAll(\"m3e-optgroup\") ?? [];\r\n for (const group of groups) {\r\n group.hidden = [...group.querySelectorAll(\"m3e-option\")].every((x) => x.hidden);\r\n }\r\n\r\n if (shouldAnnounce) {\r\n this.#announceResults(oldCount, newCount);\r\n }\r\n\r\n this.#autoActivate();\r\n return newCount;\r\n }\r\n\r\n /** @private */\r\n #announceResults(oldCount: number, newCount: number): void {\r\n if (!this.#hasFocus) return;\r\n if (newCount == 0) {\r\n if (oldCount > 0 && this.noDataLabel) {\r\n M3eLiveAnnouncer.announce(this.noDataLabel, \"polite\");\r\n }\r\n } else if (oldCount != newCount) {\r\n const message = this.resultsLabel instanceof Function ? this.resultsLabel(newCount) : this.resultsLabel;\r\n if (message) {\r\n M3eLiveAnnouncer.announce(message, \"polite\");\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #autoActivate(): void {\r\n if (this.autoActivate && (!this._listKeyManager.activeItem || !this._listKeyManager.activeItem.selected)) {\r\n const option = this.#options.find((x) => !x.disabled && !x.hidden);\r\n if (option) {\r\n this._listKeyManager.setActiveItem(option);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #deactivateOption(option: M3eOptionElement): void {\r\n option.focusRing?.hide();\r\n option.stateLayer?.hide(\"focused\");\r\n if (option === this._listKeyManager.activeItem) {\r\n this._listKeyManager.updateActiveItem(null);\r\n this.#input?.removeAttribute(\"aria-activedescendant\");\r\n }\r\n }\r\n}\r\n\r\ninterface M3eAutocompleteElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n query: CustomEvent<QueryEventDetail>;\r\n}\r\n\r\nexport interface M3eAutocompleteElement {\r\n addEventListener<K extends keyof M3eAutocompleteElementEventMap>(\r\n type: K,\r\n listener: (this: M3eAutocompleteElement, ev: M3eAutocompleteElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eAutocompleteElementEventMap>(\r\n type: K,\r\n listener: (this: M3eAutocompleteElement, ev: M3eAutocompleteElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-autocomplete\": M3eAutocompleteElement;\r\n }\r\n}\r\n"],"names":["__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","M3eAutocompleteElement","HtmlFor","LitElement","constructor","_M3eAutocompleteElement_id","M3eAutocompleteElement_1","__nextId","_M3eAutocompleteElement_menuId","_options","Array","_M3eAutocompleteElement_clone","_M3eAutocompleteElement_ignoreFocusVisible","_M3eAutocompleteElement_menu","_M3eAutocompleteElement_ignoreHideMenuOnBlur","_M3eAutocompleteElement_inputChanged","_M3eAutocompleteElement_hasFocus","_M3eAutocompleteElement_mutationAbortController","_M3eAutocompleteElement_clickHandler","_M3eAutocompleteElement_instances","_M3eAutocompleteElement_handleClick","_M3eAutocompleteElement_formFieldPointerDownHandler","_M3eAutocompleteElement_handleFormFieldPointerDown","_M3eAutocompleteElement_focusHandler","_M3eAutocompleteElement_handleFocus","_M3eAutocompleteElement_blurHandler","_M3eAutocompleteElement_handleBlur","_M3eAutocompleteElement_keyDownHandler","_M3eAutocompleteElement_inputHandler","_M3eAutocompleteElement_changeHandler","_M3eAutocompleteElement_handleChange","_M3eAutocompleteElement_menuToggleHandler","_M3eAutocompleteElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withSkipPredicate","item","disabled","hidden","onActiveItemChange","activeItem","_M3eAutocompleteElement_activateOption","hideSelectionIndicator","required","autoActivate","caseSensitive","filter","loading","hideNoData","hideLoading","loadingLabel","noDataLabel","resultsLabel","count","MutationController","config","childList","subtree","callback","_M3eAutocompleteElement_handleMutation","options","attach","control","HTMLInputElement","autocomplete","role","ariaAutoComplete","ariaExpanded","addEventListener","_M3eAutocompleteElement_formField_get","detach","removeEventListener","clear","restoreFocus","_M3eAutocompleteElement_input_get","_M3eAutocompleteElement_filterOptions","focus","_M3eAutocompleteElement_hideMenu","connectedCallback","update","changedProperties","setCustomState","M3eLiveAnnouncer","announce","_M3eAutocompleteElement_shouldShowMenu_get","_M3eAutocompleteElement_showMenu","deleteCustomState","render","html","items","querySelector","_M3eAutocompleteElement_options_get","some","x","formField","menuAnchor","clientWidth","closest","abort","mutationAbortController","AbortController","querySelectorAll","option","signal","aborted","isUpdatePending","updateComplete","cloneNode","added","setItems","forEach","id","indexOf","replaceChildren","childNodes","_M3eAutocompleteElement_updateMenuState","readOnly","dispatchEvent","CustomEvent","detail","term","bubbles","composed","defaultPrevented","notifyControlStateChange","selected","preventDefault","_M3eAutocompleteElement_selectOption","prefersReducedMotion","setTimeout","altKey","onKeyDown","button","stopImmediatePropagation","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","_M3eAutocompleteElement_autoActivate","ToggleEvent","oldState","_M3eAutocompleteElement_destroyMenu","remove","undefined","removeAttribute","requestUpdate","document","createElement","style","overflowX","minWidth","_M3eAutocompleteElement_minMenuWidth_get","children","_M3eAutocompleteElement_hasNoDataSlot_get","noDataSpan","slot","textContent","push","_M3eAutocompleteElement_hasLoadingSlot_get","loadingSpan","insertAdjacentElement","setAttribute","input","show","menu","hide","forceFocusVisible","block","behavior","focusVisible","matches","forcedColorsActive","active","focusRing","stateLayer","clone","_M3eAutocompleteElement_updateSelectionState","_M3eAutocompleteElement_filterOption","exactTerm","toLowerCase","highlightMode","startsWith","endsWith","includes","disableHighlight","oldCount","shouldAnnounce","toLocaleLowerCase","newCount","first","last","_M3eAutocompleteElement_deactivateOption","parentElement","M3eOptGroupElement","addCustomState","groups","group","every","_M3eAutocompleteElement_announceResults","Function","updateActiveItem","styles","css","property","attribute","type","Boolean","prototype","reflect","converter","fromAttribute","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sources":["../../src/autocomplete/AutocompleteElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport {\r\n HtmlFor,\r\n prefersReducedMotion,\r\n scrollIntoViewIfNeeded,\r\n forcedColorsActive,\r\n setCustomState,\r\n deleteCustomState,\r\n addCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager, M3eLiveAnnouncer } from \"@m3e/web/core/a11y\";\r\nimport { M3eOptGroupElement, M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\nimport type { M3eFormFieldElement } from \"@m3e/web/form-field\";\r\n\r\nimport { AutocompleteFilterMode } from \"./AutocompleteFilterMode\";\r\nimport { QueryEventDetail } from \"./QueryEventDetail\";\r\n\r\n/**\r\n * Enhances a text input with suggested options.\r\n *\r\n * @description\r\n * The `m3e-autocomplete` component augments a text input field with a dynamically positioned menu of filterable suggestions,\r\n * following Material Design 3 principles. It provides real-time filtering, keyboard navigation, automatic option activation,\r\n * and text highlighting to guide user selection. The component manages focus, selection state, and menu visibility while\r\n * integrating seamlessly with form field containers and supporting both required and optional selection modes.\r\n *\r\n * @example\r\n * The following example illustrates use of the `m3e-autocomplete` paired with a `m3e-form-field`.\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"fruit\">Choose your favorite fruit</label>\r\n * <input id=\"fruit\" />\r\n * </m3e-form-field>\r\n * <m3e-autocomplete for=\"fruit\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-autocomplete>\r\n * ```\r\n *\r\n * @tag m3e-autocomplete\r\n *\r\n * @attr auto-activate - Whether the first option should be automatically activated.\r\n * @attr case-sensitive - Whether filtering is case sensitive.\r\n * @attr filter - Mode in which to filter options.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator.\r\n * @attr hide-loading - Whether to hide the menu when loading options.\r\n * @attr hide-no-data - Whether to hide the menu when there are no options to show.\r\n * @attr loading - Whether options are being loaded.\r\n * @attr loading-label - The text announced and presented when loading options.\r\n * @attr no-data-label - The text announced and presented when no options are available for the current term.\r\n * @attr panel-class - Class or list of classes to be applied to the autocomplete's overlay panel.\r\n * @attr required - Whether the user is required to make a selection when interacting with the autocomplete.\r\n * @attr results-label - The text announced when available options change for the current term.\r\n *\r\n * @slot - Renders the options of the autocomplete.\r\n * @slot loading - Renders content when loading options.\r\n * @slot no-data - Renders content when there are no options to show.\r\n *\r\n * @fires toggle - Emitted when the options menu opens or closes.\r\n * @fires query - Emitted when the input is focused or when the user modifies its value.\r\n */\r\n@customElement(\"m3e-autocomplete\")\r\nexport class M3eAutocompleteElement extends HtmlFor(LitElement) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: contents;\r\n }\r\n .options {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ private static __nextId = 0;\r\n\r\n /** @private */ readonly #id = `m3e-autocomplete-${M3eAutocompleteElement.__nextId}`;\r\n /** @private */ readonly #menuId = `${this.#id}-menu`;\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n /** @private */ #ignoreFocusVisible = false;\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreHideMenuOnBlur = false;\r\n /** @private */ #inputChanged = false;\r\n /** @private */ #hasFocus = false;\r\n /** @private */ #mutationAbortController?: AbortController;\r\n\r\n /** @private */ readonly #clickHandler = () => this.#handleClick();\r\n /** @private */ readonly #formFieldPointerDownHandler = () => this.#handleFormFieldPointerDown();\r\n /** @private */ readonly #focusHandler = () => this.#handleFocus();\r\n /** @private */ readonly #blurHandler = () => this.#handleBlur();\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #inputHandler = (e: Event) => this.#handleInput(e);\r\n /** @private */ readonly #changeHandler = () => this.#handleChange();\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: PointerEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withSkipPredicate((item) => item.disabled || item.hidden)\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n constructor() {\r\n super();\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether the user is required to make a selection when interacting with the autocomplete.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) required = false;\r\n\r\n /**\r\n * Whether the first option should be automatically activated.\r\n * @default false\r\n */\r\n @property({ attribute: \"auto-activate\", type: Boolean }) autoActivate = false;\r\n\r\n /**\r\n * Whether filtering is case sensitive.\r\n * @default false\r\n */\r\n @property({ attribute: \"case-sensitive\", type: Boolean }) caseSensitive = false;\r\n\r\n /**\r\n * Mode in which to filter options.\r\n * @default \"contains\"\r\n */\r\n @property({\r\n converter: {\r\n fromAttribute(value: string | null): AutocompleteFilterMode {\r\n if (value === null) return \"contains\";\r\n if (value === \"starts-with\" || value === \"ends-with\" || value === \"contains\" || value === \"none\") {\r\n return value;\r\n }\r\n return \"contains\";\r\n },\r\n },\r\n })\r\n filter: AutocompleteFilterMode | ((option: M3eOptionElement, term: string) => boolean) = \"contains\";\r\n\r\n /**\r\n * Whether options are being loaded.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) loading = false;\r\n\r\n /**\r\n * Whether to hide the menu when there are no options to show.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-no-data\", type: Boolean }) hideNoData = false;\r\n\r\n /**\r\n * Whether to hide the menu when loading options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-loading\", type: Boolean }) hideLoading = false;\r\n\r\n /**\r\n * The text announced and presented when loading options.\r\n * @default \"Loading...\"\r\n */\r\n @property({ attribute: \"loading-label\" }) loadingLabel = \"Loading...\";\r\n\r\n /**\r\n * The text announced and presented when no options are available for the current term.\r\n * @default \"No options\"\r\n */\r\n @property({ attribute: \"no-data-label\" }) noDataLabel = \"No options\";\r\n\r\n /**\r\n * The text announced when available options change for the current term.\r\n * @default (count) => `${count} options`\r\n */\r\n @property({ attribute: \"results-label\" }) resultsLabel: string | ((count: number) => string) = (count) =>\r\n `${count} options`;\r\n\r\n /**\r\n * Class or list of classes to be applied to the autocomplete's overlay panel.\r\n * @default \"\"\r\n */\r\n @property({ attribute: \"panel-class\" }) panelClass = \"\";\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** @private */\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n /** @private */\r\n get #input(): HTMLInputElement | null {\r\n return this.control ? <HTMLInputElement>this.control : null;\r\n }\r\n\r\n /** @private */\r\n get #hasNoDataSlot(): boolean {\r\n return (this.#clone?.querySelector(\"[slot='no-data']\") ?? null) !== null;\r\n }\r\n\r\n /** @private */\r\n get #hasLoadingSlot(): boolean {\r\n return (this.#clone?.querySelector(\"[slot='loading']\") ?? null) !== null;\r\n }\r\n\r\n /** @private */\r\n get #shouldShowMenu(): boolean {\r\n return (\r\n this.#options.some((x) => !x.hidden) ||\r\n (this.loading && !this.hideLoading && this.loadingLabel.length > 0) ||\r\n (!this.loading && !this.hideNoData && this.noDataLabel.length > 0)\r\n );\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : (this.control?.clientWidth ?? 0)}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.control?.closest(\"m3e-form-field\") ?? null;\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n if (!(control instanceof HTMLInputElement)) return;\r\n\r\n super.attach(control);\r\n\r\n control.autocomplete = \"off\";\r\n control.role = \"combobox\";\r\n control.ariaAutoComplete = \"list\";\r\n control.ariaExpanded = \"false\";\r\n\r\n control.addEventListener(\"click\", this.#clickHandler);\r\n control.addEventListener(\"focus\", this.#focusHandler);\r\n control.addEventListener(\"blur\", this.#blurHandler);\r\n control.addEventListener(\"keydown\", this.#keyDownHandler);\r\n control.addEventListener(\"input\", this.#inputHandler);\r\n control.addEventListener(\"change\", this.#changeHandler);\r\n\r\n this.#formField?.addEventListener(\"pointerdown\", this.#formFieldPointerDownHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#formField?.removeEventListener(\"pointerdown\", this.#formFieldPointerDownHandler);\r\n\r\n this.control.role = null;\r\n this.control.ariaAutoComplete = null;\r\n this.control.ariaExpanded = null;\r\n\r\n this.control.removeEventListener(\"click\", this.#clickHandler);\r\n this.control.removeEventListener(\"focus\", this.#focusHandler);\r\n this.control.removeEventListener(\"blur\", this.#blurHandler);\r\n this.control.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.control.removeEventListener(\"input\", this.#inputHandler);\r\n this.control.removeEventListener(\"change\", this.#changeHandler);\r\n }\r\n super.detach();\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n if (!this.#input) return;\r\n\r\n this.#input.value = \"\";\r\n this.#filterOptions();\r\n\r\n if (restoreFocus) {\r\n this.#input.focus();\r\n } else {\r\n this.#hideMenu();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideNoData\") && this.hideNoData && this.#menu) {\r\n setCustomState(this.#menu, \"-no-data\", false);\r\n }\r\n\r\n if (changedProperties.has(\"loading\")) {\r\n if (this.loading) {\r\n if (this.#hasFocus) {\r\n if (this.loadingLabel) {\r\n M3eLiveAnnouncer.announce(this.loadingLabel, \"polite\");\r\n }\r\n if (!this.#menu && this.#shouldShowMenu) {\r\n this.#showMenu();\r\n }\r\n }\r\n } else if (this.#menu && !this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n } else if (this.#menu) {\r\n deleteCustomState(this.#menu, \"-loading\");\r\n } else if (this.#hasFocus) {\r\n this.#showMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n async #handleMutation(): Promise<void> {\r\n if (this.#mutationAbortController) {\r\n this.#mutationAbortController.abort();\r\n }\r\n const mutationAbortController = new AbortController();\r\n this.#mutationAbortController = mutationAbortController;\r\n\r\n const options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n for (const option of options) {\r\n if (mutationAbortController.signal.aborted) {\r\n break;\r\n }\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n }\r\n\r\n if (mutationAbortController.signal.aborted) {\r\n return;\r\n }\r\n\r\n this._options = options;\r\n\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n if (this.#menu) {\r\n const count = this.#filterOptions();\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (!this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#updateMenuState(this.#menu, count);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#showMenu();\r\n }\r\n\r\n /** @private */\r\n #handleFormFieldPointerDown(): void {\r\n this.#ignoreHideMenuOnBlur = true;\r\n }\r\n\r\n /** @private */\r\n #handleFocus(): void {\r\n this.#hasFocus = true;\r\n this.#ignoreFocusVisible = true;\r\n\r\n if (this.options.length == 0 && !(<HTMLInputElement>this.control).readOnly) {\r\n this.dispatchEvent(\r\n new CustomEvent<QueryEventDetail>(\"query\", {\r\n detail: { term: this.#input?.value ?? \"\" },\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n }\r\n\r\n this.#showMenu();\r\n }\r\n\r\n /** @private */\r\n #handleBlur(): void {\r\n this.#hasFocus = false;\r\n if (!this.#ignoreHideMenuOnBlur) {\r\n this.#hideMenu();\r\n }\r\n this.#ignoreHideMenuOnBlur = false;\r\n }\r\n\r\n /** @private */\r\n #handleInput(e: Event): void {\r\n if (!this.#input || e.defaultPrevented) return;\r\n\r\n this.dispatchEvent(\r\n new CustomEvent<QueryEventDetail>(\"query\", {\r\n detail: { term: this.#input.value },\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n\r\n this.#inputChanged = true;\r\n try {\r\n if (!this.#menu) {\r\n this.#showMenu();\r\n } else {\r\n this.#filterOptions();\r\n if (!this.#shouldShowMenu) {\r\n this.#hideMenu();\r\n }\r\n }\r\n } finally {\r\n this.#inputChanged = false;\r\n this.#formField?.notifyControlStateChange(true);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleChange(): void {\r\n if (this.#input && this.required && !this.#options.some((x) => x.selected && !x.disabled)) {\r\n this.#input.value = \"\";\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \"Backspace\":\r\n case \"Delete\":\r\n if (this.#input && !this.#input.value) {\r\n this.#hideMenu();\r\n }\r\n break;\r\n\r\n case \"Enter\":\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n e.preventDefault();\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else if (this.#menu) {\r\n setTimeout(() => {\r\n if (this.#input && !this.#input.value) {\r\n this.#hideMenu();\r\n }\r\n });\r\n }\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n if (e.altKey) {\r\n this.#hideMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n }\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (!this.#menu) {\r\n this.#showMenu();\r\n e.preventDefault();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: PointerEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this._listKeyManager.setActiveItem(option);\r\n this.#selectOption(option);\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#options.find((x) => x.selected && !x.disabled);\r\n if (option) {\r\n this._listKeyManager.setActiveItem(option);\r\n scrollIntoViewIfNeeded(option, this.#menu);\r\n } else {\r\n this.#autoActivate();\r\n }\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private*/\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n if (this.#input) {\r\n this.#input.ariaExpanded = \"false\";\r\n this.#input.removeAttribute(\"aria-controls\");\r\n this.#input.removeAttribute(\"aria-owns\");\r\n }\r\n this.requestUpdate();\r\n\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || !this.#input || this.#input.readOnly || this.#input.disabled) return;\r\n\r\n const count = this.#filterOptions();\r\n\r\n if (!this.#shouldShowMenu) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n this.#menu.id = this.#menuId;\r\n\r\n if (this.panelClass) {\r\n for (const klass of this.panelClass\r\n .split(/\\s+/)\r\n .map((d) => d.trim())\r\n .filter(Boolean)) {\r\n this.#menu.classList.add(klass);\r\n }\r\n }\r\n\r\n this.#menu.scrollStrategy = \"reposition\";\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n const children = [...this.#clone.childNodes];\r\n if (!this.#hasNoDataSlot && this.noDataLabel) {\r\n const noDataSpan = document.createElement(\"span\");\r\n noDataSpan.slot = \"no-data\";\r\n noDataSpan.textContent = this.noDataLabel;\r\n children.push(noDataSpan);\r\n }\r\n if (!this.#hasLoadingSlot && this.loadingLabel) {\r\n const loadingSpan = document.createElement(\"span\");\r\n loadingSpan.slot = \"loading\";\r\n loadingSpan.textContent = this.loadingLabel;\r\n children.push(loadingSpan);\r\n }\r\n this.#menu.replaceChildren(...children);\r\n }\r\n\r\n this.#updateMenuState(this.#menu, count);\r\n\r\n (this.#formField ?? this.#input).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.#input.setAttribute(\"aria-controls\", this.#menuId);\r\n this.#input.setAttribute(\"aria-owns\", this.#menuId);\r\n\r\n this.#formField?.notifyControlStateChange();\r\n\r\n if (this._listKeyManager.activeItem && this.autoActivate) {\r\n this.#activateOption(this._listKeyManager.activeItem, true);\r\n }\r\n\r\n const input = this.#input;\r\n setTimeout(() => this.#menu?.show(input, this.#formField?.menuAnchor));\r\n }\r\n\r\n /** @private */\r\n #updateMenuState(menu: M3eOptionPanelElement, count: number): void {\r\n setCustomState(menu, \"-loading\", this.loading);\r\n setCustomState(menu, \"-no-data\", count == 0);\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n this.#menu?.hide();\r\n this.#input?.removeAttribute(\"aria-activedescendant\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement, forceFocusVisible = false): void {\r\n if (!this.#input) return;\r\n\r\n this.#input.setAttribute(\"aria-activedescendant\", option.id);\r\n\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible =\r\n forceFocusVisible ||\r\n (!this.#ignoreFocusVisible && (this.#input.matches(\":focus-visible\") || forcedColorsActive()));\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n async #updateSelectionState(clone: M3eOptionElement): Promise<void> {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n async #selectOption(option: M3eOptionElement): Promise<void> {\r\n if (option.selected) return;\r\n\r\n option.selected = true;\r\n await this.#updateSelectionState(option);\r\n if (option.isUpdatePending) {\r\n await option.updateComplete;\r\n }\r\n\r\n this.requestUpdate();\r\n if (this.isUpdatePending) {\r\n await this.updateComplete;\r\n }\r\n\r\n if (this.#input) {\r\n this.#input.value = option.value;\r\n }\r\n\r\n this.#formField?.notifyControlStateChange(true);\r\n }\r\n\r\n /** @private */\r\n #filterOption(clone: M3eOptionElement, option: M3eOptionElement, term: string, exactTerm: string): boolean {\r\n const value = this.caseSensitive ? option.value : option.value.toLowerCase();\r\n switch (this.filter) {\r\n case \"starts-with\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.startsWith(term);\r\n case \"ends-with\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.endsWith(term);\r\n case \"contains\":\r\n clone.term = exactTerm;\r\n clone.highlightMode = this.filter;\r\n return value.includes(term);\r\n case \"none\":\r\n clone.disableHighlight = true;\r\n return true;\r\n default:\r\n clone.disableHighlight = true;\r\n return this.filter(option, exactTerm);\r\n }\r\n }\r\n\r\n /** @private */\r\n #filterOptions(): number {\r\n if (!this.#input) return 0;\r\n\r\n const oldCount = this.#options.filter((x) => !x.hidden).length;\r\n const shouldAnnounce = !this.loading && this.#inputChanged;\r\n this.#inputChanged = false;\r\n\r\n const exactTerm = this.#input.value;\r\n const term = this.caseSensitive ? exactTerm : exactTerm.toLocaleLowerCase();\r\n\r\n let newCount = 0;\r\n let first = false;\r\n let last: M3eOptionElement | undefined;\r\n\r\n for (let i = 0; i < this.#options.length; i++) {\r\n const clone = this.#options[i];\r\n const option = this._options[i];\r\n clone.hidden = !this.#filterOption(clone, option, term, exactTerm);\r\n\r\n if (clone.hidden) {\r\n this.#deactivateOption(clone);\r\n deleteCustomState(clone, \"-first\");\r\n deleteCustomState(clone, \"-last\");\r\n } else {\r\n newCount++;\r\n if (!first && !(clone.parentElement instanceof M3eOptGroupElement)) {\r\n addCustomState(clone, \"-first\");\r\n first = true;\r\n addCustomState(clone, \"-last\");\r\n last = clone;\r\n } else {\r\n deleteCustomState(clone, \"-first\");\r\n if (last) {\r\n deleteCustomState(last, \"-last\");\r\n }\r\n addCustomState(clone, \"-last\");\r\n last = clone;\r\n }\r\n }\r\n\r\n if (clone.selected && option.value !== exactTerm) {\r\n clone.selected = false;\r\n this.#updateSelectionState(clone);\r\n }\r\n }\r\n\r\n if (this.#menu) {\r\n this.#updateMenuState(this.#menu, newCount);\r\n }\r\n\r\n const groups = this.#menu?.querySelectorAll(\"m3e-optgroup\") ?? this.#clone?.querySelectorAll(\"m3e-optgroup\") ?? [];\r\n for (const group of groups) {\r\n group.hidden = [...group.querySelectorAll(\"m3e-option\")].every((x) => x.hidden);\r\n }\r\n\r\n if (shouldAnnounce) {\r\n this.#announceResults(oldCount, newCount);\r\n }\r\n\r\n this.#autoActivate();\r\n return newCount;\r\n }\r\n\r\n /** @private */\r\n #announceResults(oldCount: number, newCount: number): void {\r\n if (!this.#hasFocus) return;\r\n if (newCount == 0) {\r\n if (oldCount > 0 && this.noDataLabel) {\r\n M3eLiveAnnouncer.announce(this.noDataLabel, \"polite\");\r\n }\r\n } else if (oldCount != newCount) {\r\n const message = this.resultsLabel instanceof Function ? this.resultsLabel(newCount) : this.resultsLabel;\r\n if (message) {\r\n M3eLiveAnnouncer.announce(message, \"polite\");\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #autoActivate(): void {\r\n if (this.autoActivate && (!this._listKeyManager.activeItem || !this._listKeyManager.activeItem.selected)) {\r\n const option = this.#options.find((x) => !x.disabled && !x.hidden);\r\n if (option) {\r\n this._listKeyManager.setActiveItem(option);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #deactivateOption(option: M3eOptionElement): void {\r\n option.focusRing?.hide();\r\n option.stateLayer?.hide(\"focused\");\r\n if (option === this._listKeyManager.activeItem) {\r\n this._listKeyManager.updateActiveItem(null);\r\n this.#input?.removeAttribute(\"aria-activedescendant\");\r\n }\r\n }\r\n}\r\n\r\ninterface M3eAutocompleteElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n query: CustomEvent<QueryEventDetail>;\r\n}\r\n\r\nexport interface M3eAutocompleteElement {\r\n addEventListener<K extends keyof M3eAutocompleteElementEventMap>(\r\n type: K,\r\n listener: (this: M3eAutocompleteElement, ev: M3eAutocompleteElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eAutocompleteElementEventMap>(\r\n type: K,\r\n listener: (this: M3eAutocompleteElement, ev: M3eAutocompleteElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-autocomplete\": M3eAutocompleteElement;\r\n }\r\n}\r\n"],"names":["M3eAutocompleteElement","HtmlFor","LitElement","constructor","_M3eAutocompleteElement_id","set","M3eAutocompleteElement_1","__nextId","_M3eAutocompleteElement_menuId","__classPrivateFieldGet","_options","Array","_M3eAutocompleteElement_clone","_M3eAutocompleteElement_ignoreFocusVisible","_M3eAutocompleteElement_menu","_M3eAutocompleteElement_ignoreHideMenuOnBlur","_M3eAutocompleteElement_inputChanged","_M3eAutocompleteElement_hasFocus","_M3eAutocompleteElement_mutationAbortController","_M3eAutocompleteElement_clickHandler","_M3eAutocompleteElement_instances","_M3eAutocompleteElement_handleClick","call","_M3eAutocompleteElement_formFieldPointerDownHandler","_M3eAutocompleteElement_handleFormFieldPointerDown","_M3eAutocompleteElement_focusHandler","_M3eAutocompleteElement_handleFocus","_M3eAutocompleteElement_blurHandler","_M3eAutocompleteElement_handleBlur","_M3eAutocompleteElement_keyDownHandler","e","_M3eAutocompleteElement_inputHandler","_M3eAutocompleteElement_changeHandler","_M3eAutocompleteElement_handleChange","_M3eAutocompleteElement_menuToggleHandler","_M3eAutocompleteElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withSkipPredicate","item","disabled","hidden","onActiveItemChange","activeItem","_M3eAutocompleteElement_activateOption","hideSelectionIndicator","required","autoActivate","caseSensitive","filter","loading","hideNoData","hideLoading","loadingLabel","noDataLabel","resultsLabel","count","panelClass","MutationController","config","childList","subtree","callback","_M3eAutocompleteElement_handleMutation","options","attach","control","HTMLInputElement","autocomplete","role","ariaAutoComplete","ariaExpanded","addEventListener","_M3eAutocompleteElement_formField_get","detach","removeEventListener","clear","restoreFocus","_M3eAutocompleteElement_input_get","value","_M3eAutocompleteElement_filterOptions","focus","_M3eAutocompleteElement_hideMenu","connectedCallback","update","changedProperties","has","setCustomState","M3eLiveAnnouncer","announce","_M3eAutocompleteElement_shouldShowMenu_get","_M3eAutocompleteElement_showMenu","deleteCustomState","render","html","items","querySelector","_M3eAutocompleteElement_options_get","some","x","length","formField","menuAnchor","clientWidth","closest","abort","mutationAbortController","AbortController","__classPrivateFieldSet","querySelectorAll","option","signal","aborted","isUpdatePending","updateComplete","cloneNode","added","setItems","forEach","id","indexOf","replaceChildren","childNodes","_M3eAutocompleteElement_updateMenuState","readOnly","dispatchEvent","CustomEvent","detail","term","bubbles","composed","defaultPrevented","notifyControlStateChange","selected","key","preventDefault","_M3eAutocompleteElement_selectOption","prefersReducedMotion","setTimeout","altKey","onKeyDown","button","stopImmediatePropagation","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","_M3eAutocompleteElement_autoActivate","ToggleEvent","oldState","_M3eAutocompleteElement_destroyMenu","remove","undefined","removeAttribute","requestUpdate","document","createElement","klass","split","map","d","trim","Boolean","classList","add","scrollStrategy","style","overflowX","minWidth","_M3eAutocompleteElement_minMenuWidth_get","children","_M3eAutocompleteElement_hasNoDataSlot_get","noDataSpan","slot","textContent","push","_M3eAutocompleteElement_hasLoadingSlot_get","loadingSpan","insertAdjacentElement","setAttribute","input","show","menu","hide","forceFocusVisible","block","behavior","focusVisible","matches","forcedColorsActive","active","focusRing","stateLayer","clone","_M3eAutocompleteElement_updateSelectionState","_M3eAutocompleteElement_filterOption","exactTerm","toLowerCase","highlightMode","startsWith","endsWith","includes","disableHighlight","oldCount","shouldAnnounce","toLocaleLowerCase","newCount","first","last","i","_M3eAutocompleteElement_deactivateOption","parentElement","M3eOptGroupElement","addCustomState","groups","group","every","_M3eAutocompleteElement_announceResults","message","Function","updateActiveItem","styles","css","__decorate","property","attribute","type","prototype","reflect","converter","fromAttribute","customElement"],"mappings":";;;;;;;;;;;;;;AAuBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CG;AAEI,IAAMA,sBAAsB,8BAA5B,MAAMA,sBAAuB,SAAQC,OAAO,CAACC,UAAU,CAAC,CAAA;AA8C7DC,EAAAA,WAAAA,GAAA;AACE,IAAA,KAAK,EAAE;;AAlCT;IAAyBC,0BAAA,CAAAC,GAAA,CAAA,IAAA,EAAM,oBAAoBC,wBAAsB,CAACC,QAAQ,CAAA,CAAE,CAAA;AACpF;AAAyBC,IAAAA,8BAAA,CAAAH,GAAA,CAAA,IAAA,EAAU,CAAA,EAAGI,uBAAA,IAAI,EAAAL,0BAAA,EAAA,GAAA,CAAI,OAAO,CAAA;AACrD;AAAwB,IAAA,IAAA,CAAAM,QAAQ,GAAG,IAAIC,KAAK,EAAoB;AAChE;AAAgBC,IAAAA,6BAAA,CAAAP,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAChB;AAAgBQ,IAAAA,0CAAA,CAAAR,GAAA,CAAA,IAAA,EAAsB,KAAK,CAAA;AAC3C;AAAgBS,IAAAA,4BAAA,CAAAT,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAChB;AAAgBU,IAAAA,4CAAA,CAAAV,GAAA,CAAA,IAAA,EAAwB,KAAK,CAAA;AAC7C;AAAgBW,IAAAA,oCAAA,CAAAX,GAAA,CAAA,IAAA,EAAgB,KAAK,CAAA;AACrC;AAAgBY,IAAAA,gCAAA,CAAAZ,GAAA,CAAA,IAAA,EAAY,KAAK,CAAA;AACjC;AAAgBa,IAAAA,+CAAA,CAAAb,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAEhB;IAAyBc,oCAAA,CAAAd,GAAA,CAAA,IAAA,EAAgB,MAAMI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAC,mCAAA,CAAa,CAAAC,IAAA,CAAjB,IAAI,CAAe,CAAA;AAClE;IAAyBC,mDAAA,CAAAlB,GAAA,CAAA,IAAA,EAA+B,MAAMI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAI,kDAAA,CAA4B,CAAAF,IAAA,CAAhC,IAAI,CAA8B,CAAA;AAChG;IAAyBG,oCAAA,CAAApB,GAAA,CAAA,IAAA,EAAgB,MAAMI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAM,mCAAA,CAAa,CAAAJ,IAAA,CAAjB,IAAI,CAAe,CAAA;AAClE;IAAyBK,mCAAA,CAAAtB,GAAA,CAAA,IAAA,EAAe,MAAMI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAQ,kCAAA,CAAY,CAAAN,IAAA,CAAhB,IAAI,CAAc,CAAA;AAChE;IAAyBO,sCAAA,CAAAxB,GAAA,CAAA,IAAA,EAAmByB,CAAgB,IAAKrB,sBAAA,CAAA,IAAI,gFAAe,CAAAa,IAAA,CAAnB,IAAI,EAAgBQ,CAAC,CAAC,CAAA;AACvF;IAAyBC,oCAAA,CAAA1B,GAAA,CAAA,IAAA,EAAiByB,CAAQ,IAAKrB,sBAAA,CAAA,IAAI,8EAAa,CAAAa,IAAA,CAAjB,IAAI,EAAcQ,CAAC,CAAC,CAAA;AAC3E;IAAyBE,qCAAA,CAAA3B,GAAA,CAAA,IAAA,EAAiB,MAAMI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAa,oCAAA,CAAc,CAAAX,IAAA,CAAlB,IAAI,CAAgB,CAAA;AACpE;IAAyBY,yCAAA,CAAA7B,GAAA,CAAA,IAAA,EAAsByB,CAAc,IAAKrB,sBAAA,CAAA,IAAI,mFAAkB,CAAAa,IAAA,CAAtB,IAAI,EAAmBQ,CAAC,CAAC,CAAA;AAC3F;IAAyBK,8CAAA,CAAA9B,GAAA,CAAA,IAAA,EAA2ByB,CAAe,IAAKrB,sBAAA,CAAA,IAAI,wFAAuB,CAAAa,IAAA,CAA3B,IAAI,EAAwBQ,CAAC,CAAC,CAAA;AAEtG;AAAiC,IAAA,IAAA,CAAAM,eAAe,GAAG,IAAIC,cAAc,EAAoB,CACtFC,QAAQ,EAAE,CACVC,cAAc,EAAE,CAChBC,iBAAiB,EAAE,CACnBC,uBAAuB,EAAE,CACzBC,iBAAiB,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,IAAID,IAAI,CAACE,MAAM,CAAC,CACzDC,kBAAkB,CAAC,MAAK;AACvB,MAAA,IAAI,IAAI,CAACV,eAAe,CAACW,UAAU,EAAE;AACnCtC,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA4B,sCAAA,CAAgB,CAAA1B,IAAA,CAApB,IAAI,EAAiB,IAAI,CAACc,eAAe,CAACW,UAAU,CAAC;AACvD,MAAA;AACF,IAAA,CAAC,CAAC;AAcJ;;;AAGG;IACiE,IAAA,CAAAE,sBAAsB,GAAG,KAAK;AAElG;;;AAGG;IACyC,IAAA,CAAAC,QAAQ,GAAG,KAAK;AAE5D;;;AAGG;IACsD,IAAA,CAAAC,YAAY,GAAG,KAAK;AAE7E;;;AAGG;IACuD,IAAA,CAAAC,aAAa,GAAG,KAAK;AAE/E;;;AAGG;IAYH,IAAA,CAAAC,MAAM,GAAmF,UAAU;AAEnG;;;AAGG;IAC0B,IAAA,CAAAC,OAAO,GAAG,KAAK;AAE5C;;;AAGG;IACqD,IAAA,CAAAC,UAAU,GAAG,KAAK;AAE1E;;;AAGG;IACqD,IAAA,CAAAC,WAAW,GAAG,KAAK;AAE3E;;;AAGG;IACuC,IAAA,CAAAC,YAAY,GAAG,YAAY;AAErE;;;AAGG;IACuC,IAAA,CAAAC,WAAW,GAAG,YAAY;AAEpE;;;AAGG;AACuC,IAAA,IAAA,CAAAC,YAAY,GAA0CC,KAAK,IACnG,CAAA,EAAGA,KAAK,CAAA,QAAA,CAAU;AAEpB;;;AAGG;IACqC,IAAA,CAAAC,UAAU,GAAG,EAAE;IA3FrD,IAAIC,kBAAkB,CAAC,IAAI,EAAE;AAC3BC,MAAAA,MAAM,EAAE;AACNC,QAAAA,SAAS,EAAE,IAAI;AACfC,QAAAA,OAAO,EAAE;OACV;AACDC,MAAAA,QAAQ,EAAEA,MAAMzD,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA+C,sCAAA,CAAgB,CAAA7C,IAAA,CAApB,IAAI;AACrB,KAAA,CAAC;AACJ,EAAA;AAsFA;EACA,IAAI8C,OAAOA,GAAA;AACT,IAAA,OAAO,IAAI,CAAC1D,QAAQ,IAAI,EAAE;AAC5B,EAAA;AA0CA;EACS2D,MAAMA,CAACC,OAAoB,EAAA;AAClC,IAAA,IAAI,EAAEA,OAAO,YAAYC,gBAAgB,CAAC,EAAE;AAE5C,IAAA,KAAK,CAACF,MAAM,CAACC,OAAO,CAAC;IAErBA,OAAO,CAACE,YAAY,GAAG,KAAK;IAC5BF,OAAO,CAACG,IAAI,GAAG,UAAU;IACzBH,OAAO,CAACI,gBAAgB,GAAG,MAAM;IACjCJ,OAAO,CAACK,YAAY,GAAG,OAAO;AAE9BL,IAAAA,OAAO,CAACM,gBAAgB,CAAC,OAAO,EAAEnE,sBAAA,CAAA,IAAI,EAAAU,oCAAA,EAAA,GAAA,CAAc,CAAC;AACrDmD,IAAAA,OAAO,CAACM,gBAAgB,CAAC,OAAO,EAAEnE,sBAAA,CAAA,IAAI,EAAAgB,oCAAA,EAAA,GAAA,CAAc,CAAC;AACrD6C,IAAAA,OAAO,CAACM,gBAAgB,CAAC,MAAM,EAAEnE,sBAAA,CAAA,IAAI,EAAAkB,mCAAA,EAAA,GAAA,CAAa,CAAC;AACnD2C,IAAAA,OAAO,CAACM,gBAAgB,CAAC,SAAS,EAAEnE,sBAAA,CAAA,IAAI,EAAAoB,sCAAA,EAAA,GAAA,CAAgB,CAAC;AACzDyC,IAAAA,OAAO,CAACM,gBAAgB,CAAC,OAAO,EAAEnE,sBAAA,CAAA,IAAI,EAAAsB,oCAAA,EAAA,GAAA,CAAc,CAAC;AACrDuC,IAAAA,OAAO,CAACM,gBAAgB,CAAC,QAAQ,EAAEnE,sBAAA,CAAA,IAAI,EAAAuB,qCAAA,EAAA,GAAA,CAAe,CAAC;IAEvDvB,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAED,gBAAgB,CAAC,aAAa,EAAEnE,sBAAA,CAAA,IAAI,EAAAc,mDAAA,EAAA,GAAA,CAA6B,CAAC;AACrF,EAAA;AAEA;AACSuD,EAAAA,MAAMA,GAAA;IACb,IAAI,IAAI,CAACR,OAAO,EAAE;MAChB7D,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAEE,mBAAmB,CAAC,aAAa,EAAEtE,sBAAA,CAAA,IAAI,EAAAc,mDAAA,EAAA,GAAA,CAA6B,CAAC;AAEtF,MAAA,IAAI,CAAC+C,OAAO,CAACG,IAAI,GAAG,IAAI;AACxB,MAAA,IAAI,CAACH,OAAO,CAACI,gBAAgB,GAAG,IAAI;AACpC,MAAA,IAAI,CAACJ,OAAO,CAACK,YAAY,GAAG,IAAI;AAEhC,MAAA,IAAI,CAACL,OAAO,CAACS,mBAAmB,CAAC,OAAO,EAAEtE,sBAAA,CAAA,IAAI,EAAAU,oCAAA,EAAA,GAAA,CAAc,CAAC;AAC7D,MAAA,IAAI,CAACmD,OAAO,CAACS,mBAAmB,CAAC,OAAO,EAAEtE,sBAAA,CAAA,IAAI,EAAAgB,oCAAA,EAAA,GAAA,CAAc,CAAC;AAC7D,MAAA,IAAI,CAAC6C,OAAO,CAACS,mBAAmB,CAAC,MAAM,EAAEtE,sBAAA,CAAA,IAAI,EAAAkB,mCAAA,EAAA,GAAA,CAAa,CAAC;AAC3D,MAAA,IAAI,CAAC2C,OAAO,CAACS,mBAAmB,CAAC,SAAS,EAAEtE,sBAAA,CAAA,IAAI,EAAAoB,sCAAA,EAAA,GAAA,CAAgB,CAAC;AACjE,MAAA,IAAI,CAACyC,OAAO,CAACS,mBAAmB,CAAC,OAAO,EAAEtE,sBAAA,CAAA,IAAI,EAAAsB,oCAAA,EAAA,GAAA,CAAc,CAAC;AAC7D,MAAA,IAAI,CAACuC,OAAO,CAACS,mBAAmB,CAAC,QAAQ,EAAEtE,sBAAA,CAAA,IAAI,EAAAuB,qCAAA,EAAA,GAAA,CAAe,CAAC;AACjE,IAAA;IACA,KAAK,CAAC8C,MAAM,EAAE;AAChB,EAAA;AAEA;;;AAGG;AACHE,EAAAA,KAAKA,CAACC,YAAY,GAAG,KAAK,EAAA;IACxB,IAAI,CAACxE,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE;AAElBzE,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC,KAAK,GAAG,EAAE;AACtB1E,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAgE,qCAAA,CAAe,CAAA9D,IAAA,CAAnB,IAAI,CAAiB;AAErB,IAAA,IAAI2D,YAAY,EAAE;AAChBxE,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACG,KAAK,EAAE;AACrB,IAAA,CAAC,MAAM;AACL5E,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,IAAA;AACF,EAAA;AAEA;AACSiE,EAAAA,iBAAiBA,GAAA;IACxB,KAAK,CAACA,iBAAiB,EAAE;AACzB9E,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA+C,sCAAA,CAAgB,CAAA7C,IAAA,CAApB,IAAI,CAAkB;AACxB,EAAA;AAEA;EACmBkE,MAAMA,CAACC,iBAAuC,EAAA;AAC/D,IAAA,KAAK,CAACD,MAAM,CAACC,iBAAiB,CAAC;AAE/B,IAAA,IAAIA,iBAAiB,CAACC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAACnC,UAAU,IAAI9C,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AACxE6E,MAAAA,cAAc,CAAClF,uBAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AAC/C,IAAA;AAEA,IAAA,IAAI2E,iBAAiB,CAACC,GAAG,CAAC,SAAS,CAAC,EAAE;MACpC,IAAI,IAAI,CAACpC,OAAO,EAAE;QAChB,IAAI7C,sBAAA,CAAA,IAAI,EAAAQ,gCAAA,EAAA,GAAA,CAAU,EAAE;UAClB,IAAI,IAAI,CAACwC,YAAY,EAAE;YACrBmC,gBAAgB,CAACC,QAAQ,CAAC,IAAI,CAACpC,YAAY,EAAE,QAAQ,CAAC;AACxD,UAAA;UACA,IAAI,CAAChD,uBAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,IAAIL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA0E,0CAAA,CAAgB,EAAE;AACvCrF,YAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;AAClB,UAAA;AACF,QAAA;MACF,CAAC,MAAM,IAAIb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,IAAI,CAACL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA0E,0CAAA,CAAgB,EAAE;AAC9CrF,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;MAClB,CAAC,MAAM,IAAIb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;QACrBkF,iBAAiB,CAACvF,sBAAA,CAAA,IAAI,oCAAM,EAAE,UAAU,CAAC;MAC3C,CAAC,MAAM,IAAIA,sBAAA,CAAA,IAAI,EAAAQ,gCAAA,EAAA,GAAA,CAAU,EAAE;AACzBR,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;AAClB,MAAA;AACF,IAAA;AACF,EAAA;AAEA;AACmB2E,EAAAA,MAAMA,GAAA;AACvB,IAAA,OAAOC,IAAI,CAAA,2DAAA,CAEJ;AACT,EAAA;;;;;;;;;;;;;;;;;;;;;;AAtIE,EAAA,OAAO,IAAI,CAAC9D,eAAe,EAAE+D,KAAK,IAAI,EAAE;AAC1C,CAAC;;EAIC,OAAO,IAAI,CAAC7B,OAAO,GAAqB,IAAI,CAACA,OAAO,GAAG,IAAI;AAC7D,CAAC;;AAIC,EAAA,OAAO,CAAC7D,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,EAAEwF,aAAa,CAAC,kBAAkB,CAAC,IAAI,IAAI,MAAM,IAAI;AAC1E,CAAC;;AAIC,EAAA,OAAO,CAAC3F,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,EAAEwF,aAAa,CAAC,kBAAkB,CAAC,IAAI,IAAI,MAAM,IAAI;AAC1E,CAAC;;EAIC,OACE3F,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAiF,mCAAA,CAAS,CAACC,IAAI,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC1D,MAAM,CAAC,IACnC,IAAI,CAACS,OAAO,IAAI,CAAC,IAAI,CAACE,WAAW,IAAI,IAAI,CAACC,YAAY,CAAC+C,MAAM,GAAG,CAAE,IAClE,CAAC,IAAI,CAAClD,OAAO,IAAI,CAAC,IAAI,CAACC,UAAU,IAAI,IAAI,CAACG,WAAW,CAAC8C,MAAM,GAAG,CAAE;AAEtE,CAAC;;EAIC,MAAMC,SAAS,GAAGhG,sBAAA,CAAA,IAAI,gFAAW;AACjC,EAAA,OAAO,GAAGgG,SAAS,GAAGA,SAAS,CAACC,UAAU,CAACC,WAAW,GAAI,IAAI,CAACrC,OAAO,EAAEqC,WAAW,IAAI,CAAE,CAAA,EAAA,CAAI;AAC/F,CAAC;;EAIC,OAAO,IAAI,CAACrC,OAAO,EAAEsC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI;AACxD,CAAC;;AAqGD,eAAKzC,sCAAAA,GAAA;EACH,IAAI1D,sBAAA,CAAA,IAAI,EAAAS,+CAAA,EAAA,GAAA,CAAyB,EAAE;IACjCT,sBAAA,CAAA,IAAI,EAAAS,+CAAA,EAAA,GAAA,CAAyB,CAAC2F,KAAK,EAAE;AACvC,EAAA;AACA,EAAA,MAAMC,uBAAuB,GAAG,IAAIC,eAAe,EAAE;EACrDC,sBAAA,CAAA,IAAI,EAAA9F,+CAAA,EAA4B4F,uBAAuB,EAAA,GAAA,CAAA;EAEvD,MAAM1C,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC6C,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAExD,EAAA,KAAK,MAAMC,MAAM,IAAI9C,OAAO,EAAE;AAC5B,IAAA,IAAI0C,uBAAuB,CAACK,MAAM,CAACC,OAAO,EAAE;AAC1C,MAAA;AACF,IAAA;IACA,IAAIF,MAAM,CAACG,eAAe,EAAE;MAC1B,MAAMH,MAAM,CAACI,cAAc;AAC7B,IAAA;AACF,EAAA;AAEA,EAAA,IAAIR,uBAAuB,CAACK,MAAM,CAACC,OAAO,EAAE;AAC1C,IAAA;AACF,EAAA;EAEA,IAAI,CAAC1G,QAAQ,GAAG0D,OAAO;AAEvB4C,EAAAA,sBAAA,CAAA,IAAI,iCAAuB,IAAI,CAACO,SAAS,CAAC,IAAI,CAAC,EAAA,GAAA,CAAA;EAE/C,MAAM;AAAEC,IAAAA;GAAO,GAAG,IAAI,CAACpF,eAAe,CAACqF,QAAQ,CAAC,CAAC,GAAGhH,sBAAA,CAAA,IAAI,qCAAO,CAACwG,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAChGO,EAAAA,KAAK,CAACE,OAAO,CAAEnB,CAAC,IAAI;IAClBA,CAAC,CAACoB,EAAE,GAAGpB,CAAC,CAACoB,EAAE,IAAI,CAAA,EAAGlH,sBAAA,CAAA,IAAI,EAAAL,0BAAA,EAAA,GAAA,CAAI,CAAA,QAAA,EAAW,IAAI,CAACgC,eAAe,CAAC+D,KAAK,CAACyB,OAAO,CAACrB,CAAC,CAAC,CAAA,CAAE;IAC5EZ,cAAc,CAACY,CAAC,EAAE,2BAA2B,EAAE,IAAI,CAACtD,sBAAsB,CAAC;AAC7E,EAAA,CAAC,CAAC;EAEF,IAAIxC,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AACd,IAAA,MAAM8C,KAAK,GAAGnD,sBAAA,CAAA,IAAI,gFAAe,CAAAa,IAAA,CAAnB,IAAI,CAAiB;IACnCb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC+G,eAAe,CAAC,GAAGpH,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,CAACkH,UAAU,CAAC;IACrD,IAAI,CAACrH,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA0E,0CAAA,CAAgB,EAAE;AACzBrF,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,IAAA,CAAC,MAAM;MACLb,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAiB,CAAAzG,IAAA,CAArB,IAAI,EAAkBb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE8C,KAAK,CAAC;AAC1C,IAAA;AACF,EAAA;AACF,CAAC;;EAICoD,sBAAA,CAAA,IAAI,EAAAnG,0CAAA,EAAuB,IAAI,EAAA,GAAA,CAAA;AAC/BJ,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;AAClB,CAAC;;EAIC0F,sBAAA,CAAA,IAAI,EAAAjG,4CAAA,EAAyB,IAAI,EAAA,GAAA,CAAA;AACnC,CAAC;;EAICiG,sBAAA,CAAA,IAAI,EAAA/F,gCAAA,EAAa,IAAI,EAAA,GAAA,CAAA;EACrB+F,sBAAA,CAAA,IAAI,EAAAnG,0CAAA,EAAuB,IAAI,EAAA,GAAA,CAAA;AAE/B,EAAA,IAAI,IAAI,CAACuD,OAAO,CAACoC,MAAM,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAClC,OAAQ,CAAC0D,QAAQ,EAAE;AAC1E,IAAA,IAAI,CAACC,aAAa,CAChB,IAAIC,WAAW,CAAmB,OAAO,EAAE;AACzCC,MAAAA,MAAM,EAAE;AAAEC,QAAAA,IAAI,EAAE3H,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAEC,KAAK,IAAI;OAAI;AAC1CkD,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,QAAQ,EAAE;AACX,KAAA,CAAC,CACH;AACH,EAAA;AAEA7H,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;AAClB,CAAC;;EAIC0F,sBAAA,CAAA,IAAI,EAAA/F,gCAAA,EAAa,KAAK,EAAA,GAAA,CAAA;EACtB,IAAI,CAACR,sBAAA,CAAA,IAAI,EAAAM,4CAAA,EAAA,GAAA,CAAsB,EAAE;AAC/BN,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,EAAA;EACA0F,sBAAA,CAAA,IAAI,EAAAjG,4CAAA,EAAyB,KAAK,EAAA,GAAA,CAAA;AACpC,CAAC;mFAGYe,CAAQ,EAAA;AACnB,EAAA,IAAI,CAACrB,sBAAA,CAAA,IAAI,4EAAO,IAAIqB,CAAC,CAACyG,gBAAgB,EAAE;AAExC,EAAA,IAAI,CAACN,aAAa,CAChB,IAAIC,WAAW,CAAmB,OAAO,EAAE;AACzCC,IAAAA,MAAM,EAAE;MAAEC,IAAI,EAAE3H,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC;KAAO;AACnCkD,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,QAAQ,EAAE;AACX,GAAA,CAAC,CACH;EAEDtB,sBAAA,CAAA,IAAI,EAAAhG,oCAAA,EAAiB,IAAI,EAAA,GAAA,CAAA;EACzB,IAAI;IACF,IAAI,CAACP,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AACfL,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;AAClB,IAAA,CAAC,MAAM;AACLb,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAgE,qCAAA,CAAe,CAAA9D,IAAA,CAAnB,IAAI,CAAiB;MACrB,IAAI,CAACb,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA0E,0CAAA,CAAgB,EAAE;AACzBrF,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,MAAA;AACF,IAAA;AACF,EAAA,CAAC,SAAS;IACR0F,sBAAA,CAAA,IAAI,EAAAhG,oCAAA,EAAiB,KAAK,EAAA,GAAA,CAAA;AAC1BP,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAE2D,wBAAwB,CAAC,IAAI,CAAC;AACjD,EAAA;AACF,CAAC;;AAIC,EAAA,IAAI/H,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,IAAI,IAAI,CAAChC,QAAQ,IAAI,CAACzC,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAiF,mCAAA,CAAS,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACkC,QAAQ,IAAI,CAAClC,CAAC,CAAC3D,QAAQ,CAAC,EAAE;AACzFnC,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC,KAAK,GAAG,EAAE;AACxB,EAAA;AACF,CAAC;uFAGcrD,CAAgB,EAAA;EAC7B,IAAIA,CAAC,CAACyG,gBAAgB,EAAE;EAExBvB,sBAAA,CAAA,IAAI,EAAAnG,0CAAA,EAAuB,KAAK,EAAA,GAAA,CAAA;EAEhC,QAAQiB,CAAC,CAAC4G,GAAG;AACX,IAAA,KAAK,WAAW;AAChB,IAAA,KAAK,QAAQ;MACX,IAAIjI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,IAAI,CAACzE,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC,KAAK,EAAE;AACrC1E,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,MAAA;AACA,MAAA;AAEF,IAAA,KAAK,OAAO;AACV,MAAA,IAAIb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,IAAI,IAAI,CAACsB,eAAe,CAACW,UAAU,EAAE;QACjDjB,CAAC,CAAC6G,cAAc,EAAE;AAClBlI,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAwH,oCAAA,CAAc,CAAAtH,IAAA,CAAlB,IAAI,EAAe,IAAI,CAACc,eAAe,CAACW,UAAU,CAAC;AACnD,QAAA,IAAI,CAAC8F,oBAAoB,EAAE,EAAE;AAC3BC,UAAAA,UAAU,CAAC,MAAMrI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY,EAAE,GAAG,CAAC;AACzC,QAAA,CAAC,MAAM;AACLb,UAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,QAAA;MACF,CAAC,MAAM,IAAIb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AACrBgI,QAAAA,UAAU,CAAC,MAAK;UACd,IAAIrI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,IAAI,CAACzE,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC,KAAK,EAAE;AACrC1E,YAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,UAAA;AACF,QAAA,CAAC,CAAC;AACJ,MAAA;AACA,MAAA;AAEF,IAAA,KAAK,QAAQ;AACb,IAAA,KAAK,KAAK;AACRb,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAChB,MAAA;AAEF,IAAA,KAAK,IAAI;AACT,IAAA,KAAK,SAAS;MACZ,IAAIQ,CAAC,CAACiH,MAAM,EAAE;AACZtI,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,MAAA,CAAC,MAAM;AACL,QAAA,IAAI,CAACc,eAAe,CAAC4G,SAAS,CAAClH,CAAC,CAAC;AACnC,MAAA;AACA,MAAA;AAEF,IAAA,KAAK,MAAM;AACX,IAAA,KAAK,WAAW;MACd,IAAI,CAACrB,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AACfL,QAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2E,gCAAA,CAAU,CAAAzE,IAAA,CAAd,IAAI,CAAY;QAChBQ,CAAC,CAAC6G,cAAc,EAAE;AACpB,MAAA,CAAC,MAAM;AACL,QAAA,IAAI,CAACvG,eAAe,CAAC4G,SAAS,CAAClH,CAAC,CAAC;AACnC,MAAA;AACA,MAAA;AAEF,IAAA;AACE,MAAA,IAAI,CAACM,eAAe,CAAC4G,SAAS,CAAClH,CAAC,CAAC;AACjC,MAAA;AACJ;AACF,CAAC;uGAGsBA,CAAe,EAAA;AACpC,EAAA,IAAIA,CAAC,CAACmH,MAAM,KAAK,CAAC,EAAE;EACpBnH,CAAC,CAAC6G,cAAc,EAAE;EAClB7G,CAAC,CAACoH,wBAAwB,EAAE;EAE5B,MAAMhC,MAAM,GACVpF,CAAC,CAACqH,YAAY,EAAE,CAACC,IAAI,CAAE7C,CAAC,IAAKA,CAAC,YAAY8C,WAAW,IAAI9C,CAAC,CAAC+C,OAAO,KAAK,YAAY,CACpF;AAED,EAAA,IAAIpC,MAAM,IAAI,CAACA,MAAM,CAACtE,QAAQ,EAAE;AAC9B,IAAA,IAAI,CAACR,eAAe,CAACmH,aAAa,CAACrC,MAAM,CAAC;AAC1CzG,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAwH,oCAAA,CAAc,CAAAtH,IAAA,CAAlB,IAAI,EAAe4F,MAAM,CAAC;AAC1B,IAAA,IAAI,CAAC2B,oBAAoB,EAAE,EAAE;AAC3BC,MAAAA,UAAU,CAAC,MAAMrI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,MAAM;AACLb,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAkE,gCAAA,CAAU,CAAAhE,IAAA,CAAd,IAAI,CAAY;AAClB,IAAA;AACF,EAAA;AACF,CAAC;6FAGiBQ,CAAc,EAAA;EAC9B,IAAI,CAACrB,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;AAEjB,EAAA,IAAIgB,CAAC,CAAC0H,QAAQ,KAAK,QAAQ,EAAE;IAC3B,MAAMtC,MAAM,GAAGzG,sBAAA,CAAA,IAAI,8EAAS,CAAC2I,IAAI,CAAE7C,CAAC,IAAKA,CAAC,CAACkC,QAAQ,IAAI,CAAClC,CAAC,CAAC3D,QAAQ,CAAC;AACnE,IAAA,IAAIsE,MAAM,EAAE;AACV,MAAA,IAAI,CAAC9E,eAAe,CAACmH,aAAa,CAACrC,MAAM,CAAC;MAC1CuC,sBAAsB,CAACvC,MAAM,EAAEzG,uBAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC;AAC5C,IAAA,CAAC,MAAM;AACLL,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAsI,oCAAA,CAAc,CAAApI,IAAA,CAAlB,IAAI,CAAgB;AACtB,IAAA;AAEA,IAAA,IAAI,CAAC2G,aAAa,CAChB,IAAI0B,WAAW,CAAC,QAAQ,EAAE;MACxBC,QAAQ,EAAE9H,CAAC,CAAC8H,QAAQ;MACpBJ,QAAQ,EAAE1H,CAAC,CAAC0H;AACb,KAAA,CAAC,CACH;AACH,EAAA,CAAC,MAAM;IACL,IAAIX,oBAAoB,EAAE,EAAE;AAC1BpI,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyI,mCAAA,CAAa,CAAAvI,IAAA,CAAjB,IAAI,EAAcQ,CAAC,CAAC;AACtB,IAAA,CAAC,MAAM;AACL;AACA;MACAgH,UAAU,CAAC,MAAMrI,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyI,mCAAA,CAAa,CAAAvI,IAAA,CAAjB,IAAI,EAAcQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7C,IAAA;AACF,EAAA;AACF,CAAC;mFAGYA,CAAc,EAAA;EACzB,IAAI,CAACrB,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;EAEjBL,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,EAAEiH,eAAe,CAAC,GAAGpH,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAACgH,UAAU,CAAC;EAEtDrH,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAACgJ,MAAM,EAAE;EACnBrJ,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAACiE,mBAAmB,CAAC,QAAQ,EAAEtE,sBAAA,CAAA,IAAI,EAAAyB,yCAAA,EAAA,GAAA,CAAmB,CAAC;EACjEzB,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAACiE,mBAAmB,CAAC,aAAa,EAAEtE,sBAAA,CAAA,IAAI,EAAA0B,8CAAA,EAAA,GAAA,CAAwB,CAAC;EAC3E6E,sBAAA,CAAA,IAAI,EAAAlG,4BAAA,EAASiJ,SAAS,EAAA,GAAA,CAAA;EAEtB,IAAItJ,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE;AACfzE,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACP,YAAY,GAAG,OAAO;AAClClE,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAAC8E,eAAe,CAAC,eAAe,CAAC;AAC5CvJ,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAAC8E,eAAe,CAAC,WAAW,CAAC;AAC1C,EAAA;EACA,IAAI,CAACC,aAAa,EAAE;AAEpBxJ,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAE2D,wBAAwB,EAAE;AAE3C,EAAA,IAAI,CAACP,aAAa,CAChB,IAAI0B,WAAW,CAAC,QAAQ,EAAE;IACxBC,QAAQ,EAAE9H,CAAC,CAAC8H,QAAQ;IACpBJ,QAAQ,EAAE1H,CAAC,CAAC0H;AACb,GAAA,CAAC,CACH;AACH,CAAC;;EAIC,IAAI/I,uBAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,IAAI,CAACL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,IAAIzE,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAAC8C,QAAQ,IAAIvH,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACtC,QAAQ,EAAE;AAEhF,EAAA,MAAMgB,KAAK,GAAGnD,sBAAA,CAAA,IAAI,gFAAe,CAAAa,IAAA,CAAnB,IAAI,CAAiB;EAEnC,IAAI,CAACb,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA0E,0CAAA,CAAgB,EAAE;AAE3BkB,EAAAA,sBAAA,CAAA,IAAI,gCAASkD,QAAQ,CAACC,aAAa,CAAC,kBAAkB,CAAC,EAAA,GAAA,CAAA;AACvD1J,EAAAA,sBAAA,CAAA,IAAI,oCAAM,CAACkH,EAAE,GAAGlH,sBAAA,CAAA,IAAI,sCAAQ;EAE5B,IAAI,IAAI,CAACoD,UAAU,EAAE;IACnB,KAAK,MAAMuG,KAAK,IAAI,IAAI,CAACvG,UAAU,CAChCwG,KAAK,CAAC,KAAK,CAAC,CACZC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,EAAE,CAAC,CACpBnH,MAAM,CAACoH,OAAO,CAAC,EAAE;AAClBhK,MAAAA,sBAAA,CAAA,IAAI,oCAAM,CAACiK,SAAS,CAACC,GAAG,CAACP,KAAK,CAAC;AACjC,IAAA;AACF,EAAA;EAEA3J,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC8J,cAAc,GAAG,YAAY;AACxCnK,EAAAA,sBAAA,CAAA,IAAI,oCAAM,CAACoK,KAAK,CAACC,SAAS,GAAG,QAAQ;EACrCrK,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC+J,KAAK,CAACE,QAAQ,GAAGtK,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA4J,wCAAA,CAAc;EAC9CvK,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC8D,gBAAgB,CAAC,QAAQ,EAAEnE,sBAAA,CAAA,IAAI,EAAAyB,yCAAA,EAAA,GAAA,CAAmB,CAAC;EAC9DzB,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC8D,gBAAgB,CAAC,aAAa,EAAEnE,sBAAA,CAAA,IAAI,EAAA0B,8CAAA,EAAA,GAAA,CAAwB,CAAC;EAExE,IAAI1B,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,EAAE;AACf,IAAA,MAAMqK,QAAQ,GAAG,CAAC,GAAGxK,sBAAA,CAAA,IAAI,EAAAG,6BAAA,EAAA,GAAA,CAAO,CAACkH,UAAU,CAAC;AAC5C,IAAA,IAAI,CAACrH,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8J,yCAAA,CAAe,IAAI,IAAI,CAACxH,WAAW,EAAE;AAC5C,MAAA,MAAMyH,UAAU,GAAGjB,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MACjDgB,UAAU,CAACC,IAAI,GAAG,SAAS;AAC3BD,MAAAA,UAAU,CAACE,WAAW,GAAG,IAAI,CAAC3H,WAAW;AACzCuH,MAAAA,QAAQ,CAACK,IAAI,CAACH,UAAU,CAAC;AAC3B,IAAA;AACA,IAAA,IAAI,CAAC1K,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAmK,0CAAA,CAAgB,IAAI,IAAI,CAAC9H,YAAY,EAAE;AAC9C,MAAA,MAAM+H,WAAW,GAAGtB,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MAClDqB,WAAW,CAACJ,IAAI,GAAG,SAAS;AAC5BI,MAAAA,WAAW,CAACH,WAAW,GAAG,IAAI,CAAC5H,YAAY;AAC3CwH,MAAAA,QAAQ,CAACK,IAAI,CAACE,WAAW,CAAC;AAC5B,IAAA;AACA/K,IAAAA,sBAAA,CAAA,IAAI,oCAAM,CAACoH,eAAe,CAAC,GAAGoD,QAAQ,CAAC;AACzC,EAAA;EAEAxK,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAiB,CAAAzG,IAAA,CAArB,IAAI,EAAkBb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE8C,KAAK,CAAC;AAExC,EAAA,CAACnD,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,IAAIpE,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAEuG,qBAAqB,CAAC,UAAU,EAAEhL,uBAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,CAAC;EAE9EL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACwG,YAAY,CAAC,eAAe,EAAEjL,sBAAA,CAAA,IAAI,EAAAD,8BAAA,EAAA,GAAA,CAAQ,CAAC;EACvDC,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACwG,YAAY,CAAC,WAAW,EAAEjL,sBAAA,CAAA,IAAI,EAAAD,8BAAA,EAAA,GAAA,CAAQ,CAAC;AAEnDC,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAE2D,wBAAwB,EAAE;EAE3C,IAAI,IAAI,CAACpG,eAAe,CAACW,UAAU,IAAI,IAAI,CAACI,YAAY,EAAE;IACxD1C,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA4B,sCAAA,CAAgB,CAAA1B,IAAA,CAApB,IAAI,EAAiB,IAAI,CAACc,eAAe,CAACW,UAAU,EAAE,IAAI,CAAC;AAC7D,EAAA;EAEA,MAAM4I,KAAK,GAAGlL,sBAAA,CAAA,IAAI,4EAAO;AACzBqI,EAAAA,UAAU,CAAC,MAAMrI,sBAAA,CAAA,IAAI,oCAAM,EAAEmL,IAAI,CAACD,KAAK,EAAElL,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAE6B,UAAU,CAAC,CAAC;AACxE,CAAC;AAGgBqB,uCAAA,GAAA,SAAAA,uCAAAA,CAAA8D,IAA2B,EAAEjI,KAAa,EAAA;EACzD+B,cAAc,CAACkG,IAAI,EAAE,UAAU,EAAE,IAAI,CAACvI,OAAO,CAAC;EAC9CqC,cAAc,CAACkG,IAAI,EAAE,UAAU,EAAEjI,KAAK,IAAI,CAAC,CAAC;AAC9C,CAAC;;EAICnD,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAEgL,IAAI,EAAE;AAClBrL,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE8E,eAAe,CAAC,uBAAuB,CAAC;AACvD,CAAC;yFAGe9C,MAAwB,EAAE6E,iBAAiB,GAAG,KAAK,EAAA;EACjE,IAAI,CAACtL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE;AAElBzE,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACwG,YAAY,CAAC,uBAAuB,EAAExE,MAAM,CAACS,EAAE,CAAC;EAE5D,IAAIlH,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;IACd2I,sBAAsB,CAACvC,MAAM,EAAEzG,sBAAA,CAAA,IAAI,oCAAM,EAAE;AAAEuL,MAAAA,KAAK,EAAE,SAAS;AAAEC,MAAAA,QAAQ,EAAE;AAAS,KAAE,CAAC;AAErF,IAAA,MAAMC,YAAY,GAChBH,iBAAiB,IAChB,CAACtL,sBAAA,CAAA,IAAI,kDAAoB,KAAKA,uBAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACiH,OAAO,CAAC,gBAAgB,CAAC,IAAIC,kBAAkB,EAAE,CAAE;AAEhG3L,IAAAA,sBAAA,CAAA,IAAI,8EAAS,CAACiH,OAAO,CAAEnB,CAAC,IAAI;AAC1B,MAAA,MAAM8F,MAAM,GAAG9F,CAAC,KAAKW,MAAM,IAAIgF,YAAY;AAC3C,MAAA,IAAIG,MAAM,EAAE;AACV9F,QAAAA,CAAC,CAAC+F,SAAS,EAAEV,IAAI,EAAE;AACnBrF,QAAAA,CAAC,CAACgG,UAAU,EAAEX,IAAI,CAAC,SAAS,CAAC;AAC/B,MAAA,CAAC,MAAM;AACLrF,QAAAA,CAAC,CAAC+F,SAAS,EAAER,IAAI,EAAE;AACnBvF,QAAAA,CAAC,CAACgG,UAAU,EAAET,IAAI,CAAC,SAAS,CAAC;AAC/B,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;AACF,CAAC;;AAGD,4DAA4BU,KAAuB,EAAA;AACjD,EAAA,MAAMtF,MAAM,GAAG,IAAI,CAACxG,QAAQ,CAAC,IAAI,CAAC0B,eAAe,CAAC+D,KAAK,CAACyB,OAAO,CAAC4E,KAAK,CAAC,CAAC;AACvE,EAAA,IAAItF,MAAM,EAAE;AACVA,IAAAA,MAAM,CAACuB,QAAQ,GAAG+D,KAAK,CAAC/D,QAAQ;IAChC,IAAIvB,MAAM,CAACG,eAAe,EAAE;MAC1B,MAAMH,MAAM,CAACI,cAAc;AAC7B,IAAA;AACF,EAAA;AACF,CAAC;;AAGD,oDAAoBJ,MAAwB,EAAA;EAC1C,IAAIA,MAAM,CAACuB,QAAQ,EAAE;EAErBvB,MAAM,CAACuB,QAAQ,GAAG,IAAI;AACtB,EAAA,MAAMhI,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAqL,4CAAA,CAAsB,CAAAnL,IAAA,CAA1B,IAAI,EAAuB4F,MAAM,CAAC;EACxC,IAAIA,MAAM,CAACG,eAAe,EAAE;IAC1B,MAAMH,MAAM,CAACI,cAAc;AAC7B,EAAA;EAEA,IAAI,CAAC2C,aAAa,EAAE;EACpB,IAAI,IAAI,CAAC5C,eAAe,EAAE;IACxB,MAAM,IAAI,CAACC,cAAc;AAC3B,EAAA;EAEA,IAAI7G,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE;AACfzE,IAAAA,sBAAA,CAAA,IAAI,4EAAO,CAAC0E,KAAK,GAAG+B,MAAM,CAAC/B,KAAK;AAClC,EAAA;AAEA1E,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAyD,qCAAA,CAAW,EAAE2D,wBAAwB,CAAC,IAAI,CAAC;AACjD,CAAC;AAGakE,oCAAA,GAAA,SAAAA,oCAAAA,CAAAF,KAAuB,EAAEtF,MAAwB,EAAEkB,IAAY,EAAEuE,SAAiB,EAAA;AAC9F,EAAA,MAAMxH,KAAK,GAAG,IAAI,CAAC/B,aAAa,GAAG8D,MAAM,CAAC/B,KAAK,GAAG+B,MAAM,CAAC/B,KAAK,CAACyH,WAAW,EAAE;EAC5E,QAAQ,IAAI,CAACvJ,MAAM;AACjB,IAAA,KAAK,aAAa;MAChBmJ,KAAK,CAACpE,IAAI,GAAGuE,SAAS;AACtBH,MAAAA,KAAK,CAACK,aAAa,GAAG,IAAI,CAACxJ,MAAM;AACjC,MAAA,OAAO8B,KAAK,CAAC2H,UAAU,CAAC1E,IAAI,CAAC;AAC/B,IAAA,KAAK,WAAW;MACdoE,KAAK,CAACpE,IAAI,GAAGuE,SAAS;AACtBH,MAAAA,KAAK,CAACK,aAAa,GAAG,IAAI,CAACxJ,MAAM;AACjC,MAAA,OAAO8B,KAAK,CAAC4H,QAAQ,CAAC3E,IAAI,CAAC;AAC7B,IAAA,KAAK,UAAU;MACboE,KAAK,CAACpE,IAAI,GAAGuE,SAAS;AACtBH,MAAAA,KAAK,CAACK,aAAa,GAAG,IAAI,CAACxJ,MAAM;AACjC,MAAA,OAAO8B,KAAK,CAAC6H,QAAQ,CAAC5E,IAAI,CAAC;AAC7B,IAAA,KAAK,MAAM;MACToE,KAAK,CAACS,gBAAgB,GAAG,IAAI;AAC7B,MAAA,OAAO,IAAI;AACb,IAAA;MACET,KAAK,CAACS,gBAAgB,GAAG,IAAI;AAC7B,MAAA,OAAO,IAAI,CAAC5J,MAAM,CAAC6D,MAAM,EAAEyF,SAAS,CAAC;AACzC;AACF,CAAC;;AAIC,EAAA,IAAI,CAAClM,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE,OAAO,CAAC;EAE1B,MAAMgI,QAAQ,GAAGzM,sBAAA,CAAA,IAAI,8EAAS,CAAC4C,MAAM,CAAEkD,CAAC,IAAK,CAACA,CAAC,CAAC1D,MAAM,CAAC,CAAC2D,MAAM;AAC9D,EAAA,MAAM2G,cAAc,GAAG,CAAC,IAAI,CAAC7J,OAAO,IAAI7C,sBAAA,CAAA,IAAI,EAAAO,oCAAA,EAAA,GAAA,CAAc;EAC1DgG,sBAAA,CAAA,IAAI,EAAAhG,oCAAA,EAAiB,KAAK,EAAA,GAAA,CAAA;AAE1B,EAAA,MAAM2L,SAAS,GAAGlM,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,CAACC,KAAK;AACnC,EAAA,MAAMiD,IAAI,GAAG,IAAI,CAAChF,aAAa,GAAGuJ,SAAS,GAAGA,SAAS,CAACS,iBAAiB,EAAE;EAE3E,IAAIC,QAAQ,GAAG,CAAC;EAChB,IAAIC,KAAK,GAAG,KAAK;AACjB,EAAA,IAAIC,IAAkC;EAEtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/M,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAiF,mCAAA,CAAS,CAACG,MAAM,EAAEgH,CAAC,EAAE,EAAE;AAC7C,IAAA,MAAMhB,KAAK,GAAG/L,sBAAA,CAAA,IAAI,8EAAS,CAAC+M,CAAC,CAAC;AAC9B,IAAA,MAAMtG,MAAM,GAAG,IAAI,CAACxG,QAAQ,CAAC8M,CAAC,CAAC;IAC/BhB,KAAK,CAAC3J,MAAM,GAAG,CAACpC,sBAAA,CAAA,IAAI,+EAAc,CAAAa,IAAA,CAAlB,IAAI,EAAekL,KAAK,EAAEtF,MAAM,EAAEkB,IAAI,EAAEuE,SAAS,CAAC;IAElE,IAAIH,KAAK,CAAC3J,MAAM,EAAE;AAChBpC,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAqM,wCAAA,CAAkB,CAAAnM,IAAA,CAAtB,IAAI,EAAmBkL,KAAK,CAAC;AAC7BxG,MAAAA,iBAAiB,CAACwG,KAAK,EAAE,QAAQ,CAAC;AAClCxG,MAAAA,iBAAiB,CAACwG,KAAK,EAAE,OAAO,CAAC;AACnC,IAAA,CAAC,MAAM;AACLa,MAAAA,QAAQ,EAAE;MACV,IAAI,CAACC,KAAK,IAAI,EAAEd,KAAK,CAACkB,aAAa,YAAYC,kBAAkB,CAAC,EAAE;AAClEC,QAAAA,cAAc,CAACpB,KAAK,EAAE,QAAQ,CAAC;AAC/Bc,QAAAA,KAAK,GAAG,IAAI;AACZM,QAAAA,cAAc,CAACpB,KAAK,EAAE,OAAO,CAAC;AAC9Be,QAAAA,IAAI,GAAGf,KAAK;AACd,MAAA,CAAC,MAAM;AACLxG,QAAAA,iBAAiB,CAACwG,KAAK,EAAE,QAAQ,CAAC;AAClC,QAAA,IAAIe,IAAI,EAAE;AACRvH,UAAAA,iBAAiB,CAACuH,IAAI,EAAE,OAAO,CAAC;AAClC,QAAA;AACAK,QAAAA,cAAc,CAACpB,KAAK,EAAE,OAAO,CAAC;AAC9Be,QAAAA,IAAI,GAAGf,KAAK;AACd,MAAA;AACF,IAAA;IAEA,IAAIA,KAAK,CAAC/D,QAAQ,IAAIvB,MAAM,CAAC/B,KAAK,KAAKwH,SAAS,EAAE;MAChDH,KAAK,CAAC/D,QAAQ,GAAG,KAAK;AACtBhI,MAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAqL,4CAAA,CAAsB,CAAAnL,IAAA,CAA1B,IAAI,EAAuBkL,KAAK,CAAC;AACnC,IAAA;AACF,EAAA;EAEA,IAAI/L,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;IACdL,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA2G,uCAAA,CAAiB,CAAAzG,IAAA,CAArB,IAAI,EAAkBb,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAEuM,QAAQ,CAAC;AAC7C,EAAA;AAEA,EAAA,MAAMQ,MAAM,GAAGpN,sBAAA,CAAA,IAAI,oCAAM,EAAEwG,gBAAgB,CAAC,cAAc,CAAC,IAAIxG,sBAAA,CAAA,IAAI,qCAAO,EAAEwG,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE;AAClH,EAAA,KAAK,MAAM6G,KAAK,IAAID,MAAM,EAAE;IAC1BC,KAAK,CAACjL,MAAM,GAAG,CAAC,GAAGiL,KAAK,CAAC7G,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC8G,KAAK,CAAExH,CAAC,IAAKA,CAAC,CAAC1D,MAAM,CAAC;AACjF,EAAA;AAEA,EAAA,IAAIsK,cAAc,EAAE;AAClB1M,IAAAA,sBAAA,CAAA,IAAI,kFAAiB,CAAAa,IAAA,CAArB,IAAI,EAAkB4L,QAAQ,EAAEG,QAAQ,CAAC;AAC3C,EAAA;AAEA5M,EAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAAsI,oCAAA,CAAc,CAAApI,IAAA,CAAlB,IAAI,CAAgB;AACpB,EAAA,OAAO+L,QAAQ;AACjB,CAAC;AAGgBW,uCAAA,GAAA,SAAAA,uCAAAA,CAAAd,QAAgB,EAAEG,QAAgB,EAAA;EACjD,IAAI,CAAC5M,sBAAA,CAAA,IAAI,EAAAQ,gCAAA,EAAA,GAAA,CAAU,EAAE;EACrB,IAAIoM,QAAQ,IAAI,CAAC,EAAE;AACjB,IAAA,IAAIH,QAAQ,GAAG,CAAC,IAAI,IAAI,CAACxJ,WAAW,EAAE;MACpCkC,gBAAgB,CAACC,QAAQ,CAAC,IAAI,CAACnC,WAAW,EAAE,QAAQ,CAAC;AACvD,IAAA;AACF,EAAA,CAAC,MAAM,IAAIwJ,QAAQ,IAAIG,QAAQ,EAAE;AAC/B,IAAA,MAAMY,OAAO,GAAG,IAAI,CAACtK,YAAY,YAAYuK,QAAQ,GAAG,IAAI,CAACvK,YAAY,CAAC0J,QAAQ,CAAC,GAAG,IAAI,CAAC1J,YAAY;AACvG,IAAA,IAAIsK,OAAO,EAAE;AACXrI,MAAAA,gBAAgB,CAACC,QAAQ,CAACoI,OAAO,EAAE,QAAQ,CAAC;AAC9C,IAAA;AACF,EAAA;AACF,CAAC;;EAIC,IAAI,IAAI,CAAC9K,YAAY,KAAK,CAAC,IAAI,CAACf,eAAe,CAACW,UAAU,IAAI,CAAC,IAAI,CAACX,eAAe,CAACW,UAAU,CAAC0F,QAAQ,CAAC,EAAE;IACxG,MAAMvB,MAAM,GAAGzG,sBAAA,CAAA,IAAI,8EAAS,CAAC2I,IAAI,CAAE7C,CAAC,IAAK,CAACA,CAAC,CAAC3D,QAAQ,IAAI,CAAC2D,CAAC,CAAC1D,MAAM,CAAC;AAClE,IAAA,IAAIqE,MAAM,EAAE;AACV,MAAA,IAAI,CAAC9E,eAAe,CAACmH,aAAa,CAACrC,MAAM,CAAC;MAC1C,IAAIzG,sBAAA,CAAA,IAAI,EAAAK,4BAAA,EAAA,GAAA,CAAM,EAAE;QACd2I,sBAAsB,CAACvC,MAAM,EAAEzG,sBAAA,CAAA,IAAI,oCAAM,EAAE;AAAEuL,UAAAA,KAAK,EAAE,SAAS;AAAEC,UAAAA,QAAQ,EAAE;AAAS,SAAE,CAAC;AACvF,MAAA;AACF,IAAA;AACF,EAAA;AACF,CAAC;6FAGiB/E,MAAwB,EAAA;AACxCA,EAAAA,MAAM,CAACoF,SAAS,EAAER,IAAI,EAAE;AACxB5E,EAAAA,MAAM,CAACqF,UAAU,EAAET,IAAI,CAAC,SAAS,CAAC;AAClC,EAAA,IAAI5E,MAAM,KAAK,IAAI,CAAC9E,eAAe,CAACW,UAAU,EAAE;AAC9C,IAAA,IAAI,CAACX,eAAe,CAAC+L,gBAAgB,CAAC,IAAI,CAAC;AAC3C1N,IAAAA,sBAAA,CAAA,IAAI,EAAAW,iCAAA,EAAA,GAAA,EAAA8D,iCAAA,CAAO,EAAE8E,eAAe,CAAC,uBAAuB,CAAC;AACvD,EAAA;AACF,CAAC;AA9xBD;AACgBhK,sBAAA,CAAAoO,MAAM,GAAmBC,GAAG,CAAA,wDAAA,CAAtB;AAStB;AAA+BrO,sBAAA,CAAAO,QAAQ,GAAG,CAAC;AAmDyB+N,UAAA,CAAA,CAAnEC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE,0BAA0B;AAAEC,EAAAA,IAAI,EAAEhE;AAAO,CAAE,CAAC,CAAgC,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,wBAAA,EAAA,MAAA,CAAA;AAMvDJ,UAAA,CAAA,CAA3CC,QAAQ,CAAC;AAAEE,EAAAA,IAAI,EAAEhE,OAAO;AAAEkE,EAAAA,OAAO,EAAE;AAAI,CAAE,CAAC,CAAkB,EAAA3O,sBAAA,CAAA0O,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMJJ,UAAA,CAAA,CAAxDC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE,eAAe;AAAEC,EAAAA,IAAI,EAAEhE;AAAO,CAAE,CAAC,CAAsB,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAMpBJ,UAAA,CAAA,CAAzDC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE,gBAAgB;AAAEC,EAAAA,IAAI,EAAEhE;AAAO,CAAE,CAAC,CAAuB,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;AAiBhFJ,UAAA,CAAA,CAXCC,QAAQ,CAAC;AACRK,EAAAA,SAAS,EAAE;IACTC,aAAaA,CAAC1J,KAAoB,EAAA;AAChC,MAAA,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU;AACrC,MAAA,IAAIA,KAAK,KAAK,aAAa,IAAIA,KAAK,KAAK,WAAW,IAAIA,KAAK,KAAK,UAAU,IAAIA,KAAK,KAAK,MAAM,EAAE;AAChG,QAAA,OAAOA,KAAK;AACd,MAAA;AACA,MAAA,OAAO,UAAU;AACnB,IAAA;AACD;CACF,CAAC,CACkG,EAAAnF,sBAAA,CAAA0O,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMvEJ,UAAA,CAAA,CAA5BC,QAAQ,CAAC;AAAEE,EAAAA,IAAI,EAAEhE;CAAS,CAAC,CAAiB,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMWJ,UAAA,CAAA,CAAvDC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE,cAAc;AAAEC,EAAAA,IAAI,EAAEhE;AAAO,CAAE,CAAC,CAAoB,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMnBJ,UAAA,CAAA,CAAvDC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE,cAAc;AAAEC,EAAAA,IAAI,EAAEhE;AAAO,CAAE,CAAC,CAAqB,EAAAzK,sBAAA,CAAA0O,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMlCJ,UAAA,CAAA,CAAzCC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE;CAAiB,CAAC,CAA6B,EAAAxO,sBAAA,CAAA0O,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAM5BJ,UAAA,CAAA,CAAzCC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE;CAAiB,CAAC,CAA4B,EAAAxO,sBAAA,CAAA0O,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAM3BJ,UAAA,CAAA,CAAzCC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE;CAAiB,CAAC,CACpB,EAAAxO,sBAAA,CAAA0O,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAMmBJ,UAAA,CAAA,CAAvCC,QAAQ,CAAC;AAAEC,EAAAA,SAAS,EAAE;CAAe,CAAC,CAAiB,EAAAxO,sBAAA,CAAA0O,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AA5I7C1O,sBAAsB,GAAAM,wBAAA,GAAAgO,UAAA,CAAA,CADlCQ,aAAa,CAAC,kBAAkB,CAAC,CACrB,EAAA9O,sBAAsB,CAgyBlC;;;;"}
|
package/dist/autocomplete.min.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright (c) 2025 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
|
-
import{LitElement as t,html as e,css as i}from"lit";import{property as s}from"lit/decorators.js";import{HtmlFor as a,MutationController as n,setCustomState as o,deleteCustomState as h,customElement as l,prefersReducedMotion as r,scrollIntoViewIfNeeded as c,forcedColorsActive as d,addCustomState as f}from"@m3e/web/core";import{ListKeyManager as u,M3eLiveAnnouncer as p}from"@m3e/web/core/a11y";import{M3eOptGroupElement as m}from"@m3e/web/option";function v(t,e,i,s){var a,n=arguments.length,o=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,i,s);else for(var h=t.length-1;h>=0;h--)(a=t[h])&&(o=(n<3?a(o):n>3?a(e,i,o):a(e,i))||o);return n>3&&o&&Object.defineProperty(e,i,o),o}function g(t,e,i,s){if("a"===i&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?s:"a"===i?s.call(t):s?s.value:e.get(t)}function w(t,e,i,s,a){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?a.call(t,i):a?a.value=i:e.set(t,i),i}var y,b,L,E,M,k,A,S,_,C,K,W,D,I,P,T,q,x,N,O,U,B,j,R,$,H,F,V,X,z,G,J,Q,Y,Z,tt,et,it,st,at,nt,ot,ht,lt,rt,ct,dt,ft,ut;"function"==typeof SuppressedError&&SuppressedError;let pt=ut=class extends(a(t)){constructor(){super(),y.add(this),b.set(this,`m3e-autocomplete-${ut.__nextId}`),L.set(this,`${g(this,b,"f")}-menu`),this._options=new Array,E.set(this,void 0),M.set(this,!1),k.set(this,void 0),A.set(this,!1),S.set(this,!1),_.set(this,!1),C.set(this,void 0),K.set(this,()=>g(this,y,"m",V).call(this)),W.set(this,()=>g(this,y,"m",X).call(this)),D.set(this,()=>g(this,y,"m",z).call(this)),I.set(this,()=>g(this,y,"m",G).call(this)),P.set(this,t=>g(this,y,"m",Y).call(this,t)),T.set(this,t=>g(this,y,"m",J).call(this,t)),q.set(this,()=>g(this,y,"m",Q).call(this)),x.set(this,t=>g(this,y,"m",tt).call(this,t)),N.set(this,t=>g(this,y,"m",Z).call(this,t)),this._listKeyManager=(new u).withWrap().withHomeAndEnd().withPageUpAndDown().withVerticalOrientation().withSkipPredicate(t=>t.disabled||t.hidden).onActiveItemChange(()=>{this._listKeyManager.activeItem&&g(this,y,"m",nt).call(this,this._listKeyManager.activeItem)}),this.hideSelectionIndicator=!1,this.required=!1,this.autoActivate=!1,this.caseSensitive=!1,this.filter="contains",this.loading=!1,this.hideNoData=!1,this.hideLoading=!1,this.loadingLabel="Loading...",this.noDataLabel="No options",this.resultsLabel=t=>`${t} options`,new n(this,{config:{childList:!0,subtree:!0},callback:()=>g(this,y,"m",F).call(this)})}get options(){return this._options??[]}attach(t){t instanceof HTMLInputElement&&(super.attach(t),t.autocomplete="off",t.role="combobox",t.ariaAutoComplete="list",t.ariaExpanded="false",t.addEventListener("click",g(this,K,"f")),t.addEventListener("focus",g(this,D,"f")),t.addEventListener("blur",g(this,I,"f")),t.addEventListener("keydown",g(this,P,"f")),t.addEventListener("input",g(this,T,"f")),t.addEventListener("change",g(this,q,"f")),g(this,y,"a",H)?.addEventListener("pointerdown",g(this,W,"f")))}detach(){this.control&&(g(this,y,"a",H)?.removeEventListener("pointerdown",g(this,W,"f")),this.control.role=null,this.control.ariaAutoComplete=null,this.control.ariaExpanded=null,this.control.removeEventListener("click",g(this,K,"f")),this.control.removeEventListener("focus",g(this,D,"f")),this.control.removeEventListener("blur",g(this,I,"f")),this.control.removeEventListener("keydown",g(this,P,"f")),this.control.removeEventListener("input",g(this,T,"f")),this.control.removeEventListener("change",g(this,q,"f"))),super.detach()}clear(t=!1){g(this,y,"a",U)&&(g(this,y,"a",U).value="",g(this,y,"m",rt).call(this),t?g(this,y,"a",U).focus():g(this,y,"m",at).call(this))}connectedCallback(){super.connectedCallback(),g(this,y,"m",F).call(this)}update(t){super.update(t),t.has("hideNoData")&&this.hideNoData&&g(this,k,"f")&&o(g(this,k,"f"),"-no-data",!1),t.has("loading")&&(this.loading?g(this,_,"f")&&(this.loadingLabel&&p.announce(this.loadingLabel,"polite"),!g(this,k,"f")&&g(this,y,"a",R)&&g(this,y,"m",it).call(this)):g(this,k,"f")&&!g(this,y,"a",R)?g(this,y,"m",at).call(this):g(this,k,"f")?h(g(this,k,"f"),"-loading"):g(this,_,"f")&&g(this,y,"m",it).call(this))}render(){return e`<div class="options" aria-hidden="true"><slot></slot></div>`}};b=new WeakMap,L=new WeakMap,E=new WeakMap,M=new WeakMap,k=new WeakMap,A=new WeakMap,S=new WeakMap,_=new WeakMap,C=new WeakMap,K=new WeakMap,W=new WeakMap,D=new WeakMap,I=new WeakMap,P=new WeakMap,T=new WeakMap,q=new WeakMap,x=new WeakMap,N=new WeakMap,y=new WeakSet,O=function(){return this._listKeyManager?.items??[]},U=function(){return this.control?this.control:null},B=function(){return null!==(g(this,E,"f")?.querySelector("[slot='no-data']")??null)},j=function(){return null!==(g(this,E,"f")?.querySelector("[slot='loading']")??null)},R=function(){return g(this,y,"a",O).some(t=>!t.hidden)||this.loading&&!this.hideLoading&&this.loadingLabel.length>0||!this.loading&&!this.hideNoData&&this.noDataLabel.length>0},$=function(){const t=g(this,y,"a",H);return`${t?t.menuAnchor.clientWidth:this.control?.clientWidth??0}px`},H=function(){return this.control?.closest("m3e-form-field")??null},F=async function(){g(this,C,"f")&&g(this,C,"f").abort();const t=new AbortController;w(this,C,t,"f");const e=[...this.querySelectorAll("m3e-option")];for(const i of e){if(t.signal.aborted)break;i.isUpdatePending&&await i.updateComplete}if(t.signal.aborted)return;this._options=e,w(this,E,this.cloneNode(!0),"f");const{added:i}=this._listKeyManager.setItems([...g(this,E,"f").querySelectorAll("m3e-option")]);if(i.forEach(t=>{t.id=t.id||`${g(this,b,"f")}-option-${this._listKeyManager.items.indexOf(t)}`,o(t,"-hide-selection-indicator",this.hideSelectionIndicator)}),g(this,k,"f")){const t=g(this,y,"m",rt).call(this);g(this,k,"f").replaceChildren(...g(this,E,"f").childNodes),g(this,y,"a",R)?g(this,y,"m",st).call(this,g(this,k,"f"),t):g(this,y,"m",at).call(this)}},V=function(){w(this,M,!0,"f"),g(this,y,"m",it).call(this)},X=function(){w(this,A,!0,"f")},z=function(){w(this,_,!0,"f"),w(this,M,!0,"f"),0!=this.options.length||this.control.readOnly||this.dispatchEvent(new CustomEvent("query",{detail:{term:g(this,y,"a",U)?.value??""},bubbles:!0,composed:!0})),g(this,y,"m",it).call(this)},G=function(){w(this,_,!1,"f"),g(this,A,"f")||g(this,y,"m",at).call(this),w(this,A,!1,"f")},J=function(t){if(g(this,y,"a",U)&&!t.defaultPrevented){this.dispatchEvent(new CustomEvent("query",{detail:{term:g(this,y,"a",U).value},bubbles:!0,composed:!0})),w(this,S,!0,"f");try{g(this,k,"f")?(g(this,y,"m",rt).call(this),g(this,y,"a",R)||g(this,y,"m",at).call(this)):g(this,y,"m",it).call(this)}finally{w(this,S,!1,"f"),g(this,y,"a",H)?.notifyControlStateChange(!0)}}},Q=function(){g(this,y,"a",U)&&this.required&&!g(this,y,"a",O).some(t=>t.selected&&!t.disabled)&&(g(this,y,"a",U).value="")},Y=function(t){if(!t.defaultPrevented)switch(w(this,M,!1,"f"),t.key){case"Backspace":case"Delete":g(this,y,"a",U)&&!g(this,y,"a",U).value&&g(this,y,"m",at).call(this);break;case"Enter":g(this,k,"f")&&this._listKeyManager.activeItem?(t.preventDefault(),g(this,y,"m",ht).call(this,this._listKeyManager.activeItem),r()?g(this,y,"m",at).call(this):setTimeout(()=>g(this,y,"m",at).call(this),150)):g(this,k,"f")&&setTimeout(()=>{g(this,y,"a",U)&&!g(this,y,"a",U).value&&g(this,y,"m",at).call(this)});break;case"Escape":case"Tab":g(this,y,"m",at).call(this);break;case"Up":case"ArrowUp":t.altKey?g(this,y,"m",at).call(this):this._listKeyManager.onKeyDown(t);break;case"Down":case"ArrowDown":g(this,k,"f")?this._listKeyManager.onKeyDown(t):(g(this,y,"m",it).call(this),t.preventDefault());break;default:this._listKeyManager.onKeyDown(t)}},Z=function(t){if(2===t.button)return;t.preventDefault(),t.stopImmediatePropagation();const e=t.composedPath().find(t=>t instanceof HTMLElement&&"M3E-OPTION"===t.tagName);e&&!e.disabled&&(this._listKeyManager.setActiveItem(e),g(this,y,"m",ht).call(this,e),r()?g(this,y,"m",at).call(this):setTimeout(()=>g(this,y,"m",at).call(this),150))},tt=function(t){if(g(this,k,"f"))if("closed"!==t.newState){const e=g(this,y,"a",O).find(t=>t.selected&&!t.disabled);e?(this._listKeyManager.setActiveItem(e),c(e,g(this,k,"f"))):g(this,y,"m",dt).call(this),this.dispatchEvent(new ToggleEvent("toggle",{oldState:t.oldState,newState:t.newState}))}else r()?g(this,y,"m",et).call(this,t):setTimeout(()=>g(this,y,"m",et).call(this,t),100)},et=function(t){g(this,k,"f")&&(g(this,E,"f")?.replaceChildren(...g(this,k,"f").childNodes),g(this,k,"f").remove(),g(this,k,"f").removeEventListener("toggle",g(this,x,"f")),g(this,k,"f").removeEventListener("pointerdown",g(this,N,"f")),w(this,k,void 0,"f"),g(this,y,"a",U)&&(g(this,y,"a",U).ariaExpanded="false",g(this,y,"a",U).removeAttribute("aria-controls"),g(this,y,"a",U).removeAttribute("aria-owns")),this.requestUpdate(),g(this,y,"a",H)?.notifyControlStateChange(),this.dispatchEvent(new ToggleEvent("toggle",{oldState:t.oldState,newState:t.newState})))},it=function(){if(g(this,k,"f")||!g(this,y,"a",U)||g(this,y,"a",U).readOnly||g(this,y,"a",U).disabled)return;const t=g(this,y,"m",rt).call(this);if(!g(this,y,"a",R))return;if(w(this,k,document.createElement("m3e-option-panel"),"f"),g(this,k,"f").id=g(this,L,"f"),g(this,k,"f").style.overflowX="hidden",g(this,k,"f").style.minWidth=g(this,y,"a",$),g(this,k,"f").addEventListener("toggle",g(this,x,"f")),g(this,k,"f").addEventListener("pointerdown",g(this,N,"f")),g(this,E,"f")){const t=[...g(this,E,"f").childNodes];if(!g(this,y,"a",B)&&this.noDataLabel){const e=document.createElement("span");e.slot="no-data",e.textContent=this.noDataLabel,t.push(e)}if(!g(this,y,"a",j)&&this.loadingLabel){const e=document.createElement("span");e.slot="loading",e.textContent=this.loadingLabel,t.push(e)}g(this,k,"f").replaceChildren(...t)}g(this,y,"m",st).call(this,g(this,k,"f"),t),(g(this,y,"a",H)??g(this,y,"a",U)).insertAdjacentElement("afterend",g(this,k,"f")),g(this,y,"a",U).setAttribute("aria-controls",g(this,L,"f")),g(this,y,"a",U).setAttribute("aria-owns",g(this,L,"f")),g(this,y,"a",H)?.notifyControlStateChange(),this._listKeyManager.activeItem&&this.autoActivate&&g(this,y,"m",nt).call(this,this._listKeyManager.activeItem,!0);const e=g(this,y,"a",U);setTimeout(()=>g(this,k,"f")?.show(e,g(this,y,"a",H)?.menuAnchor))},st=function(t,e){o(t,"-loading",this.loading),o(t,"-no-data",0==e)},at=function(){g(this,k,"f")?.hide(),g(this,y,"a",U)?.removeAttribute("aria-activedescendant")},nt=function(t,e=!1){if(g(this,y,"a",U)&&(g(this,y,"a",U).setAttribute("aria-activedescendant",t.id),g(this,k,"f"))){c(t,g(this,k,"f"),{block:"nearest",behavior:"instant"});const i=e||!g(this,M,"f")&&(g(this,y,"a",U).matches(":focus-visible")||d());g(this,y,"a",O).forEach(e=>{e===t&&i?(e.focusRing?.show(),e.stateLayer?.show("focused")):(e.focusRing?.hide(),e.stateLayer?.hide("focused"))})}},ot=async function(t){const e=this._options[this._listKeyManager.items.indexOf(t)];e&&(e.selected=t.selected,e.isUpdatePending&&await e.updateComplete)},ht=async function(t){t.selected||(t.selected=!0,await g(this,y,"m",ot).call(this,t),t.isUpdatePending&&await t.updateComplete,this.requestUpdate(),this.isUpdatePending&&await this.updateComplete,g(this,y,"a",U)&&(g(this,y,"a",U).value=t.value),g(this,y,"a",H)?.notifyControlStateChange(!0))},lt=function(t,e,i,s){const a=this.caseSensitive?e.value:e.value.toLowerCase();switch(this.filter){case"starts-with":return t.term=s,t.highlightMode=this.filter,a.startsWith(i);case"ends-with":return t.term=s,t.highlightMode=this.filter,a.endsWith(i);case"contains":return t.term=s,t.highlightMode=this.filter,a.includes(i);case"none":return t.disableHighlight=!0,!0;default:return t.disableHighlight=!0,this.filter(e,s)}},rt=function(){if(!g(this,y,"a",U))return 0;const t=g(this,y,"a",O).filter(t=>!t.hidden).length,e=!this.loading&&g(this,S,"f");w(this,S,!1,"f");const i=g(this,y,"a",U).value,s=this.caseSensitive?i:i.toLocaleLowerCase();let a,n=0,o=!1;for(let t=0;t<g(this,y,"a",O).length;t++){const e=g(this,y,"a",O)[t],l=this._options[t];e.hidden=!g(this,y,"m",lt).call(this,e,l,s,i),e.hidden?(g(this,y,"m",ft).call(this,e),h(e,"-first"),h(e,"-last")):(n++,o||e.parentElement instanceof m?(h(e,"-first"),a&&h(a,"-last"),f(e,"-last"),a=e):(f(e,"-first"),o=!0,f(e,"-last"),a=e)),e.selected&&l.value!==i&&(e.selected=!1,g(this,y,"m",ot).call(this,e))}g(this,k,"f")&&g(this,y,"m",st).call(this,g(this,k,"f"),n);const l=g(this,k,"f")?.querySelectorAll("m3e-optgroup")??g(this,E,"f")?.querySelectorAll("m3e-optgroup")??[];for(const t of l)t.hidden=[...t.querySelectorAll("m3e-option")].every(t=>t.hidden);return e&&g(this,y,"m",ct).call(this,t,n),g(this,y,"m",dt).call(this),n},ct=function(t,e){if(g(this,_,"f"))if(0==e)t>0&&this.noDataLabel&&p.announce(this.noDataLabel,"polite");else if(t!=e){const t=this.resultsLabel instanceof Function?this.resultsLabel(e):this.resultsLabel;t&&p.announce(t,"polite")}},dt=function(){if(this.autoActivate&&(!this._listKeyManager.activeItem||!this._listKeyManager.activeItem.selected)){const t=g(this,y,"a",O).find(t=>!t.disabled&&!t.hidden);t&&(this._listKeyManager.setActiveItem(t),g(this,k,"f")&&c(t,g(this,k,"f"),{block:"nearest",behavior:"instant"}))}},ft=function(t){t.focusRing?.hide(),t.stateLayer?.hide("focused"),t===this._listKeyManager.activeItem&&(this._listKeyManager.updateActiveItem(null),g(this,y,"a",U)?.removeAttribute("aria-activedescendant"))},pt.styles=i`:host { display: contents; } .options { display: none; }`,pt.__nextId=0,v([s({attribute:"hide-selection-indicator",type:Boolean})],pt.prototype,"hideSelectionIndicator",void 0),v([s({type:Boolean,reflect:!0})],pt.prototype,"required",void 0),v([s({attribute:"auto-activate",type:Boolean})],pt.prototype,"autoActivate",void 0),v([s({attribute:"case-sensitive",type:Boolean})],pt.prototype,"caseSensitive",void 0),v([s({converter:{fromAttribute:t=>null===t?"contains":"starts-with"===t||"ends-with"===t||"contains"===t||"none"===t?t:"contains"}})],pt.prototype,"filter",void 0),v([s({type:Boolean})],pt.prototype,"loading",void 0),v([s({attribute:"hide-no-data",type:Boolean})],pt.prototype,"hideNoData",void 0),v([s({attribute:"hide-loading",type:Boolean})],pt.prototype,"hideLoading",void 0),v([s({attribute:"loading-label"})],pt.prototype,"loadingLabel",void 0),v([s({attribute:"no-data-label"})],pt.prototype,"noDataLabel",void 0),v([s({attribute:"results-label"})],pt.prototype,"resultsLabel",void 0),pt=ut=v([l("m3e-autocomplete")],pt);export{pt as M3eAutocompleteElement};
|
|
6
|
+
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e,__decorate as i}from"tslib";import{LitElement as s,html as a,css as n}from"lit";import{property as h}from"lit/decorators.js";import{HtmlFor as o,MutationController as l,setCustomState as r,deleteCustomState as c,prefersReducedMotion as d,scrollIntoViewIfNeeded as f,forcedColorsActive as u,addCustomState as m,customElement as p}from"@m3e/web/core";import{ListKeyManager as v,M3eLiveAnnouncer as g}from"@m3e/web/core/a11y";import{M3eOptGroupElement as b}from"@m3e/web/option";var y,w,L,M,E,k,A,C,S,_,K,W,I,D,q,x,N,P,T,B,U,O,$,H,R,j,F,V,X,z,G,J,Q,Y,Z,tt,et,it,st,at,nt,ht,ot,lt,rt,ct,dt,ft,ut;let mt=ut=class extends(o(s)){constructor(){super(),y.add(this),w.set(this,`m3e-autocomplete-${ut.__nextId}`),L.set(this,`${t(this,w,"f")}-menu`),this._options=new Array,M.set(this,void 0),E.set(this,!1),k.set(this,void 0),A.set(this,!1),C.set(this,!1),S.set(this,!1),_.set(this,void 0),K.set(this,()=>t(this,y,"m",V).call(this)),W.set(this,()=>t(this,y,"m",X).call(this)),I.set(this,()=>t(this,y,"m",z).call(this)),D.set(this,()=>t(this,y,"m",G).call(this)),q.set(this,e=>t(this,y,"m",Y).call(this,e)),x.set(this,e=>t(this,y,"m",J).call(this,e)),N.set(this,()=>t(this,y,"m",Q).call(this)),P.set(this,e=>t(this,y,"m",tt).call(this,e)),T.set(this,e=>t(this,y,"m",Z).call(this,e)),this._listKeyManager=(new v).withWrap().withHomeAndEnd().withPageUpAndDown().withVerticalOrientation().withSkipPredicate(t=>t.disabled||t.hidden).onActiveItemChange(()=>{this._listKeyManager.activeItem&&t(this,y,"m",nt).call(this,this._listKeyManager.activeItem)}),this.hideSelectionIndicator=!1,this.required=!1,this.autoActivate=!1,this.caseSensitive=!1,this.filter="contains",this.loading=!1,this.hideNoData=!1,this.hideLoading=!1,this.loadingLabel="Loading...",this.noDataLabel="No options",this.resultsLabel=t=>`${t} options`,this.panelClass="",new l(this,{config:{childList:!0,subtree:!0},callback:()=>t(this,y,"m",F).call(this)})}get options(){return this._options??[]}attach(e){e instanceof HTMLInputElement&&(super.attach(e),e.autocomplete="off",e.role="combobox",e.ariaAutoComplete="list",e.ariaExpanded="false",e.addEventListener("click",t(this,K,"f")),e.addEventListener("focus",t(this,I,"f")),e.addEventListener("blur",t(this,D,"f")),e.addEventListener("keydown",t(this,q,"f")),e.addEventListener("input",t(this,x,"f")),e.addEventListener("change",t(this,N,"f")),t(this,y,"a",j)?.addEventListener("pointerdown",t(this,W,"f")))}detach(){this.control&&(t(this,y,"a",j)?.removeEventListener("pointerdown",t(this,W,"f")),this.control.role=null,this.control.ariaAutoComplete=null,this.control.ariaExpanded=null,this.control.removeEventListener("click",t(this,K,"f")),this.control.removeEventListener("focus",t(this,I,"f")),this.control.removeEventListener("blur",t(this,D,"f")),this.control.removeEventListener("keydown",t(this,q,"f")),this.control.removeEventListener("input",t(this,x,"f")),this.control.removeEventListener("change",t(this,N,"f"))),super.detach()}clear(e=!1){t(this,y,"a",U)&&(t(this,y,"a",U).value="",t(this,y,"m",rt).call(this),e?t(this,y,"a",U).focus():t(this,y,"m",at).call(this))}connectedCallback(){super.connectedCallback(),t(this,y,"m",F).call(this)}update(e){super.update(e),e.has("hideNoData")&&this.hideNoData&&t(this,k,"f")&&r(t(this,k,"f"),"-no-data",!1),e.has("loading")&&(this.loading?t(this,S,"f")&&(this.loadingLabel&&g.announce(this.loadingLabel,"polite"),!t(this,k,"f")&&t(this,y,"a",H)&&t(this,y,"m",it).call(this)):t(this,k,"f")&&!t(this,y,"a",H)?t(this,y,"m",at).call(this):t(this,k,"f")?c(t(this,k,"f"),"-loading"):t(this,S,"f")&&t(this,y,"m",it).call(this))}render(){return a`<div class="options" aria-hidden="true"><slot></slot></div>`}};w=new WeakMap,L=new WeakMap,M=new WeakMap,E=new WeakMap,k=new WeakMap,A=new WeakMap,C=new WeakMap,S=new WeakMap,_=new WeakMap,K=new WeakMap,W=new WeakMap,I=new WeakMap,D=new WeakMap,q=new WeakMap,x=new WeakMap,N=new WeakMap,P=new WeakMap,T=new WeakMap,y=new WeakSet,B=function(){return this._listKeyManager?.items??[]},U=function(){return this.control?this.control:null},O=function(){return null!==(t(this,M,"f")?.querySelector("[slot='no-data']")??null)},$=function(){return null!==(t(this,M,"f")?.querySelector("[slot='loading']")??null)},H=function(){return t(this,y,"a",B).some(t=>!t.hidden)||this.loading&&!this.hideLoading&&this.loadingLabel.length>0||!this.loading&&!this.hideNoData&&this.noDataLabel.length>0},R=function(){const e=t(this,y,"a",j);return`${e?e.menuAnchor.clientWidth:this.control?.clientWidth??0}px`},j=function(){return this.control?.closest("m3e-form-field")??null},F=async function(){t(this,_,"f")&&t(this,_,"f").abort();const i=new AbortController;e(this,_,i,"f");const s=[...this.querySelectorAll("m3e-option")];for(const t of s){if(i.signal.aborted)break;t.isUpdatePending&&await t.updateComplete}if(i.signal.aborted)return;this._options=s,e(this,M,this.cloneNode(!0),"f");const{added:a}=this._listKeyManager.setItems([...t(this,M,"f").querySelectorAll("m3e-option")]);if(a.forEach(e=>{e.id=e.id||`${t(this,w,"f")}-option-${this._listKeyManager.items.indexOf(e)}`,r(e,"-hide-selection-indicator",this.hideSelectionIndicator)}),t(this,k,"f")){const e=t(this,y,"m",rt).call(this);t(this,k,"f").replaceChildren(...t(this,M,"f").childNodes),t(this,y,"a",H)?t(this,y,"m",st).call(this,t(this,k,"f"),e):t(this,y,"m",at).call(this)}},V=function(){e(this,E,!0,"f"),t(this,y,"m",it).call(this)},X=function(){e(this,A,!0,"f")},z=function(){e(this,S,!0,"f"),e(this,E,!0,"f"),0!=this.options.length||this.control.readOnly||this.dispatchEvent(new CustomEvent("query",{detail:{term:t(this,y,"a",U)?.value??""},bubbles:!0,composed:!0})),t(this,y,"m",it).call(this)},G=function(){e(this,S,!1,"f"),t(this,A,"f")||t(this,y,"m",at).call(this),e(this,A,!1,"f")},J=function(i){if(t(this,y,"a",U)&&!i.defaultPrevented){this.dispatchEvent(new CustomEvent("query",{detail:{term:t(this,y,"a",U).value},bubbles:!0,composed:!0})),e(this,C,!0,"f");try{t(this,k,"f")?(t(this,y,"m",rt).call(this),t(this,y,"a",H)||t(this,y,"m",at).call(this)):t(this,y,"m",it).call(this)}finally{e(this,C,!1,"f"),t(this,y,"a",j)?.notifyControlStateChange(!0)}}},Q=function(){t(this,y,"a",U)&&this.required&&!t(this,y,"a",B).some(t=>t.selected&&!t.disabled)&&(t(this,y,"a",U).value="")},Y=function(i){if(!i.defaultPrevented)switch(e(this,E,!1,"f"),i.key){case"Backspace":case"Delete":t(this,y,"a",U)&&!t(this,y,"a",U).value&&t(this,y,"m",at).call(this);break;case"Enter":t(this,k,"f")&&this._listKeyManager.activeItem?(i.preventDefault(),t(this,y,"m",ot).call(this,this._listKeyManager.activeItem),d()?t(this,y,"m",at).call(this):setTimeout(()=>t(this,y,"m",at).call(this),150)):t(this,k,"f")&&setTimeout(()=>{t(this,y,"a",U)&&!t(this,y,"a",U).value&&t(this,y,"m",at).call(this)});break;case"Escape":case"Tab":t(this,y,"m",at).call(this);break;case"Up":case"ArrowUp":i.altKey?t(this,y,"m",at).call(this):this._listKeyManager.onKeyDown(i);break;case"Down":case"ArrowDown":t(this,k,"f")?this._listKeyManager.onKeyDown(i):(t(this,y,"m",it).call(this),i.preventDefault());break;default:this._listKeyManager.onKeyDown(i)}},Z=function(e){if(2===e.button)return;e.preventDefault(),e.stopImmediatePropagation();const i=e.composedPath().find(t=>t instanceof HTMLElement&&"M3E-OPTION"===t.tagName);i&&!i.disabled&&(this._listKeyManager.setActiveItem(i),t(this,y,"m",ot).call(this,i),d()?t(this,y,"m",at).call(this):setTimeout(()=>t(this,y,"m",at).call(this),150))},tt=function(e){if(t(this,k,"f"))if("closed"!==e.newState){const i=t(this,y,"a",B).find(t=>t.selected&&!t.disabled);i?(this._listKeyManager.setActiveItem(i),f(i,t(this,k,"f"))):t(this,y,"m",dt).call(this),this.dispatchEvent(new ToggleEvent("toggle",{oldState:e.oldState,newState:e.newState}))}else d()?t(this,y,"m",et).call(this,e):setTimeout(()=>t(this,y,"m",et).call(this,e),100)},et=function(i){t(this,k,"f")&&(t(this,M,"f")?.replaceChildren(...t(this,k,"f").childNodes),t(this,k,"f").remove(),t(this,k,"f").removeEventListener("toggle",t(this,P,"f")),t(this,k,"f").removeEventListener("pointerdown",t(this,T,"f")),e(this,k,void 0,"f"),t(this,y,"a",U)&&(t(this,y,"a",U).ariaExpanded="false",t(this,y,"a",U).removeAttribute("aria-controls"),t(this,y,"a",U).removeAttribute("aria-owns")),this.requestUpdate(),t(this,y,"a",j)?.notifyControlStateChange(),this.dispatchEvent(new ToggleEvent("toggle",{oldState:i.oldState,newState:i.newState})))},it=function(){if(t(this,k,"f")||!t(this,y,"a",U)||t(this,y,"a",U).readOnly||t(this,y,"a",U).disabled)return;const i=t(this,y,"m",rt).call(this);if(!t(this,y,"a",H))return;if(e(this,k,document.createElement("m3e-option-panel"),"f"),t(this,k,"f").id=t(this,L,"f"),this.panelClass)for(const e of this.panelClass.split(/\s+/).map(t=>t.trim()).filter(Boolean))t(this,k,"f").classList.add(e);if(t(this,k,"f").scrollStrategy="reposition",t(this,k,"f").style.overflowX="hidden",t(this,k,"f").style.minWidth=t(this,y,"a",R),t(this,k,"f").addEventListener("toggle",t(this,P,"f")),t(this,k,"f").addEventListener("pointerdown",t(this,T,"f")),t(this,M,"f")){const e=[...t(this,M,"f").childNodes];if(!t(this,y,"a",O)&&this.noDataLabel){const t=document.createElement("span");t.slot="no-data",t.textContent=this.noDataLabel,e.push(t)}if(!t(this,y,"a",$)&&this.loadingLabel){const t=document.createElement("span");t.slot="loading",t.textContent=this.loadingLabel,e.push(t)}t(this,k,"f").replaceChildren(...e)}t(this,y,"m",st).call(this,t(this,k,"f"),i),(t(this,y,"a",j)??t(this,y,"a",U)).insertAdjacentElement("afterend",t(this,k,"f")),t(this,y,"a",U).setAttribute("aria-controls",t(this,L,"f")),t(this,y,"a",U).setAttribute("aria-owns",t(this,L,"f")),t(this,y,"a",j)?.notifyControlStateChange(),this._listKeyManager.activeItem&&this.autoActivate&&t(this,y,"m",nt).call(this,this._listKeyManager.activeItem,!0);const s=t(this,y,"a",U);setTimeout(()=>t(this,k,"f")?.show(s,t(this,y,"a",j)?.menuAnchor))},st=function(t,e){r(t,"-loading",this.loading),r(t,"-no-data",0==e)},at=function(){t(this,k,"f")?.hide(),t(this,y,"a",U)?.removeAttribute("aria-activedescendant")},nt=function(e,i=!1){if(t(this,y,"a",U)&&(t(this,y,"a",U).setAttribute("aria-activedescendant",e.id),t(this,k,"f"))){f(e,t(this,k,"f"),{block:"nearest",behavior:"instant"});const s=i||!t(this,E,"f")&&(t(this,y,"a",U).matches(":focus-visible")||u());t(this,y,"a",B).forEach(t=>{t===e&&s?(t.focusRing?.show(),t.stateLayer?.show("focused")):(t.focusRing?.hide(),t.stateLayer?.hide("focused"))})}},ht=async function(t){const e=this._options[this._listKeyManager.items.indexOf(t)];e&&(e.selected=t.selected,e.isUpdatePending&&await e.updateComplete)},ot=async function(e){e.selected||(e.selected=!0,await t(this,y,"m",ht).call(this,e),e.isUpdatePending&&await e.updateComplete,this.requestUpdate(),this.isUpdatePending&&await this.updateComplete,t(this,y,"a",U)&&(t(this,y,"a",U).value=e.value),t(this,y,"a",j)?.notifyControlStateChange(!0))},lt=function(t,e,i,s){const a=this.caseSensitive?e.value:e.value.toLowerCase();switch(this.filter){case"starts-with":return t.term=s,t.highlightMode=this.filter,a.startsWith(i);case"ends-with":return t.term=s,t.highlightMode=this.filter,a.endsWith(i);case"contains":return t.term=s,t.highlightMode=this.filter,a.includes(i);case"none":return t.disableHighlight=!0,!0;default:return t.disableHighlight=!0,this.filter(e,s)}},rt=function(){if(!t(this,y,"a",U))return 0;const i=t(this,y,"a",B).filter(t=>!t.hidden).length,s=!this.loading&&t(this,C,"f");e(this,C,!1,"f");const a=t(this,y,"a",U).value,n=this.caseSensitive?a:a.toLocaleLowerCase();let h,o=0,l=!1;for(let e=0;e<t(this,y,"a",B).length;e++){const i=t(this,y,"a",B)[e],s=this._options[e];i.hidden=!t(this,y,"m",lt).call(this,i,s,n,a),i.hidden?(t(this,y,"m",ft).call(this,i),c(i,"-first"),c(i,"-last")):(o++,l||i.parentElement instanceof b?(c(i,"-first"),h&&c(h,"-last"),m(i,"-last"),h=i):(m(i,"-first"),l=!0,m(i,"-last"),h=i)),i.selected&&s.value!==a&&(i.selected=!1,t(this,y,"m",ht).call(this,i))}t(this,k,"f")&&t(this,y,"m",st).call(this,t(this,k,"f"),o);const r=t(this,k,"f")?.querySelectorAll("m3e-optgroup")??t(this,M,"f")?.querySelectorAll("m3e-optgroup")??[];for(const t of r)t.hidden=[...t.querySelectorAll("m3e-option")].every(t=>t.hidden);return s&&t(this,y,"m",ct).call(this,i,o),t(this,y,"m",dt).call(this),o},ct=function(e,i){if(t(this,S,"f"))if(0==i)e>0&&this.noDataLabel&&g.announce(this.noDataLabel,"polite");else if(e!=i){const t=this.resultsLabel instanceof Function?this.resultsLabel(i):this.resultsLabel;t&&g.announce(t,"polite")}},dt=function(){if(this.autoActivate&&(!this._listKeyManager.activeItem||!this._listKeyManager.activeItem.selected)){const e=t(this,y,"a",B).find(t=>!t.disabled&&!t.hidden);e&&(this._listKeyManager.setActiveItem(e),t(this,k,"f")&&f(e,t(this,k,"f"),{block:"nearest",behavior:"instant"}))}},ft=function(e){e.focusRing?.hide(),e.stateLayer?.hide("focused"),e===this._listKeyManager.activeItem&&(this._listKeyManager.updateActiveItem(null),t(this,y,"a",U)?.removeAttribute("aria-activedescendant"))},mt.styles=n`:host { display: contents; } .options { display: none; }`,mt.__nextId=0,i([h({attribute:"hide-selection-indicator",type:Boolean})],mt.prototype,"hideSelectionIndicator",void 0),i([h({type:Boolean,reflect:!0})],mt.prototype,"required",void 0),i([h({attribute:"auto-activate",type:Boolean})],mt.prototype,"autoActivate",void 0),i([h({attribute:"case-sensitive",type:Boolean})],mt.prototype,"caseSensitive",void 0),i([h({converter:{fromAttribute:t=>null===t?"contains":"starts-with"===t||"ends-with"===t||"contains"===t||"none"===t?t:"contains"}})],mt.prototype,"filter",void 0),i([h({type:Boolean})],mt.prototype,"loading",void 0),i([h({attribute:"hide-no-data",type:Boolean})],mt.prototype,"hideNoData",void 0),i([h({attribute:"hide-loading",type:Boolean})],mt.prototype,"hideLoading",void 0),i([h({attribute:"loading-label"})],mt.prototype,"loadingLabel",void 0),i([h({attribute:"no-data-label"})],mt.prototype,"noDataLabel",void 0),i([h({attribute:"results-label"})],mt.prototype,"resultsLabel",void 0),i([h({attribute:"panel-class"})],mt.prototype,"panelClass",void 0),mt=ut=i([p("m3e-autocomplete")],mt);export{mt as M3eAutocompleteElement};
|
|
7
7
|
//# sourceMappingURL=autocomplete.min.js.map
|