{"version":3,"file":"epermits-webcomponents.js","sources":["../../../node_modules/@github/file-attachment-element/dist/index.js","../../../node_modules/@spectrum-web-components/overlay/src/overlay-trigger.css.js","../../../node_modules/@spectrum-web-components/overlay/src/OverlayTrigger.js","../../../node_modules/@spectrum-web-components/overlay/overlay-trigger.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/html-directive.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/binding.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/compiler.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/view.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/template.js","../../../node_modules/@microsoft/fast-element/dist/esm/styles/css.js","../../../node_modules/@microsoft/fast-element/dist/esm/observation/array-change-records.js","../../../node_modules/@microsoft/fast-element/dist/esm/observation/array-observer.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/ref.js","../../../node_modules/@microsoft/fast-element/dist/esm/interfaces.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/when.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/repeat.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/node-observation.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/slotted.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/children.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/patterns/start-end.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/accordion-item/accordion-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/di/di.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-system/component-presentation.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/foundation-element/foundation-element.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/apply-mixins.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/accordion-item/accordion-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/accordion/accordion.template.js","../../../node_modules/@microsoft/fast-web-utilities/dist/aria.js","../../../node_modules/@microsoft/fast-web-utilities/dist/array.js","../../../node_modules/exenv-es6/dist/can-use-dom.js","../../../node_modules/@microsoft/fast-web-utilities/dist/dom.js","../../../node_modules/@microsoft/fast-web-utilities/dist/events.js","../../../node_modules/@microsoft/fast-web-utilities/dist/key-codes.js","../../../node_modules/@microsoft/fast-web-utilities/dist/numbers.js","../../../node_modules/@microsoft/fast-web-utilities/dist/strings.js","../../../node_modules/@microsoft/fast-web-utilities/dist/system-colors.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/accordion/accordion.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchor/anchor.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/patterns/aria-global.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchor/anchor.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchored-region/anchored-region.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/direction.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/intersection-service.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchored-region/anchored-region.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/badge/badge.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/badge/badge.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb-item/breadcrumb-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb-item/breadcrumb-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb/breadcrumb.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb/breadcrumb.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/form-associated/form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/calendar/date-formatter.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/calendar/calendar.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid-row.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid-cell.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid-row.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/data-grid/data-grid-cell.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/calendar/calendar.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/card/card.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/card/card.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox-option/listbox-option.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox/listbox.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/combobox/combobox.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/combobox/combobox.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/combobox/combobox.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/combobox/combobox.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-system/design-system.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/dialog/dialog.template.js","../../../node_modules/tabbable/dist/index.esm.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/dialog/dialog.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/divider/divider.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/divider/divider.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/divider/divider.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/flipper/flipper.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/flipper/flipper.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/flipper/flipper.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox-option/listbox-option.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox/listbox.element.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox/listbox.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu/menu.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu/menu.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/progress-ring/progress-ring.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/progress/base-progress.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/progress/progress.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/radio-group/radio-group.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/radio-group/radio-group.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/radio/radio.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/radio/radio.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/radio/radio.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/horizontal-scroll/horizontal-scroll.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/horizontal-scroll/horizontal-scroll.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/whitespace-filter.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/search/search.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/search/search.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/skeleton/skeleton.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/skeleton/skeleton.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider-label/slider-label.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider/slider-utilities.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider-label/slider-label.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider/slider.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider/slider.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/slider/slider.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/switch/switch.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/switch/switch.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/switch/switch.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab-panel/tab-panel.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab-panel/tab-panel.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab/tab.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab/tab.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tabs/tabs.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tabs/tabs.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/toolbar/toolbar.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/root-active-element.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/toolbar/toolbar.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tooltip/tooltip.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tooltip/tooltip.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tooltip/tooltip.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-item/tree-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-item/tree-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-view/tree-view.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-view/tree-view.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/match-media-stylesheet-behavior.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/property-stylesheet-behavior.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/style/disabled.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/style/display.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/style/focus.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/patterns/type-ramp.js","../../../node_modules/@fluentui/web-components/dist/esm/accordion/accordion.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/focus.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/size.js","../../../node_modules/@fluentui/web-components/dist/esm/accordion/accordion-item/accordion-item.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/accordion/accordion-item/index.js","../../../node_modules/@fluentui/web-components/dist/esm/accordion/index.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/direction.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/elevation.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/patterns/button.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/styles/patterns/input.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/utilities/behaviors.js","../../../node_modules/@fluentui/web-components/dist/esm/anchor/anchor.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/anchor/index.js","../../../node_modules/@fluentui/web-components/dist/esm/anchored-region/anchored-region.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/anchored-region/index.js","../../../node_modules/@fluentui/web-components/dist/esm/badge/badge.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/badge/index.js","../../../node_modules/@fluentui/web-components/dist/esm/breadcrumb/breadcrumb.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/breadcrumb/index.js","../../../node_modules/@fluentui/web-components/dist/esm/breadcrumb-item/breadcrumb-item.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/breadcrumb-item/index.js","../../../node_modules/@fluentui/web-components/dist/esm/button/button.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/button/index.js","../../../node_modules/@fluentui/web-components/dist/esm/calendar/calendar.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/calendar/index.js","../../../node_modules/@fluentui/web-components/dist/esm/card/card.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/card/index.js","../../../node_modules/@fluentui/web-components/dist/esm/checkbox/checkbox.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/checkbox/index.js","../../../node_modules/@fluentui/web-components/dist/esm/select/select.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/combobox/combobox.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/combobox/index.js","../../../node_modules/@fluentui/web-components/dist/esm/data-grid/data-grid.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/data-grid/data-grid-row.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/data-grid/data-grid-cell.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/data-grid/index.js","../../../node_modules/@fluentui/web-components/dist/esm/design-system-provider/index.js","../../../node_modules/@fluentui/web-components/dist/esm/dialog/dialog.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/dialog/index.js","../../../node_modules/@fluentui/web-components/dist/esm/divider/divider.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/divider/index.js","../../../node_modules/@fluentui/web-components/dist/esm/flipper/flipper.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/flipper/index.js","../../../node_modules/@fluentui/web-components/dist/esm/horizontal-scroll/horizontal-scroll.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/horizontal-scroll/index.js","../../../node_modules/@fluentui/web-components/dist/esm/listbox/listbox.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/listbox/index.js","../../../node_modules/@fluentui/web-components/dist/esm/listbox-option/listbox-option.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/listbox-option/index.js","../../../node_modules/@fluentui/web-components/dist/esm/menu/menu.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/menu/index.js","../../../node_modules/@fluentui/web-components/dist/esm/menu-item/menu-item.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/menu-item/index.js","../../../node_modules/@fluentui/web-components/dist/esm/number-field/number-field.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/number-field/index.js","../../../node_modules/@fluentui/web-components/dist/esm/progress/progress/progress.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/progress/progress/index.js","../../../node_modules/@fluentui/web-components/dist/esm/progress/progress-ring/progress-ring.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/progress/progress-ring/index.js","../../../node_modules/@fluentui/web-components/dist/esm/radio/radio.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/radio/index.js","../../../node_modules/@fluentui/web-components/dist/esm/radio-group/radio-group.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/radio-group/index.js","../../../node_modules/@fluentui/web-components/dist/esm/search/search.template.js","../../../node_modules/@fluentui/web-components/dist/esm/search/search.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/search/index.js","../../../node_modules/@fluentui/web-components/dist/esm/select/index.js","../../../node_modules/@fluentui/web-components/dist/esm/skeleton/skeleton.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/skeleton/index.js","../../../node_modules/@fluentui/web-components/dist/esm/slider/slider.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/slider/index.js","../../../node_modules/@fluentui/web-components/dist/esm/slider-label/slider-label.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/slider-label/index.js","../../../node_modules/@fluentui/web-components/dist/esm/switch/switch.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/switch/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/tabs.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/tab/tab.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/tab/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/tab-panel/tab-panel.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/tab-panel/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tabs/index.js","../../../node_modules/@fluentui/web-components/dist/esm/text-area/text-area.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/text-area/index.js","../../../node_modules/@fluentui/web-components/dist/esm/text-field/text-field.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/text-field/index.js","../../../node_modules/@fluentui/web-components/dist/esm/toolbar/toolbar.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/toolbar/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tooltip/tooltip.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tooltip/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tree-view/tree-view.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tree-view/index.js","../../../node_modules/@fluentui/web-components/dist/esm/tree-item/tree-item.styles.js","../../../node_modules/@fluentui/web-components/dist/esm/tree-item/index.js","../../../node_modules/@fluentui/web-components/dist/esm/custom-elements.js","../../../node_modules/@fluentui/web-components/dist/esm/fluent-design-system.js","../src/index.ts"],"sourcesContent":["class Attachment {\n constructor(file, directory) {\n this.file = file;\n this.directory = directory;\n this.state = 'pending';\n this.id = null;\n this.href = null;\n this.name = null;\n this.percent = 0;\n }\n static traverse(transfer, directory) {\n return transferredFiles(transfer, directory);\n }\n static from(files) {\n const result = [];\n for (const file of files) {\n if (file instanceof File) {\n result.push(new Attachment(file));\n }\n else if (file instanceof Attachment) {\n result.push(file);\n }\n else {\n throw new Error('Unexpected type');\n }\n }\n return result;\n }\n get fullPath() {\n return this.directory ? `${this.directory}/${this.file.name}` : this.file.name;\n }\n isImage() {\n return ['image/gif', 'image/png', 'image/jpg', 'image/jpeg', 'image/svg+xml'].indexOf(this.file.type) > -1;\n }\n isVideo() {\n return ['video/mp4', 'video/quicktime'].indexOf(this.file.type) > -1;\n }\n saving(percent) {\n if (this.state !== 'pending' && this.state !== 'saving') {\n throw new Error(`Unexpected transition from ${this.state} to saving`);\n }\n this.state = 'saving';\n this.percent = percent;\n }\n saved(attributes) {\n var _a, _b, _c;\n if (this.state !== 'pending' && this.state !== 'saving') {\n throw new Error(`Unexpected transition from ${this.state} to saved`);\n }\n this.state = 'saved';\n this.id = (_a = attributes === null || attributes === void 0 ? void 0 : attributes.id) !== null && _a !== void 0 ? _a : null;\n this.href = (_b = attributes === null || attributes === void 0 ? void 0 : attributes.href) !== null && _b !== void 0 ? _b : null;\n this.name = (_c = attributes === null || attributes === void 0 ? void 0 : attributes.name) !== null && _c !== void 0 ? _c : null;\n }\n isPending() {\n return this.state === 'pending';\n }\n isSaving() {\n return this.state === 'saving';\n }\n isSaved() {\n return this.state === 'saved';\n }\n}\nfunction transferredFiles(transfer, directory) {\n if (directory && isDirectory(transfer)) {\n return traverse('', roots(transfer));\n }\n return Promise.resolve(visible(Array.from(transfer.files || [])).map(f => new Attachment(f)));\n}\nfunction hidden(file) {\n return file.name.startsWith('.');\n}\nfunction visible(files) {\n return Array.from(files).filter(file => !hidden(file));\n}\nfunction getFile(entry) {\n return new Promise(function (resolve, reject) {\n entry.file(resolve, reject);\n });\n}\nfunction getEntries(entry) {\n return new Promise(function (resolve, reject) {\n const result = [];\n const reader = entry.createReader();\n const read = () => {\n reader.readEntries(entries => {\n if (entries.length > 0) {\n result.push(...entries);\n read();\n }\n else {\n resolve(result);\n }\n }, reject);\n };\n read();\n });\n}\nasync function traverse(path, entries) {\n const results = [];\n for (const entry of visible(entries)) {\n if (entry.isDirectory) {\n results.push(...(await traverse(entry.fullPath, await getEntries(entry))));\n }\n else {\n const file = await getFile(entry);\n results.push(new Attachment(file, path));\n }\n }\n return results;\n}\nfunction isDirectory(transfer) {\n return (transfer.items &&\n Array.from(transfer.items).some((item) => {\n const entry = item.webkitGetAsEntry && item.webkitGetAsEntry();\n return entry && entry.isDirectory;\n }));\n}\nfunction roots(transfer) {\n return Array.from(transfer.items)\n .map((item) => item.webkitGetAsEntry())\n .filter(entry => entry != null);\n}\n\nclass FileAttachmentElement extends HTMLElement {\n connectedCallback() {\n this.addEventListener('dragenter', onDragenter);\n this.addEventListener('dragover', onDragenter);\n this.addEventListener('dragleave', onDragleave);\n this.addEventListener('drop', onDrop);\n this.addEventListener('paste', onPaste);\n this.addEventListener('change', onChange);\n }\n disconnectedCallback() {\n this.removeEventListener('dragenter', onDragenter);\n this.removeEventListener('dragover', onDragenter);\n this.removeEventListener('dragleave', onDragleave);\n this.removeEventListener('drop', onDrop);\n this.removeEventListener('paste', onPaste);\n this.removeEventListener('change', onChange);\n }\n get directory() {\n return this.hasAttribute('directory');\n }\n set directory(value) {\n if (value) {\n this.setAttribute('directory', '');\n }\n else {\n this.removeAttribute('directory');\n }\n }\n async attach(transferred) {\n const attachments = transferred instanceof DataTransfer\n ? await Attachment.traverse(transferred, this.directory)\n : Attachment.from(transferred);\n const accepted = this.dispatchEvent(new CustomEvent('file-attachment-accept', {\n bubbles: true,\n cancelable: true,\n detail: { attachments }\n }));\n if (accepted && attachments.length) {\n this.dispatchEvent(new CustomEvent('file-attachment-accepted', {\n bubbles: true,\n detail: { attachments }\n }));\n }\n }\n}\nfunction hasFile(transfer) {\n return Array.from(transfer.types).indexOf('Files') >= 0;\n}\nlet dragging = null;\nfunction onDragenter(event) {\n const target = event.currentTarget;\n if (dragging) {\n clearTimeout(dragging);\n }\n dragging = window.setTimeout(() => target.removeAttribute('hover'), 200);\n const transfer = event.dataTransfer;\n if (!transfer || !hasFile(transfer))\n return;\n transfer.dropEffect = 'copy';\n target.setAttribute('hover', '');\n event.preventDefault();\n}\nfunction onDragleave(event) {\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'none';\n }\n const target = event.currentTarget;\n target.removeAttribute('hover');\n event.stopPropagation();\n event.preventDefault();\n}\nfunction onDrop(event) {\n const container = event.currentTarget;\n if (!(container instanceof FileAttachmentElement))\n return;\n container.removeAttribute('hover');\n const transfer = event.dataTransfer;\n if (!transfer || !hasFile(transfer))\n return;\n container.attach(transfer);\n event.stopPropagation();\n event.preventDefault();\n}\nconst images = /^image\\/(gif|png|jpeg)$/;\nfunction pastedFile(items) {\n for (const item of items) {\n if (item.kind === 'file' && images.test(item.type)) {\n return item.getAsFile();\n }\n }\n return null;\n}\nfunction onPaste(event) {\n if (!event.clipboardData)\n return;\n if (!event.clipboardData.items)\n return;\n const container = event.currentTarget;\n if (!(container instanceof FileAttachmentElement))\n return;\n const file = pastedFile(event.clipboardData.items);\n if (!file)\n return;\n const files = [file];\n container.attach(files);\n event.preventDefault();\n}\nfunction onChange(event) {\n const container = event.currentTarget;\n if (!(container instanceof FileAttachmentElement))\n return;\n const input = event.target;\n if (!(input instanceof HTMLInputElement))\n return;\n const id = container.getAttribute('input');\n if (id && input.id !== id)\n return;\n const files = input.files;\n if (!files || files.length === 0)\n return;\n container.attach(files);\n input.value = '';\n}\nif (!window.customElements.get('file-attachment')) {\n window.FileAttachmentElement = FileAttachmentElement;\n window.customElements.define('file-attachment', FileAttachmentElement);\n}\n\nexport default FileAttachmentElement;\nexport { Attachment };\n","\"use strict\";import{css as e}from\"@spectrum-web-components/base\";const s=e`\n:host([disabled]) ::slotted([slot=trigger]){pointer-events:none}slot[name=longpress-describedby-descriptor]{display:none}\n`;export default s;\n//# sourceMappingURL=overlay-trigger.css.js.map\n","\"use strict\";var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var n=(c,a,e,o)=>{for(var t=o>1?void 0:o?v(a,e):a,l=c.length-1,s;l>=0;l--)(s=c[l])&&(t=(o?s(a,e,t):s(t))||t);return o&&t&&g(a,e,t),t};import{html as r,SpectrumElement as u}from\"@spectrum-web-components/base\";import{property as i,query as h,state as p}from\"@spectrum-web-components/base/src/decorators.js\";import f from\"./overlay-trigger.css.js\";export class OverlayTrigger extends u{constructor(){super(...arguments);this.content=\"click hover longpress\";this.offset=6;this.disabled=!1;this.clickContent=[];this.longpressContent=[];this.hoverContent=[];this.targetContent=[]}static get styles(){return[f]}getAssignedElementsFromSlot(e){return e.assignedElements({flatten:!0})}handleTriggerContent(e){this.targetContent=this.getAssignedElementsFromSlot(e.target)}handleSlotContent(e){switch(e.target.name){case\"click-content\":this.clickContent=this.getAssignedElementsFromSlot(e.target);break;case\"longpress-content\":this.longpressContent=this.getAssignedElementsFromSlot(e.target);break;case\"hover-content\":this.hoverContent=this.getAssignedElementsFromSlot(e.target);break}}handleBeforetoggle(e){const{target:o}=e;let t;if(o===this.clickOverlayElement)t=\"click\";else if(o===this.longpressOverlayElement)t=\"longpress\";else if(o===this.hoverOverlayElement)t=\"hover\";else return;e.newState===\"open\"?this.open=t:this.open===t&&(this.open=void 0)}update(e){var o,t,l,s,d,m;e.has(\"clickContent\")&&(this.clickPlacement=((o=this.clickContent[0])==null?void 0:o.getAttribute(\"placement\"))||((t=this.clickContent[0])==null?void 0:t.getAttribute(\"direction\"))||void 0),e.has(\"hoverContent\")&&(this.hoverPlacement=((l=this.hoverContent[0])==null?void 0:l.getAttribute(\"placement\"))||((s=this.hoverContent[0])==null?void 0:s.getAttribute(\"direction\"))||void 0),e.has(\"longpressContent\")&&(this.longpressPlacement=((d=this.longpressContent[0])==null?void 0:d.getAttribute(\"placement\"))||((m=this.longpressContent[0])==null?void 0:m.getAttribute(\"direction\"))||void 0),super.update(e)}renderSlot(e){return r`\n \n `}renderClickOverlay(){import(\"@spectrum-web-components/overlay/sp-overlay.js\");const e=this.renderSlot(\"click-content\");return this.clickContent.length?r`\n \n ${e}\n \n `:e}renderHoverOverlay(){import(\"@spectrum-web-components/overlay/sp-overlay.js\");const e=this.renderSlot(\"hover-content\");return this.hoverContent.length?r`\n \n ${e}\n \n `:e}renderLongpressOverlay(){import(\"@spectrum-web-components/overlay/sp-overlay.js\");const e=this.renderSlot(\"longpress-content\");return this.longpressContent.length?r`\n \n ${e}\n \n \n `:e}render(){const e=this.content.split(\" \");return r`\n \n ${[e.includes(\"click\")?this.renderClickOverlay():r``,e.includes(\"hover\")?this.renderHoverOverlay():r``,e.includes(\"longpress\")?this.renderLongpressOverlay():r``]}\n `}updated(e){if(super.updated(e),this.disabled&&e.has(\"disabled\")){this.open=void 0;return}}async getUpdateComplete(){return await super.getUpdateComplete()}}n([i()],OverlayTrigger.prototype,\"content\",2),n([i({reflect:!0})],OverlayTrigger.prototype,\"placement\",2),n([i()],OverlayTrigger.prototype,\"type\",2),n([i({type:Number})],OverlayTrigger.prototype,\"offset\",2),n([i({reflect:!0})],OverlayTrigger.prototype,\"open\",2),n([i({type:Boolean,reflect:!0})],OverlayTrigger.prototype,\"disabled\",2),n([p()],OverlayTrigger.prototype,\"clickContent\",2),n([p()],OverlayTrigger.prototype,\"longpressContent\",2),n([p()],OverlayTrigger.prototype,\"hoverContent\",2),n([p()],OverlayTrigger.prototype,\"targetContent\",2),n([h(\"#click-overlay\",!0)],OverlayTrigger.prototype,\"clickOverlayElement\",2),n([h(\"#longpress-overlay\",!0)],OverlayTrigger.prototype,\"longpressOverlayElement\",2),n([h(\"#hover-overlay\",!0)],OverlayTrigger.prototype,\"hoverOverlayElement\",2);\n//# sourceMappingURL=OverlayTrigger.js.map\n","\"use strict\";import{defineElement as e}from\"@spectrum-web-components/base/src/define-element.js\";import{OverlayTrigger as r}from\"./src/OverlayTrigger.js\";e(\"overlay-trigger\",r);\n//# sourceMappingURL=overlay-trigger.js.map\n","import { DOM } from \"../dom.js\";\n/**\n * Instructs the template engine to apply behavior to a node.\n * @public\n */\nexport class HTMLDirective {\n constructor() {\n /**\n * The index of the DOM node to which the created behavior will apply.\n */\n this.targetIndex = 0;\n }\n}\n/**\n * A {@link HTMLDirective} that targets a named attribute or property on a node.\n * @public\n */\nexport class TargetedHTMLDirective extends HTMLDirective {\n constructor() {\n super(...arguments);\n /**\n * Creates a placeholder string based on the directive's index within the template.\n * @param index - The index of the directive within the template.\n */\n this.createPlaceholder = DOM.createInterpolationPlaceholder;\n }\n}\n/**\n * A directive that attaches special behavior to an element via a custom attribute.\n * @public\n */\nexport class AttachedBehaviorHTMLDirective extends HTMLDirective {\n /**\n *\n * @param name - The name of the behavior; used as a custom attribute on the element.\n * @param behavior - The behavior to instantiate and attach to the element.\n * @param options - Options to pass to the behavior during creation.\n */\n constructor(name, behavior, options) {\n super();\n this.name = name;\n this.behavior = behavior;\n this.options = options;\n }\n /**\n * Creates a placeholder string based on the directive's index within the template.\n * @param index - The index of the directive within the template.\n * @remarks\n * Creates a custom attribute placeholder.\n */\n createPlaceholder(index) {\n return DOM.createCustomAttributePlaceholder(this.name, index);\n }\n /**\n * Creates a behavior for the provided target node.\n * @param target - The node instance to create the behavior for.\n * @remarks\n * Creates an instance of the `behavior` type this directive was constructed with\n * and passes the target and options to that `behavior`'s constructor.\n */\n createBehavior(target) {\n return new this.behavior(target, this.options);\n }\n}\n","import { DOM } from \"../dom.js\";\nimport { ExecutionContext, Observable, } from \"../observation/observable.js\";\nimport { TargetedHTMLDirective } from \"./html-directive.js\";\nfunction normalBind(source, context) {\n this.source = source;\n this.context = context;\n if (this.bindingObserver === null) {\n this.bindingObserver = Observable.binding(this.binding, this, this.isBindingVolatile);\n }\n this.updateTarget(this.bindingObserver.observe(source, context));\n}\nfunction triggerBind(source, context) {\n this.source = source;\n this.context = context;\n this.target.addEventListener(this.targetName, this);\n}\nfunction normalUnbind() {\n this.bindingObserver.disconnect();\n this.source = null;\n this.context = null;\n}\nfunction contentUnbind() {\n this.bindingObserver.disconnect();\n this.source = null;\n this.context = null;\n const view = this.target.$fastView;\n if (view !== void 0 && view.isComposed) {\n view.unbind();\n view.needsBindOnly = true;\n }\n}\nfunction triggerUnbind() {\n this.target.removeEventListener(this.targetName, this);\n this.source = null;\n this.context = null;\n}\nfunction updateAttributeTarget(value) {\n DOM.setAttribute(this.target, this.targetName, value);\n}\nfunction updateBooleanAttributeTarget(value) {\n DOM.setBooleanAttribute(this.target, this.targetName, value);\n}\nfunction updateContentTarget(value) {\n // If there's no actual value, then this equates to the\n // empty string for the purposes of content bindings.\n if (value === null || value === undefined) {\n value = \"\";\n }\n // If the value has a \"create\" method, then it's a template-like.\n if (value.create) {\n this.target.textContent = \"\";\n let view = this.target.$fastView;\n // If there's no previous view that we might be able to\n // reuse then create a new view from the template.\n if (view === void 0) {\n view = value.create();\n }\n else {\n // If there is a previous view, but it wasn't created\n // from the same template as the new value, then we\n // need to remove the old view if it's still in the DOM\n // and create a new view from the template.\n if (this.target.$fastTemplate !== value) {\n if (view.isComposed) {\n view.remove();\n view.unbind();\n }\n view = value.create();\n }\n }\n // It's possible that the value is the same as the previous template\n // and that there's actually no need to compose it.\n if (!view.isComposed) {\n view.isComposed = true;\n view.bind(this.source, this.context);\n view.insertBefore(this.target);\n this.target.$fastView = view;\n this.target.$fastTemplate = value;\n }\n else if (view.needsBindOnly) {\n view.needsBindOnly = false;\n view.bind(this.source, this.context);\n }\n }\n else {\n const view = this.target.$fastView;\n // If there is a view and it's currently composed into\n // the DOM, then we need to remove it.\n if (view !== void 0 && view.isComposed) {\n view.isComposed = false;\n view.remove();\n if (view.needsBindOnly) {\n view.needsBindOnly = false;\n }\n else {\n view.unbind();\n }\n }\n this.target.textContent = value;\n }\n}\nfunction updatePropertyTarget(value) {\n this.target[this.targetName] = value;\n}\nfunction updateClassTarget(value) {\n const classVersions = this.classVersions || Object.create(null);\n const target = this.target;\n let version = this.version || 0;\n // Add the classes, tracking the version at which they were added.\n if (value !== null && value !== undefined && value.length) {\n const names = value.split(/\\s+/);\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const currentName = names[i];\n if (currentName === \"\") {\n continue;\n }\n classVersions[currentName] = version;\n target.classList.add(currentName);\n }\n }\n this.classVersions = classVersions;\n this.version = version + 1;\n // If this is the first call to add classes, there's no need to remove old ones.\n if (version === 0) {\n return;\n }\n // Remove classes from the previous version.\n version -= 1;\n for (const name in classVersions) {\n if (classVersions[name] === version) {\n target.classList.remove(name);\n }\n }\n}\n/**\n * A directive that configures data binding to element content and attributes.\n * @public\n */\nexport class HTMLBindingDirective extends TargetedHTMLDirective {\n /**\n * Creates an instance of BindingDirective.\n * @param binding - A binding that returns the data used to update the DOM.\n */\n constructor(binding) {\n super();\n this.binding = binding;\n this.bind = normalBind;\n this.unbind = normalUnbind;\n this.updateTarget = updateAttributeTarget;\n this.isBindingVolatile = Observable.isVolatileBinding(this.binding);\n }\n /**\n * Gets/sets the name of the attribute or property that this\n * binding is targeting.\n */\n get targetName() {\n return this.originalTargetName;\n }\n set targetName(value) {\n this.originalTargetName = value;\n if (value === void 0) {\n return;\n }\n switch (value[0]) {\n case \":\":\n this.cleanedTargetName = value.substr(1);\n this.updateTarget = updatePropertyTarget;\n if (this.cleanedTargetName === \"innerHTML\") {\n const binding = this.binding;\n this.binding = (s, c) => DOM.createHTML(binding(s, c));\n }\n break;\n case \"?\":\n this.cleanedTargetName = value.substr(1);\n this.updateTarget = updateBooleanAttributeTarget;\n break;\n case \"@\":\n this.cleanedTargetName = value.substr(1);\n this.bind = triggerBind;\n this.unbind = triggerUnbind;\n break;\n default:\n this.cleanedTargetName = value;\n if (value === \"class\") {\n this.updateTarget = updateClassTarget;\n }\n break;\n }\n }\n /**\n * Makes this binding target the content of an element rather than\n * a particular attribute or property.\n */\n targetAtContent() {\n this.updateTarget = updateContentTarget;\n this.unbind = contentUnbind;\n }\n /**\n * Creates the runtime BindingBehavior instance based on the configuration\n * information stored in the BindingDirective.\n * @param target - The target node that the binding behavior should attach to.\n */\n createBehavior(target) {\n /* eslint-disable-next-line @typescript-eslint/no-use-before-define */\n return new BindingBehavior(target, this.binding, this.isBindingVolatile, this.bind, this.unbind, this.updateTarget, this.cleanedTargetName);\n }\n}\n/**\n * A behavior that updates content and attributes based on a configured\n * BindingDirective.\n * @public\n */\nexport class BindingBehavior {\n /**\n * Creates an instance of BindingBehavior.\n * @param target - The target of the data updates.\n * @param binding - The binding that returns the latest value for an update.\n * @param isBindingVolatile - Indicates whether the binding has volatile dependencies.\n * @param bind - The operation to perform during binding.\n * @param unbind - The operation to perform during unbinding.\n * @param updateTarget - The operation to perform when updating.\n * @param targetName - The name of the target attribute or property to update.\n */\n constructor(target, binding, isBindingVolatile, bind, unbind, updateTarget, targetName) {\n /** @internal */\n this.source = null;\n /** @internal */\n this.context = null;\n /** @internal */\n this.bindingObserver = null;\n this.target = target;\n this.binding = binding;\n this.isBindingVolatile = isBindingVolatile;\n this.bind = bind;\n this.unbind = unbind;\n this.updateTarget = updateTarget;\n this.targetName = targetName;\n }\n /** @internal */\n handleChange() {\n this.updateTarget(this.bindingObserver.observe(this.source, this.context));\n }\n /** @internal */\n handleEvent(event) {\n ExecutionContext.setEvent(event);\n const result = this.binding(this.source, this.context);\n ExecutionContext.setEvent(null);\n if (result !== true) {\n event.preventDefault();\n }\n }\n}\n","import { _interpolationEnd, _interpolationStart, DOM } from \"../dom.js\";\nimport { HTMLBindingDirective } from \"./binding.js\";\nlet sharedContext = null;\nclass CompilationContext {\n addFactory(factory) {\n factory.targetIndex = this.targetIndex;\n this.behaviorFactories.push(factory);\n }\n captureContentBinding(directive) {\n directive.targetAtContent();\n this.addFactory(directive);\n }\n reset() {\n this.behaviorFactories = [];\n this.targetIndex = -1;\n }\n release() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n sharedContext = this;\n }\n static borrow(directives) {\n const shareable = sharedContext || new CompilationContext();\n shareable.directives = directives;\n shareable.reset();\n sharedContext = null;\n return shareable;\n }\n}\nfunction createAggregateBinding(parts) {\n if (parts.length === 1) {\n return parts[0];\n }\n let targetName;\n const partCount = parts.length;\n const finalParts = parts.map((x) => {\n if (typeof x === \"string\") {\n return () => x;\n }\n targetName = x.targetName || targetName;\n return x.binding;\n });\n const binding = (scope, context) => {\n let output = \"\";\n for (let i = 0; i < partCount; ++i) {\n output += finalParts[i](scope, context);\n }\n return output;\n };\n const directive = new HTMLBindingDirective(binding);\n directive.targetName = targetName;\n return directive;\n}\nconst interpolationEndLength = _interpolationEnd.length;\nfunction parseContent(context, value) {\n const valueParts = value.split(_interpolationStart);\n if (valueParts.length === 1) {\n return null;\n }\n const bindingParts = [];\n for (let i = 0, ii = valueParts.length; i < ii; ++i) {\n const current = valueParts[i];\n const index = current.indexOf(_interpolationEnd);\n let literal;\n if (index === -1) {\n literal = current;\n }\n else {\n const directiveIndex = parseInt(current.substring(0, index));\n bindingParts.push(context.directives[directiveIndex]);\n literal = current.substring(index + interpolationEndLength);\n }\n if (literal !== \"\") {\n bindingParts.push(literal);\n }\n }\n return bindingParts;\n}\nfunction compileAttributes(context, node, includeBasicValues = false) {\n const attributes = node.attributes;\n for (let i = 0, ii = attributes.length; i < ii; ++i) {\n const attr = attributes[i];\n const attrValue = attr.value;\n const parseResult = parseContent(context, attrValue);\n let result = null;\n if (parseResult === null) {\n if (includeBasicValues) {\n result = new HTMLBindingDirective(() => attrValue);\n result.targetName = attr.name;\n }\n }\n else {\n result = createAggregateBinding(parseResult);\n }\n if (result !== null) {\n node.removeAttributeNode(attr);\n i--;\n ii--;\n context.addFactory(result);\n }\n }\n}\nfunction compileContent(context, node, walker) {\n const parseResult = parseContent(context, node.textContent);\n if (parseResult !== null) {\n let lastNode = node;\n for (let i = 0, ii = parseResult.length; i < ii; ++i) {\n const currentPart = parseResult[i];\n const currentNode = i === 0\n ? node\n : lastNode.parentNode.insertBefore(document.createTextNode(\"\"), lastNode.nextSibling);\n if (typeof currentPart === \"string\") {\n currentNode.textContent = currentPart;\n }\n else {\n currentNode.textContent = \" \";\n context.captureContentBinding(currentPart);\n }\n lastNode = currentNode;\n context.targetIndex++;\n if (currentNode !== node) {\n walker.nextNode();\n }\n }\n context.targetIndex--;\n }\n}\n/**\n * Compiles a template and associated directives into a raw compilation\n * result which include a cloneable DocumentFragment and factories capable\n * of attaching runtime behavior to nodes within the fragment.\n * @param template - The template to compile.\n * @param directives - The directives referenced by the template.\n * @remarks\n * The template that is provided for compilation is altered in-place\n * and cannot be compiled again. If the original template must be preserved,\n * it is recommended that you clone the original and pass the clone to this API.\n * @public\n */\nexport function compileTemplate(template, directives) {\n const fragment = template.content;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1111864\n document.adoptNode(fragment);\n const context = CompilationContext.borrow(directives);\n compileAttributes(context, template, true);\n const hostBehaviorFactories = context.behaviorFactories;\n context.reset();\n const walker = DOM.createTemplateWalker(fragment);\n let node;\n while ((node = walker.nextNode())) {\n context.targetIndex++;\n switch (node.nodeType) {\n case 1: // element node\n compileAttributes(context, node);\n break;\n case 3: // text node\n compileContent(context, node, walker);\n break;\n case 8: // comment\n if (DOM.isMarker(node)) {\n context.addFactory(directives[DOM.extractDirectiveIndexFromMarker(node)]);\n }\n }\n }\n let targetOffset = 0;\n if (\n // If the first node in a fragment is a marker, that means it's an unstable first node,\n // because something like a when, repeat, etc. could add nodes before the marker.\n // To mitigate this, we insert a stable first node. However, if we insert a node,\n // that will alter the result of the TreeWalker. So, we also need to offset the target index.\n DOM.isMarker(fragment.firstChild) ||\n // Or if there is only one node and a directive, it means the template's content\n // is *only* the directive. In that case, HTMLView.dispose() misses any nodes inserted by\n // the directive. Inserting a new node ensures proper disposal of nodes added by the directive.\n (fragment.childNodes.length === 1 && directives.length)) {\n fragment.insertBefore(document.createComment(\"\"), fragment.firstChild);\n targetOffset = -1;\n }\n const viewBehaviorFactories = context.behaviorFactories;\n context.release();\n return {\n fragment,\n viewBehaviorFactories,\n hostBehaviorFactories,\n targetOffset,\n };\n}\n","// A singleton Range instance used to efficiently remove ranges of DOM nodes.\n// See the implementation of HTMLView below for further details.\nconst range = document.createRange();\n/**\n * The standard View implementation, which also implements ElementView and SyntheticView.\n * @public\n */\nexport class HTMLView {\n /**\n * Constructs an instance of HTMLView.\n * @param fragment - The html fragment that contains the nodes for this view.\n * @param behaviors - The behaviors to be applied to this view.\n */\n constructor(fragment, behaviors) {\n this.fragment = fragment;\n this.behaviors = behaviors;\n /**\n * The data that the view is bound to.\n */\n this.source = null;\n /**\n * The execution context the view is running within.\n */\n this.context = null;\n this.firstChild = fragment.firstChild;\n this.lastChild = fragment.lastChild;\n }\n /**\n * Appends the view's DOM nodes to the referenced node.\n * @param node - The parent node to append the view's DOM nodes to.\n */\n appendTo(node) {\n node.appendChild(this.fragment);\n }\n /**\n * Inserts the view's DOM nodes before the referenced node.\n * @param node - The node to insert the view's DOM before.\n */\n insertBefore(node) {\n if (this.fragment.hasChildNodes()) {\n node.parentNode.insertBefore(this.fragment, node);\n }\n else {\n const end = this.lastChild;\n if (node.previousSibling === end)\n return;\n const parentNode = node.parentNode;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n parentNode.insertBefore(current, node);\n current = next;\n }\n parentNode.insertBefore(end, node);\n }\n }\n /**\n * Removes the view's DOM nodes.\n * The nodes are not disposed and the view can later be re-inserted.\n */\n remove() {\n const fragment = this.fragment;\n const end = this.lastChild;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n fragment.appendChild(current);\n current = next;\n }\n fragment.appendChild(end);\n }\n /**\n * Removes the view and unbinds its behaviors, disposing of DOM nodes afterward.\n * Once a view has been disposed, it cannot be inserted or bound again.\n */\n dispose() {\n const parent = this.firstChild.parentNode;\n const end = this.lastChild;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n parent.removeChild(current);\n current = next;\n }\n parent.removeChild(end);\n const behaviors = this.behaviors;\n const oldSource = this.source;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].unbind(oldSource);\n }\n }\n /**\n * Binds a view's behaviors to its binding source.\n * @param source - The binding source for the view's binding behaviors.\n * @param context - The execution context to run the behaviors within.\n */\n bind(source, context) {\n const behaviors = this.behaviors;\n if (this.source === source) {\n return;\n }\n else if (this.source !== null) {\n const oldSource = this.source;\n this.source = source;\n this.context = context;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n const current = behaviors[i];\n current.unbind(oldSource);\n current.bind(source, context);\n }\n }\n else {\n this.source = source;\n this.context = context;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].bind(source, context);\n }\n }\n }\n /**\n * Unbinds a view's behaviors from its binding source.\n */\n unbind() {\n if (this.source === null) {\n return;\n }\n const behaviors = this.behaviors;\n const oldSource = this.source;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].unbind(oldSource);\n }\n this.source = null;\n }\n /**\n * Efficiently disposes of a contiguous range of synthetic view instances.\n * @param views - A contiguous range of views to be disposed.\n */\n static disposeContiguousBatch(views) {\n if (views.length === 0) {\n return;\n }\n range.setStartBefore(views[0].firstChild);\n range.setEndAfter(views[views.length - 1].lastChild);\n range.deleteContents();\n for (let i = 0, ii = views.length; i < ii; ++i) {\n const view = views[i];\n const behaviors = view.behaviors;\n const oldSource = view.source;\n for (let j = 0, jj = behaviors.length; j < jj; ++j) {\n behaviors[j].unbind(oldSource);\n }\n }\n }\n}\n","import { DOM } from \"../dom.js\";\nimport { defaultExecutionContext } from \"../observation/observable.js\";\nimport { compileTemplate } from \"./compiler.js\";\nimport { HTMLView } from \"./view.js\";\nimport { HTMLDirective, TargetedHTMLDirective, } from \"./html-directive.js\";\nimport { HTMLBindingDirective } from \"./binding.js\";\n/**\n * A template capable of creating HTMLView instances or rendering directly to DOM.\n * @public\n */\n/* eslint-disable-next-line @typescript-eslint/no-unused-vars */\nexport class ViewTemplate {\n /**\n * Creates an instance of ViewTemplate.\n * @param html - The html representing what this template will instantiate, including placeholders for directives.\n * @param directives - The directives that will be connected to placeholders in the html.\n */\n constructor(html, directives) {\n this.behaviorCount = 0;\n this.hasHostBehaviors = false;\n this.fragment = null;\n this.targetOffset = 0;\n this.viewBehaviorFactories = null;\n this.hostBehaviorFactories = null;\n this.html = html;\n this.directives = directives;\n }\n /**\n * Creates an HTMLView instance based on this template definition.\n * @param hostBindingTarget - The element that host behaviors will be bound to.\n */\n create(hostBindingTarget) {\n if (this.fragment === null) {\n let template;\n const html = this.html;\n if (typeof html === \"string\") {\n template = document.createElement(\"template\");\n template.innerHTML = DOM.createHTML(html);\n const fec = template.content.firstElementChild;\n if (fec !== null && fec.tagName === \"TEMPLATE\") {\n template = fec;\n }\n }\n else {\n template = html;\n }\n const result = compileTemplate(template, this.directives);\n this.fragment = result.fragment;\n this.viewBehaviorFactories = result.viewBehaviorFactories;\n this.hostBehaviorFactories = result.hostBehaviorFactories;\n this.targetOffset = result.targetOffset;\n this.behaviorCount =\n this.viewBehaviorFactories.length + this.hostBehaviorFactories.length;\n this.hasHostBehaviors = this.hostBehaviorFactories.length > 0;\n }\n const fragment = this.fragment.cloneNode(true);\n const viewFactories = this.viewBehaviorFactories;\n const behaviors = new Array(this.behaviorCount);\n const walker = DOM.createTemplateWalker(fragment);\n let behaviorIndex = 0;\n let targetIndex = this.targetOffset;\n let node = walker.nextNode();\n for (let ii = viewFactories.length; behaviorIndex < ii; ++behaviorIndex) {\n const factory = viewFactories[behaviorIndex];\n const factoryIndex = factory.targetIndex;\n while (node !== null) {\n if (targetIndex === factoryIndex) {\n behaviors[behaviorIndex] = factory.createBehavior(node);\n break;\n }\n else {\n node = walker.nextNode();\n targetIndex++;\n }\n }\n }\n if (this.hasHostBehaviors) {\n const hostFactories = this.hostBehaviorFactories;\n for (let i = 0, ii = hostFactories.length; i < ii; ++i, ++behaviorIndex) {\n behaviors[behaviorIndex] = hostFactories[i].createBehavior(hostBindingTarget);\n }\n }\n return new HTMLView(fragment, behaviors);\n }\n /**\n * Creates an HTMLView from this template, binds it to the source, and then appends it to the host.\n * @param source - The data source to bind the template to.\n * @param host - The Element where the template will be rendered.\n * @param hostBindingTarget - An HTML element to target the host bindings at if different from the\n * host that the template is being attached to.\n */\n render(source, host, hostBindingTarget) {\n if (typeof host === \"string\") {\n host = document.getElementById(host);\n }\n if (hostBindingTarget === void 0) {\n hostBindingTarget = host;\n }\n const view = this.create(hostBindingTarget);\n view.bind(source, defaultExecutionContext);\n view.appendTo(host);\n return view;\n }\n}\n// Much thanks to LitHTML for working this out!\nconst lastAttributeNameRegex = \n/* eslint-disable-next-line no-control-regex */\n/([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n/**\n * Transforms a template literal string into a renderable ViewTemplate.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @remarks\n * The html helper supports interpolation of strings, numbers, binding expressions,\n * other template instances, and Directive instances.\n * @public\n */\nexport function html(strings, ...values) {\n const directives = [];\n let html = \"\";\n for (let i = 0, ii = strings.length - 1; i < ii; ++i) {\n const currentString = strings[i];\n let value = values[i];\n html += currentString;\n if (value instanceof ViewTemplate) {\n const template = value;\n value = () => template;\n }\n if (typeof value === \"function\") {\n value = new HTMLBindingDirective(value);\n }\n if (value instanceof TargetedHTMLDirective) {\n const match = lastAttributeNameRegex.exec(currentString);\n if (match !== null) {\n value.targetName = match[2];\n }\n }\n if (value instanceof HTMLDirective) {\n // Since not all values are directives, we can't use i\n // as the index for the placeholder. Instead, we need to\n // use directives.length to get the next index.\n html += value.createPlaceholder(directives.length);\n directives.push(value);\n }\n else {\n html += value;\n }\n }\n html += strings[strings.length - 1];\n return new ViewTemplate(html, directives);\n}\n","import { CSSDirective } from \"./css-directive.js\";\nimport { ElementStyles } from \"./element-styles.js\";\nfunction collectStyles(strings, values) {\n const styles = [];\n let cssString = \"\";\n const behaviors = [];\n for (let i = 0, ii = strings.length - 1; i < ii; ++i) {\n cssString += strings[i];\n let value = values[i];\n if (value instanceof CSSDirective) {\n const behavior = value.createBehavior();\n value = value.createCSS();\n if (behavior) {\n behaviors.push(behavior);\n }\n }\n if (value instanceof ElementStyles || value instanceof CSSStyleSheet) {\n if (cssString.trim() !== \"\") {\n styles.push(cssString);\n cssString = \"\";\n }\n styles.push(value);\n }\n else {\n cssString += value;\n }\n }\n cssString += strings[strings.length - 1];\n if (cssString.trim() !== \"\") {\n styles.push(cssString);\n }\n return {\n styles,\n behaviors,\n };\n}\n/**\n * Transforms a template literal string into styles.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @remarks\n * The css helper supports interpolation of strings and ElementStyle instances.\n * @public\n */\nexport function css(strings, ...values) {\n const { styles, behaviors } = collectStyles(strings, values);\n const elementStyles = ElementStyles.create(styles);\n if (behaviors.length) {\n elementStyles.withBehaviors(...behaviors);\n }\n return elementStyles;\n}\nclass CSSPartial extends CSSDirective {\n constructor(styles, behaviors) {\n super();\n this.behaviors = behaviors;\n this.css = \"\";\n const stylesheets = styles.reduce((accumulated, current) => {\n if (typeof current === \"string\") {\n this.css += current;\n }\n else {\n accumulated.push(current);\n }\n return accumulated;\n }, []);\n if (stylesheets.length) {\n this.styles = ElementStyles.create(stylesheets);\n }\n }\n createBehavior() {\n return this;\n }\n createCSS() {\n return this.css;\n }\n bind(el) {\n if (this.styles) {\n el.$fastController.addStyles(this.styles);\n }\n if (this.behaviors.length) {\n el.$fastController.addBehaviors(this.behaviors);\n }\n }\n unbind(el) {\n if (this.styles) {\n el.$fastController.removeStyles(this.styles);\n }\n if (this.behaviors.length) {\n el.$fastController.removeBehaviors(this.behaviors);\n }\n }\n}\n/**\n * Transforms a template literal string into partial CSS.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @public\n */\nexport function cssPartial(strings, ...values) {\n const { styles, behaviors } = collectStyles(strings, values);\n return new CSSPartial(styles, behaviors);\n}\n","import { emptyArray } from \"../platform.js\";\n/** @internal */\nexport function newSplice(index, removed, addedCount) {\n return {\n index: index,\n removed: removed,\n addedCount: addedCount,\n };\n}\nconst EDIT_LEAVE = 0;\nconst EDIT_UPDATE = 1;\nconst EDIT_ADD = 2;\nconst EDIT_DELETE = 3;\n// Note: This function is *based* on the computation of the Levenshtein\n// \"edit\" distance. The one change is that \"updates\" are treated as two\n// edits - not one. With Array splices, an update is really a delete\n// followed by an add. By retaining this, we optimize for \"keeping\" the\n// maximum array items in the original array. For example:\n//\n// 'xxxx123' -> '123yyyy'\n//\n// With 1-edit updates, the shortest path would be just to update all seven\n// characters. With 2-edit updates, we delete 4, leave 3, and add 4. This\n// leaves the substring '123' intact.\nfunction calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd) {\n // \"Deletion\" columns\n const rowCount = oldEnd - oldStart + 1;\n const columnCount = currentEnd - currentStart + 1;\n const distances = new Array(rowCount);\n let north;\n let west;\n // \"Addition\" rows. Initialize null column.\n for (let i = 0; i < rowCount; ++i) {\n distances[i] = new Array(columnCount);\n distances[i][0] = i;\n }\n // Initialize null row\n for (let j = 0; j < columnCount; ++j) {\n distances[0][j] = j;\n }\n for (let i = 1; i < rowCount; ++i) {\n for (let j = 1; j < columnCount; ++j) {\n if (current[currentStart + j - 1] === old[oldStart + i - 1]) {\n distances[i][j] = distances[i - 1][j - 1];\n }\n else {\n north = distances[i - 1][j] + 1;\n west = distances[i][j - 1] + 1;\n distances[i][j] = north < west ? north : west;\n }\n }\n }\n return distances;\n}\n// This starts at the final weight, and walks \"backward\" by finding\n// the minimum previous weight recursively until the origin of the weight\n// matrix.\nfunction spliceOperationsFromEditDistances(distances) {\n let i = distances.length - 1;\n let j = distances[0].length - 1;\n let current = distances[i][j];\n const edits = [];\n while (i > 0 || j > 0) {\n if (i === 0) {\n edits.push(EDIT_ADD);\n j--;\n continue;\n }\n if (j === 0) {\n edits.push(EDIT_DELETE);\n i--;\n continue;\n }\n const northWest = distances[i - 1][j - 1];\n const west = distances[i - 1][j];\n const north = distances[i][j - 1];\n let min;\n if (west < north) {\n min = west < northWest ? west : northWest;\n }\n else {\n min = north < northWest ? north : northWest;\n }\n if (min === northWest) {\n if (northWest === current) {\n edits.push(EDIT_LEAVE);\n }\n else {\n edits.push(EDIT_UPDATE);\n current = northWest;\n }\n i--;\n j--;\n }\n else if (min === west) {\n edits.push(EDIT_DELETE);\n i--;\n current = west;\n }\n else {\n edits.push(EDIT_ADD);\n j--;\n current = north;\n }\n }\n edits.reverse();\n return edits;\n}\nfunction sharedPrefix(current, old, searchLength) {\n for (let i = 0; i < searchLength; ++i) {\n if (current[i] !== old[i]) {\n return i;\n }\n }\n return searchLength;\n}\nfunction sharedSuffix(current, old, searchLength) {\n let index1 = current.length;\n let index2 = old.length;\n let count = 0;\n while (count < searchLength && current[--index1] === old[--index2]) {\n count++;\n }\n return count;\n}\nfunction intersect(start1, end1, start2, end2) {\n // Disjoint\n if (end1 < start2 || end2 < start1) {\n return -1;\n }\n // Adjacent\n if (end1 === start2 || end2 === start1) {\n return 0;\n }\n // Non-zero intersect, span1 first\n if (start1 < start2) {\n if (end1 < end2) {\n return end1 - start2; // Overlap\n }\n return end2 - start2; // Contained\n }\n // Non-zero intersect, span2 first\n if (end2 < end1) {\n return end2 - start1; // Overlap\n }\n return end1 - start1; // Contained\n}\n/**\n * Splice Projection functions:\n *\n * A splice map is a representation of how a previous array of items\n * was transformed into a new array of items. Conceptually it is a list of\n * tuples of\n *\n * \n *\n * which are kept in ascending index order of. The tuple represents that at\n * the |index|, |removed| sequence of items were removed, and counting forward\n * from |index|, |addedCount| items were added.\n */\n/**\n * @internal\n * @remarks\n * Lacking individual splice mutation information, the minimal set of\n * splices can be synthesized given the previous state and final state of an\n * array. The basic approach is to calculate the edit distance matrix and\n * choose the shortest path through it.\n *\n * Complexity: O(l * p)\n * l: The length of the current array\n * p: The length of the old array\n */\nexport function calcSplices(current, currentStart, currentEnd, old, oldStart, oldEnd) {\n let prefixCount = 0;\n let suffixCount = 0;\n const minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart);\n if (currentStart === 0 && oldStart === 0) {\n prefixCount = sharedPrefix(current, old, minLength);\n }\n if (currentEnd === current.length && oldEnd === old.length) {\n suffixCount = sharedSuffix(current, old, minLength - prefixCount);\n }\n currentStart += prefixCount;\n oldStart += prefixCount;\n currentEnd -= suffixCount;\n oldEnd -= suffixCount;\n if (currentEnd - currentStart === 0 && oldEnd - oldStart === 0) {\n return emptyArray;\n }\n if (currentStart === currentEnd) {\n const splice = newSplice(currentStart, [], 0);\n while (oldStart < oldEnd) {\n splice.removed.push(old[oldStart++]);\n }\n return [splice];\n }\n else if (oldStart === oldEnd) {\n return [newSplice(currentStart, [], currentEnd - currentStart)];\n }\n const ops = spliceOperationsFromEditDistances(calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd));\n const splices = [];\n let splice = void 0;\n let index = currentStart;\n let oldIndex = oldStart;\n for (let i = 0; i < ops.length; ++i) {\n switch (ops[i]) {\n case EDIT_LEAVE:\n if (splice !== void 0) {\n splices.push(splice);\n splice = void 0;\n }\n index++;\n oldIndex++;\n break;\n case EDIT_UPDATE:\n if (splice === void 0) {\n splice = newSplice(index, [], 0);\n }\n splice.addedCount++;\n index++;\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n case EDIT_ADD:\n if (splice === void 0) {\n splice = newSplice(index, [], 0);\n }\n splice.addedCount++;\n index++;\n break;\n case EDIT_DELETE:\n if (splice === void 0) {\n splice = newSplice(index, [], 0);\n }\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n // no default\n }\n }\n if (splice !== void 0) {\n splices.push(splice);\n }\n return splices;\n}\nconst $push = Array.prototype.push;\nfunction mergeSplice(splices, index, removed, addedCount) {\n const splice = newSplice(index, removed, addedCount);\n let inserted = false;\n let insertionOffset = 0;\n for (let i = 0; i < splices.length; i++) {\n const current = splices[i];\n current.index += insertionOffset;\n if (inserted) {\n continue;\n }\n const intersectCount = intersect(splice.index, splice.index + splice.removed.length, current.index, current.index + current.addedCount);\n if (intersectCount >= 0) {\n // Merge the two splices\n splices.splice(i, 1);\n i--;\n insertionOffset -= current.addedCount - current.removed.length;\n splice.addedCount += current.addedCount - intersectCount;\n const deleteCount = splice.removed.length + current.removed.length - intersectCount;\n if (!splice.addedCount && !deleteCount) {\n // merged splice is a noop. discard.\n inserted = true;\n }\n else {\n let currentRemoved = current.removed;\n if (splice.index < current.index) {\n // some prefix of splice.removed is prepended to current.removed.\n const prepend = splice.removed.slice(0, current.index - splice.index);\n $push.apply(prepend, currentRemoved);\n currentRemoved = prepend;\n }\n if (splice.index + splice.removed.length >\n current.index + current.addedCount) {\n // some suffix of splice.removed is appended to current.removed.\n const append = splice.removed.slice(current.index + current.addedCount - splice.index);\n $push.apply(currentRemoved, append);\n }\n splice.removed = currentRemoved;\n if (current.index < splice.index) {\n splice.index = current.index;\n }\n }\n }\n else if (splice.index < current.index) {\n // Insert splice here.\n inserted = true;\n splices.splice(i, 0, splice);\n i++;\n const offset = splice.addedCount - splice.removed.length;\n current.index += offset;\n insertionOffset += offset;\n }\n }\n if (!inserted) {\n splices.push(splice);\n }\n}\nfunction createInitialSplices(changeRecords) {\n const splices = [];\n for (let i = 0, ii = changeRecords.length; i < ii; i++) {\n const record = changeRecords[i];\n mergeSplice(splices, record.index, record.removed, record.addedCount);\n }\n return splices;\n}\n/** @internal */\nexport function projectArraySplices(array, changeRecords) {\n let splices = [];\n const initialSplices = createInitialSplices(changeRecords);\n for (let i = 0, ii = initialSplices.length; i < ii; ++i) {\n const splice = initialSplices[i];\n if (splice.addedCount === 1 && splice.removed.length === 1) {\n if (splice.removed[0] !== array[splice.index]) {\n splices.push(splice);\n }\n continue;\n }\n splices = splices.concat(calcSplices(array, splice.index, splice.index + splice.addedCount, splice.removed, 0, splice.removed.length));\n }\n return splices;\n}\n","import { DOM } from \"../dom.js\";\nimport { calcSplices, newSplice, projectArraySplices } from \"./array-change-records.js\";\nimport { SubscriberSet } from \"./notifier.js\";\nimport { Observable } from \"./observable.js\";\nlet arrayObservationEnabled = false;\nfunction adjustIndex(changeRecord, array) {\n let index = changeRecord.index;\n const arrayLength = array.length;\n if (index > arrayLength) {\n index = arrayLength - changeRecord.addedCount;\n }\n else if (index < 0) {\n index =\n arrayLength + changeRecord.removed.length + index - changeRecord.addedCount;\n }\n if (index < 0) {\n index = 0;\n }\n changeRecord.index = index;\n return changeRecord;\n}\nclass ArrayObserver extends SubscriberSet {\n constructor(source) {\n super(source);\n this.oldCollection = void 0;\n this.splices = void 0;\n this.needsQueue = true;\n this.call = this.flush;\n Reflect.defineProperty(source, \"$fastController\", {\n value: this,\n enumerable: false,\n });\n }\n subscribe(subscriber) {\n this.flush();\n super.subscribe(subscriber);\n }\n addSplice(splice) {\n if (this.splices === void 0) {\n this.splices = [splice];\n }\n else {\n this.splices.push(splice);\n }\n if (this.needsQueue) {\n this.needsQueue = false;\n DOM.queueUpdate(this);\n }\n }\n reset(oldCollection) {\n this.oldCollection = oldCollection;\n if (this.needsQueue) {\n this.needsQueue = false;\n DOM.queueUpdate(this);\n }\n }\n flush() {\n const splices = this.splices;\n const oldCollection = this.oldCollection;\n if (splices === void 0 && oldCollection === void 0) {\n return;\n }\n this.needsQueue = true;\n this.splices = void 0;\n this.oldCollection = void 0;\n const finalSplices = oldCollection === void 0\n ? projectArraySplices(this.source, splices)\n : calcSplices(this.source, 0, this.source.length, oldCollection, 0, oldCollection.length);\n this.notify(finalSplices);\n }\n}\n/* eslint-disable prefer-rest-params */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/**\n * Enables the array observation mechanism.\n * @remarks\n * Array observation is enabled automatically when using the\n * {@link RepeatDirective}, so calling this API manually is\n * not typically necessary.\n * @public\n */\nexport function enableArrayObservation() {\n if (arrayObservationEnabled) {\n return;\n }\n arrayObservationEnabled = true;\n Observable.setArrayObserverFactory((collection) => {\n return new ArrayObserver(collection);\n });\n const proto = Array.prototype;\n // Don't patch Array if it has already been patched\n // by another copy of fast-element.\n if (proto.$fastPatch) {\n return;\n }\n Reflect.defineProperty(proto, \"$fastPatch\", {\n value: 1,\n enumerable: false,\n });\n const pop = proto.pop;\n const push = proto.push;\n const reverse = proto.reverse;\n const shift = proto.shift;\n const sort = proto.sort;\n const splice = proto.splice;\n const unshift = proto.unshift;\n proto.pop = function () {\n const notEmpty = this.length > 0;\n const methodCallResult = pop.apply(this, arguments);\n const o = this.$fastController;\n if (o !== void 0 && notEmpty) {\n o.addSplice(newSplice(this.length, [methodCallResult], 0));\n }\n return methodCallResult;\n };\n proto.push = function () {\n const methodCallResult = push.apply(this, arguments);\n const o = this.$fastController;\n if (o !== void 0) {\n o.addSplice(adjustIndex(newSplice(this.length - arguments.length, [], arguments.length), this));\n }\n return methodCallResult;\n };\n proto.reverse = function () {\n let oldArray;\n const o = this.$fastController;\n if (o !== void 0) {\n o.flush();\n oldArray = this.slice();\n }\n const methodCallResult = reverse.apply(this, arguments);\n if (o !== void 0) {\n o.reset(oldArray);\n }\n return methodCallResult;\n };\n proto.shift = function () {\n const notEmpty = this.length > 0;\n const methodCallResult = shift.apply(this, arguments);\n const o = this.$fastController;\n if (o !== void 0 && notEmpty) {\n o.addSplice(newSplice(0, [methodCallResult], 0));\n }\n return methodCallResult;\n };\n proto.sort = function () {\n let oldArray;\n const o = this.$fastController;\n if (o !== void 0) {\n o.flush();\n oldArray = this.slice();\n }\n const methodCallResult = sort.apply(this, arguments);\n if (o !== void 0) {\n o.reset(oldArray);\n }\n return methodCallResult;\n };\n proto.splice = function () {\n const methodCallResult = splice.apply(this, arguments);\n const o = this.$fastController;\n if (o !== void 0) {\n o.addSplice(adjustIndex(newSplice(+arguments[0], methodCallResult, arguments.length > 2 ? arguments.length - 2 : 0), this));\n }\n return methodCallResult;\n };\n proto.unshift = function () {\n const methodCallResult = unshift.apply(this, arguments);\n const o = this.$fastController;\n if (o !== void 0) {\n o.addSplice(adjustIndex(newSplice(0, [], arguments.length), this));\n }\n return methodCallResult;\n };\n}\n/* eslint-enable prefer-rest-params */\n/* eslint-enable @typescript-eslint/explicit-function-return-type */\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive.js\";\n/**\n * The runtime behavior for template references.\n * @public\n */\nexport class RefBehavior {\n /**\n * Creates an instance of RefBehavior.\n * @param target - The element to reference.\n * @param propertyName - The name of the property to assign the reference to.\n */\n constructor(target, propertyName) {\n this.target = target;\n this.propertyName = propertyName;\n }\n /**\n * Bind this behavior to the source.\n * @param source - The source to bind to.\n * @param context - The execution context that the binding is operating within.\n */\n bind(source) {\n source[this.propertyName] = this.target;\n }\n /**\n * Unbinds this behavior from the source.\n * @param source - The source to unbind from.\n */\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n unbind() { }\n}\n/**\n * A directive that observes the updates a property with a reference to the element.\n * @param propertyName - The name of the property to assign the reference to.\n * @public\n */\nexport function ref(propertyName) {\n return new AttachedBehaviorHTMLDirective(\"fast-ref\", RefBehavior, propertyName);\n}\n","/**\n * Determines whether or not an object is a function.\n * @public\n */\nexport const isFunction = (object) => typeof object === \"function\";\n","import { isFunction } from \"../interfaces.js\";\nconst noTemplate = () => null;\nfunction normalizeBinding(value) {\n return value === undefined ? noTemplate : isFunction(value) ? value : () => value;\n}\n/**\n * A directive that enables basic conditional rendering in a template.\n * @param binding - The condition to test for rendering.\n * @param templateOrTemplateBinding - The template or a binding that gets\n * the template to render when the condition is true.\n * @param elseTemplateOrTemplateBinding - Optional template or binding that that\n * gets the template to render when the conditional is false.\n * @public\n */\nexport function when(binding, templateOrTemplateBinding, elseTemplateOrTemplateBinding) {\n const dataBinding = isFunction(binding) ? binding : () => binding;\n const templateBinding = normalizeBinding(templateOrTemplateBinding);\n const elseBinding = normalizeBinding(elseTemplateOrTemplateBinding);\n return (source, context) => dataBinding(source, context)\n ? templateBinding(source, context)\n : elseBinding(source, context);\n}\n","import { DOM } from \"../dom.js\";\nimport { Observable, } from \"../observation/observable.js\";\nimport { enableArrayObservation } from \"../observation/array-observer.js\";\nimport { emptyArray } from \"../platform.js\";\nimport { HTMLDirective } from \"./html-directive.js\";\nimport { HTMLView } from \"./view.js\";\nconst defaultRepeatOptions = Object.freeze({\n positioning: false,\n recycle: true,\n});\nfunction bindWithoutPositioning(view, items, index, context) {\n view.bind(items[index], context);\n}\nfunction bindWithPositioning(view, items, index, context) {\n const childContext = Object.create(context);\n childContext.index = index;\n childContext.length = items.length;\n view.bind(items[index], childContext);\n}\n/**\n * A behavior that renders a template for each item in an array.\n * @public\n */\nexport class RepeatBehavior {\n /**\n * Creates an instance of RepeatBehavior.\n * @param location - The location in the DOM to render the repeat.\n * @param itemsBinding - The array to render.\n * @param isItemsBindingVolatile - Indicates whether the items binding has volatile dependencies.\n * @param templateBinding - The template to render for each item.\n * @param isTemplateBindingVolatile - Indicates whether the template binding has volatile dependencies.\n * @param options - Options used to turn on special repeat features.\n */\n constructor(location, itemsBinding, isItemsBindingVolatile, templateBinding, isTemplateBindingVolatile, options) {\n this.location = location;\n this.itemsBinding = itemsBinding;\n this.templateBinding = templateBinding;\n this.options = options;\n this.source = null;\n this.views = [];\n this.items = null;\n this.itemsObserver = null;\n this.originalContext = void 0;\n this.childContext = void 0;\n this.bindView = bindWithoutPositioning;\n this.itemsBindingObserver = Observable.binding(itemsBinding, this, isItemsBindingVolatile);\n this.templateBindingObserver = Observable.binding(templateBinding, this, isTemplateBindingVolatile);\n if (options.positioning) {\n this.bindView = bindWithPositioning;\n }\n }\n /**\n * Bind this behavior to the source.\n * @param source - The source to bind to.\n * @param context - The execution context that the binding is operating within.\n */\n bind(source, context) {\n this.source = source;\n this.originalContext = context;\n this.childContext = Object.create(context);\n this.childContext.parent = source;\n this.childContext.parentContext = this.originalContext;\n this.items = this.itemsBindingObserver.observe(source, this.originalContext);\n this.template = this.templateBindingObserver.observe(source, this.originalContext);\n this.observeItems(true);\n this.refreshAllViews();\n }\n /**\n * Unbinds this behavior from the source.\n * @param source - The source to unbind from.\n */\n unbind() {\n this.source = null;\n this.items = null;\n if (this.itemsObserver !== null) {\n this.itemsObserver.unsubscribe(this);\n }\n this.unbindAllViews();\n this.itemsBindingObserver.disconnect();\n this.templateBindingObserver.disconnect();\n }\n /** @internal */\n handleChange(source, args) {\n if (source === this.itemsBinding) {\n this.items = this.itemsBindingObserver.observe(this.source, this.originalContext);\n this.observeItems();\n this.refreshAllViews();\n }\n else if (source === this.templateBinding) {\n this.template = this.templateBindingObserver.observe(this.source, this.originalContext);\n this.refreshAllViews(true);\n }\n else {\n this.updateViews(args);\n }\n }\n observeItems(force = false) {\n if (!this.items) {\n this.items = emptyArray;\n return;\n }\n const oldObserver = this.itemsObserver;\n const newObserver = (this.itemsObserver = Observable.getNotifier(this.items));\n const hasNewObserver = oldObserver !== newObserver;\n if (hasNewObserver && oldObserver !== null) {\n oldObserver.unsubscribe(this);\n }\n if (hasNewObserver || force) {\n newObserver.subscribe(this);\n }\n }\n updateViews(splices) {\n const childContext = this.childContext;\n const views = this.views;\n const bindView = this.bindView;\n const items = this.items;\n const template = this.template;\n const recycle = this.options.recycle;\n const leftoverViews = [];\n let leftoverIndex = 0;\n let availableViews = 0;\n for (let i = 0, ii = splices.length; i < ii; ++i) {\n const splice = splices[i];\n const removed = splice.removed;\n let removeIndex = 0;\n let addIndex = splice.index;\n const end = addIndex + splice.addedCount;\n const removedViews = views.splice(splice.index, removed.length);\n const totalAvailableViews = (availableViews =\n leftoverViews.length + removedViews.length);\n for (; addIndex < end; ++addIndex) {\n const neighbor = views[addIndex];\n const location = neighbor ? neighbor.firstChild : this.location;\n let view;\n if (recycle && availableViews > 0) {\n if (removeIndex <= totalAvailableViews && removedViews.length > 0) {\n view = removedViews[removeIndex];\n removeIndex++;\n }\n else {\n view = leftoverViews[leftoverIndex];\n leftoverIndex++;\n }\n availableViews--;\n }\n else {\n view = template.create();\n }\n views.splice(addIndex, 0, view);\n bindView(view, items, addIndex, childContext);\n view.insertBefore(location);\n }\n if (removedViews[removeIndex]) {\n leftoverViews.push(...removedViews.slice(removeIndex));\n }\n }\n for (let i = leftoverIndex, ii = leftoverViews.length; i < ii; ++i) {\n leftoverViews[i].dispose();\n }\n if (this.options.positioning) {\n for (let i = 0, ii = views.length; i < ii; ++i) {\n const currentContext = views[i].context;\n currentContext.length = ii;\n currentContext.index = i;\n }\n }\n }\n refreshAllViews(templateChanged = false) {\n const items = this.items;\n const childContext = this.childContext;\n const template = this.template;\n const location = this.location;\n const bindView = this.bindView;\n let itemsLength = items.length;\n let views = this.views;\n let viewsLength = views.length;\n if (itemsLength === 0 || templateChanged || !this.options.recycle) {\n // all views need to be removed\n HTMLView.disposeContiguousBatch(views);\n viewsLength = 0;\n }\n if (viewsLength === 0) {\n // all views need to be created\n this.views = views = new Array(itemsLength);\n for (let i = 0; i < itemsLength; ++i) {\n const view = template.create();\n bindView(view, items, i, childContext);\n views[i] = view;\n view.insertBefore(location);\n }\n }\n else {\n // attempt to reuse existing views with new data\n let i = 0;\n for (; i < itemsLength; ++i) {\n if (i < viewsLength) {\n const view = views[i];\n bindView(view, items, i, childContext);\n }\n else {\n const view = template.create();\n bindView(view, items, i, childContext);\n views.push(view);\n view.insertBefore(location);\n }\n }\n const removed = views.splice(i, viewsLength - i);\n for (i = 0, itemsLength = removed.length; i < itemsLength; ++i) {\n removed[i].dispose();\n }\n }\n }\n unbindAllViews() {\n const views = this.views;\n for (let i = 0, ii = views.length; i < ii; ++i) {\n views[i].unbind();\n }\n }\n}\n/**\n * A directive that configures list rendering.\n * @public\n */\nexport class RepeatDirective extends HTMLDirective {\n /**\n * Creates an instance of RepeatDirective.\n * @param itemsBinding - The binding that provides the array to render.\n * @param templateBinding - The template binding used to obtain a template to render for each item in the array.\n * @param options - Options used to turn on special repeat features.\n */\n constructor(itemsBinding, templateBinding, options) {\n super();\n this.itemsBinding = itemsBinding;\n this.templateBinding = templateBinding;\n this.options = options;\n /**\n * Creates a placeholder string based on the directive's index within the template.\n * @param index - The index of the directive within the template.\n */\n this.createPlaceholder = DOM.createBlockPlaceholder;\n enableArrayObservation();\n this.isItemsBindingVolatile = Observable.isVolatileBinding(itemsBinding);\n this.isTemplateBindingVolatile = Observable.isVolatileBinding(templateBinding);\n }\n /**\n * Creates a behavior for the provided target node.\n * @param target - The node instance to create the behavior for.\n */\n createBehavior(target) {\n return new RepeatBehavior(target, this.itemsBinding, this.isItemsBindingVolatile, this.templateBinding, this.isTemplateBindingVolatile, this.options);\n }\n}\n/**\n * A directive that enables list rendering.\n * @param itemsBinding - The array to render.\n * @param templateOrTemplateBinding - The template or a template binding used obtain a template\n * to render for each item in the array.\n * @param options - Options used to turn on special repeat features.\n * @public\n */\nexport function repeat(itemsBinding, templateOrTemplateBinding, options = defaultRepeatOptions) {\n const templateBinding = typeof templateOrTemplateBinding === \"function\"\n ? templateOrTemplateBinding\n : () => templateOrTemplateBinding;\n return new RepeatDirective(itemsBinding, templateBinding, Object.assign(Object.assign({}, defaultRepeatOptions), options));\n}\n","import { Observable } from \"../observation/observable.js\";\nimport { emptyArray } from \"../platform.js\";\n/**\n * Creates a function that can be used to filter a Node array, selecting only elements.\n * @param selector - An optional selector to restrict the filter to.\n * @public\n */\nexport function elements(selector) {\n if (selector) {\n return function (value, index, array) {\n return value.nodeType === 1 && value.matches(selector);\n };\n }\n return function (value, index, array) {\n return value.nodeType === 1;\n };\n}\n/**\n * A base class for node observation.\n * @internal\n */\nexport class NodeObservationBehavior {\n /**\n * Creates an instance of NodeObservationBehavior.\n * @param target - The target to assign the nodes property on.\n * @param options - The options to use in configuring node observation.\n */\n constructor(target, options) {\n this.target = target;\n this.options = options;\n this.source = null;\n }\n /**\n * Bind this behavior to the source.\n * @param source - The source to bind to.\n * @param context - The execution context that the binding is operating within.\n */\n bind(source) {\n const name = this.options.property;\n this.shouldUpdate = Observable.getAccessors(source).some((x) => x.name === name);\n this.source = source;\n this.updateTarget(this.computeNodes());\n if (this.shouldUpdate) {\n this.observe();\n }\n }\n /**\n * Unbinds this behavior from the source.\n * @param source - The source to unbind from.\n */\n unbind() {\n this.updateTarget(emptyArray);\n this.source = null;\n if (this.shouldUpdate) {\n this.disconnect();\n }\n }\n /** @internal */\n handleEvent() {\n this.updateTarget(this.computeNodes());\n }\n computeNodes() {\n let nodes = this.getNodes();\n if (this.options.filter !== void 0) {\n nodes = nodes.filter(this.options.filter);\n }\n return nodes;\n }\n updateTarget(value) {\n this.source[this.options.property] = value;\n }\n}\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive.js\";\nimport { NodeObservationBehavior } from \"./node-observation.js\";\n/**\n * The runtime behavior for slotted node observation.\n * @public\n */\nexport class SlottedBehavior extends NodeObservationBehavior {\n /**\n * Creates an instance of SlottedBehavior.\n * @param target - The slot element target to observe.\n * @param options - The options to use when observing the slot.\n */\n constructor(target, options) {\n super(target, options);\n }\n /**\n * Begins observation of the nodes.\n */\n observe() {\n this.target.addEventListener(\"slotchange\", this);\n }\n /**\n * Disconnects observation of the nodes.\n */\n disconnect() {\n this.target.removeEventListener(\"slotchange\", this);\n }\n /**\n * Retrieves the nodes that should be assigned to the target.\n */\n getNodes() {\n return this.target.assignedNodes(this.options);\n }\n}\n/**\n * A directive that observes the `assignedNodes()` of a slot and updates a property\n * whenever they change.\n * @param propertyOrOptions - The options used to configure slotted node observation.\n * @public\n */\nexport function slotted(propertyOrOptions) {\n if (typeof propertyOrOptions === \"string\") {\n propertyOrOptions = { property: propertyOrOptions };\n }\n return new AttachedBehaviorHTMLDirective(\"fast-slotted\", SlottedBehavior, propertyOrOptions);\n}\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive.js\";\nimport { NodeObservationBehavior } from \"./node-observation.js\";\n/**\n * The runtime behavior for child node observation.\n * @public\n */\nexport class ChildrenBehavior extends NodeObservationBehavior {\n /**\n * Creates an instance of ChildrenBehavior.\n * @param target - The element target to observe children on.\n * @param options - The options to use when observing the element children.\n */\n constructor(target, options) {\n super(target, options);\n this.observer = null;\n options.childList = true;\n }\n /**\n * Begins observation of the nodes.\n */\n observe() {\n if (this.observer === null) {\n this.observer = new MutationObserver(this.handleEvent.bind(this));\n }\n this.observer.observe(this.target, this.options);\n }\n /**\n * Disconnects observation of the nodes.\n */\n disconnect() {\n this.observer.disconnect();\n }\n /**\n * Retrieves the nodes that should be assigned to the target.\n */\n getNodes() {\n if (\"subtree\" in this.options) {\n return Array.from(this.target.querySelectorAll(this.options.selector));\n }\n return Array.from(this.target.childNodes);\n }\n}\n/**\n * A directive that observes the `childNodes` of an element and updates a property\n * whenever they change.\n * @param propertyOrOptions - The options used to configure child node observation.\n * @public\n */\nexport function children(propertyOrOptions) {\n if (typeof propertyOrOptions === \"string\") {\n propertyOrOptions = {\n property: propertyOrOptions,\n };\n }\n return new AttachedBehaviorHTMLDirective(\"fast-children\", ChildrenBehavior, propertyOrOptions);\n}\n","import { html, ref } from \"@microsoft/fast-element\";\n/**\n * A mixin class implementing start and end elements.\n * These are generally used to decorate text elements with icons or other visual indicators.\n * @public\n */\nexport class StartEnd {\n handleStartContentChange() {\n this.startContainer.classList.toggle(\"start\", this.start.assignedNodes().length > 0);\n }\n handleEndContentChange() {\n this.endContainer.classList.toggle(\"end\", this.end.assignedNodes().length > 0);\n }\n}\n/**\n * The template for the end element.\n * For use with {@link StartEnd}\n *\n * @public\n */\nexport const endSlotTemplate = (context, definition) => html `\n (definition.end ? \"end\" : void 0)}\n >\n x.handleEndContentChange()}\">\n ${definition.end || \"\"}\n \n \n`;\n/**\n * The template for the start element.\n * For use with {@link StartEnd}\n *\n * @public\n */\nexport const startSlotTemplate = (context, definition) => html `\n (definition.start ? \"start\" : void 0)}\"\n >\n x.handleStartContentChange()}\"\n >\n ${definition.start || \"\"}\n \n \n`;\n/**\n * The template for the end element.\n * For use with {@link StartEnd}\n *\n * @public\n * @deprecated - use endSlotTemplate\n */\nexport const endTemplate = html `\n \n x.handleEndContentChange()}\"\n >\n \n`;\n/**\n * The template for the start element.\n * For use with {@link StartEnd}\n *\n * @public\n * @deprecated - use startSlotTemplate\n */\nexport const startTemplate = html `\n \n x.handleStartContentChange()}\"\n >\n \n`;\n","import { html, ref } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end.js\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(AccordionItem:class)} component.\n * @public\n */\nexport const accordionItemTemplate = (context, definition) => html `\n \n`;\n","/**\n * Big thanks to https://github.com/fkleuver and the https://github.com/aurelia/aurelia project\n * for the bulk of this code and many of the associated tests.\n */\nimport { emptyArray, FASTElement } from \"@microsoft/fast-element\";\n// Tiny polyfill for TypeScript's Reflect metadata API.\nconst metadataByTarget = new Map();\nif (!(\"metadata\" in Reflect)) {\n Reflect.metadata = function (key, value) {\n return function (target) {\n Reflect.defineMetadata(key, value, target);\n };\n };\n Reflect.defineMetadata = function (key, value, target) {\n let metadata = metadataByTarget.get(target);\n if (metadata === void 0) {\n metadataByTarget.set(target, (metadata = new Map()));\n }\n metadata.set(key, value);\n };\n Reflect.getOwnMetadata = function (key, target) {\n const metadata = metadataByTarget.get(target);\n if (metadata !== void 0) {\n return metadata.get(key);\n }\n return void 0;\n };\n}\n/**\n * A utility class used that constructs and registers resolvers for a dependency\n * injection container. Supports a standard set of object lifetimes.\n * @public\n */\nexport class ResolverBuilder {\n /**\n *\n * @param container - The container to create resolvers for.\n * @param key - The key to register resolvers under.\n */\n constructor(container, key) {\n this.container = container;\n this.key = key;\n }\n /**\n * Creates a resolver for an existing object instance.\n * @param value - The instance to resolve.\n * @returns The resolver.\n */\n instance(value) {\n return this.registerResolver(0 /* instance */, value);\n }\n /**\n * Creates a resolver that enforces a singleton lifetime.\n * @param value - The type to create and cache the singleton for.\n * @returns The resolver.\n */\n singleton(value) {\n return this.registerResolver(1 /* singleton */, value);\n }\n /**\n * Creates a resolver that creates a new instance for every dependency request.\n * @param value - The type to create instances of.\n * @returns - The resolver.\n */\n transient(value) {\n return this.registerResolver(2 /* transient */, value);\n }\n /**\n * Creates a resolver that invokes a callback function for every dependency resolution\n * request, allowing custom logic to return the dependency.\n * @param value - The callback to call during resolution.\n * @returns The resolver.\n */\n callback(value) {\n return this.registerResolver(3 /* callback */, value);\n }\n /**\n * Creates a resolver that invokes a callback function the first time that a dependency\n * resolution is requested. The returned value is then cached and provided for all\n * subsequent requests.\n * @param value - The callback to call during the first resolution.\n * @returns The resolver.\n */\n cachedCallback(value) {\n return this.registerResolver(3 /* callback */, cacheCallbackResult(value));\n }\n /**\n * Aliases the current key to a different key.\n * @param destinationKey - The key to point the alias to.\n * @returns The resolver.\n */\n aliasTo(destinationKey) {\n return this.registerResolver(5 /* alias */, destinationKey);\n }\n registerResolver(strategy, state) {\n const { container, key } = this;\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n this.container = this.key = (void 0);\n return container.registerResolver(key, new ResolverImpl(key, strategy, state));\n }\n}\nfunction cloneArrayWithPossibleProps(source) {\n const clone = source.slice();\n const keys = Object.keys(source);\n const len = keys.length;\n let key;\n for (let i = 0; i < len; ++i) {\n key = keys[i];\n if (!isArrayIndex(key)) {\n clone[key] = source[key];\n }\n }\n return clone;\n}\n/**\n * A set of default resolvers useful in configuring a container.\n * @public\n */\nexport const DefaultResolver = Object.freeze({\n /**\n * Disables auto-registration and throws for all un-registered dependencies.\n * @param key - The key to create the resolver for.\n */\n none(key) {\n throw Error(`${key.toString()} not registered, did you forget to add @singleton()?`);\n },\n /**\n * Provides default singleton resolution behavior during auto-registration.\n * @param key - The key to create the resolver for.\n * @returns The resolver.\n */\n singleton(key) {\n return new ResolverImpl(key, 1 /* singleton */, key);\n },\n /**\n * Provides default transient resolution behavior during auto-registration.\n * @param key - The key to create the resolver for.\n * @returns The resolver.\n */\n transient(key) {\n return new ResolverImpl(key, 2 /* transient */, key);\n },\n});\n/**\n * Configuration for a dependency injection container.\n * @public\n */\nexport const ContainerConfiguration = Object.freeze({\n /**\n * The default configuration used when creating a DOM-disconnected container.\n * @remarks\n * The default creates a root container, with no parent container. It does not handle\n * owner requests and it uses singleton resolution behavior for auto-registration.\n */\n default: Object.freeze({\n parentLocator: () => null,\n responsibleForOwnerRequests: false,\n defaultResolver: DefaultResolver.singleton,\n }),\n});\nconst dependencyLookup = new Map();\nfunction getParamTypes(key) {\n return (Type) => {\n return Reflect.getOwnMetadata(key, Type);\n };\n}\nlet rootDOMContainer = null;\n/**\n * The gateway to dependency injection APIs.\n * @public\n */\nexport const DI = Object.freeze({\n /**\n * Creates a new dependency injection container.\n * @param config - The configuration for the container.\n * @returns A newly created dependency injection container.\n */\n createContainer(config) {\n return new ContainerImpl(null, Object.assign({}, ContainerConfiguration.default, config));\n },\n /**\n * Finds the dependency injection container responsible for providing dependencies\n * to the specified node.\n * @param node - The node to find the responsible container for.\n * @returns The container responsible for providing dependencies to the node.\n * @remarks\n * This will be the same as the parent container if the specified node\n * does not itself host a container configured with responsibleForOwnerRequests.\n */\n findResponsibleContainer(node) {\n const owned = node.$$container$$;\n if (owned && owned.responsibleForOwnerRequests) {\n return owned;\n }\n return DI.findParentContainer(node);\n },\n /**\n * Find the dependency injection container up the DOM tree from this node.\n * @param node - The node to find the parent container for.\n * @returns The parent container of this node.\n * @remarks\n * This will be the same as the responsible container if the specified node\n * does not itself host a container configured with responsibleForOwnerRequests.\n */\n findParentContainer(node) {\n const event = new CustomEvent(DILocateParentEventType, {\n bubbles: true,\n composed: true,\n cancelable: true,\n detail: { container: void 0 },\n });\n node.dispatchEvent(event);\n return event.detail.container || DI.getOrCreateDOMContainer();\n },\n /**\n * Returns a dependency injection container if one is explicitly owned by the specified\n * node. If one is not owned, then a new container is created and assigned to the node.\n * @param node - The node to find or create the container for.\n * @param config - The configuration for the container if one needs to be created.\n * @returns The located or created container.\n * @remarks\n * This API does not search for a responsible or parent container. It looks only for a container\n * directly defined on the specified node and creates one at that location if one does not\n * already exist.\n */\n getOrCreateDOMContainer(node, config) {\n if (!node) {\n return (rootDOMContainer ||\n (rootDOMContainer = new ContainerImpl(null, Object.assign({}, ContainerConfiguration.default, config, {\n parentLocator: () => null,\n }))));\n }\n return (node.$$container$$ ||\n new ContainerImpl(node, Object.assign({}, ContainerConfiguration.default, config, {\n parentLocator: DI.findParentContainer,\n })));\n },\n /**\n * Gets the \"design:paramtypes\" metadata for the specified type.\n * @param Type - The type to get the metadata for.\n * @returns The metadata array or undefined if no metadata is found.\n */\n getDesignParamtypes: getParamTypes(\"design:paramtypes\"),\n /**\n * Gets the \"di:paramtypes\" metadata for the specified type.\n * @param Type - The type to get the metadata for.\n * @returns The metadata array or undefined if no metadata is found.\n */\n getAnnotationParamtypes: getParamTypes(\"di:paramtypes\"),\n /**\n *\n * @param Type - Gets the \"di:paramtypes\" metadata for the specified type. If none is found,\n * an empty metadata array is created and added.\n * @returns The metadata array.\n */\n getOrCreateAnnotationParamTypes(Type) {\n let annotationParamtypes = this.getAnnotationParamtypes(Type);\n if (annotationParamtypes === void 0) {\n Reflect.defineMetadata(\"di:paramtypes\", (annotationParamtypes = []), Type);\n }\n return annotationParamtypes;\n },\n /**\n * Gets the dependency keys representing what is needed to instantiate the specified type.\n * @param Type - The type to get the dependencies for.\n * @returns An array of dependency keys.\n */\n getDependencies(Type) {\n // Note: Every detail of this getDependencies method is pretty deliberate at the moment, and probably not yet 100% tested from every possible angle,\n // so be careful with making changes here as it can have a huge impact on complex end user apps.\n // Preferably, only make changes to the dependency resolution process via a RFC.\n let dependencies = dependencyLookup.get(Type);\n if (dependencies === void 0) {\n // Type.length is the number of constructor parameters. If this is 0, it could mean the class has an empty constructor\n // but it could also mean the class has no constructor at all (in which case it inherits the constructor from the prototype).\n // Non-zero constructor length + no paramtypes means emitDecoratorMetadata is off, or the class has no decorator.\n // We're not doing anything with the above right now, but it's good to keep in mind for any future issues.\n const inject = Type.inject;\n if (inject === void 0) {\n // design:paramtypes is set by tsc when emitDecoratorMetadata is enabled.\n const designParamtypes = DI.getDesignParamtypes(Type);\n // di:paramtypes is set by the parameter decorator from DI.createInterface or by @inject\n const annotationParamtypes = DI.getAnnotationParamtypes(Type);\n if (designParamtypes === void 0) {\n if (annotationParamtypes === void 0) {\n // Only go up the prototype if neither static inject nor any of the paramtypes is defined, as\n // there is no sound way to merge a type's deps with its prototype's deps\n const Proto = Object.getPrototypeOf(Type);\n if (typeof Proto === \"function\" && Proto !== Function.prototype) {\n dependencies = cloneArrayWithPossibleProps(DI.getDependencies(Proto));\n }\n else {\n dependencies = [];\n }\n }\n else {\n // No design:paramtypes so just use the di:paramtypes\n dependencies = cloneArrayWithPossibleProps(annotationParamtypes);\n }\n }\n else if (annotationParamtypes === void 0) {\n // No di:paramtypes so just use the design:paramtypes\n dependencies = cloneArrayWithPossibleProps(designParamtypes);\n }\n else {\n // We've got both, so merge them (in case of conflict on same index, di:paramtypes take precedence)\n dependencies = cloneArrayWithPossibleProps(designParamtypes);\n let len = annotationParamtypes.length;\n let auAnnotationParamtype;\n for (let i = 0; i < len; ++i) {\n auAnnotationParamtype = annotationParamtypes[i];\n if (auAnnotationParamtype !== void 0) {\n dependencies[i] = auAnnotationParamtype;\n }\n }\n const keys = Object.keys(annotationParamtypes);\n len = keys.length;\n let key;\n for (let i = 0; i < len; ++i) {\n key = keys[i];\n if (!isArrayIndex(key)) {\n dependencies[key] = annotationParamtypes[key];\n }\n }\n }\n }\n else {\n // Ignore paramtypes if we have static inject\n dependencies = cloneArrayWithPossibleProps(inject);\n }\n dependencyLookup.set(Type, dependencies);\n }\n return dependencies;\n },\n /**\n * Defines a property on a web component class. The value of this property will\n * be resolved from the dependency injection container responsible for the element\n * instance, based on where it is connected in the DOM.\n * @param target - The target to define the property on.\n * @param propertyName - The name of the property to define.\n * @param key - The dependency injection key.\n * @param respectConnection - Indicates whether or not to update the property value if the\n * hosting component is disconnected and then re-connected at a different location in the DOM.\n * @remarks\n * The respectConnection option is only applicable to elements that descend from FASTElement.\n */\n defineProperty(target, propertyName, key, respectConnection = false) {\n const diPropertyKey = `$di_${propertyName}`;\n Reflect.defineProperty(target, propertyName, {\n get: function () {\n let value = this[diPropertyKey];\n if (value === void 0) {\n const container = this instanceof HTMLElement\n ? DI.findResponsibleContainer(this)\n : DI.getOrCreateDOMContainer();\n value = container.get(key);\n this[diPropertyKey] = value;\n if (respectConnection && this instanceof FASTElement) {\n const notifier = this.$fastController;\n const handleChange = () => {\n const newContainer = DI.findResponsibleContainer(this);\n const newValue = newContainer.get(key);\n const oldValue = this[diPropertyKey];\n if (newValue !== oldValue) {\n this[diPropertyKey] = value;\n notifier.notify(propertyName);\n }\n };\n notifier.subscribe({ handleChange }, \"isConnected\");\n }\n }\n return value;\n },\n });\n },\n /**\n * Creates a dependency injection key.\n * @param nameConfigOrCallback - A friendly name for the key or a lambda that configures a\n * default resolution for the dependency.\n * @param configuror - If a friendly name was provided for the first parameter, then an optional\n * lambda that configures a default resolution for the dependency can be provided second.\n * @returns The created key.\n * @remarks\n * The created key can be used as a property decorator or constructor parameter decorator,\n * in addition to its standard use in an inject array or through direct container APIs.\n */\n createInterface(nameConfigOrCallback, configuror) {\n const configure = typeof nameConfigOrCallback === \"function\"\n ? nameConfigOrCallback\n : configuror;\n const friendlyName = typeof nameConfigOrCallback === \"string\"\n ? nameConfigOrCallback\n : nameConfigOrCallback && \"friendlyName\" in nameConfigOrCallback\n ? nameConfigOrCallback.friendlyName || defaultFriendlyName\n : defaultFriendlyName;\n const respectConnection = typeof nameConfigOrCallback === \"string\"\n ? false\n : nameConfigOrCallback && \"respectConnection\" in nameConfigOrCallback\n ? nameConfigOrCallback.respectConnection || false\n : false;\n const Interface = function (target, property, index) {\n if (target == null || new.target !== undefined) {\n throw new Error(`No registration for interface: '${Interface.friendlyName}'`);\n }\n if (property) {\n DI.defineProperty(target, property, Interface, respectConnection);\n }\n else {\n const annotationParamtypes = DI.getOrCreateAnnotationParamTypes(target);\n annotationParamtypes[index] = Interface;\n }\n };\n Interface.$isInterface = true;\n Interface.friendlyName = friendlyName == null ? \"(anonymous)\" : friendlyName;\n if (configure != null) {\n Interface.register = function (container, key) {\n return configure(new ResolverBuilder(container, key !== null && key !== void 0 ? key : Interface));\n };\n }\n Interface.toString = function toString() {\n return `InterfaceSymbol<${Interface.friendlyName}>`;\n };\n return Interface;\n },\n /**\n * A decorator that specifies what to inject into its target.\n * @param dependencies - The dependencies to inject.\n * @returns The decorator to be applied to the target class.\n * @remarks\n * The decorator can be used to decorate a class, listing all of the classes dependencies.\n * Or it can be used to decorate a constructor paramter, indicating what to inject for that\n * parameter.\n * Or it can be used for a web component property, indicating what that property should resolve to.\n */\n inject(...dependencies) {\n return function (target, key, descriptor) {\n if (typeof descriptor === \"number\") {\n // It's a parameter decorator.\n const annotationParamtypes = DI.getOrCreateAnnotationParamTypes(target);\n const dep = dependencies[0];\n if (dep !== void 0) {\n annotationParamtypes[descriptor] = dep;\n }\n }\n else if (key) {\n DI.defineProperty(target, key, dependencies[0]);\n }\n else {\n const annotationParamtypes = descriptor\n ? DI.getOrCreateAnnotationParamTypes(descriptor.value)\n : DI.getOrCreateAnnotationParamTypes(target);\n let dep;\n for (let i = 0; i < dependencies.length; ++i) {\n dep = dependencies[i];\n if (dep !== void 0) {\n annotationParamtypes[i] = dep;\n }\n }\n }\n };\n },\n /**\n * Registers the `target` class as a transient dependency; each time the dependency is resolved\n * a new instance will be created.\n *\n * @param target - The class / constructor function to register as transient.\n * @returns The same class, with a static `register` method that takes a container and returns the appropriate resolver.\n *\n * @example\n * On an existing class\n * ```ts\n * class Foo { }\n * DI.transient(Foo);\n * ```\n *\n * @example\n * Inline declaration\n *\n * ```ts\n * const Foo = DI.transient(class { });\n * // Foo is now strongly typed with register\n * Foo.register(container);\n * ```\n *\n * @public\n */\n transient(target) {\n target.register = function register(container) {\n const registration = Registration.transient(target, target);\n return registration.register(container);\n };\n target.registerInRequestor = false;\n return target;\n },\n /**\n * Registers the `target` class as a singleton dependency; the class will only be created once. Each\n * consecutive time the dependency is resolved, the same instance will be returned.\n *\n * @param target - The class / constructor function to register as a singleton.\n * @returns The same class, with a static `register` method that takes a container and returns the appropriate resolver.\n * @example\n * On an existing class\n * ```ts\n * class Foo { }\n * DI.singleton(Foo);\n * ```\n *\n * @example\n * Inline declaration\n * ```ts\n * const Foo = DI.singleton(class { });\n * // Foo is now strongly typed with register\n * Foo.register(container);\n * ```\n *\n * @public\n */\n singleton(target, options = defaultSingletonOptions) {\n target.register = function register(container) {\n const registration = Registration.singleton(target, target);\n return registration.register(container);\n };\n target.registerInRequestor = options.scoped;\n return target;\n },\n});\n/**\n * The interface key that resolves the dependency injection container itself.\n * @public\n */\nexport const Container = DI.createInterface(\"Container\");\n/**\n * The interface key that resolves the service locator itself.\n * @public\n */\nexport const ServiceLocator = Container;\nfunction createResolver(getter) {\n return function (key) {\n const resolver = function (target, property, descriptor) {\n DI.inject(resolver)(target, property, descriptor);\n };\n resolver.$isResolver = true;\n resolver.resolve = function (handler, requestor) {\n return getter(key, handler, requestor);\n };\n return resolver;\n };\n}\n/**\n * A decorator that specifies what to inject into its target.\n * @param dependencies - The dependencies to inject.\n * @returns The decorator to be applied to the target class.\n * @remarks\n * The decorator can be used to decorate a class, listing all of the classes dependencies.\n * Or it can be used to decorate a constructor paramter, indicating what to inject for that\n * parameter.\n * Or it can be used for a web component property, indicating what that property should resolve to.\n *\n * @public\n */\nexport const inject = DI.inject;\nfunction transientDecorator(target) {\n return DI.transient(target);\n}\nexport function transient(target) {\n return target == null ? transientDecorator : transientDecorator(target);\n}\nconst defaultSingletonOptions = { scoped: false };\nfunction singletonDecorator(target) {\n return DI.singleton(target);\n}\n/**\n * @public\n */\nexport function singleton(targetOrOptions) {\n if (typeof targetOrOptions === \"function\") {\n return DI.singleton(targetOrOptions);\n }\n return function ($target) {\n return DI.singleton($target, targetOrOptions);\n };\n}\nfunction createAllResolver(getter) {\n return function (key, searchAncestors) {\n searchAncestors = !!searchAncestors;\n const resolver = function (target, property, descriptor) {\n DI.inject(resolver)(target, property, descriptor);\n };\n resolver.$isResolver = true;\n resolver.resolve = function (handler, requestor) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n return getter(key, handler, requestor, searchAncestors);\n };\n return resolver;\n };\n}\n/**\n * A decorator and DI resolver that will resolve an array of all dependencies\n * registered with the specified key.\n * @param key - The key to resolve all dependencies for.\n * @param searchAncestors - [optional] Indicates whether to search ancestor containers.\n * @public\n */\nexport const all = createAllResolver((key, handler, requestor, searchAncestors) => requestor.getAll(key, searchAncestors));\n/**\n * A decorator that lazily injects a dependency depending on whether the `Key` is present at the time of function call.\n *\n * @example\n * You need to make your argument a function that returns the type, for example\n * ```ts\n * class Foo {\n * constructor( @lazy('random') public random: () => number )\n * }\n * const foo = container.get(Foo); // instanceof Foo\n * foo.random(); // throws\n * ```\n * would throw an exception because you haven't registered `'random'` before calling the method.\n * @example\n * This, would give you a new 'Math.random()' number each time.\n * ```ts\n * class Foo {\n * constructor( @lazy('random') public random: () => random )\n * }\n * container.register(Registration.callback('random', Math.random ));\n * container.get(Foo).random(); // some random number\n * container.get(Foo).random(); // another random number\n * ```\n *\n * `@lazy` does not manage the lifecycle of the underlying key. If you want a singleton, you have to register as a\n * `singleton`, `transient` would also behave as you would expect, providing you a new instance each time.\n *\n * @param key - The key to lazily resolve.\n * see {@link DI.createInterface} on interactions with interfaces\n *\n * @public\n */\nexport const lazy = createResolver((key, handler, requestor) => {\n return () => requestor.get(key);\n});\n/**\n * A decorator that allows you to optionally inject a dependency depending on whether the [[`Key`]] is present, for example:\n * @example\n * ```ts\n * class Foo {\n * constructor( @inject('mystring') public str: string = 'somestring' )\n * }\n * container.get(Foo); // throws\n * ```\n * would fail\n *\n * @example\n * ```ts\n * class Foo {\n * constructor( @optional('mystring') public str: string = 'somestring' )\n * }\n * container.get(Foo).str // somestring\n * ```\n * if you use it without a default it will inject `undefined`, so remember to mark your input type as\n * possibly `undefined`!\n *\n * @param key - The key to optionally resolve.\n * see {@link DI.createInterface} on interactions with interfaces\n *\n * @public\n */\nexport const optional = createResolver((key, handler, requestor) => {\n if (requestor.has(key, true)) {\n return requestor.get(key);\n }\n else {\n return undefined;\n }\n});\n/**\n * A decorator that tells the container not to try to inject a dependency.\n *\n * @public\n */\nexport function ignore(target, property, descriptor) {\n DI.inject(ignore)(target, property, descriptor);\n}\n// Hack: casting below used to prevent TS from generate a namespace which can't be commented\n// and results in documentation validation errors.\nignore.$isResolver = true;\nignore.resolve = () => undefined;\n/**\n * A decorator that indicates that a new instance should be injected scoped to the\n * container that requested the instance.\n * @param key - The dependency key for the new instance.\n * @remarks\n * This creates a resolver with an instance strategy pointing to the new instance, effectively\n * making this a singleton, scoped to the container or DOM's subtree.\n *\n * @public\n */\nexport const newInstanceForScope = createResolver((key, handler, requestor) => {\n const instance = createNewInstance(key, handler);\n const resolver = new ResolverImpl(key, 0 /* instance */, instance);\n requestor.registerResolver(key, resolver);\n return instance;\n});\n/**\n * A decorator that indicates that a new instance should be injected.\n * @param key - The dependency key for the new instance.\n * @remarks\n * The instance is not internally cached with a resolver as newInstanceForScope does.\n *\n * @public\n */\nexport const newInstanceOf = createResolver((key, handler, _requestor) => createNewInstance(key, handler));\nfunction createNewInstance(key, handler) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n return handler.getFactory(key).construct(handler);\n}\n/** @internal */\nexport class ResolverImpl {\n constructor(key, strategy, state) {\n this.key = key;\n this.strategy = strategy;\n this.state = state;\n this.resolving = false;\n }\n get $isResolver() {\n return true;\n }\n register(container) {\n return container.registerResolver(this.key, this);\n }\n resolve(handler, requestor) {\n switch (this.strategy) {\n case 0 /* instance */:\n return this.state;\n case 1 /* singleton */: {\n if (this.resolving) {\n throw new Error(`Cyclic dependency found: ${this.state.name}`);\n }\n this.resolving = true;\n this.state = handler\n .getFactory(this.state)\n .construct(requestor);\n this.strategy = 0 /* instance */;\n this.resolving = false;\n return this.state;\n }\n case 2 /* transient */: {\n // Always create transients from the requesting container\n const factory = handler.getFactory(this.state);\n if (factory === null) {\n throw new Error(`Resolver for ${String(this.key)} returned a null factory`);\n }\n return factory.construct(requestor);\n }\n case 3 /* callback */:\n return this.state(handler, requestor, this);\n case 4 /* array */:\n return this.state[0].resolve(handler, requestor);\n case 5 /* alias */:\n return requestor.get(this.state);\n default:\n throw new Error(`Invalid resolver strategy specified: ${this.strategy}.`);\n }\n }\n getFactory(container) {\n var _a, _b, _c;\n switch (this.strategy) {\n case 1 /* singleton */:\n case 2 /* transient */:\n return container.getFactory(this.state);\n case 5 /* alias */:\n return (_c = (_b = (_a = container.getResolver(this.state)) === null || _a === void 0 ? void 0 : _a.getFactory) === null || _b === void 0 ? void 0 : _b.call(_a, container)) !== null && _c !== void 0 ? _c : null;\n default:\n return null;\n }\n }\n}\nfunction containerGetKey(d) {\n return this.get(d);\n}\nfunction transformInstance(inst, transform) {\n return transform(inst);\n}\n/** @internal */\nexport class FactoryImpl {\n constructor(Type, dependencies) {\n this.Type = Type;\n this.dependencies = dependencies;\n this.transformers = null;\n }\n construct(container, dynamicDependencies) {\n let instance;\n if (dynamicDependencies === void 0) {\n instance = new this.Type(...this.dependencies.map(containerGetKey, container));\n }\n else {\n instance = new this.Type(...this.dependencies.map(containerGetKey, container), ...dynamicDependencies);\n }\n if (this.transformers == null) {\n return instance;\n }\n return this.transformers.reduce(transformInstance, instance);\n }\n registerTransformer(transformer) {\n (this.transformers || (this.transformers = [])).push(transformer);\n }\n}\nconst containerResolver = {\n $isResolver: true,\n resolve(handler, requestor) {\n return requestor;\n },\n};\nfunction isRegistry(obj) {\n return typeof obj.register === \"function\";\n}\nfunction isSelfRegistry(obj) {\n return isRegistry(obj) && typeof obj.registerInRequestor === \"boolean\";\n}\nfunction isRegisterInRequester(obj) {\n return isSelfRegistry(obj) && obj.registerInRequestor;\n}\nfunction isClass(obj) {\n return obj.prototype !== void 0;\n}\nconst InstrinsicTypeNames = new Set([\n \"Array\",\n \"ArrayBuffer\",\n \"Boolean\",\n \"DataView\",\n \"Date\",\n \"Error\",\n \"EvalError\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Int8Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Map\",\n \"Number\",\n \"Object\",\n \"Promise\",\n \"RangeError\",\n \"ReferenceError\",\n \"RegExp\",\n \"Set\",\n \"SharedArrayBuffer\",\n \"String\",\n \"SyntaxError\",\n \"TypeError\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"URIError\",\n \"WeakMap\",\n \"WeakSet\",\n]);\nconst DILocateParentEventType = \"__DI_LOCATE_PARENT__\";\nconst factories = new Map();\n/**\n * @internal\n */\nexport class ContainerImpl {\n constructor(owner, config) {\n this.owner = owner;\n this.config = config;\n this._parent = void 0;\n this.registerDepth = 0;\n this.context = null;\n if (owner !== null) {\n owner.$$container$$ = this;\n }\n this.resolvers = new Map();\n this.resolvers.set(Container, containerResolver);\n if (owner instanceof Node) {\n owner.addEventListener(DILocateParentEventType, (e) => {\n if (e.composedPath()[0] !== this.owner) {\n e.detail.container = this;\n e.stopImmediatePropagation();\n }\n });\n }\n }\n get parent() {\n if (this._parent === void 0) {\n this._parent = this.config.parentLocator(this.owner);\n }\n return this._parent;\n }\n get depth() {\n return this.parent === null ? 0 : this.parent.depth + 1;\n }\n get responsibleForOwnerRequests() {\n return this.config.responsibleForOwnerRequests;\n }\n registerWithContext(context, ...params) {\n this.context = context;\n this.register(...params);\n this.context = null;\n return this;\n }\n register(...params) {\n if (++this.registerDepth === 100) {\n throw new Error(\"Unable to autoregister dependency\");\n // Most likely cause is trying to register a plain object that does not have a\n // register method and is not a class constructor\n }\n let current;\n let keys;\n let value;\n let j;\n let jj;\n const context = this.context;\n for (let i = 0, ii = params.length; i < ii; ++i) {\n current = params[i];\n if (!isObject(current)) {\n continue;\n }\n if (isRegistry(current)) {\n current.register(this, context);\n }\n else if (isClass(current)) {\n Registration.singleton(current, current).register(this);\n }\n else {\n keys = Object.keys(current);\n j = 0;\n jj = keys.length;\n for (; j < jj; ++j) {\n value = current[keys[j]];\n if (!isObject(value)) {\n continue;\n }\n // note: we could remove this if-branch and call this.register directly\n // - the extra check is just a perf tweak to create fewer unnecessary arrays by the spread operator\n if (isRegistry(value)) {\n value.register(this, context);\n }\n else {\n this.register(value);\n }\n }\n }\n }\n --this.registerDepth;\n return this;\n }\n registerResolver(key, resolver) {\n validateKey(key);\n const resolvers = this.resolvers;\n const result = resolvers.get(key);\n if (result == null) {\n resolvers.set(key, resolver);\n }\n else if (result instanceof ResolverImpl &&\n result.strategy === 4 /* array */) {\n result.state.push(resolver);\n }\n else {\n resolvers.set(key, new ResolverImpl(key, 4 /* array */, [result, resolver]));\n }\n return resolver;\n }\n registerTransformer(key, transformer) {\n const resolver = this.getResolver(key);\n if (resolver == null) {\n return false;\n }\n if (resolver.getFactory) {\n const factory = resolver.getFactory(this);\n if (factory == null) {\n return false;\n }\n // This type cast is a bit of a hacky one, necessary due to the duplicity of IResolverLike.\n // Problem is that that interface's type arg can be of type Key, but the getFactory method only works on\n // type Constructable. So the return type of that optional method has this additional constraint, which\n // seems to confuse the type checker.\n factory.registerTransformer(transformer);\n return true;\n }\n return false;\n }\n getResolver(key, autoRegister = true) {\n validateKey(key);\n if (key.resolve !== void 0) {\n return key;\n }\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n let current = this;\n let resolver;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n if (current.parent == null) {\n const handler = isRegisterInRequester(key)\n ? this\n : current;\n return autoRegister ? this.jitRegister(key, handler) : null;\n }\n current = current.parent;\n }\n else {\n return resolver;\n }\n }\n return null;\n }\n has(key, searchAncestors = false) {\n return this.resolvers.has(key)\n ? true\n : searchAncestors && this.parent != null\n ? this.parent.has(key, true)\n : false;\n }\n get(key) {\n validateKey(key);\n if (key.$isResolver) {\n return key.resolve(this, this);\n }\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n let current = this;\n let resolver;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n if (current.parent == null) {\n const handler = isRegisterInRequester(key)\n ? this\n : current;\n resolver = this.jitRegister(key, handler);\n return resolver.resolve(current, this);\n }\n current = current.parent;\n }\n else {\n return resolver.resolve(current, this);\n }\n }\n throw new Error(`Unable to resolve key: ${String(key)}`);\n }\n getAll(key, searchAncestors = false) {\n validateKey(key);\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n const requestor = this;\n let current = requestor;\n let resolver;\n if (searchAncestors) {\n let resolutions = emptyArray;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver != null) {\n resolutions = resolutions.concat(\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n buildAllResponse(resolver, current, requestor));\n }\n current = current.parent;\n }\n return resolutions;\n }\n else {\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n current = current.parent;\n if (current == null) {\n return emptyArray;\n }\n }\n else {\n return buildAllResponse(resolver, current, requestor);\n }\n }\n }\n return emptyArray;\n }\n getFactory(Type) {\n let factory = factories.get(Type);\n if (factory === void 0) {\n if (isNativeFunction(Type)) {\n throw new Error(`${Type.name} is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.`);\n }\n factories.set(Type, (factory = new FactoryImpl(Type, DI.getDependencies(Type))));\n }\n return factory;\n }\n registerFactory(key, factory) {\n factories.set(key, factory);\n }\n createChild(config) {\n return new ContainerImpl(null, Object.assign({}, this.config, config, { parentLocator: () => this }));\n }\n jitRegister(keyAsValue, handler) {\n if (typeof keyAsValue !== \"function\") {\n throw new Error(`Attempted to jitRegister something that is not a constructor: '${keyAsValue}'. Did you forget to register this dependency?`);\n }\n if (InstrinsicTypeNames.has(keyAsValue.name)) {\n throw new Error(`Attempted to jitRegister an intrinsic type: ${keyAsValue.name}. Did you forget to add @inject(Key)`);\n }\n if (isRegistry(keyAsValue)) {\n const registrationResolver = keyAsValue.register(handler);\n if (!(registrationResolver instanceof Object) ||\n registrationResolver.resolve == null) {\n const newResolver = handler.resolvers.get(keyAsValue);\n if (newResolver != void 0) {\n return newResolver;\n }\n throw new Error(\"A valid resolver was not returned from the static register method\");\n }\n return registrationResolver;\n }\n else if (keyAsValue.$isInterface) {\n throw new Error(`Attempted to jitRegister an interface: ${keyAsValue.friendlyName}`);\n }\n else {\n const resolver = this.config.defaultResolver(keyAsValue, handler);\n handler.resolvers.set(keyAsValue, resolver);\n return resolver;\n }\n }\n}\nconst cache = new WeakMap();\nfunction cacheCallbackResult(fun) {\n return function (handler, requestor, resolver) {\n if (cache.has(resolver)) {\n return cache.get(resolver);\n }\n const t = fun(handler, requestor, resolver);\n cache.set(resolver, t);\n return t;\n };\n}\n/**\n * You can use the resulting Registration of any of the factory methods\n * to register with the container.\n *\n * @example\n * ```\n * class Foo {}\n * const container = DI.createContainer();\n * container.register(Registration.instance(Foo, new Foo()));\n * container.get(Foo);\n * ```\n *\n * @public\n */\nexport const Registration = Object.freeze({\n /**\n * Allows you to pass an instance.\n * Every time you request this {@link Key} you will get this instance back.\n *\n * @example\n * ```\n * Registration.instance(Foo, new Foo()));\n * ```\n *\n * @param key - The key to register the instance under.\n * @param value - The instance to return when the key is requested.\n */\n instance(key, value) {\n return new ResolverImpl(key, 0 /* instance */, value);\n },\n /**\n * Creates an instance from the class.\n * Every time you request this {@link Key} you will get the same one back.\n *\n * @example\n * ```\n * Registration.singleton(Foo, Foo);\n * ```\n *\n * @param key - The key to register the singleton under.\n * @param value - The class to instantiate as a singleton when first requested.\n */\n singleton(key, value) {\n return new ResolverImpl(key, 1 /* singleton */, value);\n },\n /**\n * Creates an instance from a class.\n * Every time you request this {@link Key} you will get a new instance.\n *\n * @example\n * ```\n * Registration.instance(Foo, Foo);\n * ```\n *\n * @param key - The key to register the instance type under.\n * @param value - The class to instantiate each time the key is requested.\n */\n transient(key, value) {\n return new ResolverImpl(key, 2 /* transient */, value);\n },\n /**\n * Delegates to a callback function to provide the dependency.\n * Every time you request this {@link Key} the callback will be invoked to provide\n * the dependency.\n *\n * @example\n * ```\n * Registration.callback(Foo, () => new Foo());\n * Registration.callback(Bar, (c: Container) => new Bar(c.get(Foo)));\n * ```\n *\n * @param key - The key to register the callback for.\n * @param callback - The function that is expected to return the dependency.\n */\n callback(key, callback) {\n return new ResolverImpl(key, 3 /* callback */, callback);\n },\n /**\n * Delegates to a callback function to provide the dependency and then caches the\n * dependency for future requests.\n *\n * @example\n * ```\n * Registration.cachedCallback(Foo, () => new Foo());\n * Registration.cachedCallback(Bar, (c: Container) => new Bar(c.get(Foo)));\n * ```\n *\n * @param key - The key to register the callback for.\n * @param callback - The function that is expected to return the dependency.\n * @remarks\n * If you pass the same Registration to another container, the same cached value will be used.\n * Should all references to the resolver returned be removed, the cache will expire.\n */\n cachedCallback(key, callback) {\n return new ResolverImpl(key, 3 /* callback */, cacheCallbackResult(callback));\n },\n /**\n * Creates an alternate {@link Key} to retrieve an instance by.\n *\n * @example\n * ```\n * Register.singleton(Foo, Foo)\n * Register.aliasTo(Foo, MyFoos);\n *\n * container.getAll(MyFoos) // contains an instance of Foo\n * ```\n *\n * @param originalKey - The original key that has been registered.\n * @param aliasKey - The alias to the original key.\n */\n aliasTo(originalKey, aliasKey) {\n return new ResolverImpl(aliasKey, 5 /* alias */, originalKey);\n },\n});\n/** @internal */\nexport function validateKey(key) {\n if (key === null || key === void 0) {\n throw new Error(\"key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?\");\n }\n}\nfunction buildAllResponse(resolver, handler, requestor) {\n if (resolver instanceof ResolverImpl &&\n resolver.strategy === 4 /* array */) {\n const state = resolver.state;\n let i = state.length;\n const results = new Array(i);\n while (i--) {\n results[i] = state[i].resolve(handler, requestor);\n }\n return results;\n }\n return [resolver.resolve(handler, requestor)];\n}\nconst defaultFriendlyName = \"(anonymous)\";\nfunction isObject(value) {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\";\n}\n/**\n * Determine whether the value is a native function.\n *\n * @param fn - The function to check.\n * @returns `true` is the function is a native function, otherwise `false`\n */\nconst isNativeFunction = (function () {\n const lookup = new WeakMap();\n let isNative = false;\n let sourceText = \"\";\n let i = 0;\n return function (fn) {\n isNative = lookup.get(fn);\n if (isNative === void 0) {\n sourceText = fn.toString();\n i = sourceText.length;\n // http://www.ecma-international.org/ecma-262/#prod-NativeFunction\n isNative =\n // 29 is the length of 'function () { [native code] }' which is the smallest length of a native function string\n i >= 29 &&\n // 100 seems to be a safe upper bound of the max length of a native function. In Chrome and FF it's 56, in Edge it's 61.\n i <= 100 &&\n // This whole heuristic *could* be tricked by a comment. Do we need to care about that?\n sourceText.charCodeAt(i - 1) === 0x7d && // }\n // TODO: the spec is a little vague about the precise constraints, so we do need to test this across various browsers to make sure just one whitespace is a safe assumption.\n sourceText.charCodeAt(i - 2) <= 0x20 && // whitespace\n sourceText.charCodeAt(i - 3) === 0x5d && // ]\n sourceText.charCodeAt(i - 4) === 0x65 && // e\n sourceText.charCodeAt(i - 5) === 0x64 && // d\n sourceText.charCodeAt(i - 6) === 0x6f && // o\n sourceText.charCodeAt(i - 7) === 0x63 && // c\n sourceText.charCodeAt(i - 8) === 0x20 && //\n sourceText.charCodeAt(i - 9) === 0x65 && // e\n sourceText.charCodeAt(i - 10) === 0x76 && // v\n sourceText.charCodeAt(i - 11) === 0x69 && // i\n sourceText.charCodeAt(i - 12) === 0x74 && // t\n sourceText.charCodeAt(i - 13) === 0x61 && // a\n sourceText.charCodeAt(i - 14) === 0x6e && // n\n sourceText.charCodeAt(i - 15) === 0x58; // [\n lookup.set(fn, isNative);\n }\n return isNative;\n };\n})();\nconst isNumericLookup = {};\nfunction isArrayIndex(value) {\n switch (typeof value) {\n case \"number\":\n return value >= 0 && (value | 0) === value;\n case \"string\": {\n const result = isNumericLookup[value];\n if (result !== void 0) {\n return result;\n }\n const length = value.length;\n if (length === 0) {\n return (isNumericLookup[value] = false);\n }\n let ch = 0;\n for (let i = 0; i < length; ++i) {\n ch = value.charCodeAt(i);\n if ((i === 0 && ch === 0x30 && length > 1) /* must not start with 0 */ ||\n ch < 0x30 /* 0 */ ||\n ch > 0x39 /* 9 */) {\n return (isNumericLookup[value] = false);\n }\n }\n return (isNumericLookup[value] = true);\n }\n default:\n return false;\n }\n}\n","import { ElementStyles, } from \"@microsoft/fast-element\";\nimport { DI, Registration } from \"../di/di.js\";\nfunction presentationKeyFromTag(tagName) {\n return `${tagName.toLowerCase()}:presentation`;\n}\nconst presentationRegistry = new Map();\n/**\n * An API gateway to component presentation features.\n * @public\n */\nexport const ComponentPresentation = Object.freeze({\n /**\n * Defines a component presentation for an element.\n * @param tagName - The element name to define the presentation for.\n * @param presentation - The presentation that will be applied to matching elements.\n * @param container - The dependency injection container to register the configuration in.\n * @public\n */\n define(tagName, presentation, container) {\n const key = presentationKeyFromTag(tagName);\n const existing = presentationRegistry.get(key);\n if (existing === void 0) {\n presentationRegistry.set(key, presentation);\n }\n else {\n // false indicates that we have more than one presentation\n // registered for a tagName and we must resolve through DI\n presentationRegistry.set(key, false);\n }\n container.register(Registration.instance(key, presentation));\n },\n /**\n * Finds a component presentation for the specified element name,\n * searching the DOM hierarchy starting from the provided element.\n * @param tagName - The name of the element to locate the presentation for.\n * @param element - The element to begin the search from.\n * @returns The component presentation or null if none is found.\n * @public\n */\n forTag(tagName, element) {\n const key = presentationKeyFromTag(tagName);\n const existing = presentationRegistry.get(key);\n if (existing === false) {\n const container = DI.findResponsibleContainer(element);\n return container.get(key);\n }\n return existing || null;\n },\n});\n/**\n * The default implementation of ComponentPresentation, used by FoundationElement.\n * @public\n */\nexport class DefaultComponentPresentation {\n /**\n * Creates an instance of DefaultComponentPresentation.\n * @param template - The template to apply to the element.\n * @param styles - The styles to apply to the element.\n * @public\n */\n constructor(template, styles) {\n this.template = template || null;\n this.styles =\n styles === void 0\n ? null\n : Array.isArray(styles)\n ? ElementStyles.create(styles)\n : styles instanceof ElementStyles\n ? styles\n : ElementStyles.create([styles]);\n }\n /**\n * Applies the presentation details to the specified element.\n * @param element - The element to apply the presentation details to.\n * @public\n */\n applyTo(element) {\n const controller = element.$fastController;\n if (controller.template === null) {\n controller.template = this.template;\n }\n if (controller.styles === null) {\n controller.styles = this.styles;\n }\n }\n}\n","import { __decorate } from \"tslib\";\nimport { FASTElement, observable } from \"@microsoft/fast-element\";\nimport { ComponentPresentation, DefaultComponentPresentation, } from \"../design-system/component-presentation.js\";\n/**\n * Defines a foundation element class that:\n * 1. Connects the element to its ComponentPresentation\n * 2. Allows resolving the element template from the instance or ComponentPresentation\n * 3. Allows resolving the element styles from the instance or ComponentPresentation\n *\n * @public\n */\nexport class FoundationElement extends FASTElement {\n constructor() {\n super(...arguments);\n this._presentation = void 0;\n }\n /**\n * A property which resolves the ComponentPresentation instance\n * for the current component.\n * @public\n */\n get $presentation() {\n if (this._presentation === void 0) {\n this._presentation = ComponentPresentation.forTag(this.tagName, this);\n }\n return this._presentation;\n }\n templateChanged() {\n if (this.template !== undefined) {\n this.$fastController.template = this.template;\n }\n }\n stylesChanged() {\n if (this.styles !== undefined) {\n this.$fastController.styles = this.styles;\n }\n }\n /**\n * The connected callback for this FASTElement.\n * @remarks\n * This method is invoked by the platform whenever this FoundationElement\n * becomes connected to the document.\n * @public\n */\n connectedCallback() {\n if (this.$presentation !== null) {\n this.$presentation.applyTo(this);\n }\n super.connectedCallback();\n }\n /**\n * Defines an element registry function with a set of element definition defaults.\n * @param elementDefinition - The definition of the element to create the registry\n * function for.\n * @public\n */\n static compose(elementDefinition) {\n return (overrideDefinition = {}) => new FoundationElementRegistry(this === FoundationElement\n ? class extends FoundationElement {\n }\n : this, elementDefinition, overrideDefinition);\n }\n}\n__decorate([\n observable\n], FoundationElement.prototype, \"template\", void 0);\n__decorate([\n observable\n], FoundationElement.prototype, \"styles\", void 0);\nfunction resolveOption(option, context, definition) {\n if (typeof option === \"function\") {\n return option(context, definition);\n }\n return option;\n}\n/**\n * Registry capable of defining presentation properties for a DOM Container hierarchy.\n *\n * @internal\n */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport class FoundationElementRegistry {\n constructor(type, elementDefinition, overrideDefinition) {\n this.type = type;\n this.elementDefinition = elementDefinition;\n this.overrideDefinition = overrideDefinition;\n this.definition = Object.assign(Object.assign({}, this.elementDefinition), this.overrideDefinition);\n }\n register(container, context) {\n const definition = this.definition;\n const overrideDefinition = this.overrideDefinition;\n const prefix = definition.prefix || context.elementPrefix;\n const name = `${prefix}-${definition.baseName}`;\n context.tryDefineElement({\n name,\n type: this.type,\n baseClass: this.elementDefinition.baseClass,\n callback: x => {\n const presentation = new DefaultComponentPresentation(resolveOption(definition.template, x, definition), resolveOption(definition.styles, x, definition));\n x.definePresentation(presentation);\n let shadowOptions = resolveOption(definition.shadowOptions, x, definition);\n if (x.shadowRootMode) {\n // If the design system has overridden the shadow root mode, we need special handling.\n if (shadowOptions) {\n // If there are shadow options present in the definition, then\n // either the component itself has specified an option or the\n // registry function has overridden it.\n if (!overrideDefinition.shadowOptions) {\n // There were shadow options provided by the component and not overridden by\n // the registry.\n shadowOptions.mode = x.shadowRootMode;\n }\n }\n else if (shadowOptions !== null) {\n // If the component author did not provide shadow options,\n // and did not null them out (light dom opt-in) then they\n // were relying on the FASTElement default. So, if the\n // design system provides a mode, we need to create the options\n // to override the default.\n shadowOptions = { mode: x.shadowRootMode };\n }\n }\n x.defineElement({\n elementOptions: resolveOption(definition.elementOptions, x, definition),\n shadowOptions,\n attributes: resolveOption(definition.attributes, x, definition),\n });\n },\n });\n }\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\n","import { AttributeConfiguration } from \"@microsoft/fast-element\";\n/**\n * Apply mixins to a constructor.\n * Sourced from {@link https://www.typescriptlang.org/docs/handbook/mixins.html | TypeScript Documentation }.\n * @public\n */\nexport function applyMixins(derivedCtor, ...baseCtors) {\n const derivedAttributes = AttributeConfiguration.locate(derivedCtor);\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n if (name !== \"constructor\") {\n Object.defineProperty(derivedCtor.prototype, name, \n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name));\n }\n });\n const baseAttributes = AttributeConfiguration.locate(baseCtor);\n baseAttributes.forEach(x => derivedAttributes.push(x));\n });\n}\n","import { __decorate } from \"tslib\";\nimport { attr, nullableNumberConverter, } from \"@microsoft/fast-element\";\nimport { FoundationElement, } from \"../foundation-element/foundation-element.js\";\nimport { StartEnd } from \"../patterns/start-end.js\";\nimport { applyMixins } from \"../utilities/apply-mixins.js\";\n/**\n * An individual item in an {@link @microsoft/fast-foundation#(Accordion:class) }.\n *\n * @slot start - Content which can be provided between the heading and the icon\n * @slot end - Content which can be provided between the start slot and icon\n * @slot heading - Content which serves as the accordion item heading and text of the expand button\n * @slot - The default slot for accordion item content\n * @slot expanded-icon - The expanded icon\n * @slot collapsed-icon - The collapsed icon\n * @fires change - Fires a custom 'change' event when the button is invoked\n * @csspart heading - Wraps the button\n * @csspart button - The button which serves to invoke the item\n * @csspart heading-content - Wraps the slot for the heading content within the button\n * @csspart icon - The icon container\n * @csspart expanded-icon - The expanded icon slot\n * @csspart collapsed-icon - The collapsed icon\n * @csspart region - The wrapper for the accordion item content\n *\n * @public\n */\nexport class AccordionItem extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Configures the {@link https://www.w3.org/TR/wai-aria-1.1/#aria-level | level} of the\n * heading element.\n *\n * @defaultValue 2\n * @public\n * @remarks\n * HTML attribute: heading-level\n */\n this.headinglevel = 2;\n /**\n * Expands or collapses the item.\n *\n * @public\n * @remarks\n * HTML attribute: expanded\n */\n this.expanded = false;\n /**\n * @internal\n */\n this.clickHandler = (e) => {\n this.expanded = !this.expanded;\n this.change();\n };\n this.change = () => {\n this.$emit(\"change\");\n };\n }\n}\n__decorate([\n attr({\n attribute: \"heading-level\",\n mode: \"fromView\",\n converter: nullableNumberConverter,\n })\n], AccordionItem.prototype, \"headinglevel\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], AccordionItem.prototype, \"expanded\", void 0);\n__decorate([\n attr\n], AccordionItem.prototype, \"id\", void 0);\napplyMixins(AccordionItem, StartEnd);\n","import { elements, html, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Accordion} component.\n * @public\n */\nexport const accordionTemplate = (context, definition) => /* TODO: deprecate slot name `item` to only support default slot https://github.com/microsoft/fast/issues/5515 */ html `\n \n`;\n","/**\n * Standard orientation values\n */\nexport const Orientation = {\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n};\n","/**\n * Returns the index of the last element in the array where predicate is true, and -1 otherwise.\n *\n * @param array - the array to test\n * @param predicate - find calls predicate once for each element of the array, in descending order, until it finds one where predicate returns true. If such an element is found, findLastIndex immediately returns that element index. Otherwise, findIndex returns -1.\n */\nexport function findLastIndex(array, predicate) {\n let k = array.length;\n while (k--) {\n if (predicate(array[k], k, array)) {\n return k;\n }\n }\n return -1;\n}\n","/**\n * Checks if the DOM is available to access and use\n */\nexport function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n","import { canUseDOM } from \"exenv-es6\";\n/**\n * A test that ensures that all arguments are HTML Elements\n */\nexport function isHTMLElement(...args) {\n return args.every((arg) => arg instanceof HTMLElement);\n}\n/**\n * Returns all displayed elements inside of a root node that match a provided selector\n */\nexport function getDisplayedNodes(rootNode, selector) {\n if (!rootNode || !selector || !isHTMLElement(rootNode)) {\n return;\n }\n const nodes = Array.from(rootNode.querySelectorAll(selector));\n // offsetParent will be null if the element isn't currently displayed,\n // so this will allow us to operate only on visible nodes\n return nodes.filter((node) => node.offsetParent !== null);\n}\n/**\n * Gets the numeric key code associated with a keyboard event. This method is for use with DOM level 3 events\n * that still use the deprecated keyCode property.\n */\nexport function getKeyCode(event) {\n return event === null ? null : event.which || event.keyCode || event.charCode;\n}\n/**\n * Returns the nonce used in the page, if any.\n *\n * Based on https://github.com/cssinjs/jss/blob/master/packages/jss/src/DomRenderer.js\n */\nfunction getNonce() {\n const node = document.querySelector('meta[property=\"csp-nonce\"]');\n if (node) {\n return node.getAttribute(\"content\");\n }\n else {\n return null;\n }\n}\n/**\n * Test if the document supports :focus-visible\n */\nlet _canUseFocusVisible;\nexport function canUseFocusVisible() {\n if (typeof _canUseFocusVisible === \"boolean\") {\n return _canUseFocusVisible;\n }\n if (!canUseDOM()) {\n _canUseFocusVisible = false;\n return _canUseFocusVisible;\n }\n // Check to see if the document supports the focus-visible element\n const styleElement = document.createElement(\"style\");\n // If nonces are present on the page, use it when creating the style element\n // to test focus-visible support.\n const styleNonce = getNonce();\n if (styleNonce !== null) {\n styleElement.setAttribute(\"nonce\", styleNonce);\n }\n document.head.appendChild(styleElement);\n try {\n styleElement.sheet.insertRule(\"foo:focus-visible {color:inherit}\", 0);\n _canUseFocusVisible = true;\n }\n catch (e) {\n _canUseFocusVisible = false;\n }\n finally {\n document.head.removeChild(styleElement);\n }\n return _canUseFocusVisible;\n}\nlet _canUseCssGrid;\nexport function canUseCssGrid() {\n if (typeof _canUseCssGrid === \"boolean\") {\n return _canUseCssGrid;\n }\n try {\n _canUseCssGrid = CSS.supports(\"display\", \"grid\");\n }\n catch (_a) {\n _canUseCssGrid = false;\n }\n return _canUseCssGrid;\n}\nexport function canUseForcedColors() {\n return (canUseDOM() &&\n (window.matchMedia(\"(forced-colors: none)\").matches ||\n window.matchMedia(\"(forced-colors: active)\").matches));\n}\nexport function resetDocumentCache() {\n _canUseCssGrid = undefined;\n _canUseFocusVisible = undefined;\n}\n/**\n * @deprecated Use 'canUseForcedColors' instead\n */\nexport const canUsedForcedColors = canUseForcedColors;\n","/**\n * This set of exported strings reference https://developer.mozilla.org/en-US/docs/Web/Events\n * and should include all non-deprecated and non-experimental Standard events\n */\nexport const eventAbort = \"abort\";\nexport const eventAfterPrint = \"afterprint\";\nexport const eventAnimationCancel = \"animationcancel\";\nexport const eventAnimationEnd = \"animationend\";\nexport const eventAnimationIteration = \"animationiteration\";\nexport const eventAnimationStart = \"animationstart\";\nexport const eventAppInstalled = \"appinstalled\";\nexport const eventBeforePrint = \"beforeprint\";\nexport const eventBeforeUnload = \"beforeunload\";\nexport const eventBeginEvent = \"beginEvent\";\nexport const eventBlocked = \"blocked\";\nexport const eventBlur = \"blur\";\nexport const eventCanPlay = \"canplay\";\nexport const eventCanPlayThrough = \"canplaythrough\";\nexport const eventChange = \"change\";\nexport const eventChargingChange = \"chargingchange\";\nexport const eventChargingTimeChange = \"chargingtimechange\";\nexport const eventClick = \"click\";\nexport const eventClose = \"close\";\nexport const eventComplete = \"complete\";\nexport const eventCompositionEnd = \"compositionend\";\nexport const eventCompositionStart = \"compositionstart\";\nexport const eventCompositionUpdate = \"compositionupdate\";\nexport const eventContextMenu = \"contextmenu\";\nexport const eventCopy = \"copy\";\nexport const eventCut = \"cut\";\nexport const eventDblClick = \"dblclick\";\nexport const eventDeviceChange = \"devicechange\";\nexport const eventDeviceMotion = \"devicemotion\";\nexport const eventDeviceOrientation = \"deviceorientation\";\nexport const eventDischargingTimeChange = \"dischargingtimechange\";\nexport const eventDrag = \"drag\";\nexport const eventDragEnd = \"dragend\";\nexport const eventDragEnter = \"dragenter\";\nexport const eventDragLeave = \"dragleave\";\nexport const eventDragOver = \"dragover\";\nexport const eventDragStart = \"dragstart\";\nexport const eventDrop = \"drop\";\nexport const eventDurationChange = \"durationchange\";\nexport const eventEmptied = \"emptied\";\nexport const eventEnded = \"ended\";\nexport const eventEndEvent = \"endevent\";\nexport const eventError = \"error\";\nexport const eventFocus = \"focus\";\nexport const eventFocusIn = \"focusin\";\nexport const eventFocusOut = \"focusout\";\nexport const eventFullScreenChange = \"fullscreenchange\";\nexport const eventFullScreenError = \"fullscreenerror\";\nexport const eventGamePadConnected = \"gamepadconnected\";\nexport const eventGamePadDisconnected = \"gamepaddisconnected\";\nexport const eventGotPointerCapture = \"gotpointercapture\";\nexport const eventHashChange = \"hashchange\";\nexport const eventLostPointerCapture = \"lostpointercapture\";\nexport const eventInput = \"input\";\nexport const eventInvalid = \"invalid\";\nexport const eventKeyDown = \"keydown\";\nexport const eventKeyUp = \"keyup\";\nexport const eventLevelChange = \"levelchange\";\nexport const eventLoad = \"load\";\nexport const eventLoadedData = \"loadeddata\";\nexport const eventLoadedMetaData = \"loadedmetadata\";\nexport const eventLoadEnd = \"loadend\";\nexport const eventLoadStart = \"loadstart\";\nexport const eventMessage = \"message\";\nexport const eventMessageError = \"messageerror\";\nexport const eventMouseDown = \"mousedown\";\nexport const eventMouseEnter = \"mouseenter\";\nexport const eventMouseLeave = \"mouseleave\";\nexport const eventMouseMove = \"mousemove\";\nexport const eventMouseOut = \"mouseout\";\nexport const eventMouseOver = \"mouseover\";\nexport const eventMouseUp = \"mouseup\";\nexport const eventNotificationClick = \"notificationclick\";\nexport const eventOffline = \"offline\";\nexport const eventOnline = \"online\";\nexport const eventOpen = \"open\";\nexport const eventOrientationChange = \"orientationchange\";\nexport const eventPageHide = \"pagehide\";\nexport const eventPageShow = \"pageshow\";\nexport const eventPaste = \"paste\";\nexport const eventPause = \"pause\";\nexport const eventPointerCancel = \"pointercancel\";\nexport const eventPointerDown = \"pointerdown\";\nexport const eventPointerEnter = \"pointerenter\";\nexport const eventPointerLeave = \"pointerleave\";\nexport const eventPointerLockChange = \"pointerlockchange\";\nexport const eventPointerLockError = \"pointerlockerror\";\nexport const eventPointerMove = \"pointermove\";\nexport const eventPointerOut = \"pointerout\";\nexport const eventPointerOver = \"pointerover\";\nexport const eventPointerUp = \"pointerup\";\nexport const eventPlay = \"play\";\nexport const eventPlaying = \"playing\";\nexport const eventPopState = \"popstate\";\nexport const eventProgress = \"progress\";\nexport const eventPush = \"push\";\nexport const eventPushSubscriptionChange = \"pushsubscriptionchange\";\nexport const eventRateChange = \"ratechange\";\nexport const eventReadyStateChange = \"readystatechange\";\nexport const eventRepeatEvent = \"repeatevent\";\nexport const eventReset = \"reset\";\nexport const eventResize = \"resize\";\nexport const eventResourceTimingBufferFull = \"resourcetimingbufferfull\";\nexport const eventScroll = \"scroll\";\nexport const eventSeeked = \"seeked\";\nexport const eventSeeking = \"seeking\";\nexport const eventSelect = \"select\";\nexport const eventShow = \"show\";\nexport const eventSlotChange = \"slotchange\";\nexport const eventStalled = \"stalled\";\nexport const eventStart = \"start\";\nexport const eventStorage = \"storage\";\nexport const eventSubmit = \"submit\";\nexport const eventSuccess = \"success\";\nexport const eventSuspend = \"suspend\";\nexport const eventSVGAbort = \"SVGAbort\";\nexport const eventSVGError = \"SVGError\";\nexport const eventSVGLoad = \"SVGLoad\";\nexport const eventSVGResize = \"SVGResize\";\nexport const eventSVGScroll = \"SVGScroll\";\nexport const eventSVGUnload = \"SVGUnload\";\nexport const eventSVGZoom = \"SVGZoom\";\nexport const eventTimeOut = \"timeout\";\nexport const eventTimeUpdate = \"timeupdate\";\nexport const eventTouchCancel = \"touchcancel\";\nexport const eventTouchEnd = \"touchend\";\nexport const eventTouchMove = \"touchmove\";\nexport const eventTouchStart = \"touchstart\";\nexport const eventTransitionEnd = \"transitionend\";\nexport const eventUnload = \"unload\";\nexport const eventUpgradeNeeded = \"upgradeneeded\";\nexport const eventUserProximity = \"userproximity\";\nexport const eventVersionChange = \"versionchange\";\nexport const eventVisibilityChange = \"visibilitychange\";\nexport const eventVolumeChange = \"volumechange\";\nexport const eventWaiting = \"waiting\";\nexport const eventWheel = \"wheel\";\n","/**\n * Key Code values\n * @deprecated - KeyCodes are deprecated, use individual string key exports\n */\nexport var KeyCodes;\n(function (KeyCodes) {\n KeyCodes[KeyCodes[\"alt\"] = 18] = \"alt\";\n KeyCodes[KeyCodes[\"arrowDown\"] = 40] = \"arrowDown\";\n KeyCodes[KeyCodes[\"arrowLeft\"] = 37] = \"arrowLeft\";\n KeyCodes[KeyCodes[\"arrowRight\"] = 39] = \"arrowRight\";\n KeyCodes[KeyCodes[\"arrowUp\"] = 38] = \"arrowUp\";\n KeyCodes[KeyCodes[\"back\"] = 8] = \"back\";\n KeyCodes[KeyCodes[\"backSlash\"] = 220] = \"backSlash\";\n KeyCodes[KeyCodes[\"break\"] = 19] = \"break\";\n KeyCodes[KeyCodes[\"capsLock\"] = 20] = \"capsLock\";\n KeyCodes[KeyCodes[\"closeBracket\"] = 221] = \"closeBracket\";\n KeyCodes[KeyCodes[\"colon\"] = 186] = \"colon\";\n KeyCodes[KeyCodes[\"colon2\"] = 59] = \"colon2\";\n KeyCodes[KeyCodes[\"comma\"] = 188] = \"comma\";\n KeyCodes[KeyCodes[\"ctrl\"] = 17] = \"ctrl\";\n KeyCodes[KeyCodes[\"delete\"] = 46] = \"delete\";\n KeyCodes[KeyCodes[\"end\"] = 35] = \"end\";\n KeyCodes[KeyCodes[\"enter\"] = 13] = \"enter\";\n KeyCodes[KeyCodes[\"equals\"] = 187] = \"equals\";\n KeyCodes[KeyCodes[\"equals2\"] = 61] = \"equals2\";\n KeyCodes[KeyCodes[\"equals3\"] = 107] = \"equals3\";\n KeyCodes[KeyCodes[\"escape\"] = 27] = \"escape\";\n KeyCodes[KeyCodes[\"forwardSlash\"] = 191] = \"forwardSlash\";\n KeyCodes[KeyCodes[\"function1\"] = 112] = \"function1\";\n KeyCodes[KeyCodes[\"function10\"] = 121] = \"function10\";\n KeyCodes[KeyCodes[\"function11\"] = 122] = \"function11\";\n KeyCodes[KeyCodes[\"function12\"] = 123] = \"function12\";\n KeyCodes[KeyCodes[\"function2\"] = 113] = \"function2\";\n KeyCodes[KeyCodes[\"function3\"] = 114] = \"function3\";\n KeyCodes[KeyCodes[\"function4\"] = 115] = \"function4\";\n KeyCodes[KeyCodes[\"function5\"] = 116] = \"function5\";\n KeyCodes[KeyCodes[\"function6\"] = 117] = \"function6\";\n KeyCodes[KeyCodes[\"function7\"] = 118] = \"function7\";\n KeyCodes[KeyCodes[\"function8\"] = 119] = \"function8\";\n KeyCodes[KeyCodes[\"function9\"] = 120] = \"function9\";\n KeyCodes[KeyCodes[\"home\"] = 36] = \"home\";\n KeyCodes[KeyCodes[\"insert\"] = 45] = \"insert\";\n KeyCodes[KeyCodes[\"menu\"] = 93] = \"menu\";\n KeyCodes[KeyCodes[\"minus\"] = 189] = \"minus\";\n KeyCodes[KeyCodes[\"minus2\"] = 109] = \"minus2\";\n KeyCodes[KeyCodes[\"numLock\"] = 144] = \"numLock\";\n KeyCodes[KeyCodes[\"numPad0\"] = 96] = \"numPad0\";\n KeyCodes[KeyCodes[\"numPad1\"] = 97] = \"numPad1\";\n KeyCodes[KeyCodes[\"numPad2\"] = 98] = \"numPad2\";\n KeyCodes[KeyCodes[\"numPad3\"] = 99] = \"numPad3\";\n KeyCodes[KeyCodes[\"numPad4\"] = 100] = \"numPad4\";\n KeyCodes[KeyCodes[\"numPad5\"] = 101] = \"numPad5\";\n KeyCodes[KeyCodes[\"numPad6\"] = 102] = \"numPad6\";\n KeyCodes[KeyCodes[\"numPad7\"] = 103] = \"numPad7\";\n KeyCodes[KeyCodes[\"numPad8\"] = 104] = \"numPad8\";\n KeyCodes[KeyCodes[\"numPad9\"] = 105] = \"numPad9\";\n KeyCodes[KeyCodes[\"numPadDivide\"] = 111] = \"numPadDivide\";\n KeyCodes[KeyCodes[\"numPadDot\"] = 110] = \"numPadDot\";\n KeyCodes[KeyCodes[\"numPadMinus\"] = 109] = \"numPadMinus\";\n KeyCodes[KeyCodes[\"numPadMultiply\"] = 106] = \"numPadMultiply\";\n KeyCodes[KeyCodes[\"numPadPlus\"] = 107] = \"numPadPlus\";\n KeyCodes[KeyCodes[\"openBracket\"] = 219] = \"openBracket\";\n KeyCodes[KeyCodes[\"pageDown\"] = 34] = \"pageDown\";\n KeyCodes[KeyCodes[\"pageUp\"] = 33] = \"pageUp\";\n KeyCodes[KeyCodes[\"period\"] = 190] = \"period\";\n KeyCodes[KeyCodes[\"print\"] = 44] = \"print\";\n KeyCodes[KeyCodes[\"quote\"] = 222] = \"quote\";\n KeyCodes[KeyCodes[\"scrollLock\"] = 145] = \"scrollLock\";\n KeyCodes[KeyCodes[\"shift\"] = 16] = \"shift\";\n KeyCodes[KeyCodes[\"space\"] = 32] = \"space\";\n KeyCodes[KeyCodes[\"tab\"] = 9] = \"tab\";\n KeyCodes[KeyCodes[\"tilde\"] = 192] = \"tilde\";\n KeyCodes[KeyCodes[\"windowsLeft\"] = 91] = \"windowsLeft\";\n KeyCodes[KeyCodes[\"windowsOpera\"] = 219] = \"windowsOpera\";\n KeyCodes[KeyCodes[\"windowsRight\"] = 92] = \"windowsRight\";\n})(KeyCodes || (KeyCodes = {}));\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeAlt = 18;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowDown = 40;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowLeft = 37;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowRight = 39;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowUp = 38;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBack = 8;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBackSlash = 220;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBreak = 19;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCapsLock = 20;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCloseBracket = 221;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeColon = 186;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeColon2 = 59; // Opera and Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeComma = 188;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCtrl = 17;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeDelete = 46;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEnd = 35;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEnter = 13;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals = 187;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals2 = 61; // Opera\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals3 = 107; // Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEscape = 27;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeForwardSlash = 191;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction1 = 112;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction10 = 121;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction11 = 122;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction12 = 123;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction2 = 113;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction3 = 114;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction4 = 115;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction5 = 116;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction6 = 117;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction7 = 118;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction8 = 119;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction9 = 120;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeHome = 36;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeInsert = 45;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMenu = 93;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMinus = 189;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMinus2 = 109; // Opera and Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumLock = 144;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad0 = 96;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad1 = 97;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad2 = 98;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad3 = 99;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad4 = 100;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad5 = 101;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad6 = 102;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad7 = 103;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad8 = 104;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad9 = 105;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadDivide = 111;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadDot = 110;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadMinus = 109;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadMultiply = 106;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadPlus = 107;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeOpenBracket = 219;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePageDown = 34;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePageUp = 33;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePeriod = 190;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePrint = 44;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeQuote = 222;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeScrollLock = 145;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeShift = 16;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeSpace = 32;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeTab = 9;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeTilde = 192;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsLeft = 91;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsOpera = 219; // Opera\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsRight = 92;\n/**\n * String values for use with KeyboardEvent.key\n */\nexport const keyArrowDown = \"ArrowDown\";\nexport const keyArrowLeft = \"ArrowLeft\";\nexport const keyArrowRight = \"ArrowRight\";\nexport const keyArrowUp = \"ArrowUp\";\nexport const keyEnter = \"Enter\";\nexport const keyEscape = \"Escape\";\nexport const keyHome = \"Home\";\nexport const keyEnd = \"End\";\nexport const keyFunction2 = \"F2\";\nexport const keyPageDown = \"PageDown\";\nexport const keyPageUp = \"PageUp\";\nexport const keySpace = \" \";\nexport const keyTab = \"Tab\";\nexport const keyBackspace = \"Backspace\";\nexport const keyDelete = \"Delete\";\nexport const ArrowKeys = {\n ArrowDown: keyArrowDown,\n ArrowLeft: keyArrowLeft,\n ArrowRight: keyArrowRight,\n ArrowUp: keyArrowUp,\n};\n","/**\n * This method keeps a given value within the bounds of a min and max value. If the value\n * is larger than the max, the minimum value will be returned. If the value is smaller than the minimum,\n * the maximum will be returned. Otherwise, the value is returned un-changed.\n */\nexport function wrapInBounds(min, max, value) {\n if (value < min) {\n return max;\n }\n else if (value > max) {\n return min;\n }\n return value;\n}\n/**\n * Ensures that a value is between a min and max value. If value is lower than min, min will be returned.\n * If value is greater than max, max will be returned.\n */\nexport function limit(min, max, value) {\n return Math.min(Math.max(value, min), max);\n}\n/**\n * Determines if a number value is within a specified range.\n *\n * @param value - the value to check\n * @param min - the range start\n * @param max - the range end\n */\nexport function inRange(value, min, max = 0) {\n [min, max] = [min, max].sort((a, b) => a - b);\n return min <= value && value < max;\n}\n","let uniqueIdCounter = 0;\n/**\n * Generates a unique ID based on incrementing a counter.\n */\nexport function uniqueId(prefix = \"\") {\n return `${prefix}${uniqueIdCounter++}`;\n}\n/**\n * Builds a string from a format specifier and replacement parameters.\n */\nexport function format(formatSpecifier, ...parameters) {\n return formatSpecifier.replace(/{(\\d+)}/g, function (match, index) {\n if (index >= parameters.length) {\n return match;\n }\n const value = parameters[index];\n if (typeof value !== \"number\" && !value) {\n return \"\";\n }\n return value;\n });\n}\n/**\n * Check to see if one string starts with another\n */\nexport function startsWith(stringToSearch, searchFor, position = 0) {\n if (!stringToSearch || !searchFor) {\n return false;\n }\n return stringToSearch.substr(position, searchFor.length) === searchFor;\n}\n/**\n * Determines if the specified string is undefined, null, empty, or whitespace.\n * True if the value is undefined, null, empty, or whitespace, otherwise false.\n */\nexport function isNullOrWhiteSpace(value) {\n return !value || !value.trim();\n}\n/**\n * Converts a string to Pascal Case\n * where the first letter of each compound word is capitalized.\n */\nexport function pascalCase(value) {\n let newValue = `${value}`\n .replace(new RegExp(/[-_]+/, \"g\"), \" \")\n .replace(new RegExp(/[^\\w\\s]/, \"g\"), \"\")\n .replace(/^\\s+|\\s+$|\\s+(?=\\s)/g, \"\")\n .replace(new RegExp(/\\s+(.)(\\w*)/, \"g\"), ($1, $2, $3) => `${$2.toUpperCase() + $3.toLowerCase()}`)\n .replace(new RegExp(/\\w/), s => s.toUpperCase());\n let firstLowerIdx = 0;\n for (let i = 0; i < newValue.length; i++) {\n const currChar = newValue.charAt(i);\n if (currChar == currChar.toLowerCase()) {\n firstLowerIdx = i;\n break;\n }\n }\n if (firstLowerIdx > 1) {\n newValue =\n `${newValue.charAt(0).toUpperCase()}${newValue\n .slice(1, firstLowerIdx - 1)\n .toLowerCase()}` + newValue.slice(firstLowerIdx - 1);\n }\n return newValue;\n}\n/**\n * converts a string from camelCase or pascalCase to spinal-case\n * which is an lowercase dash separated naming style.\n *\n * An example of spinal case: foo-bar-bat\n */\nexport function spinalCase(value) {\n const valueWithLowerCaseFirstLetter = `${value\n .charAt(0)\n .toLowerCase()}${value.slice(1)}`;\n return valueWithLowerCaseFirstLetter.replace(/([A-Z]|[0-9])/g, function (match, group1) {\n return `-${group1.toLowerCase()}`;\n });\n}\n","/**\n * Define system colors for use in CSS stylesheets.\n *\n * https://drafts.csswg.org/css-color/#css-system-colors\n */\nexport var SystemColors;\n(function (SystemColors) {\n SystemColors[\"Canvas\"] = \"Canvas\";\n SystemColors[\"CanvasText\"] = \"CanvasText\";\n SystemColors[\"LinkText\"] = \"LinkText\";\n SystemColors[\"VisitedText\"] = \"VisitedText\";\n SystemColors[\"ActiveText\"] = \"ActiveText\";\n SystemColors[\"ButtonFace\"] = \"ButtonFace\";\n SystemColors[\"ButtonText\"] = \"ButtonText\";\n SystemColors[\"Field\"] = \"Field\";\n SystemColors[\"FieldText\"] = \"FieldText\";\n SystemColors[\"Highlight\"] = \"Highlight\";\n SystemColors[\"HighlightText\"] = \"HighlightText\";\n SystemColors[\"GrayText\"] = \"GrayText\";\n})(SystemColors || (SystemColors = {}));\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { keyArrowDown, keyArrowUp, keyEnd, keyHome, wrapInBounds, } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element/foundation-element.js\";\nimport { AccordionItem } from \"../accordion-item/accordion-item.js\";\n/**\n * Expand mode for {@link Accordion}\n * @public\n */\nexport const AccordionExpandMode = {\n /**\n * Designates only a single {@link @microsoft/fast-foundation#(AccordionItem:class) } can be open a time.\n */\n single: \"single\",\n /**\n * Designates multiple {@link @microsoft/fast-foundation#(AccordionItem:class) | AccordionItems} can be open simultaneously.\n */\n multi: \"multi\",\n};\n/**\n * An Accordion Custom HTML Element\n * Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}.\n *\n * @fires change - Fires a custom 'change' event when the active item changes\n * @csspart item - The slot for the accordion items\n * @public\n *\n * @remarks\n * Designed to be used with {@link @microsoft/fast-foundation#accordionTemplate} and {@link @microsoft/fast-foundation#(AccordionItem:class)}.\n */\nexport class Accordion extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Controls the expand mode of the Accordion, either allowing\n * single or multiple item expansion.\n * @public\n *\n * @remarks\n * HTML attribute: expand-mode\n */\n this.expandmode = AccordionExpandMode.multi;\n this.activeItemIndex = 0;\n this.change = () => {\n this.$emit(\"change\", this.activeid);\n };\n this.setItems = () => {\n var _a;\n if (this.accordionItems.length === 0) {\n return;\n }\n this.accordionIds = this.getItemIds();\n this.accordionItems.forEach((item, index) => {\n if (item instanceof AccordionItem) {\n item.addEventListener(\"change\", this.activeItemChange);\n if (this.isSingleExpandMode()) {\n this.activeItemIndex !== index\n ? (item.expanded = false)\n : (item.expanded = true);\n }\n }\n const itemId = this.accordionIds[index];\n item.setAttribute(\"id\", typeof itemId !== \"string\" ? `accordion-${index + 1}` : itemId);\n this.activeid = this.accordionIds[this.activeItemIndex];\n item.addEventListener(\"keydown\", this.handleItemKeyDown);\n item.addEventListener(\"focus\", this.handleItemFocus);\n });\n if (this.isSingleExpandMode()) {\n const expandedItem = (_a = this.findExpandedItem()) !== null && _a !== void 0 ? _a : this.accordionItems[0];\n expandedItem.setAttribute(\"aria-disabled\", \"true\");\n }\n };\n this.removeItemListeners = (oldValue) => {\n oldValue.forEach((item, index) => {\n item.removeEventListener(\"change\", this.activeItemChange);\n item.removeEventListener(\"keydown\", this.handleItemKeyDown);\n item.removeEventListener(\"focus\", this.handleItemFocus);\n });\n };\n this.activeItemChange = (event) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) {\n return;\n }\n event.preventDefault();\n const selectedItem = event.target;\n this.activeid = selectedItem.getAttribute(\"id\");\n if (this.isSingleExpandMode()) {\n this.resetItems();\n selectedItem.expanded = true;\n selectedItem.setAttribute(\"aria-disabled\", \"true\");\n this.accordionItems.forEach((item) => {\n if (!item.hasAttribute(\"disabled\") && item.id !== this.activeid) {\n item.removeAttribute(\"aria-disabled\");\n }\n });\n }\n this.activeItemIndex = Array.from(this.accordionItems).indexOf(selectedItem);\n this.change();\n };\n this.handleItemKeyDown = (event) => {\n // only handle the keydown if the event target is the accordion item\n // prevents arrow keys from moving focus to accordion headers when focus is on accordion item panel content\n if (event.target !== event.currentTarget) {\n return;\n }\n this.accordionIds = this.getItemIds();\n switch (event.key) {\n case keyArrowUp:\n event.preventDefault();\n this.adjust(-1);\n break;\n case keyArrowDown:\n event.preventDefault();\n this.adjust(1);\n break;\n case keyHome:\n this.activeItemIndex = 0;\n this.focusItem();\n break;\n case keyEnd:\n this.activeItemIndex = this.accordionItems.length - 1;\n this.focusItem();\n break;\n }\n };\n this.handleItemFocus = (event) => {\n // update the active item index if the focus moves to an accordion item via a different method other than the up and down arrow key actions\n // only do so if the focus is actually on the accordion item and not on any of its children\n if (event.target === event.currentTarget) {\n const focusedItem = event.target;\n const focusedIndex = (this.activeItemIndex = Array.from(this.accordionItems).indexOf(focusedItem));\n if (this.activeItemIndex !== focusedIndex && focusedIndex !== -1) {\n this.activeItemIndex = focusedIndex;\n this.activeid = this.accordionIds[this.activeItemIndex];\n }\n }\n };\n }\n /**\n * @internal\n */\n accordionItemsChanged(oldValue, newValue) {\n if (this.$fastController.isConnected) {\n this.removeItemListeners(oldValue);\n this.setItems();\n }\n }\n findExpandedItem() {\n for (let item = 0; item < this.accordionItems.length; item++) {\n if (this.accordionItems[item].getAttribute(\"expanded\") === \"true\") {\n return this.accordionItems[item];\n }\n }\n return null;\n }\n resetItems() {\n this.accordionItems.forEach((item, index) => {\n item.expanded = false;\n });\n }\n getItemIds() {\n return this.accordionItems.map((accordionItem) => {\n return accordionItem.getAttribute(\"id\");\n });\n }\n isSingleExpandMode() {\n return this.expandmode === AccordionExpandMode.single;\n }\n adjust(adjustment) {\n this.activeItemIndex = wrapInBounds(0, this.accordionItems.length - 1, this.activeItemIndex + adjustment);\n this.focusItem();\n }\n focusItem() {\n const element = this.accordionItems[this.activeItemIndex];\n if (element instanceof AccordionItem) {\n element.expandbutton.focus();\n }\n }\n}\n__decorate([\n attr({ attribute: \"expand-mode\" })\n], Accordion.prototype, \"expandmode\", void 0);\n__decorate([\n observable\n], Accordion.prototype, \"accordionItems\", void 0);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end.js\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Anchor:class)} component.\n * @public\n */\nexport const anchorTemplate = (context, definition) => html `\n x.download}\"\n href=\"${x => x.href}\"\n hreflang=\"${x => x.hreflang}\"\n ping=\"${x => x.ping}\"\n referrerpolicy=\"${x => x.referrerpolicy}\"\n rel=\"${x => x.rel}\"\n target=\"${x => x.target}\"\n type=\"${x => x.type}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n >\n ${startSlotTemplate(context, definition)}\n \n \n \n ${endSlotTemplate(context, definition)}\n \n`;\n","import { __decorate } from \"tslib\";\nimport { attr } from \"@microsoft/fast-element\";\n/**\n * Some states and properties are applicable to all host language elements regardless of whether a role is applied.\n * The following global states and properties are supported by all roles and by all base markup elements.\n * {@link https://www.w3.org/TR/wai-aria-1.1/#global_states}\n *\n * This is intended to be used as a mixin. Be sure you extend FASTElement.\n *\n * @public\n */\nexport class ARIAGlobalStatesAndProperties {\n}\n__decorate([\n attr({ attribute: \"aria-atomic\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaAtomic\", void 0);\n__decorate([\n attr({ attribute: \"aria-busy\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaBusy\", void 0);\n__decorate([\n attr({ attribute: \"aria-controls\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaControls\", void 0);\n__decorate([\n attr({ attribute: \"aria-current\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaCurrent\", void 0);\n__decorate([\n attr({ attribute: \"aria-describedby\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDescribedby\", void 0);\n__decorate([\n attr({ attribute: \"aria-details\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDetails\", void 0);\n__decorate([\n attr({ attribute: \"aria-disabled\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDisabled\", void 0);\n__decorate([\n attr({ attribute: \"aria-errormessage\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaErrormessage\", void 0);\n__decorate([\n attr({ attribute: \"aria-flowto\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaFlowto\", void 0);\n__decorate([\n attr({ attribute: \"aria-haspopup\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaHaspopup\", void 0);\n__decorate([\n attr({ attribute: \"aria-hidden\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaHidden\", void 0);\n__decorate([\n attr({ attribute: \"aria-invalid\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaInvalid\", void 0);\n__decorate([\n attr({ attribute: \"aria-keyshortcuts\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaKeyshortcuts\", void 0);\n__decorate([\n attr({ attribute: \"aria-label\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLabel\", void 0);\n__decorate([\n attr({ attribute: \"aria-labelledby\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLabelledby\", void 0);\n__decorate([\n attr({ attribute: \"aria-live\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLive\", void 0);\n__decorate([\n attr({ attribute: \"aria-owns\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaOwns\", void 0);\n__decorate([\n attr({ attribute: \"aria-relevant\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaRelevant\", void 0);\n__decorate([\n attr({ attribute: \"aria-roledescription\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaRoledescription\", void 0);\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { FoundationElement, } from \"../foundation-element/foundation-element.js\";\nimport { ARIAGlobalStatesAndProperties, StartEnd, } from \"../patterns/index.js\";\nimport { applyMixins } from \"../utilities/apply-mixins.js\";\n/**\n * An Anchor Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | element }.\n *\n * @slot start - Content which can be provided before the anchor content\n * @slot end - Content which can be provided after the anchor content\n * @slot - The default slot for anchor content\n * @csspart control - The anchor element\n * @csspart content - The element wrapping anchor content\n *\n * @public\n */\nexport class Anchor extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Overrides the focus call for where delegatesFocus is unsupported.\n * This check works for Chrome, Edge Chromium, FireFox, and Safari\n * Relevant PR on the Firefox browser: https://phabricator.services.mozilla.com/D123858\n */\n this.handleUnsupportedDelegatesFocus = () => {\n var _a;\n // Check to see if delegatesFocus is supported\n if (window.ShadowRoot &&\n !window.ShadowRoot.prototype.hasOwnProperty(\"delegatesFocus\") &&\n ((_a = this.$fastController.definition.shadowOptions) === null || _a === void 0 ? void 0 : _a.delegatesFocus)) {\n this.focus = () => {\n var _a;\n (_a = this.control) === null || _a === void 0 ? void 0 : _a.focus();\n };\n }\n };\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.handleUnsupportedDelegatesFocus();\n }\n}\n__decorate([\n attr\n], Anchor.prototype, \"download\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"href\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"hreflang\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"ping\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"referrerpolicy\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"rel\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"target\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"type\", void 0);\n__decorate([\n observable\n], Anchor.prototype, \"defaultSlottedContent\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA link role\n *\n * @public\n */\nexport class DelegatesARIALink {\n}\n__decorate([\n attr({ attribute: \"aria-expanded\" })\n], DelegatesARIALink.prototype, \"ariaExpanded\", void 0);\napplyMixins(DelegatesARIALink, ARIAGlobalStatesAndProperties);\napplyMixins(Anchor, StartEnd, DelegatesARIALink);\n","import { html, when } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(AnchoredRegion:class)} component.\n * @public\n */\nexport const anchoredRegionTemplate = (context, definition) => html `\n \n`;\n","import { Direction } from \"@microsoft/fast-web-utilities\";\n/**\n * a method to determine the current localization direction of the view\n * @param rootNode - the HTMLElement to begin the query from, usually \"this\" when used in a component controller\n * @public\n */\nexport const getDirection = (rootNode) => {\n const dirNode = rootNode.closest(\"[dir]\");\n return dirNode !== null && dirNode.dir === \"rtl\" ? Direction.rtl : Direction.ltr;\n};\n","import { $global } from \"@microsoft/fast-element\";\n/**\n * A service to batch intersection event callbacks so multiple elements can share a single observer\n *\n * @public\n */\nexport class IntersectionService {\n constructor() {\n this.intersectionDetector = null;\n this.observedElements = new Map();\n /**\n * Request the position of a target element\n *\n * @internal\n */\n this.requestPosition = (target, callback) => {\n var _a;\n if (this.intersectionDetector === null) {\n return;\n }\n if (this.observedElements.has(target)) {\n (_a = this.observedElements.get(target)) === null || _a === void 0 ? void 0 : _a.push(callback);\n return;\n }\n this.observedElements.set(target, [callback]);\n this.intersectionDetector.observe(target);\n };\n /**\n * Cancel a position request\n *\n * @internal\n */\n this.cancelRequestPosition = (target, callback) => {\n const callbacks = this.observedElements.get(target);\n if (callbacks !== undefined) {\n const callBackIndex = callbacks.indexOf(callback);\n if (callBackIndex !== -1) {\n callbacks.splice(callBackIndex, 1);\n }\n }\n };\n /**\n * initialize intersection detector\n */\n this.initializeIntersectionDetector = () => {\n if (!$global.IntersectionObserver) {\n //intersection observer not supported\n return;\n }\n this.intersectionDetector = new IntersectionObserver(this.handleIntersection, {\n root: null,\n rootMargin: \"0px\",\n threshold: [0, 1],\n });\n };\n /**\n * Handle intersections\n */\n this.handleIntersection = (entries) => {\n if (this.intersectionDetector === null) {\n return;\n }\n const pendingCallbacks = [];\n const pendingCallbackParams = [];\n // go through the entries to build a list of callbacks and params for each\n entries.forEach((entry) => {\n var _a;\n // stop watching this element until we get new update requests for it\n (_a = this.intersectionDetector) === null || _a === void 0 ? void 0 : _a.unobserve(entry.target);\n const thisElementCallbacks = this.observedElements.get(entry.target);\n if (thisElementCallbacks !== undefined) {\n thisElementCallbacks.forEach((callback) => {\n let targetCallbackIndex = pendingCallbacks.indexOf(callback);\n if (targetCallbackIndex === -1) {\n targetCallbackIndex = pendingCallbacks.length;\n pendingCallbacks.push(callback);\n pendingCallbackParams.push([]);\n }\n pendingCallbackParams[targetCallbackIndex].push(entry);\n });\n this.observedElements.delete(entry.target);\n }\n });\n // execute callbacks\n pendingCallbacks.forEach((callback, index) => {\n callback(pendingCallbackParams[index]);\n });\n };\n this.initializeIntersectionDetector();\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, observable } from \"@microsoft/fast-element\";\nimport { Direction, eventResize, eventScroll } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element/foundation-element.js\";\nimport { getDirection } from \"../utilities/direction.js\";\nimport { IntersectionService } from \"../utilities/intersection-service.js\";\n/**\n * An anchored region Custom HTML Element.\n *\n * @slot - The default slot for the content\n * @fires loaded - Fires a custom 'loaded' event when the region is loaded and visible\n * @fires positionchange - Fires a custom 'positionchange' event when the position has changed\n *\n * @public\n */\nexport class AnchoredRegion extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The HTML ID of the anchor element this region is positioned relative to\n *\n * @public\n * @remarks\n * HTML Attribute: anchor\n */\n this.anchor = \"\";\n /**\n * The HTML ID of the viewport element this region is positioned relative to\n *\n * @public\n * @remarks\n * HTML Attribute: anchor\n */\n this.viewport = \"\";\n /**\n * Sets what logic the component uses to determine horizontal placement.\n * 'locktodefault' forces the default position\n * 'dynamic' decides placement based on available space\n * 'uncontrolled' does not control placement on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-positioning-mode\n */\n this.horizontalPositioningMode = \"uncontrolled\";\n /**\n * The default horizontal position of the region relative to the anchor element\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-default-position\n */\n this.horizontalDefaultPosition = \"unset\";\n /**\n * Whether the region remains in the viewport (ie. detaches from the anchor) on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-viewport-lock\n */\n this.horizontalViewportLock = false;\n /**\n * Whether the region overlaps the anchor on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-inset\n */\n this.horizontalInset = false;\n /**\n * Defines how the width of the region is calculated\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-scaling\n */\n this.horizontalScaling = \"content\";\n /**\n * Sets what logic the component uses to determine vertical placement.\n * 'locktodefault' forces the default position\n * 'dynamic' decides placement based on available space\n * 'uncontrolled' does not control placement on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-positioning-mode\n */\n this.verticalPositioningMode = \"uncontrolled\";\n /**\n * The default vertical position of the region relative to the anchor element\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-default-position\n */\n this.verticalDefaultPosition = \"unset\";\n /**\n * Whether the region remains in the viewport (ie. detaches from the anchor) on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-viewport-lock\n */\n this.verticalViewportLock = false;\n /**\n * Whether the region overlaps the anchor on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-inset\n */\n this.verticalInset = false;\n /**\n * Defines how the height of the region is calculated\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-scaling\n */\n this.verticalScaling = \"content\";\n /**\n * Whether the region is positioned using css \"position: fixed\".\n * Otherwise the region uses \"position: absolute\".\n * Fixed placement allows the region to break out of parent containers,\n *\n * @public\n * @remarks\n * HTML Attribute: fixed-placement\n */\n this.fixedPlacement = false;\n /**\n * Defines what triggers the anchored region to revaluate positioning\n *\n * @public\n * @remarks\n * HTML Attribute: auto-update-mode\n */\n this.autoUpdateMode = \"anchor\";\n /**\n * The HTML element being used as the anchor\n *\n * @public\n */\n this.anchorElement = null;\n /**\n * The HTML element being used as the viewport\n *\n * @public\n */\n this.viewportElement = null;\n /**\n * indicates that an initial positioning pass on layout has completed\n *\n * @internal\n */\n this.initialLayoutComplete = false;\n this.resizeDetector = null;\n /**\n * base offsets between the positioner's base position and the anchor's\n */\n this.baseHorizontalOffset = 0;\n this.baseVerticalOffset = 0;\n this.pendingPositioningUpdate = false;\n this.pendingReset = false;\n this.currentDirection = Direction.ltr;\n this.regionVisible = false;\n // indicates that a layout update should occur even if geometry has not changed\n // used to ensure some attribute changes are applied\n this.forceUpdate = false;\n // defines how big a difference in pixels there must be between states to\n // justify a layout update that affects the dom (prevents repeated sub-pixel corrections)\n this.updateThreshold = 0.5;\n /**\n * update position\n */\n this.update = () => {\n if (!this.pendingPositioningUpdate) {\n this.requestPositionUpdates();\n }\n };\n /**\n * starts observers\n */\n this.startObservers = () => {\n this.stopObservers();\n if (this.anchorElement === null) {\n return;\n }\n this.requestPositionUpdates();\n if (this.resizeDetector !== null) {\n this.resizeDetector.observe(this.anchorElement);\n this.resizeDetector.observe(this);\n }\n };\n /**\n * get position updates\n */\n this.requestPositionUpdates = () => {\n if (this.anchorElement === null || this.pendingPositioningUpdate) {\n return;\n }\n AnchoredRegion.intersectionService.requestPosition(this, this.handleIntersection);\n AnchoredRegion.intersectionService.requestPosition(this.anchorElement, this.handleIntersection);\n if (this.viewportElement !== null) {\n AnchoredRegion.intersectionService.requestPosition(this.viewportElement, this.handleIntersection);\n }\n this.pendingPositioningUpdate = true;\n };\n /**\n * stops observers\n */\n this.stopObservers = () => {\n if (this.pendingPositioningUpdate) {\n this.pendingPositioningUpdate = false;\n AnchoredRegion.intersectionService.cancelRequestPosition(this, this.handleIntersection);\n if (this.anchorElement !== null) {\n AnchoredRegion.intersectionService.cancelRequestPosition(this.anchorElement, this.handleIntersection);\n }\n if (this.viewportElement !== null) {\n AnchoredRegion.intersectionService.cancelRequestPosition(this.viewportElement, this.handleIntersection);\n }\n }\n if (this.resizeDetector !== null) {\n this.resizeDetector.disconnect();\n }\n };\n /**\n * Gets the viewport element by id, or defaults to document root\n */\n this.getViewport = () => {\n if (typeof this.viewport !== \"string\" || this.viewport === \"\") {\n return document.documentElement;\n }\n return document.getElementById(this.viewport);\n };\n /**\n * Gets the anchor element by id\n */\n this.getAnchor = () => {\n return document.getElementById(this.anchor);\n };\n /**\n * Handle intersections\n */\n this.handleIntersection = (entries) => {\n if (!this.pendingPositioningUpdate) {\n return;\n }\n this.pendingPositioningUpdate = false;\n if (!this.applyIntersectionEntries(entries)) {\n return;\n }\n this.updateLayout();\n };\n /**\n * iterate through intersection entries and apply data\n */\n this.applyIntersectionEntries = (entries) => {\n const regionEntry = entries.find(x => x.target === this);\n const anchorEntry = entries.find(x => x.target === this.anchorElement);\n const viewportEntry = entries.find(x => x.target === this.viewportElement);\n if (regionEntry === undefined ||\n viewportEntry === undefined ||\n anchorEntry === undefined) {\n return false;\n }\n // don't update the dom unless there is a significant difference in rect positions\n if (!this.regionVisible ||\n this.forceUpdate ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined ||\n this.isRectDifferent(this.anchorRect, anchorEntry.boundingClientRect) ||\n this.isRectDifferent(this.viewportRect, viewportEntry.boundingClientRect) ||\n this.isRectDifferent(this.regionRect, regionEntry.boundingClientRect)) {\n this.regionRect = regionEntry.boundingClientRect;\n this.anchorRect = anchorEntry.boundingClientRect;\n if (this.viewportElement === document.documentElement) {\n this.viewportRect = new DOMRectReadOnly(viewportEntry.boundingClientRect.x +\n document.documentElement.scrollLeft, viewportEntry.boundingClientRect.y +\n document.documentElement.scrollTop, viewportEntry.boundingClientRect.width, viewportEntry.boundingClientRect.height);\n }\n else {\n this.viewportRect = viewportEntry.boundingClientRect;\n }\n this.updateRegionOffset();\n this.forceUpdate = false;\n return true;\n }\n return false;\n };\n /**\n * Update the offset values\n */\n this.updateRegionOffset = () => {\n if (this.anchorRect && this.regionRect) {\n this.baseHorizontalOffset =\n this.baseHorizontalOffset +\n (this.anchorRect.left - this.regionRect.left) +\n (this.translateX - this.baseHorizontalOffset);\n this.baseVerticalOffset =\n this.baseVerticalOffset +\n (this.anchorRect.top - this.regionRect.top) +\n (this.translateY - this.baseVerticalOffset);\n }\n };\n /**\n * compare rects to see if there is enough change to justify a DOM update\n */\n this.isRectDifferent = (rectA, rectB) => {\n if (Math.abs(rectA.top - rectB.top) > this.updateThreshold ||\n Math.abs(rectA.right - rectB.right) > this.updateThreshold ||\n Math.abs(rectA.bottom - rectB.bottom) > this.updateThreshold ||\n Math.abs(rectA.left - rectB.left) > this.updateThreshold) {\n return true;\n }\n return false;\n };\n /**\n * Handle resize events\n */\n this.handleResize = (entries) => {\n this.update();\n };\n /**\n * resets the component\n */\n this.reset = () => {\n if (!this.pendingReset) {\n return;\n }\n this.pendingReset = false;\n if (this.anchorElement === null) {\n this.anchorElement = this.getAnchor();\n }\n if (this.viewportElement === null) {\n this.viewportElement = this.getViewport();\n }\n this.currentDirection = getDirection(this);\n this.startObservers();\n };\n /**\n * Recalculate layout related state values\n */\n this.updateLayout = () => {\n let desiredVerticalPosition = undefined;\n let desiredHorizontalPosition = undefined;\n if (this.horizontalPositioningMode !== \"uncontrolled\") {\n const horizontalOptions = this.getPositioningOptions(this.horizontalInset);\n if (this.horizontalDefaultPosition === \"center\") {\n desiredHorizontalPosition = \"center\";\n }\n else if (this.horizontalDefaultPosition !== \"unset\") {\n let dirCorrectedHorizontalDefaultPosition = this\n .horizontalDefaultPosition;\n if (dirCorrectedHorizontalDefaultPosition === \"start\" ||\n dirCorrectedHorizontalDefaultPosition === \"end\") {\n // if direction changes we reset the layout\n const newDirection = getDirection(this);\n if (newDirection !== this.currentDirection) {\n this.currentDirection = newDirection;\n this.initialize();\n return;\n }\n if (this.currentDirection === Direction.ltr) {\n dirCorrectedHorizontalDefaultPosition =\n dirCorrectedHorizontalDefaultPosition === \"start\"\n ? \"left\"\n : \"right\";\n }\n else {\n dirCorrectedHorizontalDefaultPosition =\n dirCorrectedHorizontalDefaultPosition === \"start\"\n ? \"right\"\n : \"left\";\n }\n }\n switch (dirCorrectedHorizontalDefaultPosition) {\n case \"left\":\n desiredHorizontalPosition = this.horizontalInset\n ? \"insetStart\"\n : \"start\";\n break;\n case \"right\":\n desiredHorizontalPosition = this.horizontalInset\n ? \"insetEnd\"\n : \"end\";\n break;\n }\n }\n const horizontalThreshold = this.horizontalThreshold !== undefined\n ? this.horizontalThreshold\n : this.regionRect !== undefined\n ? this.regionRect.width\n : 0;\n const anchorLeft = this.anchorRect !== undefined ? this.anchorRect.left : 0;\n const anchorRight = this.anchorRect !== undefined ? this.anchorRect.right : 0;\n const anchorWidth = this.anchorRect !== undefined ? this.anchorRect.width : 0;\n const viewportLeft = this.viewportRect !== undefined ? this.viewportRect.left : 0;\n const viewportRight = this.viewportRect !== undefined ? this.viewportRect.right : 0;\n if (desiredHorizontalPosition === undefined ||\n (!(this.horizontalPositioningMode === \"locktodefault\") &&\n this.getAvailableSpace(desiredHorizontalPosition, anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight) < horizontalThreshold)) {\n desiredHorizontalPosition =\n this.getAvailableSpace(horizontalOptions[0], anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight) >\n this.getAvailableSpace(horizontalOptions[1], anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight)\n ? horizontalOptions[0]\n : horizontalOptions[1];\n }\n }\n if (this.verticalPositioningMode !== \"uncontrolled\") {\n const verticalOptions = this.getPositioningOptions(this.verticalInset);\n if (this.verticalDefaultPosition === \"center\") {\n desiredVerticalPosition = \"center\";\n }\n else if (this.verticalDefaultPosition !== \"unset\") {\n switch (this.verticalDefaultPosition) {\n case \"top\":\n desiredVerticalPosition = this.verticalInset\n ? \"insetStart\"\n : \"start\";\n break;\n case \"bottom\":\n desiredVerticalPosition = this.verticalInset ? \"insetEnd\" : \"end\";\n break;\n }\n }\n const verticalThreshold = this.verticalThreshold !== undefined\n ? this.verticalThreshold\n : this.regionRect !== undefined\n ? this.regionRect.height\n : 0;\n const anchorTop = this.anchorRect !== undefined ? this.anchorRect.top : 0;\n const anchorBottom = this.anchorRect !== undefined ? this.anchorRect.bottom : 0;\n const anchorHeight = this.anchorRect !== undefined ? this.anchorRect.height : 0;\n const viewportTop = this.viewportRect !== undefined ? this.viewportRect.top : 0;\n const viewportBottom = this.viewportRect !== undefined ? this.viewportRect.bottom : 0;\n if (desiredVerticalPosition === undefined ||\n (!(this.verticalPositioningMode === \"locktodefault\") &&\n this.getAvailableSpace(desiredVerticalPosition, anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom) < verticalThreshold)) {\n desiredVerticalPosition =\n this.getAvailableSpace(verticalOptions[0], anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom) >\n this.getAvailableSpace(verticalOptions[1], anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom)\n ? verticalOptions[0]\n : verticalOptions[1];\n }\n }\n const nextPositionerDimension = this.getNextRegionDimension(desiredHorizontalPosition, desiredVerticalPosition);\n const positionChanged = this.horizontalPosition !== desiredHorizontalPosition ||\n this.verticalPosition !== desiredVerticalPosition;\n this.setHorizontalPosition(desiredHorizontalPosition, nextPositionerDimension);\n this.setVerticalPosition(desiredVerticalPosition, nextPositionerDimension);\n this.updateRegionStyle();\n if (!this.initialLayoutComplete) {\n this.initialLayoutComplete = true;\n this.requestPositionUpdates();\n return;\n }\n if (!this.regionVisible) {\n this.regionVisible = true;\n this.style.removeProperty(\"pointer-events\");\n this.style.removeProperty(\"opacity\");\n this.classList.toggle(\"loaded\", true);\n this.$emit(\"loaded\", this, { bubbles: false });\n }\n this.updatePositionClasses();\n if (positionChanged) {\n // emit change event\n this.$emit(\"positionchange\", this, { bubbles: false });\n }\n };\n /**\n * Updates the style string applied to the region element as well as the css classes attached\n * to the root element\n */\n this.updateRegionStyle = () => {\n this.style.width = this.regionWidth;\n this.style.height = this.regionHeight;\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px)`;\n };\n /**\n * Updates the css classes that reflect the current position of the element\n */\n this.updatePositionClasses = () => {\n this.classList.toggle(\"top\", this.verticalPosition === \"start\");\n this.classList.toggle(\"bottom\", this.verticalPosition === \"end\");\n this.classList.toggle(\"inset-top\", this.verticalPosition === \"insetStart\");\n this.classList.toggle(\"inset-bottom\", this.verticalPosition === \"insetEnd\");\n this.classList.toggle(\"vertical-center\", this.verticalPosition === \"center\");\n this.classList.toggle(\"left\", this.horizontalPosition === \"start\");\n this.classList.toggle(\"right\", this.horizontalPosition === \"end\");\n this.classList.toggle(\"inset-left\", this.horizontalPosition === \"insetStart\");\n this.classList.toggle(\"inset-right\", this.horizontalPosition === \"insetEnd\");\n this.classList.toggle(\"horizontal-center\", this.horizontalPosition === \"center\");\n };\n /**\n * Get horizontal positioning state based on desired position\n */\n this.setHorizontalPosition = (desiredHorizontalPosition, nextPositionerDimension) => {\n if (desiredHorizontalPosition === undefined ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined) {\n return;\n }\n let nextRegionWidth = 0;\n switch (this.horizontalScaling) {\n case \"anchor\":\n case \"fill\":\n nextRegionWidth = this.horizontalViewportLock\n ? this.viewportRect.width\n : nextPositionerDimension.width;\n this.regionWidth = `${nextRegionWidth}px`;\n break;\n case \"content\":\n nextRegionWidth = this.regionRect.width;\n this.regionWidth = \"unset\";\n break;\n }\n let sizeDelta = 0;\n switch (desiredHorizontalPosition) {\n case \"start\":\n this.translateX = this.baseHorizontalOffset - nextRegionWidth;\n if (this.horizontalViewportLock &&\n this.anchorRect.left > this.viewportRect.right) {\n this.translateX =\n this.translateX -\n (this.anchorRect.left - this.viewportRect.right);\n }\n break;\n case \"insetStart\":\n this.translateX =\n this.baseHorizontalOffset - nextRegionWidth + this.anchorRect.width;\n if (this.horizontalViewportLock &&\n this.anchorRect.right > this.viewportRect.right) {\n this.translateX =\n this.translateX -\n (this.anchorRect.right - this.viewportRect.right);\n }\n break;\n case \"insetEnd\":\n this.translateX = this.baseHorizontalOffset;\n if (this.horizontalViewportLock &&\n this.anchorRect.left < this.viewportRect.left) {\n this.translateX =\n this.translateX - (this.anchorRect.left - this.viewportRect.left);\n }\n break;\n case \"end\":\n this.translateX = this.baseHorizontalOffset + this.anchorRect.width;\n if (this.horizontalViewportLock &&\n this.anchorRect.right < this.viewportRect.left) {\n this.translateX =\n this.translateX -\n (this.anchorRect.right - this.viewportRect.left);\n }\n break;\n case \"center\":\n sizeDelta = (this.anchorRect.width - nextRegionWidth) / 2;\n this.translateX = this.baseHorizontalOffset + sizeDelta;\n if (this.horizontalViewportLock) {\n const regionLeft = this.anchorRect.left + sizeDelta;\n const regionRight = this.anchorRect.right - sizeDelta;\n if (regionLeft < this.viewportRect.left &&\n !(regionRight > this.viewportRect.right)) {\n this.translateX =\n this.translateX - (regionLeft - this.viewportRect.left);\n }\n else if (regionRight > this.viewportRect.right &&\n !(regionLeft < this.viewportRect.left)) {\n this.translateX =\n this.translateX - (regionRight - this.viewportRect.right);\n }\n }\n break;\n }\n this.horizontalPosition = desiredHorizontalPosition;\n };\n /**\n * Set vertical positioning state based on desired position\n */\n this.setVerticalPosition = (desiredVerticalPosition, nextPositionerDimension) => {\n if (desiredVerticalPosition === undefined ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined) {\n return;\n }\n let nextRegionHeight = 0;\n switch (this.verticalScaling) {\n case \"anchor\":\n case \"fill\":\n nextRegionHeight = this.verticalViewportLock\n ? this.viewportRect.height\n : nextPositionerDimension.height;\n this.regionHeight = `${nextRegionHeight}px`;\n break;\n case \"content\":\n nextRegionHeight = this.regionRect.height;\n this.regionHeight = \"unset\";\n break;\n }\n let sizeDelta = 0;\n switch (desiredVerticalPosition) {\n case \"start\":\n this.translateY = this.baseVerticalOffset - nextRegionHeight;\n if (this.verticalViewportLock &&\n this.anchorRect.top > this.viewportRect.bottom) {\n this.translateY =\n this.translateY -\n (this.anchorRect.top - this.viewportRect.bottom);\n }\n break;\n case \"insetStart\":\n this.translateY =\n this.baseVerticalOffset - nextRegionHeight + this.anchorRect.height;\n if (this.verticalViewportLock &&\n this.anchorRect.bottom > this.viewportRect.bottom) {\n this.translateY =\n this.translateY -\n (this.anchorRect.bottom - this.viewportRect.bottom);\n }\n break;\n case \"insetEnd\":\n this.translateY = this.baseVerticalOffset;\n if (this.verticalViewportLock &&\n this.anchorRect.top < this.viewportRect.top) {\n this.translateY =\n this.translateY - (this.anchorRect.top - this.viewportRect.top);\n }\n break;\n case \"end\":\n this.translateY = this.baseVerticalOffset + this.anchorRect.height;\n if (this.verticalViewportLock &&\n this.anchorRect.bottom < this.viewportRect.top) {\n this.translateY =\n this.translateY -\n (this.anchorRect.bottom - this.viewportRect.top);\n }\n break;\n case \"center\":\n sizeDelta = (this.anchorRect.height - nextRegionHeight) / 2;\n this.translateY = this.baseVerticalOffset + sizeDelta;\n if (this.verticalViewportLock) {\n const regionTop = this.anchorRect.top + sizeDelta;\n const regionBottom = this.anchorRect.bottom - sizeDelta;\n if (regionTop < this.viewportRect.top &&\n !(regionBottom > this.viewportRect.bottom)) {\n this.translateY =\n this.translateY - (regionTop - this.viewportRect.top);\n }\n else if (regionBottom > this.viewportRect.bottom &&\n !(regionTop < this.viewportRect.top)) {\n this.translateY =\n this.translateY - (regionBottom - this.viewportRect.bottom);\n }\n }\n }\n this.verticalPosition = desiredVerticalPosition;\n };\n /**\n * Get available positions based on positioning mode\n */\n this.getPositioningOptions = (inset) => {\n if (inset) {\n return [\"insetStart\", \"insetEnd\"];\n }\n return [\"start\", \"end\"];\n };\n /**\n * Get the space available for a particular relative position\n */\n this.getAvailableSpace = (positionOption, anchorStart, anchorEnd, anchorSpan, viewportStart, viewportEnd) => {\n const spaceStart = anchorStart - viewportStart;\n const spaceEnd = viewportEnd - (anchorStart + anchorSpan);\n switch (positionOption) {\n case \"start\":\n return spaceStart;\n case \"insetStart\":\n return spaceStart + anchorSpan;\n case \"insetEnd\":\n return spaceEnd + anchorSpan;\n case \"end\":\n return spaceEnd;\n case \"center\":\n return Math.min(spaceStart, spaceEnd) * 2 + anchorSpan;\n }\n };\n /**\n * Get region dimensions\n */\n this.getNextRegionDimension = (desiredHorizontalPosition, desiredVerticalPosition) => {\n const newRegionDimension = {\n height: this.regionRect !== undefined ? this.regionRect.height : 0,\n width: this.regionRect !== undefined ? this.regionRect.width : 0,\n };\n if (desiredHorizontalPosition !== undefined &&\n this.horizontalScaling === \"fill\") {\n newRegionDimension.width = this.getAvailableSpace(desiredHorizontalPosition, this.anchorRect !== undefined ? this.anchorRect.left : 0, this.anchorRect !== undefined ? this.anchorRect.right : 0, this.anchorRect !== undefined ? this.anchorRect.width : 0, this.viewportRect !== undefined ? this.viewportRect.left : 0, this.viewportRect !== undefined ? this.viewportRect.right : 0);\n }\n else if (this.horizontalScaling === \"anchor\") {\n newRegionDimension.width =\n this.anchorRect !== undefined ? this.anchorRect.width : 0;\n }\n if (desiredVerticalPosition !== undefined && this.verticalScaling === \"fill\") {\n newRegionDimension.height = this.getAvailableSpace(desiredVerticalPosition, this.anchorRect !== undefined ? this.anchorRect.top : 0, this.anchorRect !== undefined ? this.anchorRect.bottom : 0, this.anchorRect !== undefined ? this.anchorRect.height : 0, this.viewportRect !== undefined ? this.viewportRect.top : 0, this.viewportRect !== undefined ? this.viewportRect.bottom : 0);\n }\n else if (this.verticalScaling === \"anchor\") {\n newRegionDimension.height =\n this.anchorRect !== undefined ? this.anchorRect.height : 0;\n }\n return newRegionDimension;\n };\n /**\n * starts event listeners that can trigger auto updating\n */\n this.startAutoUpdateEventListeners = () => {\n window.addEventListener(eventResize, this.update, { passive: true });\n window.addEventListener(eventScroll, this.update, {\n passive: true,\n capture: true,\n });\n if (this.resizeDetector !== null && this.viewportElement !== null) {\n this.resizeDetector.observe(this.viewportElement);\n }\n };\n /**\n * stops event listeners that can trigger auto updating\n */\n this.stopAutoUpdateEventListeners = () => {\n window.removeEventListener(eventResize, this.update);\n window.removeEventListener(eventScroll, this.update);\n if (this.resizeDetector !== null && this.viewportElement !== null) {\n this.resizeDetector.unobserve(this.viewportElement);\n }\n };\n }\n anchorChanged() {\n if (this.initialLayoutComplete) {\n this.anchorElement = this.getAnchor();\n }\n }\n viewportChanged() {\n if (this.initialLayoutComplete) {\n this.viewportElement = this.getViewport();\n }\n }\n horizontalPositioningModeChanged() {\n this.requestReset();\n }\n horizontalDefaultPositionChanged() {\n this.updateForAttributeChange();\n }\n horizontalViewportLockChanged() {\n this.updateForAttributeChange();\n }\n horizontalInsetChanged() {\n this.updateForAttributeChange();\n }\n horizontalThresholdChanged() {\n this.updateForAttributeChange();\n }\n horizontalScalingChanged() {\n this.updateForAttributeChange();\n }\n verticalPositioningModeChanged() {\n this.requestReset();\n }\n verticalDefaultPositionChanged() {\n this.updateForAttributeChange();\n }\n verticalViewportLockChanged() {\n this.updateForAttributeChange();\n }\n verticalInsetChanged() {\n this.updateForAttributeChange();\n }\n verticalThresholdChanged() {\n this.updateForAttributeChange();\n }\n verticalScalingChanged() {\n this.updateForAttributeChange();\n }\n fixedPlacementChanged() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.initialize();\n }\n }\n autoUpdateModeChanged(prevMode, newMode) {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n if (prevMode === \"auto\") {\n this.stopAutoUpdateEventListeners();\n }\n if (newMode === \"auto\") {\n this.startAutoUpdateEventListeners();\n }\n }\n }\n anchorElementChanged() {\n this.requestReset();\n }\n viewportElementChanged() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.initialize();\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n if (this.autoUpdateMode === \"auto\") {\n this.startAutoUpdateEventListeners();\n }\n this.initialize();\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.autoUpdateMode === \"auto\") {\n this.stopAutoUpdateEventListeners();\n }\n this.stopObservers();\n this.disconnectResizeDetector();\n }\n /**\n * @internal\n */\n adoptedCallback() {\n this.initialize();\n }\n /**\n * destroys the instance's resize observer\n */\n disconnectResizeDetector() {\n if (this.resizeDetector !== null) {\n this.resizeDetector.disconnect();\n this.resizeDetector = null;\n }\n }\n /**\n * initializes the instance's resize observer\n */\n initializeResizeDetector() {\n this.disconnectResizeDetector();\n this.resizeDetector = new window.ResizeObserver(this.handleResize);\n }\n /**\n * react to attribute changes that don't require a reset\n */\n updateForAttributeChange() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.forceUpdate = true;\n this.update();\n }\n }\n /**\n * fully initializes the component\n */\n initialize() {\n this.initializeResizeDetector();\n if (this.anchorElement === null) {\n this.anchorElement = this.getAnchor();\n }\n this.requestReset();\n }\n /**\n * Request a reset if there are currently no open requests\n */\n requestReset() {\n if (this.$fastController.isConnected &&\n this.pendingReset === false) {\n this.setInitialState();\n DOM.queueUpdate(() => this.reset());\n this.pendingReset = true;\n }\n }\n /**\n * sets the starting configuration for component internal values\n */\n setInitialState() {\n this.initialLayoutComplete = false;\n this.regionVisible = false;\n this.translateX = 0;\n this.translateY = 0;\n this.baseHorizontalOffset = 0;\n this.baseVerticalOffset = 0;\n this.viewportRect = undefined;\n this.regionRect = undefined;\n this.anchorRect = undefined;\n this.verticalPosition = undefined;\n this.horizontalPosition = undefined;\n this.style.opacity = \"0\";\n this.style.pointerEvents = \"none\";\n this.forceUpdate = false;\n this.style.position = this.fixedPlacement ? \"fixed\" : \"absolute\";\n this.updatePositionClasses();\n this.updateRegionStyle();\n }\n}\nAnchoredRegion.intersectionService = new IntersectionService();\n__decorate([\n attr\n], AnchoredRegion.prototype, \"anchor\", void 0);\n__decorate([\n attr\n], AnchoredRegion.prototype, \"viewport\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-positioning-mode\" })\n], AnchoredRegion.prototype, \"horizontalPositioningMode\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-default-position\" })\n], AnchoredRegion.prototype, \"horizontalDefaultPosition\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-viewport-lock\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"horizontalViewportLock\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-inset\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"horizontalInset\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-threshold\" })\n], AnchoredRegion.prototype, \"horizontalThreshold\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-scaling\" })\n], AnchoredRegion.prototype, \"horizontalScaling\", void 0);\n__decorate([\n attr({ attribute: \"vertical-positioning-mode\" })\n], AnchoredRegion.prototype, \"verticalPositioningMode\", void 0);\n__decorate([\n attr({ attribute: \"vertical-default-position\" })\n], AnchoredRegion.prototype, \"verticalDefaultPosition\", void 0);\n__decorate([\n attr({ attribute: \"vertical-viewport-lock\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"verticalViewportLock\", void 0);\n__decorate([\n attr({ attribute: \"vertical-inset\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"verticalInset\", void 0);\n__decorate([\n attr({ attribute: \"vertical-threshold\" })\n], AnchoredRegion.prototype, \"verticalThreshold\", void 0);\n__decorate([\n attr({ attribute: \"vertical-scaling\" })\n], AnchoredRegion.prototype, \"verticalScaling\", void 0);\n__decorate([\n attr({ attribute: \"fixed-placement\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"fixedPlacement\", void 0);\n__decorate([\n attr({ attribute: \"auto-update-mode\" })\n], AnchoredRegion.prototype, \"autoUpdateMode\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"anchorElement\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"viewportElement\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"initialLayoutComplete\", void 0);\n","import { html } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Badge} component.\n * @public\n */\nexport const badgeTemplate = (context, definition) => html `\n \n`;\n","import { __decorate } from \"tslib\";\nimport { attr } from \"@microsoft/fast-element\";\nimport { FoundationElement } from \"../foundation-element/foundation-element.js\";\n/**\n * A Badge Custom HTML Element.\n * @slot - The default slot for the badge\n * @csspart control - The element representing the badge, which wraps the default slot\n *\n * @public\n */\nexport class Badge extends FoundationElement {\n constructor() {\n super(...arguments);\n this.generateBadgeStyle = () => {\n if (!this.fill && !this.color) {\n return;\n }\n const fill = `background-color: var(--badge-fill-${this.fill});`;\n const color = `color: var(--badge-color-${this.color});`;\n if (this.fill && !this.color) {\n return fill;\n }\n else if (this.color && !this.fill) {\n return color;\n }\n else {\n return `${color} ${fill}`;\n }\n };\n }\n}\n__decorate([\n attr({ attribute: \"fill\" })\n], Badge.prototype, \"fill\", void 0);\n__decorate([\n attr({ attribute: \"color\" })\n], Badge.prototype, \"color\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], Badge.prototype, \"circular\", void 0);\n","import { html, when } from \"@microsoft/fast-element\";\nimport { anchorTemplate } from \"../anchor/anchor.template.js\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end.js\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(BreadcrumbItem:class)} component.\n * @public\n */\nexport const breadcrumbItemTemplate = (context, definition) => html `\n
\n ${when(x => x.href && x.href.length > 0, html `\n ${anchorTemplate(context, definition)}\n `)}\n ${when(x => !x.href, html `\n ${startSlotTemplate(context, definition)}\n \n ${endSlotTemplate(context, definition)}\n `)}\n ${when(x => x.separator, html `\n \n ${definition.separator || \"\"}\n \n `)}\n
\n`;\n","import { __decorate } from \"tslib\";\nimport { observable } from \"@microsoft/fast-element\";\nimport { Anchor, DelegatesARIALink } from \"../anchor/anchor.js\";\nimport { StartEnd } from \"../patterns/index.js\";\nimport { applyMixins } from \"../utilities/apply-mixins.js\";\n/**\n * A Breadcrumb Item Custom HTML Element.\n *\n * @public\n */\nexport class BreadcrumbItem extends Anchor {\n constructor() {\n super(...arguments);\n /**\n * @internal\n */\n this.separator = true;\n }\n}\n__decorate([\n observable\n], BreadcrumbItem.prototype, \"separator\", void 0);\napplyMixins(BreadcrumbItem, StartEnd, DelegatesARIALink);\n","import { elements, html, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Breadcrumb} component.\n * @public\n */\nexport const breadcrumbTemplate = (context, definition) => html `\n \n`;\n","import { __decorate } from \"tslib\";\nimport { observable } from \"@microsoft/fast-element\";\nimport { BreadcrumbItem } from \"../breadcrumb-item/breadcrumb-item.js\";\nimport { FoundationElement } from \"../foundation-element/foundation-element.js\";\n/**\n * A Breadcrumb Custom HTML Element.\n * @slot - The default slot for the breadcrumb items\n * @csspart list - The element wrapping the slotted items\n *\n * @public\n */\nexport class Breadcrumb extends FoundationElement {\n slottedBreadcrumbItemsChanged() {\n if (this.$fastController.isConnected) {\n if (this.slottedBreadcrumbItems === undefined ||\n this.slottedBreadcrumbItems.length === 0) {\n return;\n }\n const lastNode = this.slottedBreadcrumbItems[this.slottedBreadcrumbItems.length - 1];\n this.slottedBreadcrumbItems.forEach((item) => {\n const itemIsLastNode = item === lastNode;\n this.setItemSeparator(item, itemIsLastNode);\n this.setAriaCurrent(item, itemIsLastNode);\n });\n }\n }\n setItemSeparator(item, isLastNode) {\n if (item instanceof BreadcrumbItem) {\n item.separator = !isLastNode;\n }\n }\n /**\n * Finds href on childnodes in the light DOM or shadow DOM.\n * We look in the shadow DOM because we insert an anchor when breadcrumb-item has an href.\n */\n findChildWithHref(node) {\n var _a, _b;\n if (node.childElementCount > 0) {\n return node.querySelector(\"a[href]\");\n }\n else if ((_a = node.shadowRoot) === null || _a === void 0 ? void 0 : _a.childElementCount) {\n return (_b = node.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(\"a[href]\");\n }\n else\n return null;\n }\n /**\n * Sets ARIA Current for the current node\n * If child node with an anchor tag and with href is found then set aria-current to correct value for the child node,\n * otherwise apply aria-current to the host element, with an href\n */\n setAriaCurrent(item, isLastNode) {\n const childNodeWithHref = this.findChildWithHref(item);\n if (childNodeWithHref === null &&\n item.hasAttribute(\"href\") &&\n item instanceof BreadcrumbItem) {\n isLastNode\n ? item.setAttribute(\"aria-current\", \"page\")\n : item.removeAttribute(\"aria-current\");\n }\n else if (childNodeWithHref !== null) {\n isLastNode\n ? childNodeWithHref.setAttribute(\"aria-current\", \"page\")\n : childNodeWithHref.removeAttribute(\"aria-current\");\n }\n }\n}\n__decorate([\n observable\n], Breadcrumb.prototype, \"slottedBreadcrumbItems\", void 0);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end.js\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Button:class)} component.\n * @public\n */\nexport const buttonTemplate = (context, definition) => html `\n x.autofocus}\"\n ?disabled=\"${x => x.disabled}\"\n form=\"${x => x.formId}\"\n formaction=\"${x => x.formaction}\"\n formenctype=\"${x => x.formenctype}\"\n formmethod=\"${x => x.formmethod}\"\n formnovalidate=\"${x => x.formnovalidate}\"\n formtarget=\"${x => x.formtarget}\"\n name=\"${x => x.name}\"\n type=\"${x => x.type}\"\n value=\"${x => x.value}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-pressed=\"${x => x.ariaPressed}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n >\n ${startSlotTemplate(context, definition)}\n \n \n \n ${endSlotTemplate(context, definition)}\n \n`;\n","import { attr, booleanConverter, DOM, emptyArray, observable, } from \"@microsoft/fast-element\";\nimport { keyEnter } from \"@microsoft/fast-web-utilities\";\nconst proxySlotName = \"form-associated-proxy\";\nconst ElementInternalsKey = \"ElementInternals\";\n/**\n * @alpha\n */\nexport const supportsElementInternals = ElementInternalsKey in window &&\n \"setFormValue\" in window[ElementInternalsKey].prototype;\nconst InternalsMap = new WeakMap();\n/**\n * Base function for providing Custom Element Form Association.\n *\n * @alpha\n */\nexport function FormAssociated(BaseCtor) {\n const C = class extends BaseCtor {\n constructor(...args) {\n super(...args);\n /**\n * Track whether the value has been changed from the initial value\n */\n this.dirtyValue = false;\n /**\n * Sets the element's disabled state. A disabled element will not be included during form submission.\n *\n * @remarks\n * HTML Attribute: disabled\n */\n this.disabled = false;\n /**\n * These are events that are still fired by the proxy\n * element based on user / programmatic interaction.\n *\n * The proxy implementation should be transparent to\n * the app author, so block these events from emitting.\n */\n this.proxyEventsToBlock = [\"change\", \"click\"];\n this.proxyInitialized = false;\n this.required = false;\n this.initialValue = this.initialValue || \"\";\n if (!this.elementInternals) {\n // When elementInternals is not supported, formResetCallback is\n // bound to an event listener, so ensure the handler's `this`\n // context is correct.\n this.formResetCallback = this.formResetCallback.bind(this);\n }\n }\n /**\n * Must evaluate to true to enable elementInternals.\n * Feature detects API support and resolve respectively\n *\n * @internal\n */\n static get formAssociated() {\n return supportsElementInternals;\n }\n /**\n * Returns the validity state of the element\n *\n * @alpha\n */\n get validity() {\n return this.elementInternals\n ? this.elementInternals.validity\n : this.proxy.validity;\n }\n /**\n * Retrieve a reference to the associated form.\n * Returns null if not associated to any form.\n *\n * @alpha\n */\n get form() {\n return this.elementInternals ? this.elementInternals.form : this.proxy.form;\n }\n /**\n * Retrieve the localized validation message,\n * or custom validation message if set.\n *\n * @alpha\n */\n get validationMessage() {\n return this.elementInternals\n ? this.elementInternals.validationMessage\n : this.proxy.validationMessage;\n }\n /**\n * Whether the element will be validated when the\n * form is submitted\n */\n get willValidate() {\n return this.elementInternals\n ? this.elementInternals.willValidate\n : this.proxy.willValidate;\n }\n /**\n * A reference to all associated label elements\n */\n get labels() {\n if (this.elementInternals) {\n return Object.freeze(Array.from(this.elementInternals.labels));\n }\n else if (this.proxy instanceof HTMLElement &&\n this.proxy.ownerDocument &&\n this.id) {\n // Labels associated by wrapping the element: \n const parentLabels = this.proxy.labels;\n // Labels associated using the `for` attribute\n const forLabels = Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`));\n const labels = parentLabels\n ? forLabels.concat(Array.from(parentLabels))\n : forLabels;\n return Object.freeze(labels);\n }\n else {\n return emptyArray;\n }\n }\n /**\n * Invoked when the `value` property changes\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `valueChanged` method\n * They must be sure to invoke `super.valueChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n valueChanged(previous, next) {\n this.dirtyValue = true;\n if (this.proxy instanceof HTMLElement) {\n this.proxy.value = this.value;\n }\n this.currentValue = this.value;\n this.setFormValue(this.value);\n this.validate();\n }\n currentValueChanged() {\n this.value = this.currentValue;\n }\n /**\n * Invoked when the `initialValue` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `initialValueChanged` method\n * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n initialValueChanged(previous, next) {\n // If the value is clean and the component is connected to the DOM\n // then set value equal to the attribute value.\n if (!this.dirtyValue) {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n }\n /**\n * Invoked when the `disabled` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `disabledChanged` method\n * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n disabledChanged(previous, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.disabled = this.disabled;\n }\n DOM.queueUpdate(() => this.classList.toggle(\"disabled\", this.disabled));\n }\n /**\n * Invoked when the `name` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `nameChanged` method\n * They must be sure to invoke `super.nameChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n nameChanged(previous, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.name = this.name;\n }\n }\n /**\n * Invoked when the `required` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `requiredChanged` method\n * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n requiredChanged(prev, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.required = this.required;\n }\n DOM.queueUpdate(() => this.classList.toggle(\"required\", this.required));\n this.validate();\n }\n /**\n * The element internals object. Will only exist\n * in browsers supporting the attachInternals API\n */\n get elementInternals() {\n if (!supportsElementInternals) {\n return null;\n }\n let internals = InternalsMap.get(this);\n if (!internals) {\n internals = this.attachInternals();\n InternalsMap.set(this, internals);\n }\n return internals;\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"keypress\", this._keypressHandler);\n if (!this.value) {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n if (!this.elementInternals) {\n this.attachProxy();\n if (this.form) {\n this.form.addEventListener(\"reset\", this.formResetCallback);\n }\n }\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.proxyEventsToBlock.forEach(name => this.proxy.removeEventListener(name, this.stopPropagation));\n if (!this.elementInternals && this.form) {\n this.form.removeEventListener(\"reset\", this.formResetCallback);\n }\n }\n /**\n * Return the current validity of the element.\n */\n checkValidity() {\n return this.elementInternals\n ? this.elementInternals.checkValidity()\n : this.proxy.checkValidity();\n }\n /**\n * Return the current validity of the element.\n * If false, fires an invalid event at the element.\n */\n reportValidity() {\n return this.elementInternals\n ? this.elementInternals.reportValidity()\n : this.proxy.reportValidity();\n }\n /**\n * Set the validity of the control. In cases when the elementInternals object is not\n * available (and the proxy element is used to report validity), this function will\n * do nothing unless a message is provided, at which point the setCustomValidity method\n * of the proxy element will be invoked with the provided message.\n * @param flags - Validity flags\n * @param message - Optional message to supply\n * @param anchor - Optional element used by UA to display an interactive validation UI\n */\n setValidity(flags, message, anchor) {\n if (this.elementInternals) {\n this.elementInternals.setValidity(flags, message, anchor);\n }\n else if (typeof message === \"string\") {\n this.proxy.setCustomValidity(message);\n }\n }\n /**\n * Invoked when a connected component's form or fieldset has its disabled\n * state changed.\n * @param disabled - the disabled value of the form / fieldset\n */\n formDisabledCallback(disabled) {\n this.disabled = disabled;\n }\n formResetCallback() {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n /**\n * Attach the proxy element to the DOM\n */\n attachProxy() {\n var _a;\n if (!this.proxyInitialized) {\n this.proxyInitialized = true;\n this.proxy.style.display = \"none\";\n this.proxyEventsToBlock.forEach(name => this.proxy.addEventListener(name, this.stopPropagation));\n // These are typically mapped to the proxy during\n // property change callbacks, but during initialization\n // on the initial call of the callback, the proxy is\n // still undefined. We should find a better way to address this.\n this.proxy.disabled = this.disabled;\n this.proxy.required = this.required;\n if (typeof this.name === \"string\") {\n this.proxy.name = this.name;\n }\n if (typeof this.value === \"string\") {\n this.proxy.value = this.value;\n }\n this.proxy.setAttribute(\"slot\", proxySlotName);\n this.proxySlot = document.createElement(\"slot\");\n this.proxySlot.setAttribute(\"name\", proxySlotName);\n }\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(this.proxySlot);\n this.appendChild(this.proxy);\n }\n /**\n * Detach the proxy element from the DOM\n */\n detachProxy() {\n var _a;\n this.removeChild(this.proxy);\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeChild(this.proxySlot);\n }\n /** {@inheritDoc (FormAssociated:interface).validate} */\n validate(anchor) {\n if (this.proxy instanceof HTMLElement) {\n this.setValidity(this.proxy.validity, this.proxy.validationMessage, anchor);\n }\n }\n /**\n * Associates the provided value (and optional state) with the parent form.\n * @param value - The value to set\n * @param state - The state object provided to during session restores and when autofilling.\n */\n setFormValue(value, state) {\n if (this.elementInternals) {\n this.elementInternals.setFormValue(value, state || value);\n }\n }\n _keypressHandler(e) {\n switch (e.key) {\n case keyEnter:\n if (this.form instanceof HTMLFormElement) {\n // Implicit submission\n const defaultButton = this.form.querySelector(\"[type=submit]\");\n defaultButton === null || defaultButton === void 0 ? void 0 : defaultButton.click();\n }\n break;\n }\n }\n /**\n * Used to stop propagation of proxy element events\n * @param e - Event object\n */\n stopPropagation(e) {\n e.stopPropagation();\n }\n };\n attr({ mode: \"boolean\" })(C.prototype, \"disabled\");\n attr({ mode: \"fromView\", attribute: \"value\" })(C.prototype, \"initialValue\");\n attr({ attribute: \"current-value\" })(C.prototype, \"currentValue\");\n attr(C.prototype, \"name\");\n attr({ mode: \"boolean\" })(C.prototype, \"required\");\n observable(C.prototype, \"value\");\n return C;\n}\n/**\n * @alpha\n */\nexport function CheckableFormAssociated(BaseCtor) {\n class C extends FormAssociated(BaseCtor) {\n }\n class D extends C {\n constructor(...args) {\n super(args);\n /**\n * Tracks whether the \"checked\" property has been changed.\n * This is necessary to provide consistent behavior with\n * normal input checkboxes\n */\n this.dirtyChecked = false;\n /**\n * Provides the default checkedness of the input element\n * Passed down to proxy\n *\n * @public\n * @remarks\n * HTML Attribute: checked\n */\n this.checkedAttribute = false;\n /**\n * The checked state of the control.\n *\n * @public\n */\n this.checked = false;\n // Re-initialize dirtyChecked because initialization of other values\n // causes it to become true\n this.dirtyChecked = false;\n }\n checkedAttributeChanged() {\n this.defaultChecked = this.checkedAttribute;\n }\n /**\n * @internal\n */\n defaultCheckedChanged() {\n if (!this.dirtyChecked) {\n // Setting this.checked will cause us to enter a dirty state,\n // but if we are clean when defaultChecked is changed, we want to stay\n // in a clean state, so reset this.dirtyChecked\n this.checked = this.defaultChecked;\n this.dirtyChecked = false;\n }\n }\n checkedChanged(prev, next) {\n if (!this.dirtyChecked) {\n this.dirtyChecked = true;\n }\n this.currentChecked = this.checked;\n this.updateForm();\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.checked = this.checked;\n }\n if (prev !== undefined) {\n this.$emit(\"change\");\n }\n this.validate();\n }\n currentCheckedChanged(prev, next) {\n this.checked = this.currentChecked;\n }\n updateForm() {\n const value = this.checked ? this.value : null;\n this.setFormValue(value, value);\n }\n connectedCallback() {\n super.connectedCallback();\n this.updateForm();\n }\n formResetCallback() {\n super.formResetCallback();\n this.checked = !!this.checkedAttribute;\n this.dirtyChecked = false;\n }\n }\n attr({ attribute: \"checked\", mode: \"boolean\" })(D.prototype, \"checkedAttribute\");\n attr({ attribute: \"current-checked\", converter: booleanConverter })(D.prototype, \"currentChecked\");\n observable(D.prototype, \"defaultChecked\");\n observable(D.prototype, \"checked\");\n return D;\n}\n","import { FormAssociated } from \"../form-associated/form-associated.js\";\nimport { FoundationElement } from \"../foundation-element/foundation-element.js\";\nclass _Button extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(Button:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedButton extends FormAssociated(_Button) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { ARIAGlobalStatesAndProperties, StartEnd, } from \"../patterns/index.js\";\nimport { applyMixins } from \"../utilities/apply-mixins.js\";\nimport { FormAssociatedButton } from \"./button.form-associated.js\";\n/**\n * A Button Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | \n \n \n ${endSlotTemplate(context, definition)}\n \n \n`;\n","import { css } from '@microsoft/fast-element';\nimport { Button, DesignToken, display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { baseInputStyles, heightNumber, inputFilledStyles, inputForcedColorStyles, inputOutlineStyles, inputStateStyles, } from '../styles';\nimport { appearanceBehavior } from '../utilities/behaviors';\nimport { controlCornerRadius, density, designUnit, neutralFillInputRecipe, neutralFillStealthRecipe, neutralForegroundRest } from '../design-tokens';\nimport { typeRampBase } from '../styles/patterns/type-ramp';\nconst logicalControlSelector = '.root';\nconst clearButtonHover = DesignToken.create(\"clear-button-hover\").withDefault((target) => {\n const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);\n const inputRecipe = neutralFillInputRecipe.getValueFor(target);\n return buttonRecipe.evaluate(target, inputRecipe.evaluate(target).focus).hover;\n});\nconst clearButtonActive = DesignToken.create(\"clear-button-active\").withDefault((target) => {\n const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);\n const inputRecipe = neutralFillInputRecipe.getValueFor(target);\n return buttonRecipe.evaluate(target, inputRecipe.evaluate(target).focus).active;\n});\nexport const searchStyles = (context, definition) => css `\n ${display('inline-block')}\n\n ${baseInputStyles(context, definition, logicalControlSelector)}\n\n ${inputStateStyles(context, definition, logicalControlSelector)}\n\n .root {\n display: flex;\n flex-direction: row;\n }\n .control {\n -webkit-appearance: none;\n color: inherit;\n background: transparent;\n border: 0;\n height: calc(100% - 4px);\n margin-top: auto;\n margin-bottom: auto;\n padding: 0 calc(${designUnit} * 2px + 1px);\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n .clear-button {\n display: inline-flex;\n align-items: center;\n margin: 1px;\n height: calc(100% - 2px);\n opacity: 0;\n background: transparent;\n color: ${neutralForegroundRest};\n fill: currentcolor;\n border: none;\n border-radius: calc(${controlCornerRadius} * 1px);\n min-width: calc(${heightNumber} * 1px);\n ${typeRampBase}\n outline: none;\n padding: 0 calc((10 + (${designUnit} * 2 * ${density})) * 1px);\n }\n .clear-button:hover {\n background: ${clearButtonHover};\n }\n .clear-button:active {\n background: ${clearButtonActive};\n }\n :host(:hover:not([disabled], [readOnly])) .clear-button,\n :host(:active:not([disabled], [readOnly])) .clear-button,\n :host(:focus-within:not([disabled], [readOnly])) .clear-button {\n opacity: 1;\n }\n :host(:hover:not([disabled], [readOnly])) .clear-button__hidden,\n :host(:active:not([disabled], [readOnly])) .clear-button__hidden,\n :host(:focus-within:not([disabled], [readOnly])) .clear-button__hidden {\n opacity: 0;\n }\n .control::-webkit-search-cancel-button {\n -webkit-appearance: none;\n }\n .input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n }\n .start,\n .end {\n display: flex;\n margin: 1px;\n align-items: center;\n }\n .start {\n display: flex;\n margin-inline-start: 11px;\n }\n ::slotted([slot=\"end\"]) {\n height: 100%\n }\n .clear-button__hidden {\n opacity: 0;\n }\n .end {\n margin-inline-end: 11px;\n }\n ::slotted(${context.tagFor(Button)}) {\n margin-inline-end: 1px;\n }\n `.withBehaviors(appearanceBehavior('outline', inputOutlineStyles(context, definition, logicalControlSelector)), appearanceBehavior('filled', inputFilledStyles(context, definition, logicalControlSelector)), forcedColorsStylesheetBehavior(inputForcedColorStyles(context, definition, logicalControlSelector)));\n","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { Search as FoundationSearch } from '@microsoft/fast-foundation';\nimport { searchTemplate as template } from './search.template';\nimport { searchStyles as styles } from './search.styles';\n/**\n * The Fluent search class\n * @internal\n */\nexport class Search extends FoundationSearch {\n constructor() {\n super(...arguments);\n /**\n * The appearance of the element.\n *\n * @public\n * @remarks\n * HTML Attribute: appearance\n */\n this.appearance = 'outline';\n }\n}\n__decorate([\n attr\n], Search.prototype, \"appearance\", void 0);\n/**\n * The Fluent Search Custom Element. Implements {@link @microsoft/fast-foundation#Search},\n * {@link @microsoft/fast-foundation#searchTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/delegatesFocus | delegatesFocus}\n */\nexport const fluentSearch = Search.compose({\n baseName: 'search',\n baseClass: FoundationSearch,\n template,\n styles,\n start: ``,\n shadowOptions: {\n delegatesFocus: true,\n },\n});\nexport * from './search.template';\n/**\n * Styles for Search\n * @public\n */\nexport const searchStyles = styles;\n","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { Select as FoundationSelect, selectTemplate as template } from '@microsoft/fast-foundation';\nimport { fillColor, neutralLayerFloating } from '../design-tokens';\nimport { selectStyles as styles } from './select.styles';\n/**\n * The Fluent select class\n * @internal\n */\nexport class Select extends FoundationSelect {\n /**\n * @internal\n */\n appearanceChanged(oldValue, newValue) {\n if (oldValue !== newValue) {\n this.classList.add(newValue);\n this.classList.remove(oldValue);\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n if (!this.appearance) {\n this.appearance = 'outline';\n }\n if (this.listbox) {\n fillColor.setValueFor(this.listbox, neutralLayerFloating);\n }\n }\n}\n__decorate([\n attr({ mode: 'fromView' })\n], Select.prototype, \"appearance\", void 0);\n/**\n * The Fluent select Custom Element. Implements, {@link @microsoft/fast-foundation#Select}\n * {@link @microsoft/fast-foundation#selectTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n */\nexport const fluentSelect = Select.compose({\n baseName: 'select',\n baseClass: FoundationSelect,\n template,\n styles,\n indicator: `\n \n \n \n `,\n});\n/**\n * Styles for Select\n * @public\n */\nexport const selectStyles = styles;\n","import { css } from '@microsoft/fast-element';\nimport { display, forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';\nimport { SystemColors } from \"@microsoft/fast-web-utilities\";\nimport { controlCornerRadius, neutralFillSecondaryHover, neutralFillSecondaryRest } from '../design-tokens';\nexport const skeletonStyles = (context, definition) => css `\n ${display('block')} :host {\n --skeleton-fill-default: ${neutralFillSecondaryRest};\n overflow: hidden;\n width: 100%;\n position: relative;\n background-color: var(--skeleton-fill, var(--skeleton-fill-default));\n --skeleton-animation-gradient-default: linear-gradient(\n 270deg,\n var(--skeleton-fill, var(--skeleton-fill-default)) 0%,\n ${neutralFillSecondaryHover} 51%,\n var(--skeleton-fill, var(--skeleton-fill-default)) 100%\n );\n --skeleton-animation-timing-default: ease-in-out;\n }\n\n :host(.rect) {\n border-radius: calc(${controlCornerRadius} * 1px);\n }\n\n :host(.circle) {\n border-radius: 100%;\n overflow: hidden;\n }\n\n object {\n position: absolute;\n width: 100%;\n height: auto;\n z-index: 2;\n }\n\n object img {\n width: 100%;\n height: auto;\n }\n\n ${display('block')} span.shimmer {\n position: absolute;\n width: 100%;\n height: 100%;\n background-image: var(--skeleton-animation-gradient, var(--skeleton-animation-gradient-default));\n background-size: 0px 0px / 90% 100%;\n background-repeat: no-repeat;\n background-color: var(--skeleton-animation-fill, ${neutralFillSecondaryRest});\n animation: shimmer 2s infinite;\n animation-timing-function: var(--skeleton-animation-timing, var(--skeleton-timing-default));\n animation-direction: normal;\n z-index: 1;\n }\n\n ::slotted(svg) {\n z-index: 2;\n }\n\n ::slotted(.pattern) {\n width: 100%;\n height: 100%;\n }\n\n @keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(100%);\n }\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n :host{\n background-color: ${SystemColors.CanvasText};\n }\n `));\n","import { Skeleton, skeletonTemplate as template } from '@microsoft/fast-foundation';\nimport { skeletonStyles as styles } from './skeleton.styles';\n/**\n * The Fluent Skeleton Element. Implements {@link @microsoft/fast-foundation#Skeleton},\n * {@link @microsoft/fast-foundation#skeletonTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentSkeleton = Skeleton.compose({\n baseName: 'skeleton',\n template,\n styles,\n});\n/**\n * Styles for Skeleton\n * @public\n */\nexport const skeletonStyles = styles;\n/**\n * Skeleton base class\n * @public\n */\nexport { Skeleton };\n","import { css } from '@microsoft/fast-element';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { heightNumber } from '../styles';\nimport { accentFillActive, accentFillHover, accentFillRest, controlCornerRadius, designUnit, disabledOpacity, fillColor, focusStrokeOuter, neutralFillRest, neutralFillStrongRest, neutralStrokeControlActive, neutralStrokeControlHover, neutralStrokeControlRest, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';\nexport const sliderStyles = (context, definition) => css `\n ${display('inline-grid')} :host {\n --thumb-size: calc((${heightNumber} / 2) + ${designUnit} + (${strokeWidth} * 2));\n --thumb-translate: calc(var(--thumb-size) * -0.5 + var(--track-width) / 2);\n --track-overhang: calc((${designUnit} / 2) * -1);\n --track-width: ${designUnit};\n align-items: center;\n width: 100%;\n user-select: none;\n box-sizing: border-box;\n border-radius: calc(${controlCornerRadius} * 1px);\n outline: none;\n cursor: pointer;\n }\n :host(.horizontal) .positioning-region {\n position: relative;\n margin: 0 8px;\n display: grid;\n grid-template-rows: calc(var(--thumb-size) * 1px) 1fr;\n }\n :host(.vertical) .positioning-region {\n position: relative;\n margin: 0 8px;\n display: grid;\n height: 100%;\n grid-template-columns: calc(var(--thumb-size) * 1px) 1fr;\n }\n :host(:${focusVisible}) .thumb-cursor {\n box-shadow: 0 0 0 2px ${fillColor}, 0 0 0 4px ${focusStrokeOuter};\n }\n .thumb-container {\n position: absolute;\n height: calc(var(--thumb-size) * 1px);\n width: calc(var(--thumb-size) * 1px);\n transition: all 0.2s ease;\n }\n .thumb-cursor {\n display: flex;\n position: relative;\n border: none;\n width: calc(var(--thumb-size) * 1px);\n height: calc(var(--thumb-size) * 1px);\n background: padding-box linear-gradient(${neutralFillRest}, ${neutralFillRest}),\n border-box ${neutralStrokeControlRest};\n border: calc(${strokeWidth} * 1px) solid transparent;\n border-radius: 50%;\n box-sizing: border-box;\n }\n .thumb-cursor::after {\n content: '';\n display: block;\n border-radius: 50%;\n width: 100%;\n margin: 4px;\n background: ${accentFillRest};\n }\n :host(:not(.disabled)) .thumb-cursor:hover::after {\n background: ${accentFillHover};\n margin: 3px;\n }\n :host(:not(.disabled)) .thumb-cursor:active::after {\n background: ${accentFillActive};\n margin: 5px;\n }\n :host(:not(.disabled)) .thumb-cursor:hover {\n background: padding-box linear-gradient(${neutralFillRest}, ${neutralFillRest}),\n border-box ${neutralStrokeControlHover};\n }\n :host(:not(.disabled)) .thumb-cursor:active {\n background: padding-box linear-gradient(${neutralFillRest}, ${neutralFillRest}),\n border-box ${neutralStrokeControlActive};\n }\n .track-start {\n background: ${accentFillRest};\n position: absolute;\n height: 100%;\n left: 0;\n border-radius: calc(${controlCornerRadius} * 1px);\n }\n :host(.horizontal) .thumb-container {\n transform: translateX(calc(var(--thumb-size) * 0.5px)) translateY(calc(var(--thumb-translate) * 1px));\n }\n :host(.vertical) .thumb-container {\n transform: translateX(calc(var(--thumb-translate) * 1px)) translateY(calc(var(--thumb-size) * 0.5px));\n }\n :host(.horizontal) {\n min-width: calc(var(--thumb-size) * 1px);\n }\n :host(.horizontal) .track {\n right: calc(var(--track-overhang) * 1px);\n left: calc(var(--track-overhang) * 1px);\n align-self: start;\n height: calc(var(--track-width) * 1px);\n }\n :host(.vertical) .track {\n top: calc(var(--track-overhang) * 1px);\n bottom: calc(var(--track-overhang) * 1px);\n width: calc(var(--track-width) * 1px);\n height: 100%;\n }\n .track {\n background: ${neutralFillStrongRest};\n border: 1px solid ${neutralStrokeStrongRest};\n border-radius: 2px;\n box-sizing: border-box;\n position: absolute;\n }\n :host(.vertical) {\n height: 100%;\n min-height: calc(${designUnit} * 60px);\n min-width: calc(${designUnit} * 20px);\n }\n :host(.vertical) .track-start {\n height: auto;\n width: 100%;\n top: 0;\n }\n :host(.disabled),\n :host(.readonly) {\n cursor: ${disabledCursor};\n }\n :host(.disabled) {\n opacity: ${disabledOpacity};\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n .thumb-cursor {\n forced-color-adjust: none;\n border-color: ${SystemColors.FieldText};\n background: ${SystemColors.FieldText};\n }\n :host(:not(.disabled)) .thumb-cursor:hover,\n :host(:not(.disabled)) .thumb-cursor:active {\n background: ${SystemColors.Highlight};\n }\n .track {\n forced-color-adjust: none;\n background: ${SystemColors.FieldText};\n }\n .thumb-cursor::after,\n :host(:not(.disabled)) .thumb-cursor:hover::after,\n :host(:not(.disabled)) .thumb-cursor:active::after {\n background: ${SystemColors.Field};\n }\n :host(:${focusVisible}) .thumb-cursor {\n background: ${SystemColors.Highlight};\n border-color: ${SystemColors.Highlight};\n box-shadow: 0 0 0 1px ${SystemColors.Field}, 0 0 0 3px ${SystemColors.FieldText};\n }\n :host(.disabled) {\n opacity: 1;\n }\n :host(.disabled) .track,\n :host(.disabled) .thumb-cursor {\n forced-color-adjust: none;\n background: ${SystemColors.GrayText};\n }\n `));\n","import { Slider, sliderTemplate as template } from '@microsoft/fast-foundation';\nimport { sliderStyles as styles } from './slider.styles';\n/**\n * The Fluent Slider Custom Element. Implements {@link @microsoft/fast-foundation#(Slider:class)},\n * {@link @microsoft/fast-foundation#sliderTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentSlider = Slider.compose({\n baseName: 'slider',\n template,\n styles,\n thumb: `\n
\n `,\n});\n/**\n * Styles for Slider\n * @public\n */\nexport const sliderStyles = styles;\n/**\n * Slider base class\n * @public\n */\nexport { Slider };\n","import { css } from '@microsoft/fast-element';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { designUnit, disabledOpacity, neutralStrokeStrongRest, strokeWidth } from '../design-tokens';\nimport { typeRampMinus1 } from '../styles/patterns/type-ramp';\nexport const sliderLabelStyles = (context, definition) => css `\n ${display('block')} :host {\n ${typeRampMinus1}\n }\n .root {\n position: absolute;\n display: grid;\n }\n :host(.horizontal) {\n align-self: start;\n grid-row: 2;\n margin-top: -4px;\n }\n :host(.vertical) {\n justify-self: start;\n grid-column: 2;\n margin-left: 2px;\n }\n .container {\n display: grid;\n justify-self: center;\n }\n :host(.horizontal) .container {\n grid-template-rows: auto auto;\n grid-template-columns: 0;\n }\n :host(.vertical) .container {\n grid-template-columns: auto auto;\n grid-template-rows: 0;\n min-width: calc(var(--thumb-size) * 1px);\n height: calc(var(--thumb-size) * 1px);\n }\n .label {\n justify-self: center;\n align-self: center;\n white-space: nowrap;\n max-width: 30px;\n margin: 2px 0;\n }\n .mark {\n width: calc(${strokeWidth} * 1px);\n height: calc(${designUnit} * 1px);\n background: ${neutralStrokeStrongRest};\n justify-self: center;\n }\n :host(.vertical) .mark {\n transform: rotate(90deg);\n align-self: center;\n }\n :host(.vertical) .label {\n margin-left: calc((${designUnit} / 2) * 2px);\n align-self: center;\n }\n :host(.disabled) {\n opacity: ${disabledOpacity};\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n .mark {\n forced-color-adjust: none;\n background: ${SystemColors.FieldText};\n }\n :host(.disabled) {\n forced-color-adjust: none;\n opacity: 1;\n }\n :host(.disabled) .label {\n color: ${SystemColors.GrayText};\n }\n :host(.disabled) .mark {\n background: ${SystemColors.GrayText};\n }\n `));\n","import { SliderLabel, sliderLabelTemplate as template } from '@microsoft/fast-foundation';\nimport { sliderLabelStyles as styles } from './slider-label.styles';\n/**\n * The Fluent Slider Label Custom Element. Implements {@link @microsoft/fast-foundation#SliderLabel},\n * {@link @microsoft/fast-foundation#sliderLabelTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentSliderLabel = SliderLabel.compose({\n baseName: 'slider-label',\n template,\n styles,\n});\n/**\n * Styles for SliderLabel\n * @public\n */\nexport const sliderLabelStyles = styles;\n/**\n * Slider label base class\n * @public\n */\nexport { SliderLabel };\n","import { css } from '@microsoft/fast-element';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { DirectionalStyleSheetBehavior, heightNumber } from '../styles';\nimport { accentFillActive, accentFillHover, accentFillRest, bodyFont, designUnit, disabledOpacity, foregroundOnAccentActive, foregroundOnAccentHover, foregroundOnAccentRest, neutralFillInputAltActive, neutralFillInputAltFocus, neutralFillInputAltHover, neutralFillInputAltRest, neutralForegroundRest, neutralStrokeStrongActive, neutralStrokeStrongHover, neutralStrokeStrongRest, strokeWidth, } from '../design-tokens';\nimport { typeRampBase } from '../styles/patterns/type-ramp';\nimport { focusTreatmentTight } from '../styles/focus';\nexport const switchStyles = (context, definition) => css `\n :host([hidden]) {\n display: none;\n }\n\n ${display('inline-flex')} :host {\n align-items: center;\n outline: none;\n font-family: ${bodyFont};\n ${\n/*\n * Chromium likes to select label text or the default slot when\n * the checkbox is clicked. Maybe there is a better solution here?\n */ ''} user-select: none;\n }\n\n :host(.disabled) {\n opacity: ${disabledOpacity};\n }\n\n :host(.disabled) .label,\n :host(.readonly) .label,\n :host(.disabled) .switch,\n :host(.readonly) .switch,\n :host(.disabled) .status-message,\n :host(.readonly) .status-message {\n cursor: ${disabledCursor};\n }\n\n .switch {\n position: relative;\n box-sizing: border-box;\n width: calc(((${heightNumber} / 2) + ${designUnit}) * 2px);\n height: calc(((${heightNumber} / 2) + ${designUnit}) * 1px);\n background: ${neutralFillInputAltRest};\n border-radius: calc(${heightNumber} * 1px);\n border: calc(${strokeWidth} * 1px) solid ${neutralStrokeStrongRest};\n cursor: pointer;\n }\n\n :host(:not(.disabled):hover) .switch {\n background: ${neutralFillInputAltHover};\n border-color: ${neutralStrokeStrongHover};\n }\n\n :host(:not(.disabled):active) .switch {\n background: ${neutralFillInputAltActive};\n border-color: ${neutralStrokeStrongActive};\n }\n\n :host(:${focusVisible}) .switch {\n ${focusTreatmentTight}\n background: ${neutralFillInputAltFocus};\n }\n\n :host(.checked) .switch {\n background: ${accentFillRest};\n border-color: transparent;\n }\n\n :host(.checked:not(.disabled):hover) .switch {\n background: ${accentFillHover};\n border-color: transparent;\n }\n\n :host(.checked:not(.disabled):active) .switch {\n background: ${accentFillActive};\n border-color: transparent;\n }\n\n slot[name='switch'] {\n position: absolute;\n display: flex;\n border: 1px solid transparent; /* Spacing included in the transform reference box */\n fill: ${neutralForegroundRest};\n transition: all 0.2s ease-in-out;\n }\n\n .status-message {\n color: ${neutralForegroundRest};\n cursor: pointer;\n ${typeRampBase}\n }\n\n .label__hidden {\n display: none;\n visibility: hidden;\n }\n\n .label {\n color: ${neutralForegroundRest};\n ${typeRampBase}\n margin-inline-end: calc(${designUnit} * 2px + 2px);\n cursor: pointer;\n }\n\n ::slotted([slot=\"checked-message\"]),\n ::slotted([slot=\"unchecked-message\"]) {\n margin-inline-start: calc(${designUnit} * 2px + 2px);\n }\n\n :host(.checked) .switch {\n background: ${accentFillRest};\n }\n\n :host(.checked) .switch slot[name='switch'] {\n fill: ${foregroundOnAccentRest};\n filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.15));\n }\n\n :host(.checked:not(.disabled)) .switch:hover {\n background: ${accentFillHover};\n }\n\n :host(.checked:not(.disabled)) .switch:hover slot[name='switch'] {\n fill: ${foregroundOnAccentHover};\n }\n\n :host(.checked:not(.disabled)) .switch:active {\n background: ${accentFillActive};\n }\n\n :host(.checked:not(.disabled)) .switch:active slot[name='switch'] {\n fill: ${foregroundOnAccentActive};\n }\n\n .unchecked-message {\n display: block;\n }\n\n .checked-message {\n display: none;\n }\n\n :host(.checked) .unchecked-message {\n display: none;\n }\n\n :host(.checked) .checked-message {\n display: block;\n }\n `.withBehaviors(new DirectionalStyleSheetBehavior(css `\n slot[name='switch'] {\n left: 0;\n }\n\n :host(.checked) slot[name='switch'] {\n left: 100%;\n transform: translateX(-100%);\n }\n `, css `\n slot[name='switch'] {\n right: 0;\n }\n\n :host(.checked) slot[name='switch'] {\n right: 100%;\n transform: translateX(100%);\n }\n `), forcedColorsStylesheetBehavior(css `\n :host(:not(.disabled)) .switch slot[name='switch'] {\n forced-color-adjust: none;\n fill: ${SystemColors.FieldText};\n }\n .switch {\n background: ${SystemColors.Field};\n border-color: ${SystemColors.FieldText};\n }\n :host(.checked) .switch {\n background: ${SystemColors.Highlight};\n border-color: ${SystemColors.Highlight};\n }\n :host(:not(.disabled):hover) .switch ,\n :host(:not(.disabled):active) .switch,\n :host(.checked:not(.disabled):hover) .switch {\n background: ${SystemColors.HighlightText};\n border-color: ${SystemColors.Highlight};\n }\n :host(.checked:not(.disabled)) .switch slot[name=\"switch\"] {\n fill: ${SystemColors.HighlightText};\n }\n :host(.checked:not(.disabled):hover) .switch slot[name='switch'] {\n fill: ${SystemColors.Highlight};\n }\n :host(:${focusVisible}) .switch {\n forced-color-adjust: none;\n background: ${SystemColors.Field}; \n border-color: ${SystemColors.Highlight};\n outline-color: ${SystemColors.FieldText};\n }\n :host(.disabled) {\n opacity: 1;\n }\n :host(.disabled) slot[name='switch'] {\n forced-color-adjust: none;\n fill: ${SystemColors.GrayText};\n }\n :host(.disabled) .switch {\n background: ${SystemColors.Field};\n border-color: ${SystemColors.GrayText};\n }\n .status-message,\n .label {\n color: ${SystemColors.FieldText};\n }\n `));\n","import { Switch, switchTemplate as template } from '@microsoft/fast-foundation';\nimport { switchStyles as styles } from './switch.styles';\n/**\n * The Fluent Switch Custom Element. Implements {@link @microsoft/fast-foundation#Switch},\n * {@link @microsoft/fast-foundation#SwitchTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentSwitch = Switch.compose({\n baseName: 'switch',\n template,\n styles,\n switch: `\n \n \n \n `,\n});\n/**\n * Styles for Switch\n * @public\n */\nexport const switchStyles = styles;\n/**\n * Switch Base class\n * @public\n */\nexport { Switch };\n","import { css } from '@microsoft/fast-element';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { accentFillRest, controlCornerRadius, focusStrokeWidth, neutralForegroundRest, } from '../design-tokens';\nimport { heightNumber } from '../styles';\nimport { typeRampBase } from '../styles/patterns/type-ramp';\nexport const tabsStyles = (context, definition) => css `\n ${display('grid')} :host {\n box-sizing: border-box;\n ${typeRampBase}\n color: ${neutralForegroundRest};\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto 1fr;\n }\n\n .tablist {\n display: grid;\n grid-template-rows: calc(${heightNumber} * 1px); auto;\n grid-template-columns: auto;\n position: relative;\n width: max-content;\n align-self: end;\n }\n\n .start,\n .end {\n align-self: center;\n }\n\n .activeIndicator {\n grid-row: 2;\n grid-column: 1;\n width: 20px;\n height: 3px;\n border-radius: calc(${controlCornerRadius} * 1px);\n justify-self: center;\n background: ${accentFillRest};\n }\n\n .activeIndicatorTransition {\n transition: transform 0.2s ease-in-out;\n }\n\n .tabpanel {\n grid-row: 2;\n grid-column-start: 1;\n grid-column-end: 4;\n position: relative;\n }\n\n :host(.vertical) {\n grid-template-rows: auto 1fr auto;\n grid-template-columns: auto 1fr;\n }\n\n :host(.vertical) .tablist {\n grid-row-start: 2;\n grid-row-end: 2;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: auto 1fr;\n position: relative;\n width: max-content;\n justify-self: end;\n align-self: flex-start;\n width: 100%;\n }\n\n :host(.vertical) .tabpanel {\n grid-column: 2;\n grid-row-start: 1;\n grid-row-end: 4;\n }\n\n :host(.vertical) .end {\n grid-row: 3;\n }\n\n :host(.vertical) .activeIndicator {\n grid-column: 1;\n grid-row: 1;\n width: 3px;\n height: 20px;\n margin-inline-start: calc(${focusStrokeWidth} * 1px);\n border-radius: calc(${controlCornerRadius} * 1px);\n align-self: center;\n background: ${accentFillRest};\n }\n\n :host(.vertical) .activeIndicatorTransition {\n transition: transform 0.2s linear;\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n .activeIndicator,\n :host(.vertical) .activeIndicator {\n background: ${SystemColors.Highlight};\n }\n `));\n","import { css } from '@microsoft/fast-element';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { heightNumber } from '../../styles';\nimport { controlCornerRadius, density, designUnit, neutralForegroundRest, strokeWidth, } from '../../design-tokens';\nimport { typeRampBase } from '../../styles/patterns/type-ramp';\nimport { focusTreatmentBase } from '../../styles/focus';\nexport const tabStyles = (context, definition) => css `\n ${display('inline-flex')} :host {\n box-sizing: border-box;\n ${typeRampBase}\n height: calc((${heightNumber} + (${designUnit} * 2)) * 1px);\n padding: 0 calc((6 + (${designUnit} * 2 * ${density})) * 1px);\n color: ${neutralForegroundRest};\n border-radius: calc(${controlCornerRadius} * 1px);\n border: calc(${strokeWidth} * 1px) solid transparent;\n align-items: center;\n justify-content: center;\n grid-row: 1 / 3;\n cursor: pointer;\n }\n\n :host([aria-selected='true']) {\n z-index: 2;\n }\n\n :host(:hover),\n :host(:active) {\n color: ${neutralForegroundRest};\n }\n\n :host(:${focusVisible}) {\n ${focusTreatmentBase}\n }\n\n :host(.vertical) {\n justify-content: start;\n grid-column: 1 / 3;\n }\n\n :host(.vertical[aria-selected='true']) {\n z-index: 2;\n }\n\n :host(.vertical:hover),\n :host(.vertical:active) {\n color: ${neutralForegroundRest};\n }\n\n :host(.vertical:hover[aria-selected='true']) {\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n :host {\n forced-color-adjust: none;\n border-color: transparent;\n color: ${SystemColors.ButtonText};\n fill: currentcolor;\n }\n :host(:hover),\n :host(.vertical:hover),\n :host([aria-selected='true']:hover) {\n background: transparent;\n color: ${SystemColors.Highlight};\n fill: currentcolor;\n }\n :host([aria-selected='true']) {\n background: transparent;\n color: ${SystemColors.Highlight};\n fill: currentcolor;\n }\n :host(:${focusVisible}) {\n background: transparent;\n outline-color: ${SystemColors.ButtonText};\n }\n `));\n","import { Tab, tabTemplate as template } from '@microsoft/fast-foundation';\nimport { tabStyles as styles } from './tab.styles';\n/**\n * The Fluent Tab Custom Element. Implements {@link @microsoft/fast-foundation#Tab},\n * {@link @microsoft/fast-foundation#tabTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentTab = Tab.compose({\n baseName: 'tab',\n template,\n styles,\n});\n/**\n * Styles for Tab\n * @public\n */\nexport const tabStyles = styles;\n/**\n * Tab base class\n * @public\n */\nexport { Tab };\n","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { density, designUnit } from '../../design-tokens';\nimport { typeRampBase } from '../../styles/patterns/type-ramp';\nexport const tabPanelStyles = (context, definition) => css `\n ${display('block')} :host {\n box-sizing: border-box;\n ${typeRampBase}\n padding: 0 calc((6 + (${designUnit} * 2 * ${density})) * 1px);\n }\n`;\n","import { TabPanel, tabPanelTemplate as template } from '@microsoft/fast-foundation';\nimport { tabPanelStyles as styles } from './tab-panel.styles';\n/**\n * The Fluent Tab Panel Custom Element. Implements {@link @microsoft/fast-foundation#TabPanel},\n * {@link @microsoft/fast-foundation#tabPanelTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentTabPanel = TabPanel.compose({\n baseName: 'tab-panel',\n template,\n styles,\n});\n/**\n * Styles for TabPanel\n * @public\n */\nexport const tabPanelStyles = styles;\n/**\n * Tab panel base styles\n * @public\n */\nexport { TabPanel };\n","import { Tabs, tabsTemplate as template } from '@microsoft/fast-foundation';\nimport { tabsStyles as styles } from './tabs.styles';\n/**\n * The Fluent Tabs Custom Element. Implements {@link @microsoft/fast-foundation#Tabs},\n * {@link @microsoft/fast-foundation#tabsTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentTabs = Tabs.compose({\n baseName: 'tabs',\n template,\n styles,\n});\nexport * from './tab';\nexport * from './tab-panel';\n/**\n * Styles for Tabs\n * @public\n */\nexport const tabsStyles = styles;\n/**\n * Tabs base class\n * @public\n */\nexport { Tabs };\n","import { css } from '@microsoft/fast-element';\nimport { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { baseInputStyles, heightNumber, inputFilledStyles, inputForcedColorStyles, inputOutlineStyles, inputStateStyles, } from '../styles';\nimport { appearanceBehavior } from '../utilities/behaviors';\nimport { designUnit } from '../design-tokens';\nconst logicalControlSelector = '.control';\nexport const textAreaStyles = (context, definition) => css `\n ${display('inline-flex')}\n\n ${baseInputStyles(context, definition, logicalControlSelector)}\n\n ${inputStateStyles(context, definition, logicalControlSelector)}\n\n :host {\n flex-direction: column;\n vertical-align: bottom;\n }\n\n .control {\n height: calc((${heightNumber} * 2) * 1px);\n padding: calc(${designUnit} * 1.5px) calc(${designUnit} * 2px + 1px);\n }\n\n :host .control {\n resize: none;\n }\n\n :host(.resize-both) .control {\n resize: both;\n }\n\n :host(.resize-horizontal) .control {\n resize: horizontal;\n }\n\n :host(.resize-vertical) .control {\n resize: vertical;\n }\n\n :host([cols]) {\n width: initial;\n }\n\n :host([rows]) .control {\n height: initial;\n }\n `.withBehaviors(appearanceBehavior('outline', inputOutlineStyles(context, definition, logicalControlSelector)), appearanceBehavior('filled', inputFilledStyles(context, definition, logicalControlSelector)), forcedColorsStylesheetBehavior(inputForcedColorStyles(context, definition, logicalControlSelector)));\n","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { TextArea as FoundationTextArea, textAreaTemplate as template } from '@microsoft/fast-foundation';\nimport { textAreaStyles as styles } from './text-area.styles';\n/**\n * The Fluent TextArea class\n * @internal\n */\nexport class TextArea extends FoundationTextArea {\n /**\n * @internal\n */\n appearanceChanged(oldValue, newValue) {\n if (oldValue !== newValue) {\n this.classList.add(newValue);\n this.classList.remove(oldValue);\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n if (!this.appearance) {\n this.appearance = 'outline';\n }\n }\n}\n__decorate([\n attr\n], TextArea.prototype, \"appearance\", void 0);\n/**\n * The Fluent Text Area Custom Element. Implements {@link @microsoft/fast-foundation#TextArea},\n * {@link @microsoft/fast-foundation#textAreaTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/delegatesFocus | delegatesFocus}\n */\nexport const fluentTextArea = TextArea.compose({\n baseName: 'text-area',\n baseClass: FoundationTextArea,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true,\n },\n});\n/**\n * Styles for TextArea\n * @public\n */\nexport const textAreaStyles = styles;\n","import { css } from '@microsoft/fast-element';\nimport { display, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { baseInputStyles, inputFilledStyles, inputForcedColorStyles, inputOutlineStyles, inputStateStyles, } from '../styles';\nimport { appearanceBehavior } from '../utilities/behaviors';\nimport { designUnit } from '../design-tokens';\nconst logicalControlSelector = '.root';\nexport const textFieldStyles = (context, definition) => css `\n ${display('inline-block')}\n\n ${baseInputStyles(context, definition, logicalControlSelector)}\n\n ${inputStateStyles(context, definition, logicalControlSelector)}\n\n .root {\n display: flex;\n flex-direction: row;\n }\n\n .control {\n -webkit-appearance: none;\n color: inherit;\n background: transparent;\n border: 0;\n height: calc(100% - 4px);\n margin-top: auto;\n margin-bottom: auto;\n padding: 0 calc(${designUnit} * 2px + 1px);\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n .start,\n .end {\n display: flex;\n margin: auto;\n }\n\n .start {\n display: flex;\n margin-inline-start: 11px;\n }\n\n .end {\n display: flex;\n margin-inline-end: 11px;\n }\n `.withBehaviors(appearanceBehavior('outline', inputOutlineStyles(context, definition, logicalControlSelector)), appearanceBehavior('filled', inputFilledStyles(context, definition, logicalControlSelector)), forcedColorsStylesheetBehavior(inputForcedColorStyles(context, definition, logicalControlSelector)));\n","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { TextField as FoundationTextField, textFieldTemplate as template } from '@microsoft/fast-foundation';\nimport { textFieldStyles as styles } from './text-field.styles';\n/**\n * The Fluent text field class\n * @internal\n */\nexport class TextField extends FoundationTextField {\n /**\n * @internal\n */\n appearanceChanged(oldValue, newValue) {\n if (oldValue !== newValue) {\n this.classList.add(newValue);\n this.classList.remove(oldValue);\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n if (!this.appearance) {\n this.appearance = 'outline';\n }\n }\n}\n__decorate([\n attr\n], TextField.prototype, \"appearance\", void 0);\n/**\n * The Fluent Text Field Custom Element. Implements {@link @microsoft/fast-foundation#TextField},\n * {@link @microsoft/fast-foundation#textFieldTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/delegatesFocus | delegatesFocus}\n */\nexport const fluentTextField = TextField.compose({\n baseName: 'text-field',\n baseClass: FoundationTextField,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true,\n },\n});\n/**\n * Styles for TextField\n * @public\n */\nexport const textFieldStyles = styles;\n","import { css } from '@microsoft/fast-element';\nimport { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { designUnit, fillColor } from '../design-tokens';\nimport { focusTreatmentBase } from '../styles/focus';\nexport const toolbarStyles = (context, definition) => css `\n ${display('inline-flex')} :host {\n --toolbar-item-gap: calc(${designUnit} * 1px);\n background: ${fillColor};\n fill: currentcolor;\n padding: var(--toolbar-item-gap);\n box-sizing: border-box;\n align-items: center;\n }\n\n :host(${focusVisible}) {\n ${focusTreatmentBase}\n }\n\n .positioning-region {\n align-items: center;\n display: inline-flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n flex-grow: 1;\n }\n\n :host([orientation='vertical']) .positioning-region {\n flex-direction: column;\n align-items: start;\n }\n\n ::slotted(:not([slot])) {\n flex: 0 0 auto;\n margin: 0 var(--toolbar-item-gap);\n }\n\n :host([orientation='vertical']) ::slotted(:not([slot])) {\n margin: var(--toolbar-item-gap) 0;\n }\n\n :host([orientation='vertical']) {\n display: inline-flex;\n flex-direction: column;\n }\n\n .start,\n .end {\n display: flex;\n align-items: center;\n }\n\n .end {\n margin-inline-start: auto;\n }\n\n .start__hidden,\n .end__hidden {\n display: none;\n }\n\n ::slotted(svg) {\n ${ /* Glyph size is temporary - replace when adaptive typography is figured out */''}\n width: 16px;\n height: 16px;\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n :host(:${focusVisible}) {\n outline-color: ${SystemColors.Highlight};\n color: ${SystemColors.ButtonText};\n forced-color-adjust: none;\n }\n `));\n","import { Toolbar as FoundationToolbar, toolbarTemplate as template } from '@microsoft/fast-foundation';\nimport { toolbarStyles as styles } from './toolbar.styles';\n/**\n * The Fluent toolbar class\n * @internal\n */\nexport class Toolbar extends FoundationToolbar {\n}\n/**\n * The Fluent Toolbar Custom Element. Implements {@link @microsoft/fast-foundation#Toolbar},\n * {@link @microsoft/fast-foundation#toolbarTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentToolbar = Toolbar.compose({\n baseName: 'toolbar',\n baseClass: FoundationToolbar,\n template,\n styles,\n});\n","import { css } from '@microsoft/fast-element';\nimport { AnchoredRegion, forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';\nimport { elevationShadowTooltip } from '../styles/index';\nimport { controlCornerRadius, fillColor, neutralForegroundRest, neutralStrokeLayerRest, strokeWidth, } from '../design-tokens';\nimport { typeRampBase } from '../styles/patterns/type-ramp';\nexport const tooltipStyles = (context, definition) => css `\n :host {\n position: relative;\n contain: layout;\n overflow: visible;\n height: 0;\n width: 0;\n z-index: 10000;\n }\n\n .tooltip {\n box-sizing: border-box;\n border-radius: calc(${controlCornerRadius} * 1px);\n border: calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};\n background: ${fillColor};\n color: ${neutralForegroundRest};\n padding: 4px 12px;\n height: fit-content;\n width: fit-content;\n ${typeRampBase}\n white-space: nowrap;\n box-shadow: ${elevationShadowTooltip};\n }\n\n ${context.tagFor(AnchoredRegion)} {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: visible;\n flex-direction: row;\n }\n\n ${context.tagFor(AnchoredRegion)}.right,\n ${context.tagFor(AnchoredRegion)}.left {\n flex-direction: column;\n }\n\n ${context.tagFor(AnchoredRegion)}.top .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.bottom .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.left .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.right .tooltip::after {\n content: '';\n width: 12px;\n height: 12px;\n background: ${fillColor};\n border-top: calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};\n border-left: calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};\n position: absolute;\n }\n\n ${context.tagFor(AnchoredRegion)}.top .tooltip::after {\n transform: translateX(-50%) rotate(225deg);\n bottom: 5px;\n left: 50%;\n }\n\n ${context.tagFor(AnchoredRegion)}.top .tooltip {\n margin-bottom: 12px;\n }\n\n ${context.tagFor(AnchoredRegion)}.bottom .tooltip::after {\n transform: translateX(-50%) rotate(45deg);\n top: 5px;\n left: 50%;\n }\n\n ${context.tagFor(AnchoredRegion)}.bottom .tooltip {\n margin-top: 12px;\n }\n\n ${context.tagFor(AnchoredRegion)}.left .tooltip::after {\n transform: translateY(-50%) rotate(135deg);\n top: 50%;\n right: 5px;\n }\n\n ${context.tagFor(AnchoredRegion)}.left .tooltip {\n margin-right: 12px;\n }\n\n ${context.tagFor(AnchoredRegion)}.right .tooltip::after {\n transform: translateY(-50%) rotate(-45deg);\n top: 50%;\n left: 5px;\n }\n\n ${context.tagFor(AnchoredRegion)}.right .tooltip {\n margin-left: 12px;\n }\n `.withBehaviors(forcedColorsStylesheetBehavior(css `\n :host([disabled]) {\n opacity: 1;\n }\n ${context.tagFor(AnchoredRegion)}.top .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.bottom .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.left .tooltip::after,\n ${context.tagFor(AnchoredRegion)}.right .tooltip::after {\n content: '';\n width: unset;\n height: unset;\n }\n `));\n","import { Tooltip as FoundationTooltip, tooltipTemplate as template } from '@microsoft/fast-foundation';\nimport { fillColor, neutralLayerFloating } from '../design-tokens';\nimport { tooltipStyles as styles } from './tooltip.styles';\n/**\n * The Fluent tooltip class\n * @internal\n */\nexport class Tooltip extends FoundationTooltip {\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n fillColor.setValueFor(this, neutralLayerFloating);\n }\n}\n/**\n * The Fluent Tooltip Custom Element. Implements {@link @microsoft/fast-foundation#Tooltip},\n * {@link @microsoft/fast-foundation#tooltipTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n */\nexport const fluentTooltip = Tooltip.compose({\n baseName: 'tooltip',\n baseClass: FoundationTooltip,\n template,\n styles,\n});\n","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nexport const treeViewStyles = (context, definition) => css `\n :host([hidden]) {\n display: none;\n }\n\n ${display('flex')} :host {\n flex-direction: column;\n align-items: stretch;\n min-width: fit-content;\n font-size: 0;\n }\n`;\n","import { treeViewTemplate as template, TreeView } from '@microsoft/fast-foundation';\nimport { treeViewStyles as styles } from './tree-view.styles';\n/**\n * The Fluent tree view Custom Element. Implements, {@link @microsoft/fast-foundation#TreeView}\n * {@link @microsoft/fast-foundation#treeViewTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n */\nexport const fluentTreeView = TreeView.compose({\n baseName: 'tree-view',\n template,\n styles,\n});\n/**\n * Styles for TreeView\n * @public\n */\nexport const treeViewStyles = styles;\n/**\n * Tree View base class\n * @public\n */\nexport { TreeView };\n","import { css, cssPartial } from '@microsoft/fast-element';\nimport { DesignToken, disabledCursor, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';\nimport { SystemColors } from '@microsoft/fast-web-utilities';\nimport { DirectionalStyleSheetBehavior, heightNumber } from '../styles/index';\nimport { accentFillRest, baseHeightMultiplier, bodyFont, controlCornerRadius, density, designUnit, disabledOpacity, focusStrokeWidth, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillStealthActive, neutralFillStealthHover, neutralFillStealthRecipe, neutralFillStealthRest, neutralForegroundRest, strokeWidth, } from '../design-tokens';\nimport { typeRampBase } from '../styles/patterns/type-ramp';\nimport { focusTreatmentBase } from '../styles/focus';\nconst ltr = css `\n .expand-collapse-button svg {\n transform: rotate(0deg);\n }\n :host(.nested) .expand-collapse-button {\n left: var(--expand-collapse-button-nested-width, calc(${heightNumber} * -1px));\n }\n :host([selected])::after {\n left: calc(${focusStrokeWidth} * 1px);\n }\n :host([expanded]) > .positioning-region .expand-collapse-button svg {\n transform: rotate(90deg);\n }\n`;\nconst rtl = css `\n .expand-collapse-button svg {\n transform: rotate(180deg);\n }\n :host(.nested) .expand-collapse-button {\n right: var(--expand-collapse-button-nested-width, calc(${heightNumber} * -1px));\n }\n :host([selected])::after {\n right: calc(${focusStrokeWidth} * 1px);\n }\n :host([expanded]) > .positioning-region .expand-collapse-button svg {\n transform: rotate(90deg);\n }\n`;\nexport const expandCollapseButtonSize = cssPartial `((${baseHeightMultiplier} / 2) * ${designUnit}) + ((${designUnit} * ${density}) / 2)`;\nconst expandCollapseHover = DesignToken.create('tree-item-expand-collapse-hover').withDefault((target) => {\n const recipe = neutralFillStealthRecipe.getValueFor(target);\n return recipe.evaluate(target, recipe.evaluate(target).hover).hover;\n});\nconst selectedExpandCollapseHover = DesignToken.create('tree-item-expand-collapse-selected-hover').withDefault((target) => {\n const baseRecipe = neutralFillSecondaryRecipe.getValueFor(target);\n const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);\n return buttonRecipe.evaluate(target, baseRecipe.evaluate(target).rest).hover;\n});\nexport const treeItemStyles = (context, definition) => css `\n ${display('block')} :host {\n contain: content;\n position: relative;\n outline: none;\n color: ${neutralForegroundRest};\n fill: currentcolor;\n cursor: pointer;\n font-family: ${bodyFont};\n --expand-collapse-button-size: calc(${heightNumber} * 1px);\n --tree-item-nested-width: 0;\n }\n\n .positioning-region {\n display: flex;\n position: relative;\n box-sizing: border-box;\n background: ${neutralFillStealthRest};\n border: calc(${strokeWidth} * 1px) solid transparent;\n border-radius: calc(${controlCornerRadius} * 1px);\n height: calc((${heightNumber} + 1) * 1px);\n }\n\n :host(:${focusVisible}) .positioning-region {\n ${focusTreatmentBase}\n }\n\n .positioning-region::before {\n content: '';\n display: block;\n width: var(--tree-item-nested-width);\n flex-shrink: 0;\n }\n\n :host(:not([disabled])) .positioning-region:hover {\n background: ${neutralFillStealthHover};\n }\n\n :host(:not([disabled])) .positioning-region:active {\n background: ${neutralFillStealthActive};\n }\n\n .content-region {\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n width: 100%;\n height: calc(${heightNumber} * 1px);\n margin-inline-start: calc(${designUnit} * 2px + 8px);\n ${typeRampBase}\n }\n\n .items {\n display: none;\n ${\n/* Font size should be based off calc(1em + (design-unit + glyph-size-number) * 1px) -\n update when density story is figured out */ ''} font-size: calc(1em + (${designUnit} + 16) * 1px);\n }\n\n .expand-collapse-button {\n background: none;\n border: none;\n border-radius: calc(${controlCornerRadius} * 1px);\n ${\n/* Width and Height should be based off calc(glyph-size-number + (design-unit * 4) * 1px) -\n update when density story is figured out */ ''} width: calc((${expandCollapseButtonSize} + (${designUnit} * 2)) * 1px);\n height: calc((${expandCollapseButtonSize} + (${designUnit} * 2)) * 1px);\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 6px;\n }\n\n .expand-collapse-button svg {\n transition: transform 0.1s linear;\n pointer-events: none;\n }\n\n .start,\n .end {\n display: flex;\n }\n\n .start {\n ${\n/* need to swap out once we understand how horizontalSpacing will work */ ''} margin-inline-end: calc(${designUnit} * 2px + 2px);\n }\n\n .end {\n ${\n/* need to swap out once we understand how horizontalSpacing will work */ ''} margin-inline-start: calc(${designUnit} * 2px + 2px);\n }\n\n :host(.expanded) > .items {\n display: block;\n }\n\n :host([disabled]) {\n opacity: ${disabledOpacity};\n cursor: ${disabledCursor};\n }\n\n :host(.nested) .content-region {\n position: relative;\n margin-inline-start: var(--expand-collapse-button-size);\n }\n\n :host(.nested) .expand-collapse-button {\n position: absolute;\n }\n\n :host(.nested) .expand-collapse-button:hover {\n background: ${expandCollapseHover};\n }\n\n :host(:not([disabled])[selected]) .positioning-region {\n background: ${neutralFillSecondaryRest};\n }\n\n :host(:not([disabled])[selected]) .expand-collapse-button:hover {\n background: ${selectedExpandCollapseHover};\n }\n\n :host([selected])::after {\n content: '';\n display: block;\n position: absolute;\n top: calc((${heightNumber} / 4) * 1px);\n width: 3px;\n height: calc((${heightNumber} / 2) * 1px);\n ${\n/* The french fry background needs to be calculated based on the selected background state for this control.\n We currently have no way of changing that, so setting to accent-foreground-rest for the time being */ ''} background: ${accentFillRest};\n border-radius: calc(${controlCornerRadius} * 1px);\n }\n\n ::slotted(fluent-tree-item) {\n --tree-item-nested-width: 1em;\n --expand-collapse-button-nested-width: calc(${heightNumber} * -1px);\n }\n `.withBehaviors(new DirectionalStyleSheetBehavior(ltr, rtl), forcedColorsStylesheetBehavior(css `\n :host {\n color: ${SystemColors.ButtonText};\n }\n .positioning-region {\n border-color: ${SystemColors.ButtonFace};\n background: ${SystemColors.ButtonFace};\n }\n :host(:not([disabled])) .positioning-region:hover,\n :host(:not([disabled])) .positioning-region:active,\n :host(:not([disabled])[selected]) .positioning-region {\n background: ${SystemColors.Highlight};\n }\n :host .positioning-region:hover .content-region,\n :host([selected]) .positioning-region .content-region {\n forced-color-adjust: none;\n color: ${SystemColors.HighlightText};\n }\n :host([disabled][selected]) .positioning-region .content-region {\n color: ${SystemColors.GrayText};\n }\n :host([selected])::after {\n background: ${SystemColors.HighlightText};\n }\n :host(:${focusVisible}) .positioning-region {\n forced-color-adjust: none;\n outline-color: ${SystemColors.ButtonFace};\n }\n :host([disabled]),\n :host([disabled]) .content-region,\n :host([disabled]) .positioning-region:hover .content-region {\n opacity: 1;\n color: ${SystemColors.GrayText};\n }\n :host(.nested) .expand-collapse-button:hover,\n :host(:not([disabled])[selected]) .expand-collapse-button:hover {\n background: ${SystemColors.ButtonFace};\n fill: ${SystemColors.ButtonText};\n }\n `));\n","import { treeItemTemplate as template, TreeItem } from '@microsoft/fast-foundation';\nimport { treeItemStyles as styles } from './tree-item.styles';\n/**\n * The Fluent tree item Custom Element. Implements, {@link @microsoft/fast-foundation#TreeItem}\n * {@link @microsoft/fast-foundation#treeItemTemplate}\n *\n *\n * @public\n * @remarks\n * HTML Element: \\\n *\n */\nexport const fluentTreeItem = TreeItem.compose({\n baseName: 'tree-item',\n template,\n styles,\n expandCollapseGlyph: `\n \n \n \n `,\n});\n/**\n * Styles for TreeItem\n * @public\n */\nexport const treeItemStyles = styles;\n/**\n * Tree item base class\n * @public\n */\nexport { TreeItem };\n","import { fluentAccordion, fluentAccordionItem } from './accordion/index';\nimport { fluentAnchor } from './anchor/index';\nimport { fluentAnchoredRegion } from './anchored-region/index';\nimport { fluentBadge } from './badge/index';\nimport { fluentBreadcrumb } from './breadcrumb/index';\nimport { fluentBreadcrumbItem } from './breadcrumb-item/index';\nimport { fluentButton } from './button/index';\nimport { fluentCalendar } from './calendar/index';\nimport { fluentCard } from './card/index';\nimport { fluentCheckbox } from './checkbox/index';\nimport { fluentCombobox } from './combobox/index';\nimport { fluentDataGrid, fluentDataGridCell, fluentDataGridRow } from './data-grid/index';\nimport { fluentDesignSystemProvider } from './design-system-provider/index';\nimport { fluentDialog } from './dialog/index';\nimport { fluentDivider } from './divider/index';\nimport { fluentFlipper } from './flipper/index';\nimport { fluentHorizontalScroll } from './horizontal-scroll/index';\nimport { fluentListbox } from './listbox/index';\nimport { fluentOption } from './listbox-option/index';\nimport { fluentMenu } from './menu/index';\nimport { fluentMenuItem } from './menu-item/index';\nimport { fluentNumberField } from './number-field/index';\nimport { fluentProgress, fluentProgressRing } from './progress/index';\nimport { fluentRadio } from './radio/index';\nimport { fluentRadioGroup } from './radio-group/index';\nimport { fluentSearch } from './search/index';\nimport { fluentSelect } from './select/index';\nimport { fluentSkeleton } from './skeleton/index';\nimport { fluentSlider } from './slider/index';\nimport { fluentSliderLabel } from './slider-label/index';\nimport { fluentSwitch } from './switch/index';\nimport { fluentTab, fluentTabPanel, fluentTabs } from './tabs/index';\nimport { fluentTextArea } from './text-area/index';\nimport { fluentTextField } from './text-field/index';\nimport { fluentToolbar } from './toolbar/index';\nimport { fluentTooltip } from './tooltip/index';\nimport { fluentTreeView } from './tree-view/index';\nimport { fluentTreeItem } from './tree-item/index';\nexport { fluentAccordion, fluentAccordionItem, fluentAnchor, fluentAnchoredRegion, fluentBadge, fluentBreadcrumb, fluentBreadcrumbItem, fluentButton, fluentCard, fluentCalendar, fluentCheckbox, fluentCombobox, fluentDataGrid, fluentDataGridCell, fluentDataGridRow, fluentDesignSystemProvider, fluentDialog, fluentDivider, fluentFlipper, fluentHorizontalScroll, fluentListbox, fluentOption, fluentMenu, fluentMenuItem, fluentNumberField, fluentProgress, fluentProgressRing, fluentRadio, fluentRadioGroup, fluentSearch, fluentSelect, fluentSkeleton, fluentSlider, fluentSliderLabel, fluentSwitch, fluentTabs, fluentTab, fluentTabPanel, fluentTextArea, fluentTextField, fluentToolbar, fluentTooltip, fluentTreeView, fluentTreeItem, };\n/**\n * All Fluent UI Web Components\n * @public\n */\nexport const allComponents = {\n fluentAccordion,\n fluentAccordionItem,\n fluentAnchor,\n fluentAnchoredRegion,\n fluentBadge,\n fluentBreadcrumb,\n fluentBreadcrumbItem,\n fluentButton,\n fluentCalendar,\n fluentCard,\n fluentCheckbox,\n fluentCombobox,\n fluentDataGrid,\n fluentDataGridCell,\n fluentDataGridRow,\n fluentDesignSystemProvider,\n fluentDialog,\n fluentDivider,\n fluentFlipper,\n fluentHorizontalScroll,\n fluentListbox,\n fluentOption,\n fluentMenu,\n fluentMenuItem,\n fluentNumberField,\n fluentProgress,\n fluentProgressRing,\n fluentRadio,\n fluentRadioGroup,\n fluentSearch,\n fluentSelect,\n fluentSkeleton,\n fluentSlider,\n fluentSliderLabel,\n fluentSwitch,\n fluentTabs,\n fluentTab,\n fluentTabPanel,\n fluentTextArea,\n fluentTextField,\n fluentToolbar,\n fluentTooltip,\n fluentTreeView,\n fluentTreeItem,\n register(container, ...rest) {\n if (!container) {\n // preserve backward compatibility with code that loops through\n // the values of this object and calls them as funcs with no args\n return;\n }\n for (const key in this) {\n if (key === 'register') {\n continue;\n }\n this[key]().register(container, ...rest);\n }\n },\n};\n","import { DesignSystem } from '@microsoft/fast-foundation';\n/**\n * Provides a design system for the specified element either by returning one that was\n * already created for that element or creating one.\n * @param element - The element to root the design system at. By default, this is the body.\n * @returns A Fluent Design System\n * @public\n */\nexport function provideFluentDesignSystem(element) {\n return DesignSystem.getOrCreate(element).withPrefix('fluent');\n}\n","//import 'core-js/stable' // https://github.com/zloirock/core-js#commonjs-api\r\nimport '@github/file-attachment-element'\r\nimport '@spectrum-web-components/overlay/sync/overlay-trigger.js';\r\nimport { provideFluentDesignSystem, allComponents } from '@fluentui/web-components'\r\n// Initialize fluent web-components\r\nprovideFluentDesignSystem().register(allComponents)\r\n\r\n// Components\r\nexport * from './components/index'\r\n\r\n// Modules\r\n//export * from './modules/sample-custom-element/index'\r\n// export * as ModernEmailEditor from './modules/modern-email-editor/index'\r\n// export * as ODataViews from './modules/odata-views/index'\r\n// export * as ReviewTimer from './modules/review-timer/index'\r\n"],"names":["Attachment","file","directory","transfer","transferredFiles","files","result","percent","attributes","_a","_b","_c","isDirectory","traverse","roots","visible","f","hidden","getFile","entry","resolve","reject","getEntries","reader","read","entries","path","results","item","FileAttachmentElement","onDragenter","onDragleave","onDrop","onPaste","onChange","value","transferred","attachments","hasFile","dragging","event","target","container","images","pastedFile","items","input","id","s","e","g","n","c","a","o","t","l","OverlayTrigger","u","d","m","r","i","p","h","HTMLDirective","TargetedHTMLDirective","DOM","AttachedBehaviorHTMLDirective","name","behavior","options","index","normalBind","source","context","Observable","triggerBind","normalUnbind","contentUnbind","view","triggerUnbind","updateAttributeTarget","updateBooleanAttributeTarget","updateContentTarget","updatePropertyTarget","updateClassTarget","classVersions","version","names","ii","currentName","HTMLBindingDirective","binding","BindingBehavior","isBindingVolatile","bind","unbind","updateTarget","targetName","ExecutionContext","sharedContext","CompilationContext","factory","directive","directives","shareable","createAggregateBinding","parts","partCount","finalParts","x","scope","output","interpolationEndLength","_interpolationEnd","parseContent","valueParts","_interpolationStart","bindingParts","current","literal","directiveIndex","compileAttributes","node","includeBasicValues","attr","attrValue","parseResult","compileContent","walker","lastNode","currentPart","currentNode","compileTemplate","template","fragment","hostBehaviorFactories","targetOffset","viewBehaviorFactories","range","HTMLView","behaviors","end","parentNode","next","parent","oldSource","views","j","jj","ViewTemplate","html","hostBindingTarget","fec","viewFactories","behaviorIndex","targetIndex","factoryIndex","hostFactories","host","defaultExecutionContext","lastAttributeNameRegex","strings","values","currentString","match","collectStyles","styles","cssString","CSSDirective","ElementStyles","css","elementStyles","CSSPartial","stylesheets","accumulated","el","cssPartial","newSplice","removed","addedCount","EDIT_LEAVE","EDIT_UPDATE","EDIT_ADD","EDIT_DELETE","calcEditDistances","currentStart","currentEnd","old","oldStart","oldEnd","rowCount","columnCount","distances","north","west","spliceOperationsFromEditDistances","edits","northWest","min","sharedPrefix","searchLength","sharedSuffix","index1","index2","count","intersect","start1","end1","start2","end2","calcSplices","prefixCount","suffixCount","minLength","emptyArray","splice","ops","splices","oldIndex","$push","mergeSplice","inserted","insertionOffset","intersectCount","deleteCount","currentRemoved","prepend","append","offset","createInitialSplices","changeRecords","record","projectArraySplices","array","initialSplices","arrayObservationEnabled","adjustIndex","changeRecord","arrayLength","ArrayObserver","SubscriberSet","subscriber","oldCollection","finalSplices","enableArrayObservation","collection","proto","pop","push","reverse","shift","sort","unshift","notEmpty","methodCallResult","oldArray","RefBehavior","propertyName","ref","isFunction","object","noTemplate","normalizeBinding","when","templateOrTemplateBinding","elseTemplateOrTemplateBinding","dataBinding","templateBinding","elseBinding","defaultRepeatOptions","bindWithoutPositioning","bindWithPositioning","childContext","RepeatBehavior","location","itemsBinding","isItemsBindingVolatile","isTemplateBindingVolatile","args","force","oldObserver","newObserver","hasNewObserver","bindView","recycle","leftoverViews","leftoverIndex","availableViews","removeIndex","addIndex","removedViews","totalAvailableViews","neighbor","currentContext","templateChanged","itemsLength","viewsLength","RepeatDirective","repeat","elements","selector","NodeObservationBehavior","nodes","SlottedBehavior","slotted","propertyOrOptions","ChildrenBehavior","children","StartEnd","endSlotTemplate","definition","startSlotTemplate","endTemplate","startTemplate","accordionItemTemplate","metadataByTarget","key","metadata","ResolverBuilder","cacheCallbackResult","destinationKey","strategy","state","ResolverImpl","cloneArrayWithPossibleProps","clone","keys","len","isArrayIndex","DefaultResolver","ContainerConfiguration","dependencyLookup","getParamTypes","Type","rootDOMContainer","DI","config","ContainerImpl","owned","DILocateParentEventType","annotationParamtypes","dependencies","inject","designParamtypes","Proto","auAnnotationParamtype","respectConnection","diPropertyKey","FASTElement","notifier","handleChange","newValue","oldValue","nameConfigOrCallback","configuror","configure","friendlyName","defaultFriendlyName","Interface","property","descriptor","dep","Registration","defaultSingletonOptions","Container","handler","requestor","containerGetKey","transformInstance","inst","transform","FactoryImpl","dynamicDependencies","instance","transformer","containerResolver","isRegistry","obj","isSelfRegistry","isRegisterInRequester","isClass","InstrinsicTypeNames","factories","owner","params","isObject","resolver","validateKey","resolvers","autoRegister","searchAncestors","resolutions","buildAllResponse","isNativeFunction","keyAsValue","registrationResolver","newResolver","cache","fun","callback","originalKey","aliasKey","lookup","isNative","sourceText","fn","isNumericLookup","length","ch","presentationKeyFromTag","tagName","presentationRegistry","ComponentPresentation","presentation","element","existing","DefaultComponentPresentation","controller","FoundationElement","elementDefinition","overrideDefinition","FoundationElementRegistry","__decorate","observable","resolveOption","option","type","shadowOptions","applyMixins","derivedCtor","baseCtors","derivedAttributes","AttributeConfiguration","baseCtor","AccordionItem","nullableNumberConverter","accordionTemplate","Orientation","findLastIndex","predicate","k","canUseDOM","isHTMLElement","arg","getDisplayedNodes","rootNode","getNonce","_canUseFocusVisible","canUseFocusVisible","styleElement","styleNonce","eventFocus","eventFocusIn","eventFocusOut","eventKeyDown","eventResize","eventScroll","KeyCodes","keyArrowDown","keyArrowLeft","keyArrowRight","keyArrowUp","keyEnter","keyEscape","keyHome","keyEnd","keyFunction2","keyPageDown","keyPageUp","keySpace","keyTab","ArrowKeys","wrapInBounds","max","limit","inRange","b","uniqueIdCounter","uniqueId","prefix","SystemColors","AccordionExpandMode","Accordion","itemId","selectedItem","focusedItem","focusedIndex","accordionItem","adjustment","anchorTemplate","ARIAGlobalStatesAndProperties","Anchor","DelegatesARIALink","anchoredRegionTemplate","getDirection","dirNode","Direction","IntersectionService","callbacks","callBackIndex","$global","pendingCallbacks","pendingCallbackParams","thisElementCallbacks","targetCallbackIndex","AnchoredRegion","regionEntry","anchorEntry","viewportEntry","rectA","rectB","desiredVerticalPosition","desiredHorizontalPosition","horizontalOptions","dirCorrectedHorizontalDefaultPosition","newDirection","horizontalThreshold","anchorLeft","anchorRight","anchorWidth","viewportLeft","viewportRight","verticalOptions","verticalThreshold","anchorTop","anchorBottom","anchorHeight","viewportTop","viewportBottom","nextPositionerDimension","positionChanged","nextRegionWidth","sizeDelta","regionLeft","regionRight","nextRegionHeight","regionTop","regionBottom","inset","positionOption","anchorStart","anchorEnd","anchorSpan","viewportStart","viewportEnd","spaceStart","spaceEnd","newRegionDimension","prevMode","newMode","badgeTemplate","fill","color","Badge","breadcrumbItemTemplate","BreadcrumbItem","breadcrumbTemplate","Breadcrumb","itemIsLastNode","isLastNode","childNodeWithHref","buttonTemplate","proxySlotName","ElementInternalsKey","supportsElementInternals","InternalsMap","FormAssociated","BaseCtor","C","parentLabels","forLabels","labels","previous","prev","internals","flags","message","anchor","disabled","defaultButton","CheckableFormAssociated","D","booleanConverter","_Button","FormAssociatedButton","attached","span","Button","DelegatesARIAButton","DateFormatter","date","dates","day","month","year","format","locale","dateObj","optionsWithTimeZone","weekday","_","getFirstDay","getLength","nextMonth","thisMonth","previousMonth","info","minWeeks","start","days","dayCount","dateString","selected","datesString","str","todayString","today","inactive","weekdayText","text","longText","Calendar","GenerateHeaderOptions","DataGridCellTypes","DataGridRowTypes","DataGridRow","newFocusColumnIndex","createRowItemTemplate","rowTag","dataGridTemplate","rowItemTemplate","DataGrid","rowIndex","columnIndex","scrollIntoView","focusRowIndex","cells","focusColumnIndex","focusTarget","mutations","observer","mutation","newNode","newGridTemplateColumns","firstRow","thisRow","columnDefinitions","templateColumns","column","focusRow","newFocusRowIndex","maxIndex","currentGridBottom","lastRow","stickyHeaderOffset","generatedHeaderElement","row","defaultCellContentsTemplate","defaultHeaderCellContentsTemplate","DataGridCell","createCellItemTemplate","cellTag","createHeaderCellItemTemplate","dataGridRowTemplate","cellItemTemplate","headerCellItemTemplate","dataGridCellTemplate","CalendarTitleTemplate","calendarWeekdayTemplate","calendarCellTemplate","calendarRowTemplate","interactiveCalendarGridTemplate","gridTag","noninteractiveCalendarTemplate","calendarTemplate","cardTemplate","checkboxTemplate","_Checkbox","FormAssociatedCheckbox","Checkbox","isListboxOption","ListboxOption","defaultSelected","DelegatesARIAListboxOption","Listbox","captured","optionToFocus","pattern","re","direction","potentialDirection","nextSelectableOption","thisOption","selectableIndex","newNext","filteredNext","setSize","typeaheadMatches","selectedIndex","DelegatesARIAListbox","SelectPosition","_Combobox","FormAssociatedCombobox","ComboboxAutocomplete","prevSelectedValue","nextSelectedValue","filter","currentBox","availableBottom","shouldEmit","controlValueLength","Combobox","DelegatesARIACombobox","comboboxTemplate","ElementDisambiguation","elementTypesByTag","elementTagsByType","rootDesignSystem","designSystemKey","DefaultDesignSystem","DesignSystem","system","extractTryDefineElementParams","elementDefinitionType","elementDefinitionCallback","mode","root","registrations","elementDefinitionEntries","disambiguate","shadowRootMode","extractedParams","baseClass","elementName","typeFoundByName","needsDefine","ElementDefinitionEntry","DesignToken","willDefine","FASTElementDefinition","dialogTemplate","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","getTabindex","isScope","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","form","isTabbableRadio","radioScope","queryRadios","radioSet","err","checked","isRadio","isNonTabbableRadio","isZeroArea","_node$getBoundingClie","width","height","isHidden","_ref","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","nodeRootHost","nodeIsAttached","originalNode","parentElement","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isTabbable","focusableCandidateSelector","isFocusable","Dialog","bounds","currentFocusElement","shouldTrapFocusOverride","shouldTrapFocus","dividerTemplate","DividerRole","Divider","FlipperDirection","flipperTemplate","Flipper","listboxOptionTemplate","ListboxElement","activeItem","preserveChecked","shiftKey","size","enabledCheckedOptions","activeIndex","listboxTemplate","MenuItemRole","roleForMenuItem","MenuItem","menuItemTemplate","menuTemplate","Menu","focusIndex","targetItem","changedItem","newItems","menuItems","elementIndent","role","startSlot","indent","accum","elementValue","changedMenuItem","changeItemIndex","numberFieldTemplate","_TextField","FormAssociatedTextField","TextFieldType","TextField","DelegatesARIATextbox","_NumberField","FormAssociatedNumberField","validValue","stepUpValue","stepDownValue","NumberField","progressSegments","progressRingTemplate","BaseProgress","progressTemplate","defintion","radioGroupTemplate","RadioGroup","changedRadio","radio","group","nextRadio","checkedRadios","numberOfCheckedRadios","lastCheckedRadio","foundMatchingVal","radioTemplate","_Radio","FormAssociatedRadio","Radio","updatedItems","scrollItems","scrollItem","scrollLeft","containerWidth","containerLeft","lastStop","stops","left","leftPosition","right","reinit","hasStops","stop","position","padding","rightPadding","scrollStops","itemStart","itemEnd","isBefore","scrollTo","scrollPosition","nextIndex","outOfView","newPosition","seconds","computedDuration","transitionendHandler","maxScrollValue","transitionStop","HorizontalScroll","horizontalScrollTemplate","whitespaceFilter","_Search","FormAssociatedSearch","Search","DelegatesARIASearch","_Select","FormAssociatedSelect","_d","_e","_f","_g","proxyOption","Select","volatile","DelegatesARIASelect","selectTemplate","skeletonTemplate","Skeleton","sliderLabelTemplate","convertPixelToPercent","pixelPos","minPosition","maxPosition","pct","defaultConfig","SliderLabel","parentSlider","orientation","rightNum","leftNum","sliderTemplate","_Slider","FormAssociatedSlider","SliderMode","Slider","clientRect","remove","eventAction","sourceEvent","eventValue","rawValue","controlValue","constrainedValue","roundedConstrainedValue","remainderValue","newVal","incrementedVal","incrementedValString","decrementedVal","decrementedValString","percentage","stepString","decimalPlacesOfStep","switchTemplate","_Switch","FormAssociatedSwitch","Switch","tabPanelTemplate","TabPanel","tabTemplate","Tab","tabsTemplate","TabsOrientation","Tabs","gridHorizontalProperty","gridVerticalProperty","gridProperty","tab","isActiveTab","tabId","tabpanelId","tabpanel","selectedTab","tabPanel","translateProperty","offsetProperty","dif","focusableTabs","currentActiveTabIndex","nextTabIndex","_TextArea","FormAssociatedTextArea","TextAreaResize","TextArea","textAreaTemplate","textFieldTemplate","toolbarTemplate","getRootActiveElement","ToolbarArrowKeyMap","Toolbar","relatedTarget","incrementer","previousFocusedElement","adjustedActiveIndex","isRoleRadio","isFocusableFastElement","hasFocusableShadow","DelegatesARIAToolbar","tooltipTemplate","TooltipPosition","ev","anchorId","Tooltip","treeItemTemplate","isTreeItemElement","TreeItem","treeChildren","treeViewTemplate","TreeView","treeItems","delta","visibleNodes","focusItem","MatchMediaBehavior","query","listener","MatchMediaStyleSheetBehavior","forcedColorsStylesheetBehavior","PropertyStyleSheetBehavior","elementInstance","disabledCursor","display","displayValue","focusVisible","typeRampBase","bodyFont","typeRampBaseFontSize","typeRampBaseLineHeight","typeRampBaseFontVariations","typeRampMinus1","typeRampMinus1FontSize","typeRampMinus1LineHeight","typeRampMinus1FontVariations","typeRampMinus2FontSize","typeRampMinus2LineHeight","typeRampMinus2FontVariations","typeRampPlus1FontSize","typeRampPlus1LineHeight","typeRampPlus1FontVariations","typeRampPlus2FontSize","typeRampPlus2LineHeight","typeRampPlus2FontVariations","typeRampPlus3FontSize","typeRampPlus3LineHeight","typeRampPlus3FontVariations","typeRampPlus4FontSize","typeRampPlus4LineHeight","typeRampPlus4FontVariations","typeRampPlus5FontSize","typeRampPlus5LineHeight","typeRampPlus5FontVariations","typeRampPlus6FontSize","typeRampPlus6LineHeight","typeRampPlus6FontVariations","accordionStyles","neutralForegroundRest","designUnit","focusTreatmentBase","focusStrokeWidth","focusStrokeOuter","focusTreatmentTight","strokeWidth","heightNumber","baseHeightMultiplier","density","neutralFillStealthRestOnNeutralFillLayerRest","baseRecipe","neutralFillLayerRecipe","neutralFillStealthRecipe","neutralFillStealthHoverOnNeutralFillLayerRest","neutralFillStealthActiveOnNeutralFillLayerRest","accordionItemStyles","neutralFillLayerRest","neutralStrokeLayerRest","layerCornerRadius","neutralFillLayerAltRest","controlCornerRadius","fluentAccordionItem","fluentAccordion","DirectionalStyleSheetBehavior","ltr","rtl","directionDesignToken","DirectionalStyleSheetBehaviorSubscription","token","elevationShadowRecipe","reference","ambientOpacity","directionalOpacity","ambient","directional","elevationShadowCardRestSize","elevationShadowCardHoverSize","elevationShadowCardActiveSize","elevationShadowCardFocusSize","elevationShadowCardRest","elevationShadowTooltipSize","elevationShadowTooltip","elevationShadowFlyoutSize","elevationShadowFlyout","elevationShadowDialogSize","elevationShadowDialog","baseButtonStyles","interactivitySelector","nonInteractivitySelector","NeutralButtonStyles","neutralFillRest","neutralStrokeControlRest","neutralFillHover","neutralStrokeControlHover","neutralFillActive","neutralStrokeControlActive","neutralStrokeRest","AccentButtonStyles","accentFillRest","accentStrokeControlRest","foregroundOnAccentRest","accentFillHover","accentStrokeControlHover","foregroundOnAccentHover","accentFillActive","accentStrokeControlActive","foregroundOnAccentActive","focusStrokeInner","HypertextStyles","accentForegroundRest","accentForegroundHover","accentForegroundActive","LightweightButtonStyles","neutralFillStealthRest","neutralFillStealthHover","neutralFillStealthActive","OutlineButtonStyles","neutralStrokeHover","neutralStrokeActive","StealthButtonStyles","placeholderRest","neutralFillInputRecipe","neutralForegroundHintRecipe","placeholderHover","filledPlaceholderRest","neutralFillSecondaryRecipe","filledPlaceholderHover","baseInputStyles","logicalControlSelector","disabledOpacity","inputStateStyles","inputOutlineStyles","neutralFillInputRest","neutralStrokeInputRest","neutralFillInputHover","neutralStrokeInputHover","neutralFillInputFocus","inputFilledStyles","neutralFillSecondaryRest","neutralFillSecondaryHover","neutralFillSecondaryFocus","inputForcedColorStyles","appearanceBehavior","anchorStyles","FoundationAnchor","slottedElements","fluentAnchor","anchoredRegionStyles","fluentAnchoredRegion","badgeStyles","FoundationBadge","fluentBadge","breadcrumbStyles","fluentBreadcrumb","breadcrumbItemStyles","neutralForegroundHover","neutralForegroundActive","fluentBreadcrumbItem","buttonStyles","FoundationButton","fluentButton","ltrStyles","rtlStyles","calendarStyles","neutralForegroundHint","fillColor","FoundationCalendar","fluentCalendar","cardStyles","Card","FoundationCard","parsedColor","parseColorHexRGB","SwatchRGB","swatch","neutralPalette","PaletteRGB","composedParent","parentNotifier","fluentCard","checkboxStyles","neutralStrokeStrongRest","neutralFillInputAltRest","neutralFillInputAltHover","neutralStrokeStrongHover","neutralFillInputAltActive","neutralStrokeStrongActive","neutralFillInputAltFocus","fluentCheckbox","baseSelectStyles","baseSelectForcedColorStyles","selectStyles","comboboxStyles","FoundationCombobox","neutralLayerFloating","fluentCombobox","dataGridStyles","dataGridRowStyles","neutralStrokeDividerRest","dataGridCellStyles","fluentDataGridCell","cellStyles","fluentDataGridRow","rowStyles","fluentDataGrid","gridStyles","swatchConverter","backgroundStyles","designToken","DesignSystemProvider","accentBaseColor","neutralBaseColor","baseHorizontalSpacingMultiplier","accentFillRestDelta","accentFillHoverDelta","accentFillActiveDelta","accentFillFocusDelta","accentForegroundRestDelta","accentForegroundHoverDelta","accentForegroundActiveDelta","accentForegroundFocusDelta","neutralFillRestDelta","neutralFillHoverDelta","neutralFillActiveDelta","neutralFillFocusDelta","neutralFillInputRestDelta","neutralFillInputHoverDelta","neutralFillInputActiveDelta","neutralFillInputFocusDelta","neutralFillLayerRestDelta","neutralFillStealthRestDelta","neutralFillStealthHoverDelta","neutralFillStealthActiveDelta","neutralFillStealthFocusDelta","neutralFillStrongHoverDelta","neutralFillStrongActiveDelta","neutralFillStrongFocusDelta","baseLayerLuminance","neutralStrokeDividerRestDelta","neutralStrokeRestDelta","neutralStrokeHoverDelta","neutralStrokeActiveDelta","neutralStrokeFocusDelta","fluentDesignSystemProvider","dialogStyles","fluentDialog","dividerStyles","fluentDivider","flipperStyles","neutralFillStrongRest","neutralFillStrongHover","neutralFillStrongActive","fluentFlipper","ltrActionsStyles","rtlActionsStyles","ActionsStyles","horizontalScrollStyles","FoundationHorizontalScroll","fluentHorizontalScroll","listboxStyles","FoundationListboxElement","fluentListbox","optionStyles","neutralFillStealthFocus","neutralFillSecondaryActive","fluentOption","menuStyles","FoundationMenu","fluentMenu","menuItemStyles","fluentMenuItem","numberFieldStyles","FoundationNumberField","fluentNumberField","progressStyles","Progress","fluentProgress","progressRingStyles","ProgressRing","fluentProgressRing","radioStyles","fluentRadio","radioGroupStyles","fluentRadioGroup","searchTemplate","clearButtonHover","buttonRecipe","inputRecipe","clearButtonActive","searchStyles","FoundationSearch","fluentSearch","FoundationSelect","fluentSelect","skeletonStyles","fluentSkeleton","sliderStyles","fluentSlider","sliderLabelStyles","fluentSliderLabel","switchStyles","fluentSwitch","tabsStyles","tabStyles","fluentTab","tabPanelStyles","fluentTabPanel","fluentTabs","textAreaStyles","FoundationTextArea","fluentTextArea","textFieldStyles","FoundationTextField","fluentTextField","toolbarStyles","FoundationToolbar","fluentToolbar","tooltipStyles","FoundationTooltip","fluentTooltip","treeViewStyles","fluentTreeView","expandCollapseButtonSize","expandCollapseHover","recipe","selectedExpandCollapseHover","treeItemStyles","fluentTreeItem","allComponents","rest","provideFluentDesignSystem"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248]}