@m3e/web 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +30 -23
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +40 -40
- package/dist/all.min.js.map +1 -1
- package/dist/autocomplete.js +20 -18
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/card.js +4 -2
- package/dist/card.js.map +1 -1
- package/dist/card.min.js +1 -1
- package/dist/card.min.js.map +1 -1
- package/dist/css-custom-data.json +487 -487
- package/dist/custom-elements.json +4612 -4600
- package/dist/html-custom-data.json +194 -194
- package/dist/option.js +3 -0
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/paginator.js +2 -2
- package/dist/paginator.js.map +1 -1
- package/dist/paginator.min.js +1 -1
- package/dist/paginator.min.js.map +1 -1
- package/dist/select.js +2 -2
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/card/CardElement.d.ts.map +1 -1
- package/dist/src/option/OptionElement.d.ts.map +1 -1
- package/dist/src/paginator/PaginatorElement.d.ts +1 -1
- package/dist/src/paginator/PaginatorElement.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sources":["../../src/select/SelectElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n Labelled,\r\n ConstraintValidation,\r\n Dirty,\r\n Disabled,\r\n FormAssociated,\r\n Required,\r\n RequiredConstraintValidation,\r\n ResizeController,\r\n Touched,\r\n DesignToken,\r\n formValue,\r\n M3eFocusRingElement,\r\n scrollIntoViewIfNeeded,\r\n Role,\r\n Focusable,\r\n prefersReducedMotion,\r\n forcedColorsActive,\r\n deleteCustomState,\r\n addCustomState,\r\n setCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager, typeaheadLabel } from \"@m3e/web/core/a11y\";\r\n\r\nimport type { M3eFormFieldElement, FormFieldControl } from \"@m3e/web/form-field\";\r\nimport { M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\n\r\n/**\r\n * A form control that allows users to select a value from a set of predefined options.\r\n *\r\n * @description\r\n * The `m3e-select` component follows Material Design 3 principles and provides a comprehensive\r\n * selection interface for capturing user input. It supports both single and multiple selection modes,\r\n * customizable validation states, and accessible keyboard navigation. The component integrates seamlessly\r\n * with form field containers and dynamically positions its option list menu to ensure optimal viewport\r\n * visibility. Selection changes are communicated through standard form events, enabling predictable integration\r\n * with form submission and reactive state management systems.\r\n *\r\n * @example\r\n * The following demonstrates a `m3e-select` component wrapped in a `m3e-form-field` with a slotted label.\r\n * The label is associated with the select via the `for` and `id` attributes, ensuring accessible form semantics.\r\n * Each `m3e-option` defines an option within the dropdown.\r\n *\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"select\">Choose your favorite fruit</label>\r\n * <m3e-select id=\"select\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-select>\r\n * </m3e-form-field>\r\n * ```\r\n *\r\n * @tag m3e-select\r\n *\r\n * @slot - Renders the options of the select.\r\n * @slot arrow - Renders the dropdown arrow.\r\n * @slot value - Renders the selected value(s).\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator for single select options.\r\n * @attr multi - Whether multiple options can be selected.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr panel-class - Class or list of classes to be applied to the select's overlay panel.\r\n * @attr required - Whether the element is required.\r\n *\r\n * @fires input - Emitted when the selected state changes.\r\n * @fires change - Emitted when the selected state changes.\r\n *\r\n * @cssprop --m3e-form-field-font-size - The font size of the select control.\r\n * @cssprop --m3e-form-field-font-weight - The font weight of the select control.\r\n * @cssprop --m3e-form-field-line-height - The line height of the select control.\r\n * @cssprop --m3e-form-field-tracking - The letter spacing of the select control.\r\n * @cssprop --m3e-select-container-shape - The corner radius of the select container.\r\n * @cssprop --m3e-select-disabled-color - The text color when the select is disabled.\r\n * @cssprop --m3e-select-disabled-color-opacity - The opacity level applied to the disabled text color.\r\n * @cssprop --m3e-select-icon-size - The size of the dropdown arrow icon.\r\n */\r\n@customElement(\"m3e-select\")\r\nexport class M3eSelectElement\r\n extends Focusable(\r\n Labelled(\r\n RequiredConstraintValidation(\r\n Dirty(\r\n Touched(\r\n Required(ConstraintValidation(FormAssociated(Disabled(AttachInternals(Role(LitElement, \"combobox\")))))),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n implements FormFieldControl\r\n{\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n outline: none;\r\n position: relative;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n min-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n border-radius: var(--m3e-select-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host(:not(:disabled)) {\r\n cursor: pointer;\r\n }\r\n :host(:disabled) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-select-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n .options {\r\n display: none;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n overflow: hidden;\r\n }\r\n .arrow-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: var(--_select-arrow-margin-top);\r\n }\r\n ::slotted([slot=\"arrow\"]),\r\n .arrow {\r\n vertical-align: middle;\r\n width: 1em;\r\n height: 1em;\r\n font-size: var(--m3e-select-icon-size, 1.5rem);\r\n }\r\n :host(:state(-open)) .focus-ring {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ static __nextId = 0;\r\n\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreKeyUp = false;\r\n /** @private */ #ignoreFocusVisible = false;\r\n\r\n /** @private */ readonly #id = `m3e-select-${M3eSelectElement.__nextId++}`;\r\n /** @private */ readonly #listId = `${this.#id}-list`;\r\n\r\n /** @private */ readonly #clickHandler = (e: Event) => this.#handleClick(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: MouseEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withTypeahead()\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n /** @private */ @query(\".focus-ring\") private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, {\r\n callback: () => {\r\n if (this.#menu) {\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n }\r\n },\r\n });\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator for single select options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether multiple options can be selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) multi = false;\r\n\r\n /**\r\n * Class or list of classes to be applied to the select's overlay panel.\r\n * @default \"\"\r\n */\r\n @property({ attribute: \"panel-class\" }) panelClass = \"\";\r\n\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n get #selected(): readonly M3eOptionElement[] {\r\n return this.#options.filter((x) => x.selected);\r\n }\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** The selected option(s). */\r\n get selected(): readonly M3eOptionElement[] {\r\n return this.options.filter((x) => x.selected);\r\n }\r\n\r\n /** The selected (enabled) value(s). */\r\n get value(): string | readonly string[] | null {\r\n const values = this.selected.filter((x) => !x.disabled).map((x) => x.value);\r\n switch (values.length) {\r\n case 0:\r\n return null;\r\n case 1:\r\n return values[0];\r\n default:\r\n return values;\r\n }\r\n }\r\n\r\n /** @inheritdoc @internal */\r\n override get [formValue]() {\r\n const values = this.value;\r\n if (Array.isArray(values)) {\r\n const data = new FormData();\r\n for (const value of values) {\r\n data.append(this.name, value);\r\n }\r\n return data;\r\n }\r\n return <string | null>values;\r\n }\r\n\r\n /** @inheritdoc */\r\n get shouldLabelFloat(): boolean {\r\n return this.selected.filter((x) => !x.isEmpty).length > 0;\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : this.clientWidth}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.closest(\"m3e-form-field\");\r\n }\r\n\r\n /** @inheritdoc */\r\n onContainerClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#toggleMenu();\r\n this.focus({ preventScroll: true });\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n const selected = this.#selected;\r\n const willChange = selected.length > 0;\r\n\r\n if (willChange) {\r\n selected.forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n this.requestUpdate();\r\n }\r\n\r\n this.#hideMenu();\r\n\r\n if (willChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n if (restoreFocus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.ariaHasPopup = \"listbox\";\r\n this.ariaExpanded = \"false\";\r\n\r\n this.addEventListener(\"click\", this.#clickHandler);\r\n this.addEventListener(\"keydown\", this.#keyDownHandler);\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.removeEventListener(\"click\", this.#clickHandler);\r\n this.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideSelectionIndicator\")) {\r\n this.#options.forEach((x) => setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this._focusRing?.attach(this);\r\n\r\n if (this.#formField && this._focusRing) {\r\n this._focusRing.style.display = \"none\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html` <m3e-focus-ring class=\"focus-ring\"></m3e-focus-ring>\r\n <div class=\"base\">\r\n <m3e-text-overflow>\r\n <slot name=\"value\">\r\n ${this.selected\r\n .filter((x) => !x.isEmpty)\r\n .map((x, i) => (i > 0 ? html`<span>, </span>${x[typeaheadLabel]()}` : x[typeaheadLabel]()))}\r\n </slot>\r\n </m3e-text-overflow>\r\n <div class=\"arrow-wrapper\" aria-hidden=\"true\">\r\n <slot name=\"arrow\">\r\n <svg class=\"arrow\" viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M480-360 280-560h400L480-360Z\" />\r\n </svg>\r\n </slot>\r\n </div>\r\n </div>\r\n <div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleMutation(): void {\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n this._options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n this.#formField?.notifyControlStateChange();\r\n if (this.#menu) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (this._options.length == 0) {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(e: Event): void {\r\n if (e.defaultPrevented || this.disabled) return;\r\n this.#toggleMenu();\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n if (!this.multi) {\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n if (this.#menu?.isOpen) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.#showMenu();\r\n }\r\n } else if (!this.#menu) {\r\n this.#ignoreKeyUp = true;\r\n this.#toggleMenu();\r\n }\r\n\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (this.multi && !this.#menu) {\r\n this.#toggleMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.multi && !this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n if (this.#ignoreKeyUp) {\r\n this.#ignoreKeyUp = false;\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n if (!this.multi) return;\r\n e.preventDefault();\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: MouseEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this.#selectOption(option);\r\n this._listKeyManager.setActiveItem(option);\r\n\r\n if (!this.multi) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.requestUpdate();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#selected.find((x) => !x.disabled) ?? this._listKeyManager.items.find((x) => !x.disabled);\r\n this._listKeyManager.setActiveItem(option);\r\n if (option) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n this.ariaExpanded = \"false\";\r\n this.removeAttribute(\"aria-controls\");\r\n this.removeAttribute(\"aria-owns\");\r\n this.requestUpdate();\r\n\r\n deleteCustomState(this, \"-open\");\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #toggleMenu(): void {\r\n if (this.disabled) return;\r\n if (this.#menu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#showMenu();\r\n }\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || this._options.length == 0) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n if (this.multi) {\r\n this.#menu.ariaMultiSelectable = \"true\";\r\n }\r\n\r\n this.#menu.id = this.#listId;\r\n\r\n if (this.panelClass) {\r\n for (const klass of this.panelClass\r\n .split(/\\s+/)\r\n .map((d) => d.trim())\r\n .filter(Boolean)) {\r\n this.#menu.classList.add(klass);\r\n }\r\n }\r\n\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n }\r\n\r\n (this.#formField ?? this).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.ariaExpanded = \"true\";\r\n this.setAttribute(\"aria-controls\", this.#listId);\r\n this.setAttribute(\"aria-owns\", this.#listId);\r\n this.#formField?.notifyControlStateChange();\r\n\r\n setTimeout(() => {\r\n this.#menu?.show(this, this.#formField?.menuAnchor);\r\n addCustomState(this, \"-open\");\r\n });\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n if (!this.#menu) return;\r\n\r\n this.#menu.hide();\r\n this.removeAttribute(\"aria-activedescendant\");\r\n deleteCustomState(this, \"-open\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement): void {\r\n this.setAttribute(\"aria-activedescendant\", option.id);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible = !this.#ignoreFocusVisible && (this.matches(\":focus-visible\") || forcedColorsActive());\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateSelectionState(clone: M3eOptionElement): void {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n }\r\n }\r\n\r\n /** @private */\r\n #selectOption(option: M3eOptionElement): void {\r\n const selected = this.multi ? !option.selected : true;\r\n if (option.selected === selected) return;\r\n\r\n option.selected = selected;\r\n this.#updateSelectionState(option);\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n if (!this.multi) {\r\n this.#selected\r\n .filter((x) => x !== option)\r\n .forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n }\r\n\r\n this.requestUpdate();\r\n this.#formField?.notifyControlStateChange();\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n } else {\r\n option.selected = !selected;\r\n this.#updateSelectionState(option);\r\n }\r\n }\r\n}\r\n\r\ninterface M3eSelectElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n}\r\n\r\nexport interface M3eSelectElement {\r\n addEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-select\": M3eSelectElement;\r\n }\r\n}\r\n"],"names":["M3eSelectElement","M3eSelectElement_1","Focusable","Labelled","RequiredConstraintValidation","Dirty","Touched","Required","ConstraintValidation","FormAssociated","Disabled","AttachInternals","Role","LitElement","constructor","_options","Array","_M3eSelectElement_clone","set","_M3eSelectElement_menu","_M3eSelectElement_ignoreKeyUp","_M3eSelectElement_ignoreFocusVisible","_M3eSelectElement_id","__nextId","_M3eSelectElement_listId","__classPrivateFieldGet","_M3eSelectElement_clickHandler","e","call","_M3eSelectElement_keyDownHandler","_M3eSelectElement_keyUpHandler","_M3eSelectElement_menuToggleHandler","_M3eSelectElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withTypeahead","onActiveItemChange","activeItem","_M3eSelectElement_instances","_M3eSelectElement_activateOption","hideSelectionIndicator","multi","panelClass","ResizeController","callback","style","minWidth","_M3eSelectElement_minMenuWidth_get","MutationController","config","childList","subtree","_M3eSelectElement_handleMutation","options","selected","filter","x","value","values","disabled","map","length","WeakMap","WeakSet","_M3eSelectElement_options_get","items","_M3eSelectElement_selected_get","formValue","isArray","data","FormData","append","name","shouldLabelFloat","isEmpty","onContainerClick","__classPrivateFieldSet","_M3eSelectElement_toggleMenu","focus","preventScroll","clear","restoreFocus","willChange","forEach","_M3eSelectElement_updateSelectionState","requestUpdate","_M3eSelectElement_hideMenu","dispatchEvent","Event","bubbles","connectedCallback","ariaHasPopup","ariaExpanded","addEventListener","disconnectedCallback","removeEventListener","update","changedProperties","has","setCustomState","firstUpdated","_changedProperties","_focusRing","attach","_M3eSelectElement_formField_get","display","render","html","i","typeaheadLabel","formField","menuAnchor","clientWidth","closest","cloneNode","added","setItems","querySelectorAll","id","indexOf","notifyControlStateChange","replaceChildren","childNodes","defaultPrevented","key","preventDefault","_M3eSelectElement_selectOption","isOpen","prefersReducedMotion","setTimeout","_M3eSelectElement_showMenu","onKeyDown","button","stopImmediatePropagation","option","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","block","behavior","ToggleEvent","oldState","_M3eSelectElement_destroyMenu","remove","undefined","removeAttribute","deleteCustomState","document","createElement","ariaMultiSelectable","klass","split","d","trim","Boolean","classList","add","overflowX","insertAdjacentElement","setAttribute","show","addCustomState","hide","focusVisible","matches","forcedColorsActive","active","focusRing","stateLayer","clone","composed","cancelable","styles","css","DesignToken","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","shape","corner","extraSmall","color","onSurface","__decorate","query","prototype","property","attribute","type","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.js","sources":["../../src/select/SelectElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n Labelled,\r\n ConstraintValidation,\r\n Dirty,\r\n Disabled,\r\n FormAssociated,\r\n Required,\r\n RequiredConstraintValidation,\r\n ResizeController,\r\n Touched,\r\n DesignToken,\r\n formValue,\r\n M3eFocusRingElement,\r\n scrollIntoViewIfNeeded,\r\n Role,\r\n Focusable,\r\n prefersReducedMotion,\r\n forcedColorsActive,\r\n deleteCustomState,\r\n addCustomState,\r\n setCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager } from \"@m3e/web/core/a11y\";\r\n\r\nimport type { M3eFormFieldElement, FormFieldControl } from \"@m3e/web/form-field\";\r\nimport { M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\n\r\n/**\r\n * A form control that allows users to select a value from a set of predefined options.\r\n *\r\n * @description\r\n * The `m3e-select` component follows Material Design 3 principles and provides a comprehensive\r\n * selection interface for capturing user input. It supports both single and multiple selection modes,\r\n * customizable validation states, and accessible keyboard navigation. The component integrates seamlessly\r\n * with form field containers and dynamically positions its option list menu to ensure optimal viewport\r\n * visibility. Selection changes are communicated through standard form events, enabling predictable integration\r\n * with form submission and reactive state management systems.\r\n *\r\n * @example\r\n * The following demonstrates a `m3e-select` component wrapped in a `m3e-form-field` with a slotted label.\r\n * The label is associated with the select via the `for` and `id` attributes, ensuring accessible form semantics.\r\n * Each `m3e-option` defines an option within the dropdown.\r\n *\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"select\">Choose your favorite fruit</label>\r\n * <m3e-select id=\"select\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-select>\r\n * </m3e-form-field>\r\n * ```\r\n *\r\n * @tag m3e-select\r\n *\r\n * @slot - Renders the options of the select.\r\n * @slot arrow - Renders the dropdown arrow.\r\n * @slot value - Renders the selected value(s).\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator for single select options.\r\n * @attr multi - Whether multiple options can be selected.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr panel-class - Class or list of classes to be applied to the select's overlay panel.\r\n * @attr required - Whether the element is required.\r\n *\r\n * @fires input - Emitted when the selected state changes.\r\n * @fires change - Emitted when the selected state changes.\r\n *\r\n * @cssprop --m3e-form-field-font-size - The font size of the select control.\r\n * @cssprop --m3e-form-field-font-weight - The font weight of the select control.\r\n * @cssprop --m3e-form-field-line-height - The line height of the select control.\r\n * @cssprop --m3e-form-field-tracking - The letter spacing of the select control.\r\n * @cssprop --m3e-select-container-shape - The corner radius of the select container.\r\n * @cssprop --m3e-select-disabled-color - The text color when the select is disabled.\r\n * @cssprop --m3e-select-disabled-color-opacity - The opacity level applied to the disabled text color.\r\n * @cssprop --m3e-select-icon-size - The size of the dropdown arrow icon.\r\n */\r\n@customElement(\"m3e-select\")\r\nexport class M3eSelectElement\r\n extends Focusable(\r\n Labelled(\r\n RequiredConstraintValidation(\r\n Dirty(\r\n Touched(\r\n Required(ConstraintValidation(FormAssociated(Disabled(AttachInternals(Role(LitElement, \"combobox\")))))),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n implements FormFieldControl\r\n{\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n outline: none;\r\n position: relative;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n min-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n border-radius: var(--m3e-select-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host(:not(:disabled)) {\r\n cursor: pointer;\r\n }\r\n :host(:disabled) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-select-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n .options {\r\n display: none;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n overflow: hidden;\r\n }\r\n .arrow-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: var(--_select-arrow-margin-top);\r\n }\r\n ::slotted([slot=\"arrow\"]),\r\n .arrow {\r\n vertical-align: middle;\r\n width: 1em;\r\n height: 1em;\r\n font-size: var(--m3e-select-icon-size, 1.5rem);\r\n }\r\n :host(:state(-open)) .focus-ring {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ static __nextId = 0;\r\n\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreKeyUp = false;\r\n /** @private */ #ignoreFocusVisible = false;\r\n\r\n /** @private */ readonly #id = `m3e-select-${M3eSelectElement.__nextId++}`;\r\n /** @private */ readonly #listId = `${this.#id}-list`;\r\n\r\n /** @private */ readonly #clickHandler = (e: Event) => this.#handleClick(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: MouseEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withTypeahead()\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n /** @private */ @query(\".focus-ring\") private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, {\r\n callback: () => {\r\n if (this.#menu) {\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n }\r\n },\r\n });\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator for single select options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether multiple options can be selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) multi = false;\r\n\r\n /**\r\n * Class or list of classes to be applied to the select's overlay panel.\r\n * @default \"\"\r\n */\r\n @property({ attribute: \"panel-class\" }) panelClass = \"\";\r\n\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n get #selected(): readonly M3eOptionElement[] {\r\n return this.#options.filter((x) => x.selected);\r\n }\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** The selected option(s). */\r\n get selected(): readonly M3eOptionElement[] {\r\n return this.options.filter((x) => x.selected);\r\n }\r\n\r\n /** The selected (enabled) value(s). */\r\n get value(): string | readonly string[] | null {\r\n const values = this.selected.filter((x) => !x.disabled).map((x) => x.value);\r\n switch (values.length) {\r\n case 0:\r\n return null;\r\n case 1:\r\n return values[0];\r\n default:\r\n return values;\r\n }\r\n }\r\n\r\n /** @inheritdoc @internal */\r\n override get [formValue]() {\r\n const values = this.value;\r\n if (Array.isArray(values)) {\r\n const data = new FormData();\r\n for (const value of values) {\r\n data.append(this.name, value);\r\n }\r\n return data;\r\n }\r\n return <string | null>values;\r\n }\r\n\r\n /** @inheritdoc */\r\n get shouldLabelFloat(): boolean {\r\n return this.selected.filter((x) => !x.isEmpty).length > 0;\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : this.clientWidth}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.closest(\"m3e-form-field\");\r\n }\r\n\r\n /** @inheritdoc */\r\n onContainerClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#toggleMenu();\r\n this.focus({ preventScroll: true });\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n const selected = this.#selected;\r\n const willChange = selected.length > 0;\r\n\r\n if (willChange) {\r\n selected.forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n this.requestUpdate();\r\n }\r\n\r\n this.#hideMenu();\r\n\r\n if (willChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n if (restoreFocus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.ariaHasPopup = \"listbox\";\r\n this.ariaExpanded = \"false\";\r\n\r\n this.addEventListener(\"click\", this.#clickHandler);\r\n this.addEventListener(\"keydown\", this.#keyDownHandler);\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.removeEventListener(\"click\", this.#clickHandler);\r\n this.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideSelectionIndicator\")) {\r\n this.#options.forEach((x) => setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this._focusRing?.attach(this);\r\n\r\n if (this.#formField && this._focusRing) {\r\n this._focusRing.style.display = \"none\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html` <m3e-focus-ring class=\"focus-ring\"></m3e-focus-ring>\r\n <div class=\"base\">\r\n <m3e-text-overflow>\r\n <slot name=\"value\">\r\n ${this.selected\r\n .filter((x) => !x.isEmpty)\r\n .map((x, i) => (i > 0 ? html`<span>, </span>${x.label}` : x.label))}\r\n </slot>\r\n </m3e-text-overflow>\r\n <div class=\"arrow-wrapper\" aria-hidden=\"true\">\r\n <slot name=\"arrow\">\r\n <svg class=\"arrow\" viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M480-360 280-560h400L480-360Z\" />\r\n </svg>\r\n </slot>\r\n </div>\r\n </div>\r\n <div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleMutation(): void {\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n this._options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n this.#formField?.notifyControlStateChange();\r\n if (this.#menu) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (this._options.length == 0) {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(e: Event): void {\r\n if (e.defaultPrevented || this.disabled) return;\r\n this.#toggleMenu();\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n if (!this.multi) {\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n if (this.#menu?.isOpen) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.#showMenu();\r\n }\r\n } else if (!this.#menu) {\r\n this.#ignoreKeyUp = true;\r\n this.#toggleMenu();\r\n }\r\n\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (this.multi && !this.#menu) {\r\n this.#toggleMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.multi && !this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n if (this.#ignoreKeyUp) {\r\n this.#ignoreKeyUp = false;\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n if (!this.multi) return;\r\n e.preventDefault();\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: MouseEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this.#selectOption(option);\r\n this._listKeyManager.setActiveItem(option);\r\n\r\n if (!this.multi) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.requestUpdate();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#selected.find((x) => !x.disabled) ?? this._listKeyManager.items.find((x) => !x.disabled);\r\n this._listKeyManager.setActiveItem(option);\r\n if (option) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n this.ariaExpanded = \"false\";\r\n this.removeAttribute(\"aria-controls\");\r\n this.removeAttribute(\"aria-owns\");\r\n this.requestUpdate();\r\n\r\n deleteCustomState(this, \"-open\");\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #toggleMenu(): void {\r\n if (this.disabled) return;\r\n if (this.#menu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#showMenu();\r\n }\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || this._options.length == 0) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n if (this.multi) {\r\n this.#menu.ariaMultiSelectable = \"true\";\r\n }\r\n\r\n this.#menu.id = this.#listId;\r\n\r\n if (this.panelClass) {\r\n for (const klass of this.panelClass\r\n .split(/\\s+/)\r\n .map((d) => d.trim())\r\n .filter(Boolean)) {\r\n this.#menu.classList.add(klass);\r\n }\r\n }\r\n\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n }\r\n\r\n (this.#formField ?? this).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.ariaExpanded = \"true\";\r\n this.setAttribute(\"aria-controls\", this.#listId);\r\n this.setAttribute(\"aria-owns\", this.#listId);\r\n this.#formField?.notifyControlStateChange();\r\n\r\n setTimeout(() => {\r\n this.#menu?.show(this, this.#formField?.menuAnchor);\r\n addCustomState(this, \"-open\");\r\n });\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n if (!this.#menu) return;\r\n\r\n this.#menu.hide();\r\n this.removeAttribute(\"aria-activedescendant\");\r\n deleteCustomState(this, \"-open\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement): void {\r\n this.setAttribute(\"aria-activedescendant\", option.id);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible = !this.#ignoreFocusVisible && (this.matches(\":focus-visible\") || forcedColorsActive());\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateSelectionState(clone: M3eOptionElement): void {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n }\r\n }\r\n\r\n /** @private */\r\n #selectOption(option: M3eOptionElement): void {\r\n const selected = this.multi ? !option.selected : true;\r\n if (option.selected === selected) return;\r\n\r\n option.selected = selected;\r\n this.#updateSelectionState(option);\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n if (!this.multi) {\r\n this.#selected\r\n .filter((x) => x !== option)\r\n .forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n }\r\n\r\n this.requestUpdate();\r\n this.#formField?.notifyControlStateChange();\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n } else {\r\n option.selected = !selected;\r\n this.#updateSelectionState(option);\r\n }\r\n }\r\n}\r\n\r\ninterface M3eSelectElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n}\r\n\r\nexport interface M3eSelectElement {\r\n addEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-select\": M3eSelectElement;\r\n }\r\n}\r\n"],"names":["M3eSelectElement","M3eSelectElement_1","Focusable","Labelled","RequiredConstraintValidation","Dirty","Touched","Required","ConstraintValidation","FormAssociated","Disabled","AttachInternals","Role","LitElement","constructor","_options","Array","_M3eSelectElement_clone","set","_M3eSelectElement_menu","_M3eSelectElement_ignoreKeyUp","_M3eSelectElement_ignoreFocusVisible","_M3eSelectElement_id","__nextId","_M3eSelectElement_listId","__classPrivateFieldGet","_M3eSelectElement_clickHandler","e","call","_M3eSelectElement_keyDownHandler","_M3eSelectElement_keyUpHandler","_M3eSelectElement_menuToggleHandler","_M3eSelectElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withTypeahead","onActiveItemChange","activeItem","_M3eSelectElement_instances","_M3eSelectElement_activateOption","hideSelectionIndicator","multi","panelClass","ResizeController","callback","style","minWidth","_M3eSelectElement_minMenuWidth_get","MutationController","config","childList","subtree","_M3eSelectElement_handleMutation","options","selected","filter","x","value","values","disabled","map","length","WeakMap","WeakSet","_M3eSelectElement_options_get","items","_M3eSelectElement_selected_get","formValue","isArray","data","FormData","append","name","shouldLabelFloat","isEmpty","onContainerClick","__classPrivateFieldSet","_M3eSelectElement_toggleMenu","focus","preventScroll","clear","restoreFocus","willChange","forEach","_M3eSelectElement_updateSelectionState","requestUpdate","_M3eSelectElement_hideMenu","dispatchEvent","Event","bubbles","connectedCallback","ariaHasPopup","ariaExpanded","addEventListener","disconnectedCallback","removeEventListener","update","changedProperties","has","setCustomState","firstUpdated","_changedProperties","_focusRing","attach","_M3eSelectElement_formField_get","display","render","html","i","label","formField","menuAnchor","clientWidth","closest","cloneNode","added","setItems","querySelectorAll","id","indexOf","notifyControlStateChange","replaceChildren","childNodes","defaultPrevented","key","preventDefault","_M3eSelectElement_selectOption","isOpen","prefersReducedMotion","setTimeout","_M3eSelectElement_showMenu","onKeyDown","button","stopImmediatePropagation","option","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","block","behavior","ToggleEvent","oldState","_M3eSelectElement_destroyMenu","remove","undefined","removeAttribute","deleteCustomState","document","createElement","ariaMultiSelectable","klass","split","d","trim","Boolean","classList","add","overflowX","insertAdjacentElement","setAttribute","show","addCustomState","hide","focusVisible","matches","forcedColorsActive","active","focusRing","stateLayer","clone","composed","cancelable","styles","css","DesignToken","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","shape","corner","extraSmall","color","onSurface","__decorate","query","prototype","property","attribute","type","customElement"],"mappings":"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"}
|
package/dist/select.min.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright (c) 2025 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
|
-
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e,__decorate as i}from"tslib";import{LitElement as s,html as a,css as n}from"lit";import{query as h,property as l}from"lit/decorators.js";import{Focusable as o,Labelled as r,RequiredConstraintValidation as c,Dirty as d,Touched as f,Required as m,ConstraintValidation as p,FormAssociated as u,Disabled as v,AttachInternals as g,Role as y,ResizeController as w,MutationController as b,formValue as E,setCustomState as M,prefersReducedMotion as _,scrollIntoViewIfNeeded as k,deleteCustomState as S,addCustomState as C,forcedColorsActive as I,DesignToken as K,customElement as x}from"@m3e/web/core";import{ListKeyManager as A,typeaheadLabel as W}from"@m3e/web/core/a11y";var L,$,T,D,P,U,q,N,O,R,z,H,B,j,F,V,X,Z,G,J,Q,Y,tt,et,it,st,at,nt,ht,lt;let ot=lt=class extends(o(r(c(d(f(m(p(u(v(g(y(s,"combobox")))))))))))){constructor(){super(),L.add(this),this._options=new Array,$.set(this,void 0),T.set(this,void 0),D.set(this,!1),P.set(this,!1),U.set(this,"m3e-select-"+lt.__nextId++),q.set(this,`${t(this,U,"f")}-list`),N.set(this,e=>t(this,L,"m",Z).call(this,e)),O.set(this,e=>t(this,L,"m",G).call(this,e)),R.set(this,e=>t(this,L,"m",J).call(this,e)),z.set(this,e=>t(this,L,"m",Y).call(this,e)),H.set(this,e=>t(this,L,"m",Q).call(this,e)),this._listKeyManager=(new A).withWrap().withHomeAndEnd().withPageUpAndDown().withVerticalOrientation().withTypeahead().onActiveItemChange(()=>{this._listKeyManager.activeItem&&t(this,L,"m",at).call(this,this._listKeyManager.activeItem)}),this.hideSelectionIndicator=!1,this.multi=!1,this.panelClass="",new w(this,{callback:()=>{t(this,T,"f")&&(t(this,T,"f").style.minWidth=t(this,L,"a",F))}}),new b(this,{config:{childList:!0,subtree:!0},callback:()=>t(this,L,"m",X).call(this)})}get options(){return this._options??[]}get selected(){return this.options.filter(t=>t.selected)}get value(){const t=this.selected.filter(t=>!t.disabled).map(t=>t.value);switch(t.length){case 0:return null;case 1:return t[0];default:return t}}get[($=new WeakMap,T=new WeakMap,D=new WeakMap,P=new WeakMap,U=new WeakMap,q=new WeakMap,N=new WeakMap,O=new WeakMap,R=new WeakMap,z=new WeakMap,H=new WeakMap,L=new WeakSet,B=function(){return this._listKeyManager?.items??[]},j=function(){return t(this,L,"a",B).filter(t=>t.selected)},E)](){const t=this.value;if(Array.isArray(t)){const e=new FormData;for(const i of t)e.append(this.name,i);return e}return t}get shouldLabelFloat(){return this.selected.filter(t=>!t.isEmpty).length>0}onContainerClick(){e(this,P,!0,"f"),t(this,L,"m",et).call(this),this.focus({preventScroll:!0})}clear(e=!1){const i=t(this,L,"a",j),s=i.length>0;s&&(i.forEach(e=>{e.selected=!1,t(this,L,"m",nt).call(this,e)}),this.requestUpdate()),t(this,L,"m",st).call(this),s&&this.dispatchEvent(new Event("change",{bubbles:!0})),e&&this.focus()}connectedCallback(){super.connectedCallback(),this.ariaHasPopup="listbox",this.ariaExpanded="false",this.addEventListener("click",t(this,N,"f")),this.addEventListener("keydown",t(this,O,"f")),this.addEventListener("keyup",t(this,R,"f")),t(this,L,"m",X).call(this)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",t(this,N,"f")),this.removeEventListener("keydown",t(this,O,"f")),this.removeEventListener("keyup",t(this,R,"f"))}update(e){super.update(e),e.has("hideSelectionIndicator")&&t(this,L,"a",B).forEach(t=>M(t,"-hide-selection-indicator",this.hideSelectionIndicator))}firstUpdated(e){super.firstUpdated(e),this._focusRing?.attach(this),t(this,L,"a",V)&&this._focusRing&&(this._focusRing.style.display="none")}render(){return a`<m3e-focus-ring class="focus-ring"></m3e-focus-ring><div class="base"><m3e-text-overflow><slot name="value">${this.selected.filter(t=>!t.isEmpty).map((t,e)=>e>0?a`<span>, </span>${t[W]()}`:t[W]())}</slot></m3e-text-overflow><div class="arrow-wrapper" aria-hidden="true"><slot name="arrow"><svg class="arrow" viewBox="0 -960 960 960" fill="currentColor"><path d="M480-360 280-560h400L480-360Z"/></svg></slot></div></div><div class="options" aria-hidden="true"><slot></slot></div>`}};F=function(){const e=t(this,L,"a",V);return`${e?e.menuAnchor.clientWidth:this.clientWidth}px`},V=function(){return this.closest("m3e-form-field")},X=function(){e(this,$,this.cloneNode(!0),"f");const{added:i}=this._listKeyManager.setItems([...t(this,$,"f").querySelectorAll("m3e-option")]);i.forEach(e=>{e.id=e.id||`${t(this,U,"f")}-option-${this._listKeyManager.items.indexOf(e)}`,M(e,"-hide-selection-indicator",this.hideSelectionIndicator)}),this._options=[...this.querySelectorAll("m3e-option")],t(this,L,"a",V)?.notifyControlStateChange(),t(this,T,"f")&&(t(this,T,"f").replaceChildren(...t(this,$,"f").childNodes),0==this._options.length&&t(this,L,"m",st).call(this))},Z=function(e){e.defaultPrevented||this.disabled||t(this,L,"m",et).call(this)},G=function(i){if(!i.defaultPrevented)switch(e(this,P,!1,"f"),i.key){case" ":case"Enter":i.preventDefault(),this.multi?t(this,T,"f")||(e(this,D,!0,"f"),t(this,L,"m",et).call(this)):(t(this,T,"f")&&this._listKeyManager.activeItem&&t(this,L,"m",ht).call(this,this._listKeyManager.activeItem),t(this,T,"f")?.isOpen?_()?t(this,L,"m",st).call(this):setTimeout(()=>t(this,L,"m",st).call(this),150):t(this,L,"m",it).call(this));break;case"Escape":case"Tab":t(this,L,"m",st).call(this);break;case"Down":case"ArrowDown":this.multi&&!t(this,T,"f")?t(this,L,"m",et).call(this):(this._listKeyManager.onKeyDown(i),!t(this,T,"f")&&this._listKeyManager.activeItem&&t(this,L,"m",ht).call(this,this._listKeyManager.activeItem));break;default:this._listKeyManager.onKeyDown(i),this.multi||t(this,T,"f")||!this._listKeyManager.activeItem||t(this,L,"m",ht).call(this,this._listKeyManager.activeItem)}},J=function(i){if(!i.defaultPrevented)if(t(this,D,"f"))e(this,D,!1,"f");else switch(i.key){case" ":case"Enter":if(!this.multi)return;i.preventDefault(),t(this,T,"f")&&this._listKeyManager.activeItem&&t(this,L,"m",ht).call(this,this._listKeyManager.activeItem)}},Q=function(e){if(2===e.button)return;e.preventDefault(),e.stopImmediatePropagation();const i=e.composedPath().find(t=>t instanceof HTMLElement&&"M3E-OPTION"===t.tagName);i&&!i.disabled&&(t(this,L,"m",ht).call(this,i),this._listKeyManager.setActiveItem(i),this.multi?this.requestUpdate():_()?t(this,L,"m",st).call(this):setTimeout(()=>t(this,L,"m",st).call(this),150))},Y=function(e){if(t(this,T,"f"))if("closed"!==e.newState){const i=t(this,L,"a",j).find(t=>!t.disabled)??this._listKeyManager.items.find(t=>!t.disabled);this._listKeyManager.setActiveItem(i),i&&k(i,t(this,T,"f"),{block:"nearest",behavior:"instant"}),this.dispatchEvent(new ToggleEvent("toggle",{oldState:e.oldState,newState:e.newState}))}else _()?t(this,L,"m",tt).call(this,e):setTimeout(()=>t(this,L,"m",tt).call(this,e),100)},tt=function(i){t(this,T,"f")&&(t(this,$,"f")?.replaceChildren(...t(this,T,"f").childNodes),t(this,T,"f").remove(),t(this,T,"f").removeEventListener("toggle",t(this,z,"f")),t(this,T,"f").removeEventListener("pointerdown",t(this,H,"f")),e(this,T,void 0,"f"),this.ariaExpanded="false",this.removeAttribute("aria-controls"),this.removeAttribute("aria-owns"),this.requestUpdate(),S(this,"-open"),t(this,L,"a",V)?.notifyControlStateChange(),this.dispatchEvent(new ToggleEvent("toggle",{oldState:i.oldState,newState:i.newState})))},et=function(){this.disabled||(t(this,T,"f")?t(this,L,"m",st).call(this):t(this,L,"m",it).call(this))},it=function(){if(!t(this,T,"f")&&0!=this._options.length){if(e(this,T,document.createElement("m3e-option-panel"),"f"),this.multi&&(t(this,T,"f").ariaMultiSelectable="true"),t(this,T,"f").id=t(this,q,"f"),this.panelClass)for(const e of this.panelClass.split(/\s+/).map(t=>t.trim()).filter(Boolean))t(this,T,"f").classList.add(e);t(this,T,"f").style.overflowX="hidden",t(this,T,"f").style.minWidth=t(this,L,"a",F),t(this,T,"f").addEventListener("toggle",t(this,z,"f")),t(this,T,"f").addEventListener("pointerdown",t(this,H,"f")),t(this,$,"f")&&t(this,T,"f").replaceChildren(...t(this,$,"f").childNodes),(t(this,L,"a",V)??this).insertAdjacentElement("afterend",t(this,T,"f")),this.ariaExpanded="true",this.setAttribute("aria-controls",t(this,q,"f")),this.setAttribute("aria-owns",t(this,q,"f")),t(this,L,"a",V)?.notifyControlStateChange(),setTimeout(()=>{t(this,T,"f")?.show(this,t(this,L,"a",V)?.menuAnchor),C(this,"-open")})}},st=function(){t(this,T,"f")&&(t(this,T,"f").hide(),this.removeAttribute("aria-activedescendant"),S(this,"-open"))},at=function(e){if(this.setAttribute("aria-activedescendant",e.id),t(this,T,"f")){k(e,t(this,T,"f"),{block:"nearest",behavior:"instant"});const i=!t(this,P,"f")&&(this.matches(":focus-visible")||I());t(this,L,"a",B).forEach(t=>{t===e&&i?(t.focusRing?.show(),t.stateLayer?.show("focused")):(t.focusRing?.hide(),t.stateLayer?.hide("focused"))})}},nt=function(t){const e=this._options[this._listKeyManager.items.indexOf(t)];e&&(e.selected=t.selected)},ht=function(e){const i=!this.multi||!e.selected;e.selected!==i&&(e.selected=i,t(this,L,"m",nt).call(this,e),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?(this.multi||t(this,L,"a",j).filter(t=>t!==e).forEach(e=>{e.selected=!1,t(this,L,"m",nt).call(this,e)}),this.requestUpdate(),t(this,L,"a",V)?.notifyControlStateChange(),this.dispatchEvent(new Event("change",{bubbles:!0}))):(e.selected=!i,t(this,L,"m",nt).call(this,e)))},ot.styles=n`:host { display: inline-flex; vertical-align: middle; outline: none; position: relative; font-size: var(--m3e-form-field-font-size, ${K.typescale.standard.body.large.fontSize}); font-weight: var(--m3e-form-field-font-weight, ${K.typescale.standard.body.large.fontWeight}); line-height: var(--m3e-form-field-line-height, ${K.typescale.standard.body.large.lineHeight}); letter-spacing: var(--m3e-form-field-tracking, ${K.typescale.standard.body.large.tracking}); min-height: var(--m3e-form-field-line-height, ${K.typescale.standard.body.large.lineHeight}); border-radius: var(--m3e-select-container-shape, ${K.shape.corner.extraSmall}); } :host(:not(:disabled)) { cursor: pointer; } :host(:disabled) { color: color-mix( in srgb, var(--m3e-select-disabled-color, ${K.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%), transparent ); } .options { display: none; } .base { flex: 1 1 auto; display: inline-flex; align-items: center; overflow: hidden; } .arrow-wrapper { display: flex; align-items: center; justify-content: center; margin-top: var(--_select-arrow-margin-top); } ::slotted([slot="arrow"]), .arrow { vertical-align: middle; width: 1em; height: 1em; font-size: var(--m3e-select-icon-size, 1.5rem); } :host(:state(-open)) .focus-ring { display: none; }`,ot.__nextId=0,i([h(".focus-ring")],ot.prototype,"_focusRing",void 0),i([l({attribute:"hide-selection-indicator",type:Boolean})],ot.prototype,"hideSelectionIndicator",void 0),i([l({type:Boolean})],ot.prototype,"multi",void 0),i([l({attribute:"panel-class"})],ot.prototype,"panelClass",void 0),ot=lt=i([x("m3e-select")],ot);export{ot as M3eSelectElement};
|
|
6
|
+
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e,__decorate as i}from"tslib";import{LitElement as s,html as a,css as n}from"lit";import{query as h,property as l}from"lit/decorators.js";import{Focusable as o,Labelled as r,RequiredConstraintValidation as c,Dirty as d,Touched as f,Required as m,ConstraintValidation as p,FormAssociated as u,Disabled as v,AttachInternals as g,Role as y,ResizeController as w,MutationController as b,formValue as E,setCustomState as M,prefersReducedMotion as _,scrollIntoViewIfNeeded as k,deleteCustomState as S,addCustomState as C,forcedColorsActive as I,DesignToken as K,customElement as x}from"@m3e/web/core";import{ListKeyManager as A}from"@m3e/web/core/a11y";var W,L,$,T,D,P,U,q,N,O,R,z,H,B,j,F,V,X,Z,G,J,Q,Y,tt,et,it,st,at,nt,ht;let lt=ht=class extends(o(r(c(d(f(m(p(u(v(g(y(s,"combobox")))))))))))){constructor(){super(),W.add(this),this._options=new Array,L.set(this,void 0),$.set(this,void 0),T.set(this,!1),D.set(this,!1),P.set(this,"m3e-select-"+ht.__nextId++),U.set(this,`${t(this,P,"f")}-list`),q.set(this,e=>t(this,W,"m",X).call(this,e)),N.set(this,e=>t(this,W,"m",Z).call(this,e)),O.set(this,e=>t(this,W,"m",G).call(this,e)),R.set(this,e=>t(this,W,"m",Q).call(this,e)),z.set(this,e=>t(this,W,"m",J).call(this,e)),this._listKeyManager=(new A).withWrap().withHomeAndEnd().withPageUpAndDown().withVerticalOrientation().withTypeahead().onActiveItemChange(()=>{this._listKeyManager.activeItem&&t(this,W,"m",st).call(this,this._listKeyManager.activeItem)}),this.hideSelectionIndicator=!1,this.multi=!1,this.panelClass="",new w(this,{callback:()=>{t(this,$,"f")&&(t(this,$,"f").style.minWidth=t(this,W,"a",j))}}),new b(this,{config:{childList:!0,subtree:!0},callback:()=>t(this,W,"m",V).call(this)})}get options(){return this._options??[]}get selected(){return this.options.filter(t=>t.selected)}get value(){const t=this.selected.filter(t=>!t.disabled).map(t=>t.value);switch(t.length){case 0:return null;case 1:return t[0];default:return t}}get[(L=new WeakMap,$=new WeakMap,T=new WeakMap,D=new WeakMap,P=new WeakMap,U=new WeakMap,q=new WeakMap,N=new WeakMap,O=new WeakMap,R=new WeakMap,z=new WeakMap,W=new WeakSet,H=function(){return this._listKeyManager?.items??[]},B=function(){return t(this,W,"a",H).filter(t=>t.selected)},E)](){const t=this.value;if(Array.isArray(t)){const e=new FormData;for(const i of t)e.append(this.name,i);return e}return t}get shouldLabelFloat(){return this.selected.filter(t=>!t.isEmpty).length>0}onContainerClick(){e(this,D,!0,"f"),t(this,W,"m",tt).call(this),this.focus({preventScroll:!0})}clear(e=!1){const i=t(this,W,"a",B),s=i.length>0;s&&(i.forEach(e=>{e.selected=!1,t(this,W,"m",at).call(this,e)}),this.requestUpdate()),t(this,W,"m",it).call(this),s&&this.dispatchEvent(new Event("change",{bubbles:!0})),e&&this.focus()}connectedCallback(){super.connectedCallback(),this.ariaHasPopup="listbox",this.ariaExpanded="false",this.addEventListener("click",t(this,q,"f")),this.addEventListener("keydown",t(this,N,"f")),this.addEventListener("keyup",t(this,O,"f")),t(this,W,"m",V).call(this)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",t(this,q,"f")),this.removeEventListener("keydown",t(this,N,"f")),this.removeEventListener("keyup",t(this,O,"f"))}update(e){super.update(e),e.has("hideSelectionIndicator")&&t(this,W,"a",H).forEach(t=>M(t,"-hide-selection-indicator",this.hideSelectionIndicator))}firstUpdated(e){super.firstUpdated(e),this._focusRing?.attach(this),t(this,W,"a",F)&&this._focusRing&&(this._focusRing.style.display="none")}render(){return a`<m3e-focus-ring class="focus-ring"></m3e-focus-ring><div class="base"><m3e-text-overflow><slot name="value">${this.selected.filter(t=>!t.isEmpty).map((t,e)=>e>0?a`<span>, </span>${t.label}`:t.label)}</slot></m3e-text-overflow><div class="arrow-wrapper" aria-hidden="true"><slot name="arrow"><svg class="arrow" viewBox="0 -960 960 960" fill="currentColor"><path d="M480-360 280-560h400L480-360Z"/></svg></slot></div></div><div class="options" aria-hidden="true"><slot></slot></div>`}};j=function(){const e=t(this,W,"a",F);return`${e?e.menuAnchor.clientWidth:this.clientWidth}px`},F=function(){return this.closest("m3e-form-field")},V=function(){e(this,L,this.cloneNode(!0),"f");const{added:i}=this._listKeyManager.setItems([...t(this,L,"f").querySelectorAll("m3e-option")]);i.forEach(e=>{e.id=e.id||`${t(this,P,"f")}-option-${this._listKeyManager.items.indexOf(e)}`,M(e,"-hide-selection-indicator",this.hideSelectionIndicator)}),this._options=[...this.querySelectorAll("m3e-option")],t(this,W,"a",F)?.notifyControlStateChange(),t(this,$,"f")&&(t(this,$,"f").replaceChildren(...t(this,L,"f").childNodes),0==this._options.length&&t(this,W,"m",it).call(this))},X=function(e){e.defaultPrevented||this.disabled||t(this,W,"m",tt).call(this)},Z=function(i){if(!i.defaultPrevented)switch(e(this,D,!1,"f"),i.key){case" ":case"Enter":i.preventDefault(),this.multi?t(this,$,"f")||(e(this,T,!0,"f"),t(this,W,"m",tt).call(this)):(t(this,$,"f")&&this._listKeyManager.activeItem&&t(this,W,"m",nt).call(this,this._listKeyManager.activeItem),t(this,$,"f")?.isOpen?_()?t(this,W,"m",it).call(this):setTimeout(()=>t(this,W,"m",it).call(this),150):t(this,W,"m",et).call(this));break;case"Escape":case"Tab":t(this,W,"m",it).call(this);break;case"Down":case"ArrowDown":this.multi&&!t(this,$,"f")?t(this,W,"m",tt).call(this):(this._listKeyManager.onKeyDown(i),!t(this,$,"f")&&this._listKeyManager.activeItem&&t(this,W,"m",nt).call(this,this._listKeyManager.activeItem));break;default:this._listKeyManager.onKeyDown(i),this.multi||t(this,$,"f")||!this._listKeyManager.activeItem||t(this,W,"m",nt).call(this,this._listKeyManager.activeItem)}},G=function(i){if(!i.defaultPrevented)if(t(this,T,"f"))e(this,T,!1,"f");else switch(i.key){case" ":case"Enter":if(!this.multi)return;i.preventDefault(),t(this,$,"f")&&this._listKeyManager.activeItem&&t(this,W,"m",nt).call(this,this._listKeyManager.activeItem)}},J=function(e){if(2===e.button)return;e.preventDefault(),e.stopImmediatePropagation();const i=e.composedPath().find(t=>t instanceof HTMLElement&&"M3E-OPTION"===t.tagName);i&&!i.disabled&&(t(this,W,"m",nt).call(this,i),this._listKeyManager.setActiveItem(i),this.multi?this.requestUpdate():_()?t(this,W,"m",it).call(this):setTimeout(()=>t(this,W,"m",it).call(this),150))},Q=function(e){if(t(this,$,"f"))if("closed"!==e.newState){const i=t(this,W,"a",B).find(t=>!t.disabled)??this._listKeyManager.items.find(t=>!t.disabled);this._listKeyManager.setActiveItem(i),i&&k(i,t(this,$,"f"),{block:"nearest",behavior:"instant"}),this.dispatchEvent(new ToggleEvent("toggle",{oldState:e.oldState,newState:e.newState}))}else _()?t(this,W,"m",Y).call(this,e):setTimeout(()=>t(this,W,"m",Y).call(this,e),100)},Y=function(i){t(this,$,"f")&&(t(this,L,"f")?.replaceChildren(...t(this,$,"f").childNodes),t(this,$,"f").remove(),t(this,$,"f").removeEventListener("toggle",t(this,R,"f")),t(this,$,"f").removeEventListener("pointerdown",t(this,z,"f")),e(this,$,void 0,"f"),this.ariaExpanded="false",this.removeAttribute("aria-controls"),this.removeAttribute("aria-owns"),this.requestUpdate(),S(this,"-open"),t(this,W,"a",F)?.notifyControlStateChange(),this.dispatchEvent(new ToggleEvent("toggle",{oldState:i.oldState,newState:i.newState})))},tt=function(){this.disabled||(t(this,$,"f")?t(this,W,"m",it).call(this):t(this,W,"m",et).call(this))},et=function(){if(!t(this,$,"f")&&0!=this._options.length){if(e(this,$,document.createElement("m3e-option-panel"),"f"),this.multi&&(t(this,$,"f").ariaMultiSelectable="true"),t(this,$,"f").id=t(this,U,"f"),this.panelClass)for(const e of this.panelClass.split(/\s+/).map(t=>t.trim()).filter(Boolean))t(this,$,"f").classList.add(e);t(this,$,"f").style.overflowX="hidden",t(this,$,"f").style.minWidth=t(this,W,"a",j),t(this,$,"f").addEventListener("toggle",t(this,R,"f")),t(this,$,"f").addEventListener("pointerdown",t(this,z,"f")),t(this,L,"f")&&t(this,$,"f").replaceChildren(...t(this,L,"f").childNodes),(t(this,W,"a",F)??this).insertAdjacentElement("afterend",t(this,$,"f")),this.ariaExpanded="true",this.setAttribute("aria-controls",t(this,U,"f")),this.setAttribute("aria-owns",t(this,U,"f")),t(this,W,"a",F)?.notifyControlStateChange(),setTimeout(()=>{t(this,$,"f")?.show(this,t(this,W,"a",F)?.menuAnchor),C(this,"-open")})}},it=function(){t(this,$,"f")&&(t(this,$,"f").hide(),this.removeAttribute("aria-activedescendant"),S(this,"-open"))},st=function(e){if(this.setAttribute("aria-activedescendant",e.id),t(this,$,"f")){k(e,t(this,$,"f"),{block:"nearest",behavior:"instant"});const i=!t(this,D,"f")&&(this.matches(":focus-visible")||I());t(this,W,"a",H).forEach(t=>{t===e&&i?(t.focusRing?.show(),t.stateLayer?.show("focused")):(t.focusRing?.hide(),t.stateLayer?.hide("focused"))})}},at=function(t){const e=this._options[this._listKeyManager.items.indexOf(t)];e&&(e.selected=t.selected)},nt=function(e){const i=!this.multi||!e.selected;e.selected!==i&&(e.selected=i,t(this,W,"m",at).call(this,e),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?(this.multi||t(this,W,"a",B).filter(t=>t!==e).forEach(e=>{e.selected=!1,t(this,W,"m",at).call(this,e)}),this.requestUpdate(),t(this,W,"a",F)?.notifyControlStateChange(),this.dispatchEvent(new Event("change",{bubbles:!0}))):(e.selected=!i,t(this,W,"m",at).call(this,e)))},lt.styles=n`:host { display: inline-flex; vertical-align: middle; outline: none; position: relative; font-size: var(--m3e-form-field-font-size, ${K.typescale.standard.body.large.fontSize}); font-weight: var(--m3e-form-field-font-weight, ${K.typescale.standard.body.large.fontWeight}); line-height: var(--m3e-form-field-line-height, ${K.typescale.standard.body.large.lineHeight}); letter-spacing: var(--m3e-form-field-tracking, ${K.typescale.standard.body.large.tracking}); min-height: var(--m3e-form-field-line-height, ${K.typescale.standard.body.large.lineHeight}); border-radius: var(--m3e-select-container-shape, ${K.shape.corner.extraSmall}); } :host(:not(:disabled)) { cursor: pointer; } :host(:disabled) { color: color-mix( in srgb, var(--m3e-select-disabled-color, ${K.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%), transparent ); } .options { display: none; } .base { flex: 1 1 auto; display: inline-flex; align-items: center; overflow: hidden; } .arrow-wrapper { display: flex; align-items: center; justify-content: center; margin-top: var(--_select-arrow-margin-top); } ::slotted([slot="arrow"]), .arrow { vertical-align: middle; width: 1em; height: 1em; font-size: var(--m3e-select-icon-size, 1.5rem); } :host(:state(-open)) .focus-ring { display: none; }`,lt.__nextId=0,i([h(".focus-ring")],lt.prototype,"_focusRing",void 0),i([l({attribute:"hide-selection-indicator",type:Boolean})],lt.prototype,"hideSelectionIndicator",void 0),i([l({type:Boolean})],lt.prototype,"multi",void 0),i([l({attribute:"panel-class"})],lt.prototype,"panelClass",void 0),lt=ht=i([x("m3e-select")],lt);export{lt as M3eSelectElement};
|
|
7
7
|
//# sourceMappingURL=select.min.js.map
|
package/dist/select.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.min.js","sources":["../../src/select/SelectElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n Labelled,\r\n ConstraintValidation,\r\n Dirty,\r\n Disabled,\r\n FormAssociated,\r\n Required,\r\n RequiredConstraintValidation,\r\n ResizeController,\r\n Touched,\r\n DesignToken,\r\n formValue,\r\n M3eFocusRingElement,\r\n scrollIntoViewIfNeeded,\r\n Role,\r\n Focusable,\r\n prefersReducedMotion,\r\n forcedColorsActive,\r\n deleteCustomState,\r\n addCustomState,\r\n setCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager, typeaheadLabel } from \"@m3e/web/core/a11y\";\r\n\r\nimport type { M3eFormFieldElement, FormFieldControl } from \"@m3e/web/form-field\";\r\nimport { M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\n\r\n/**\r\n * A form control that allows users to select a value from a set of predefined options.\r\n *\r\n * @description\r\n * The `m3e-select` component follows Material Design 3 principles and provides a comprehensive\r\n * selection interface for capturing user input. It supports both single and multiple selection modes,\r\n * customizable validation states, and accessible keyboard navigation. The component integrates seamlessly\r\n * with form field containers and dynamically positions its option list menu to ensure optimal viewport\r\n * visibility. Selection changes are communicated through standard form events, enabling predictable integration\r\n * with form submission and reactive state management systems.\r\n *\r\n * @example\r\n * The following demonstrates a `m3e-select` component wrapped in a `m3e-form-field` with a slotted label.\r\n * The label is associated with the select via the `for` and `id` attributes, ensuring accessible form semantics.\r\n * Each `m3e-option` defines an option within the dropdown.\r\n *\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"select\">Choose your favorite fruit</label>\r\n * <m3e-select id=\"select\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-select>\r\n * </m3e-form-field>\r\n * ```\r\n *\r\n * @tag m3e-select\r\n *\r\n * @slot - Renders the options of the select.\r\n * @slot arrow - Renders the dropdown arrow.\r\n * @slot value - Renders the selected value(s).\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator for single select options.\r\n * @attr multi - Whether multiple options can be selected.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr panel-class - Class or list of classes to be applied to the select's overlay panel.\r\n * @attr required - Whether the element is required.\r\n *\r\n * @fires input - Emitted when the selected state changes.\r\n * @fires change - Emitted when the selected state changes.\r\n *\r\n * @cssprop --m3e-form-field-font-size - The font size of the select control.\r\n * @cssprop --m3e-form-field-font-weight - The font weight of the select control.\r\n * @cssprop --m3e-form-field-line-height - The line height of the select control.\r\n * @cssprop --m3e-form-field-tracking - The letter spacing of the select control.\r\n * @cssprop --m3e-select-container-shape - The corner radius of the select container.\r\n * @cssprop --m3e-select-disabled-color - The text color when the select is disabled.\r\n * @cssprop --m3e-select-disabled-color-opacity - The opacity level applied to the disabled text color.\r\n * @cssprop --m3e-select-icon-size - The size of the dropdown arrow icon.\r\n */\r\n@customElement(\"m3e-select\")\r\nexport class M3eSelectElement\r\n extends Focusable(\r\n Labelled(\r\n RequiredConstraintValidation(\r\n Dirty(\r\n Touched(\r\n Required(ConstraintValidation(FormAssociated(Disabled(AttachInternals(Role(LitElement, \"combobox\")))))),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n implements FormFieldControl\r\n{\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n outline: none;\r\n position: relative;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n min-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n border-radius: var(--m3e-select-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host(:not(:disabled)) {\r\n cursor: pointer;\r\n }\r\n :host(:disabled) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-select-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n .options {\r\n display: none;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n overflow: hidden;\r\n }\r\n .arrow-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: var(--_select-arrow-margin-top);\r\n }\r\n ::slotted([slot=\"arrow\"]),\r\n .arrow {\r\n vertical-align: middle;\r\n width: 1em;\r\n height: 1em;\r\n font-size: var(--m3e-select-icon-size, 1.5rem);\r\n }\r\n :host(:state(-open)) .focus-ring {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ static __nextId = 0;\r\n\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreKeyUp = false;\r\n /** @private */ #ignoreFocusVisible = false;\r\n\r\n /** @private */ readonly #id = `m3e-select-${M3eSelectElement.__nextId++}`;\r\n /** @private */ readonly #listId = `${this.#id}-list`;\r\n\r\n /** @private */ readonly #clickHandler = (e: Event) => this.#handleClick(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: MouseEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withTypeahead()\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n /** @private */ @query(\".focus-ring\") private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, {\r\n callback: () => {\r\n if (this.#menu) {\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n }\r\n },\r\n });\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator for single select options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether multiple options can be selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) multi = false;\r\n\r\n /**\r\n * Class or list of classes to be applied to the select's overlay panel.\r\n * @default \"\"\r\n */\r\n @property({ attribute: \"panel-class\" }) panelClass = \"\";\r\n\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n get #selected(): readonly M3eOptionElement[] {\r\n return this.#options.filter((x) => x.selected);\r\n }\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** The selected option(s). */\r\n get selected(): readonly M3eOptionElement[] {\r\n return this.options.filter((x) => x.selected);\r\n }\r\n\r\n /** The selected (enabled) value(s). */\r\n get value(): string | readonly string[] | null {\r\n const values = this.selected.filter((x) => !x.disabled).map((x) => x.value);\r\n switch (values.length) {\r\n case 0:\r\n return null;\r\n case 1:\r\n return values[0];\r\n default:\r\n return values;\r\n }\r\n }\r\n\r\n /** @inheritdoc @internal */\r\n override get [formValue]() {\r\n const values = this.value;\r\n if (Array.isArray(values)) {\r\n const data = new FormData();\r\n for (const value of values) {\r\n data.append(this.name, value);\r\n }\r\n return data;\r\n }\r\n return <string | null>values;\r\n }\r\n\r\n /** @inheritdoc */\r\n get shouldLabelFloat(): boolean {\r\n return this.selected.filter((x) => !x.isEmpty).length > 0;\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : this.clientWidth}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.closest(\"m3e-form-field\");\r\n }\r\n\r\n /** @inheritdoc */\r\n onContainerClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#toggleMenu();\r\n this.focus({ preventScroll: true });\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n const selected = this.#selected;\r\n const willChange = selected.length > 0;\r\n\r\n if (willChange) {\r\n selected.forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n this.requestUpdate();\r\n }\r\n\r\n this.#hideMenu();\r\n\r\n if (willChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n if (restoreFocus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.ariaHasPopup = \"listbox\";\r\n this.ariaExpanded = \"false\";\r\n\r\n this.addEventListener(\"click\", this.#clickHandler);\r\n this.addEventListener(\"keydown\", this.#keyDownHandler);\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.removeEventListener(\"click\", this.#clickHandler);\r\n this.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideSelectionIndicator\")) {\r\n this.#options.forEach((x) => setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this._focusRing?.attach(this);\r\n\r\n if (this.#formField && this._focusRing) {\r\n this._focusRing.style.display = \"none\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html` <m3e-focus-ring class=\"focus-ring\"></m3e-focus-ring>\r\n <div class=\"base\">\r\n <m3e-text-overflow>\r\n <slot name=\"value\">\r\n ${this.selected\r\n .filter((x) => !x.isEmpty)\r\n .map((x, i) => (i > 0 ? html`<span>, </span>${x[typeaheadLabel]()}` : x[typeaheadLabel]()))}\r\n </slot>\r\n </m3e-text-overflow>\r\n <div class=\"arrow-wrapper\" aria-hidden=\"true\">\r\n <slot name=\"arrow\">\r\n <svg class=\"arrow\" viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M480-360 280-560h400L480-360Z\" />\r\n </svg>\r\n </slot>\r\n </div>\r\n </div>\r\n <div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleMutation(): void {\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n this._options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n this.#formField?.notifyControlStateChange();\r\n if (this.#menu) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (this._options.length == 0) {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(e: Event): void {\r\n if (e.defaultPrevented || this.disabled) return;\r\n this.#toggleMenu();\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n if (!this.multi) {\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n if (this.#menu?.isOpen) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.#showMenu();\r\n }\r\n } else if (!this.#menu) {\r\n this.#ignoreKeyUp = true;\r\n this.#toggleMenu();\r\n }\r\n\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (this.multi && !this.#menu) {\r\n this.#toggleMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.multi && !this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n if (this.#ignoreKeyUp) {\r\n this.#ignoreKeyUp = false;\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n if (!this.multi) return;\r\n e.preventDefault();\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: MouseEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this.#selectOption(option);\r\n this._listKeyManager.setActiveItem(option);\r\n\r\n if (!this.multi) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.requestUpdate();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#selected.find((x) => !x.disabled) ?? this._listKeyManager.items.find((x) => !x.disabled);\r\n this._listKeyManager.setActiveItem(option);\r\n if (option) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n this.ariaExpanded = \"false\";\r\n this.removeAttribute(\"aria-controls\");\r\n this.removeAttribute(\"aria-owns\");\r\n this.requestUpdate();\r\n\r\n deleteCustomState(this, \"-open\");\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #toggleMenu(): void {\r\n if (this.disabled) return;\r\n if (this.#menu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#showMenu();\r\n }\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || this._options.length == 0) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n if (this.multi) {\r\n this.#menu.ariaMultiSelectable = \"true\";\r\n }\r\n\r\n this.#menu.id = this.#listId;\r\n\r\n if (this.panelClass) {\r\n for (const klass of this.panelClass\r\n .split(/\\s+/)\r\n .map((d) => d.trim())\r\n .filter(Boolean)) {\r\n this.#menu.classList.add(klass);\r\n }\r\n }\r\n\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n }\r\n\r\n (this.#formField ?? this).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.ariaExpanded = \"true\";\r\n this.setAttribute(\"aria-controls\", this.#listId);\r\n this.setAttribute(\"aria-owns\", this.#listId);\r\n this.#formField?.notifyControlStateChange();\r\n\r\n setTimeout(() => {\r\n this.#menu?.show(this, this.#formField?.menuAnchor);\r\n addCustomState(this, \"-open\");\r\n });\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n if (!this.#menu) return;\r\n\r\n this.#menu.hide();\r\n this.removeAttribute(\"aria-activedescendant\");\r\n deleteCustomState(this, \"-open\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement): void {\r\n this.setAttribute(\"aria-activedescendant\", option.id);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible = !this.#ignoreFocusVisible && (this.matches(\":focus-visible\") || forcedColorsActive());\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateSelectionState(clone: M3eOptionElement): void {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n }\r\n }\r\n\r\n /** @private */\r\n #selectOption(option: M3eOptionElement): void {\r\n const selected = this.multi ? !option.selected : true;\r\n if (option.selected === selected) return;\r\n\r\n option.selected = selected;\r\n this.#updateSelectionState(option);\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n if (!this.multi) {\r\n this.#selected\r\n .filter((x) => x !== option)\r\n .forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n }\r\n\r\n this.requestUpdate();\r\n this.#formField?.notifyControlStateChange();\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n } else {\r\n option.selected = !selected;\r\n this.#updateSelectionState(option);\r\n }\r\n }\r\n}\r\n\r\ninterface M3eSelectElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n}\r\n\r\nexport interface M3eSelectElement {\r\n addEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-select\": M3eSelectElement;\r\n }\r\n}\r\n"],"names":["M3eSelectElement","M3eSelectElement_1","Focusable","Labelled","RequiredConstraintValidation","Dirty","Touched","Required","ConstraintValidation","FormAssociated","Disabled","AttachInternals","Role","LitElement","constructor","super","this","_options","Array","_M3eSelectElement_clone","set","_M3eSelectElement_menu","_M3eSelectElement_ignoreKeyUp","_M3eSelectElement_ignoreFocusVisible","_M3eSelectElement_id","__nextId","_M3eSelectElement_listId","__classPrivateFieldGet","_M3eSelectElement_clickHandler","e","call","_M3eSelectElement_keyDownHandler","_M3eSelectElement_keyUpHandler","_M3eSelectElement_menuToggleHandler","_M3eSelectElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withTypeahead","onActiveItemChange","activeItem","_M3eSelectElement_instances","_M3eSelectElement_activateOption","hideSelectionIndicator","multi","panelClass","ResizeController","callback","style","minWidth","_M3eSelectElement_minMenuWidth_get","MutationController","config","childList","subtree","_M3eSelectElement_handleMutation","options","selected","filter","x","value","values","disabled","map","length","WeakMap","WeakSet","_M3eSelectElement_options_get","items","_M3eSelectElement_selected_get","formValue","isArray","data","FormData","append","name","shouldLabelFloat","isEmpty","onContainerClick","__classPrivateFieldSet","_M3eSelectElement_toggleMenu","focus","preventScroll","clear","restoreFocus","willChange","forEach","_M3eSelectElement_updateSelectionState","requestUpdate","_M3eSelectElement_hideMenu","dispatchEvent","Event","bubbles","connectedCallback","ariaHasPopup","ariaExpanded","addEventListener","disconnectedCallback","removeEventListener","update","changedProperties","has","setCustomState","firstUpdated","_changedProperties","_focusRing","attach","_M3eSelectElement_formField_get","display","render","html","i","typeaheadLabel","formField","menuAnchor","clientWidth","closest","cloneNode","added","setItems","querySelectorAll","id","indexOf","notifyControlStateChange","replaceChildren","childNodes","defaultPrevented","key","preventDefault","_M3eSelectElement_selectOption","isOpen","prefersReducedMotion","setTimeout","_M3eSelectElement_showMenu","onKeyDown","button","stopImmediatePropagation","option","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","block","behavior","ToggleEvent","oldState","_M3eSelectElement_destroyMenu","remove","undefined","removeAttribute","deleteCustomState","document","createElement","ariaMultiSelectable","klass","split","d","trim","Boolean","classList","add","overflowX","insertAdjacentElement","setAttribute","show","addCustomState","hide","focusVisible","matches","forcedColorsActive","focusRing","stateLayer","clone","composed","cancelable","styles","css","DesignToken","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","shape","corner","extraSmall","color","onSurface","__decorate","query","prototype","property","attribute","type","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.min.js","sources":["../../src/select/SelectElement.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n Labelled,\r\n ConstraintValidation,\r\n Dirty,\r\n Disabled,\r\n FormAssociated,\r\n Required,\r\n RequiredConstraintValidation,\r\n ResizeController,\r\n Touched,\r\n DesignToken,\r\n formValue,\r\n M3eFocusRingElement,\r\n scrollIntoViewIfNeeded,\r\n Role,\r\n Focusable,\r\n prefersReducedMotion,\r\n forcedColorsActive,\r\n deleteCustomState,\r\n addCustomState,\r\n setCustomState,\r\n customElement,\r\n MutationController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { ListKeyManager } from \"@m3e/web/core/a11y\";\r\n\r\nimport type { M3eFormFieldElement, FormFieldControl } from \"@m3e/web/form-field\";\r\nimport { M3eOptionElement, M3eOptionPanelElement } from \"@m3e/web/option\";\r\n\r\n/**\r\n * A form control that allows users to select a value from a set of predefined options.\r\n *\r\n * @description\r\n * The `m3e-select` component follows Material Design 3 principles and provides a comprehensive\r\n * selection interface for capturing user input. It supports both single and multiple selection modes,\r\n * customizable validation states, and accessible keyboard navigation. The component integrates seamlessly\r\n * with form field containers and dynamically positions its option list menu to ensure optimal viewport\r\n * visibility. Selection changes are communicated through standard form events, enabling predictable integration\r\n * with form submission and reactive state management systems.\r\n *\r\n * @example\r\n * The following demonstrates a `m3e-select` component wrapped in a `m3e-form-field` with a slotted label.\r\n * The label is associated with the select via the `for` and `id` attributes, ensuring accessible form semantics.\r\n * Each `m3e-option` defines an option within the dropdown.\r\n *\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"select\">Choose your favorite fruit</label>\r\n * <m3e-select id=\"select\">\r\n * <m3e-option>Apples</m3e-option>\r\n * <m3e-option>Oranges</m3e-option>\r\n * <m3e-option>Bananas</m3e-option>\r\n * <m3e-option>Grapes</m3e-option>\r\n * </m3e-select>\r\n * </m3e-form-field>\r\n * ```\r\n *\r\n * @tag m3e-select\r\n *\r\n * @slot - Renders the options of the select.\r\n * @slot arrow - Renders the dropdown arrow.\r\n * @slot value - Renders the selected value(s).\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr hide-selection-indicator - Whether to hide the selection indicator for single select options.\r\n * @attr multi - Whether multiple options can be selected.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr panel-class - Class or list of classes to be applied to the select's overlay panel.\r\n * @attr required - Whether the element is required.\r\n *\r\n * @fires input - Emitted when the selected state changes.\r\n * @fires change - Emitted when the selected state changes.\r\n *\r\n * @cssprop --m3e-form-field-font-size - The font size of the select control.\r\n * @cssprop --m3e-form-field-font-weight - The font weight of the select control.\r\n * @cssprop --m3e-form-field-line-height - The line height of the select control.\r\n * @cssprop --m3e-form-field-tracking - The letter spacing of the select control.\r\n * @cssprop --m3e-select-container-shape - The corner radius of the select container.\r\n * @cssprop --m3e-select-disabled-color - The text color when the select is disabled.\r\n * @cssprop --m3e-select-disabled-color-opacity - The opacity level applied to the disabled text color.\r\n * @cssprop --m3e-select-icon-size - The size of the dropdown arrow icon.\r\n */\r\n@customElement(\"m3e-select\")\r\nexport class M3eSelectElement\r\n extends Focusable(\r\n Labelled(\r\n RequiredConstraintValidation(\r\n Dirty(\r\n Touched(\r\n Required(ConstraintValidation(FormAssociated(Disabled(AttachInternals(Role(LitElement, \"combobox\")))))),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n implements FormFieldControl\r\n{\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n vertical-align: middle;\r\n outline: none;\r\n position: relative;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n min-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n border-radius: var(--m3e-select-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host(:not(:disabled)) {\r\n cursor: pointer;\r\n }\r\n :host(:disabled) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-select-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-select-disabled-color-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n .options {\r\n display: none;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n overflow: hidden;\r\n }\r\n .arrow-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: var(--_select-arrow-margin-top);\r\n }\r\n ::slotted([slot=\"arrow\"]),\r\n .arrow {\r\n vertical-align: middle;\r\n width: 1em;\r\n height: 1em;\r\n font-size: var(--m3e-select-icon-size, 1.5rem);\r\n }\r\n :host(:state(-open)) .focus-ring {\r\n display: none;\r\n }\r\n `;\r\n\r\n /** @private */ static __nextId = 0;\r\n\r\n /** @private */ private _options = new Array<M3eOptionElement>();\r\n /** @private */ #clone?: HTMLElement;\r\n\r\n /** @private */ #menu?: M3eOptionPanelElement;\r\n /** @private */ #ignoreKeyUp = false;\r\n /** @private */ #ignoreFocusVisible = false;\r\n\r\n /** @private */ readonly #id = `m3e-select-${M3eSelectElement.__nextId++}`;\r\n /** @private */ readonly #listId = `${this.#id}-list`;\r\n\r\n /** @private */ readonly #clickHandler = (e: Event) => this.#handleClick(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n /** @private */ readonly #menuToggleHandler = (e: ToggleEvent) => this.#handleMenuToggle(e);\r\n /** @private */ readonly #menuPointerDownHandler = (e: MouseEvent) => this.#handleMenuPointerDown(e);\r\n\r\n /** @private */ private readonly _listKeyManager = new ListKeyManager<M3eOptionElement>()\r\n .withWrap()\r\n .withHomeAndEnd()\r\n .withPageUpAndDown()\r\n .withVerticalOrientation()\r\n .withTypeahead()\r\n .onActiveItemChange(() => {\r\n if (this._listKeyManager.activeItem) {\r\n this.#activateOption(this._listKeyManager.activeItem);\r\n }\r\n });\r\n\r\n /** @private */ @query(\".focus-ring\") private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, {\r\n callback: () => {\r\n if (this.#menu) {\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n }\r\n },\r\n });\r\n\r\n new MutationController(this, {\r\n config: {\r\n childList: true,\r\n subtree: true,\r\n },\r\n callback: () => this.#handleMutation(),\r\n });\r\n }\r\n\r\n /**\r\n * Whether to hide the selection indicator for single select options.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-selection-indicator\", type: Boolean }) hideSelectionIndicator = false;\r\n\r\n /**\r\n * Whether multiple options can be selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) multi = false;\r\n\r\n /**\r\n * Class or list of classes to be applied to the select's overlay panel.\r\n * @default \"\"\r\n */\r\n @property({ attribute: \"panel-class\" }) panelClass = \"\";\r\n\r\n get #options(): readonly M3eOptionElement[] {\r\n return this._listKeyManager?.items ?? [];\r\n }\r\n\r\n get #selected(): readonly M3eOptionElement[] {\r\n return this.#options.filter((x) => x.selected);\r\n }\r\n\r\n /** The options that can be selected. */\r\n get options(): readonly M3eOptionElement[] {\r\n return this._options ?? [];\r\n }\r\n\r\n /** The selected option(s). */\r\n get selected(): readonly M3eOptionElement[] {\r\n return this.options.filter((x) => x.selected);\r\n }\r\n\r\n /** The selected (enabled) value(s). */\r\n get value(): string | readonly string[] | null {\r\n const values = this.selected.filter((x) => !x.disabled).map((x) => x.value);\r\n switch (values.length) {\r\n case 0:\r\n return null;\r\n case 1:\r\n return values[0];\r\n default:\r\n return values;\r\n }\r\n }\r\n\r\n /** @inheritdoc @internal */\r\n override get [formValue]() {\r\n const values = this.value;\r\n if (Array.isArray(values)) {\r\n const data = new FormData();\r\n for (const value of values) {\r\n data.append(this.name, value);\r\n }\r\n return data;\r\n }\r\n return <string | null>values;\r\n }\r\n\r\n /** @inheritdoc */\r\n get shouldLabelFloat(): boolean {\r\n return this.selected.filter((x) => !x.isEmpty).length > 0;\r\n }\r\n\r\n /** @private */\r\n get #minMenuWidth(): string {\r\n const formField = this.#formField;\r\n return `${formField ? formField.menuAnchor.clientWidth : this.clientWidth}px`;\r\n }\r\n\r\n /** @private */\r\n get #formField(): M3eFormFieldElement | null {\r\n return this.closest(\"m3e-form-field\");\r\n }\r\n\r\n /** @inheritdoc */\r\n onContainerClick(): void {\r\n this.#ignoreFocusVisible = true;\r\n this.#toggleMenu();\r\n this.focus({ preventScroll: true });\r\n }\r\n\r\n /**\r\n * Clears the value of the element.\r\n * @param [restoreFocus=false] Whether to restore input focus.\r\n */\r\n clear(restoreFocus = false): void {\r\n const selected = this.#selected;\r\n const willChange = selected.length > 0;\r\n\r\n if (willChange) {\r\n selected.forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n this.requestUpdate();\r\n }\r\n\r\n this.#hideMenu();\r\n\r\n if (willChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n if (restoreFocus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.ariaHasPopup = \"listbox\";\r\n this.ariaExpanded = \"false\";\r\n\r\n this.addEventListener(\"click\", this.#clickHandler);\r\n this.addEventListener(\"keydown\", this.#keyDownHandler);\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n\r\n this.#handleMutation();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.removeEventListener(\"click\", this.#clickHandler);\r\n this.removeEventListener(\"keydown\", this.#keyDownHandler);\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"hideSelectionIndicator\")) {\r\n this.#options.forEach((x) => setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this._focusRing?.attach(this);\r\n\r\n if (this.#formField && this._focusRing) {\r\n this._focusRing.style.display = \"none\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html` <m3e-focus-ring class=\"focus-ring\"></m3e-focus-ring>\r\n <div class=\"base\">\r\n <m3e-text-overflow>\r\n <slot name=\"value\">\r\n ${this.selected\r\n .filter((x) => !x.isEmpty)\r\n .map((x, i) => (i > 0 ? html`<span>, </span>${x.label}` : x.label))}\r\n </slot>\r\n </m3e-text-overflow>\r\n <div class=\"arrow-wrapper\" aria-hidden=\"true\">\r\n <slot name=\"arrow\">\r\n <svg class=\"arrow\" viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M480-360 280-560h400L480-360Z\" />\r\n </svg>\r\n </slot>\r\n </div>\r\n </div>\r\n <div class=\"options\" aria-hidden=\"true\">\r\n <slot></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleMutation(): void {\r\n this.#clone = <HTMLElement>this.cloneNode(true);\r\n\r\n const { added } = this._listKeyManager.setItems([...this.#clone.querySelectorAll(\"m3e-option\")]);\r\n added.forEach((x) => {\r\n x.id = x.id || `${this.#id}-option-${this._listKeyManager.items.indexOf(x)}`;\r\n setCustomState(x, \"-hide-selection-indicator\", this.hideSelectionIndicator);\r\n });\r\n\r\n this._options = [...this.querySelectorAll(\"m3e-option\")];\r\n\r\n this.#formField?.notifyControlStateChange();\r\n if (this.#menu) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n if (this._options.length == 0) {\r\n this.#hideMenu();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleClick(e: Event): void {\r\n if (e.defaultPrevented || this.disabled) return;\r\n this.#toggleMenu();\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n this.#ignoreFocusVisible = false;\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n if (!this.multi) {\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n if (this.#menu?.isOpen) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.#showMenu();\r\n }\r\n } else if (!this.#menu) {\r\n this.#ignoreKeyUp = true;\r\n this.#toggleMenu();\r\n }\r\n\r\n break;\r\n\r\n case \"Escape\":\r\n case \"Tab\":\r\n this.#hideMenu();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n if (this.multi && !this.#menu) {\r\n this.#toggleMenu();\r\n } else {\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n this._listKeyManager.onKeyDown(e);\r\n if (!this.multi && !this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if (e.defaultPrevented) return;\r\n\r\n if (this.#ignoreKeyUp) {\r\n this.#ignoreKeyUp = false;\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n if (!this.multi) return;\r\n e.preventDefault();\r\n if (this.#menu && this._listKeyManager.activeItem) {\r\n this.#selectOption(this._listKeyManager.activeItem);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuPointerDown(e: MouseEvent): void {\r\n if (e.button === 2) return;\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const option = <M3eOptionElement | undefined>(\r\n e.composedPath().find((x) => x instanceof HTMLElement && x.tagName === \"M3E-OPTION\")\r\n );\r\n\r\n if (option && !option.disabled) {\r\n this.#selectOption(option);\r\n this._listKeyManager.setActiveItem(option);\r\n\r\n if (!this.multi) {\r\n if (!prefersReducedMotion()) {\r\n setTimeout(() => this.#hideMenu(), 150);\r\n } else {\r\n this.#hideMenu();\r\n }\r\n } else {\r\n this.requestUpdate();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleMenuToggle(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n if (e.newState !== \"closed\") {\r\n const option = this.#selected.find((x) => !x.disabled) ?? this._listKeyManager.items.find((x) => !x.disabled);\r\n this._listKeyManager.setActiveItem(option);\r\n if (option) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n }\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n } else {\r\n if (prefersReducedMotion()) {\r\n this.#destroyMenu(e);\r\n } else {\r\n // NOTE: use transitionend is preferred but doesn't fire when used here.\r\n // This is a workaround until that is fixed.\r\n setTimeout(() => this.#destroyMenu(e), 100);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyMenu(e: ToggleEvent): void {\r\n if (!this.#menu) return;\r\n\r\n this.#clone?.replaceChildren(...this.#menu.childNodes);\r\n this.#menu.remove();\r\n this.#menu.removeEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.removeEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n this.#menu = undefined;\r\n\r\n this.ariaExpanded = \"false\";\r\n this.removeAttribute(\"aria-controls\");\r\n this.removeAttribute(\"aria-owns\");\r\n this.requestUpdate();\r\n\r\n deleteCustomState(this, \"-open\");\r\n this.#formField?.notifyControlStateChange();\r\n\r\n this.dispatchEvent(\r\n new ToggleEvent(\"toggle\", {\r\n oldState: e.oldState,\r\n newState: e.newState,\r\n }),\r\n );\r\n }\r\n\r\n /** @private */\r\n #toggleMenu(): void {\r\n if (this.disabled) return;\r\n if (this.#menu) {\r\n this.#hideMenu();\r\n } else {\r\n this.#showMenu();\r\n }\r\n }\r\n\r\n /** @private */\r\n #showMenu(): void {\r\n if (this.#menu || this._options.length == 0) return;\r\n\r\n this.#menu = document.createElement(\"m3e-option-panel\");\r\n if (this.multi) {\r\n this.#menu.ariaMultiSelectable = \"true\";\r\n }\r\n\r\n this.#menu.id = this.#listId;\r\n\r\n if (this.panelClass) {\r\n for (const klass of this.panelClass\r\n .split(/\\s+/)\r\n .map((d) => d.trim())\r\n .filter(Boolean)) {\r\n this.#menu.classList.add(klass);\r\n }\r\n }\r\n\r\n this.#menu.style.overflowX = \"hidden\";\r\n this.#menu.style.minWidth = this.#minMenuWidth;\r\n this.#menu.addEventListener(\"toggle\", this.#menuToggleHandler);\r\n this.#menu.addEventListener(\"pointerdown\", this.#menuPointerDownHandler);\r\n\r\n if (this.#clone) {\r\n this.#menu.replaceChildren(...this.#clone.childNodes);\r\n }\r\n\r\n (this.#formField ?? this).insertAdjacentElement(\"afterend\", this.#menu);\r\n\r\n this.ariaExpanded = \"true\";\r\n this.setAttribute(\"aria-controls\", this.#listId);\r\n this.setAttribute(\"aria-owns\", this.#listId);\r\n this.#formField?.notifyControlStateChange();\r\n\r\n setTimeout(() => {\r\n this.#menu?.show(this, this.#formField?.menuAnchor);\r\n addCustomState(this, \"-open\");\r\n });\r\n }\r\n\r\n /** @private */\r\n #hideMenu(): void {\r\n if (!this.#menu) return;\r\n\r\n this.#menu.hide();\r\n this.removeAttribute(\"aria-activedescendant\");\r\n deleteCustomState(this, \"-open\");\r\n }\r\n\r\n /** @private */\r\n #activateOption(option: M3eOptionElement): void {\r\n this.setAttribute(\"aria-activedescendant\", option.id);\r\n if (this.#menu) {\r\n scrollIntoViewIfNeeded(option, this.#menu, { block: \"nearest\", behavior: \"instant\" });\r\n\r\n const focusVisible = !this.#ignoreFocusVisible && (this.matches(\":focus-visible\") || forcedColorsActive());\r\n\r\n this.#options.forEach((x) => {\r\n const active = x === option && focusVisible;\r\n if (active) {\r\n x.focusRing?.show();\r\n x.stateLayer?.show(\"focused\");\r\n } else {\r\n x.focusRing?.hide();\r\n x.stateLayer?.hide(\"focused\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateSelectionState(clone: M3eOptionElement): void {\r\n const option = this._options[this._listKeyManager.items.indexOf(clone)];\r\n if (option) {\r\n option.selected = clone.selected;\r\n }\r\n }\r\n\r\n /** @private */\r\n #selectOption(option: M3eOptionElement): void {\r\n const selected = this.multi ? !option.selected : true;\r\n if (option.selected === selected) return;\r\n\r\n option.selected = selected;\r\n this.#updateSelectionState(option);\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n if (!this.multi) {\r\n this.#selected\r\n .filter((x) => x !== option)\r\n .forEach((x) => {\r\n x.selected = false;\r\n this.#updateSelectionState(x);\r\n });\r\n }\r\n\r\n this.requestUpdate();\r\n this.#formField?.notifyControlStateChange();\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n } else {\r\n option.selected = !selected;\r\n this.#updateSelectionState(option);\r\n }\r\n }\r\n}\r\n\r\ninterface M3eSelectElementEventMap extends HTMLElementEventMap {\r\n toggle: ToggleEvent;\r\n}\r\n\r\nexport interface M3eSelectElement {\r\n addEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eSelectElementEventMap>(\r\n type: K,\r\n listener: (this: M3eSelectElement, ev: M3eSelectElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-select\": M3eSelectElement;\r\n }\r\n}\r\n"],"names":["M3eSelectElement","M3eSelectElement_1","Focusable","Labelled","RequiredConstraintValidation","Dirty","Touched","Required","ConstraintValidation","FormAssociated","Disabled","AttachInternals","Role","LitElement","constructor","super","this","_options","Array","_M3eSelectElement_clone","set","_M3eSelectElement_menu","_M3eSelectElement_ignoreKeyUp","_M3eSelectElement_ignoreFocusVisible","_M3eSelectElement_id","__nextId","_M3eSelectElement_listId","__classPrivateFieldGet","_M3eSelectElement_clickHandler","e","call","_M3eSelectElement_keyDownHandler","_M3eSelectElement_keyUpHandler","_M3eSelectElement_menuToggleHandler","_M3eSelectElement_menuPointerDownHandler","_listKeyManager","ListKeyManager","withWrap","withHomeAndEnd","withPageUpAndDown","withVerticalOrientation","withTypeahead","onActiveItemChange","activeItem","_M3eSelectElement_instances","_M3eSelectElement_activateOption","hideSelectionIndicator","multi","panelClass","ResizeController","callback","style","minWidth","_M3eSelectElement_minMenuWidth_get","MutationController","config","childList","subtree","_M3eSelectElement_handleMutation","options","selected","filter","x","value","values","disabled","map","length","WeakMap","WeakSet","_M3eSelectElement_options_get","items","_M3eSelectElement_selected_get","formValue","isArray","data","FormData","append","name","shouldLabelFloat","isEmpty","onContainerClick","__classPrivateFieldSet","_M3eSelectElement_toggleMenu","focus","preventScroll","clear","restoreFocus","willChange","forEach","_M3eSelectElement_updateSelectionState","requestUpdate","_M3eSelectElement_hideMenu","dispatchEvent","Event","bubbles","connectedCallback","ariaHasPopup","ariaExpanded","addEventListener","disconnectedCallback","removeEventListener","update","changedProperties","has","setCustomState","firstUpdated","_changedProperties","_focusRing","attach","_M3eSelectElement_formField_get","display","render","html","i","label","formField","menuAnchor","clientWidth","closest","cloneNode","added","setItems","querySelectorAll","id","indexOf","notifyControlStateChange","replaceChildren","childNodes","defaultPrevented","key","preventDefault","_M3eSelectElement_selectOption","isOpen","prefersReducedMotion","setTimeout","_M3eSelectElement_showMenu","onKeyDown","button","stopImmediatePropagation","option","composedPath","find","HTMLElement","tagName","setActiveItem","newState","scrollIntoViewIfNeeded","block","behavior","ToggleEvent","oldState","_M3eSelectElement_destroyMenu","remove","undefined","removeAttribute","deleteCustomState","document","createElement","ariaMultiSelectable","klass","split","d","trim","Boolean","classList","add","overflowX","insertAdjacentElement","setAttribute","show","addCustomState","hide","focusVisible","matches","forcedColorsActive","focusRing","stateLayer","clone","composed","cancelable","styles","css","DesignToken","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","shape","corner","extraSmall","color","onSurface","__decorate","query","prototype","property","attribute","type","customElement"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteElement.d.ts","sourceRoot":"","sources":["../../../src/autocomplete/AutocompleteElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAgB5E,OAAO,EAAsB,gBAAgB,EAAyB,MAAM,iBAAiB,CAAC;AAG9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBACa,sBAAuB,SAAQ,2BAAmB;;IAC7D,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAOpC;IAEF,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAK;IAI5C,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAiC;IAmBjE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAU3C;;IAcL;;;OAGG;IACiE,sBAAsB,UAAS;IAEnG;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACsD,YAAY,UAAS;IAE9E;;;OAGG;IACuD,aAAa,UAAS;IAEhF;;;OAGG;IAYH,MAAM,EAAE,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAc;IAEpG;;;OAGG;IAC0B,OAAO,UAAS;IAE7C;;;OAGG;IACqD,UAAU,UAAS;IAE3E;;;OAGG;IACqD,WAAW,UAAS;IAE5E;;;OAGG;IACuC,YAAY,SAAgB;IAEtE;;;OAGG;IACuC,WAAW,SAAgB;IAErE;;;OAGG;IACuC,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CACvE;IAErB;;;OAGG;IACqC,UAAU,SAAM;IAExD,wCAAwC;IACxC,IAAI,OAAO,IAAI,SAAS,gBAAgB,EAAE,CAEzC;IA0CD,kBAAkB;IACT,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAoB3C,kBAAkB;IACT,MAAM,IAAI,IAAI;IAkBvB;;;OAGG;IACH,KAAK,CAAC,YAAY,UAAQ,GAAG,IAAI;IAajC,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAKlC,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2BxE,kBAAkB;cACC,MAAM,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"AutocompleteElement.d.ts","sourceRoot":"","sources":["../../../src/autocomplete/AutocompleteElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardElement.d.ts","sourceRoot":"","sources":["../../../src/card/CardElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAqBvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuHG;AACH,qBACa,cAAe,SAAQ,mBAEnC;;IACC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAAiC;IAEvE,eAAe,CAAiB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAc;IACrE,eAAe,CAAsB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACvF,eAAe,CAAuB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACxF,eAAe,CAAwB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAuB;IAC3F,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;;IAiB9E;;;OAGG;
|
|
1
|
+
{"version":3,"file":"CardElement.d.ts","sourceRoot":"","sources":["../../../src/card/CardElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAqBvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuHG;AACH,qBACa,cAAe,SAAQ,mBAEnC;;IACC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAAiC;IAEvE,eAAe,CAAiB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAc;IACrE,eAAe,CAAsB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACvF,eAAe,CAAuB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACxF,eAAe,CAAwB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAuB;IAC3F,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;;IAiB9E;;;OAGG;IACyC,MAAM,UAAS;IAE3D;;;OAGG;IACyC,UAAU,UAAS;IAE/D;;;OAGG;IAC0B,OAAO,EAAE,WAAW,CAAY;IAE7D;;;OAGG;IAC0B,WAAW,EAAE,eAAe,CAAc;IAEvE,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAUlC,kBAAkB;IACT,oBAAoB,IAAI,IAAI;IAOrC,kBAAkB;cACC,MAAM,IAAI,OAAO;IAmEpC,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAU/E,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;CAezE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionElement.d.ts","sourceRoot":"","sources":["../../../src/option/OptionElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGvF,OAAO,EAML,mBAAmB,EAEnB,oBAAoB,EAIpB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,gBAAiB,SAAQ,qBAA+D;;IACnG,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA2HpC;IAKF,gBAAgB,CAAuB,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChF,gBAAgB,CAAwB,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IACnF,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;IAE9E,qDAAqD;IACrD,IAAgB,KAAK,IAGJ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED;;;OAGG;IACS,IAAI,SAAM;IAEtB;;;OAGG;IACwC,aAAa,EAAE,iBAAiB,CAAc;IAEzF;;;OAGG;IAC0D,gBAAgB,UAAS;IAEtF,uCAAuC;IACvC,IAAI,KAAK,WAER;IAED,gBAAgB;IAChB,CAAC,cAAc,CAAC,IAAI,MAAM;IAI1B,qDAAqD;IACrD,IAAI,OAAO,YAEV;IAED,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAKlC,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/E,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAexE,kBAAkB;IACT,MAAM,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"OptionElement.d.ts","sourceRoot":"","sources":["../../../src/option/OptionElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGvF,OAAO,EAML,mBAAmB,EAEnB,oBAAoB,EAIpB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,gBAAiB,SAAQ,qBAA+D;;IACnG,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA2HpC;IAKF,gBAAgB,CAAuB,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChF,gBAAgB,CAAwB,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IACnF,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;IAE9E,qDAAqD;IACrD,IAAgB,KAAK,IAGJ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED;;;OAGG;IACS,IAAI,SAAM;IAEtB;;;OAGG;IACwC,aAAa,EAAE,iBAAiB,CAAc;IAEzF;;;OAGG;IAC0D,gBAAgB,UAAS;IAEtF,uCAAuC;IACvC,IAAI,KAAK,WAER;IAED,gBAAgB;IAChB,CAAC,cAAc,CAAC,IAAI,MAAM;IAI1B,qDAAqD;IACrD,IAAI,OAAO,YAEV;IAED,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAKlC,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/E,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAexE,kBAAkB;IACT,MAAM,IAAI,OAAO;CA8B3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
|
@@ -152,7 +152,7 @@ export declare class M3ePaginatorElement extends M3ePaginatorElement_base {
|
|
|
152
152
|
/** Move to the last page. */
|
|
153
153
|
lastPage(): void;
|
|
154
154
|
/** @inheritdoc */
|
|
155
|
-
protected
|
|
155
|
+
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
156
156
|
/** @inheritdoc */
|
|
157
157
|
protected render(): unknown;
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginatorElement.d.ts","sourceRoot":"","sources":["../../../src/paginator/PaginatorElement.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAE,MAAM,KAAK,CAAC;AAKrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AACzB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,mBAAoB,SAAQ,wBAAiD;;IACxF,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA+DpC;IAEa,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAK;IAe3C;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACkD,SAAS,SAAK;IAEnE;;;OAGG;IACyB,MAAM,SAAK;IAEvC;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAM;IAE9B;;;OAGG;IACoC,SAAS,SAAoB;IAEpE;;;OAGG;IACsE,YAAY,UAAS;IAE9F;;;OAGG;IACgE,oBAAoB,UAAS;IAEhG;;;OAGG;IAC8C,iBAAiB,SAAqB;IAEvF;;;OAGG;IAC6C,iBAAiB,SAAmB;IAEpF;;;OAGG;IACyC,aAAa,SAAe;IAExE;;;OAGG;IAC0C,cAAc,SAAgB;IAE3E;;;OAGG;IACyC,aAAa,SAAe;IAExE;;;OAGG;IAC2C,eAAe,EAAE,gBAAgB,CAAc;IAE7F,iCAAiC;IACjC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,gDAAgD;IAChD,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,4CAA4C;IAC5C,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAE9F,8BAA8B;IAC9B,SAAS,IAAI,IAAI;IAQjB,iCAAiC;IACjC,YAAY,IAAI,IAAI;IAQpB,6BAA6B;IAC7B,QAAQ,IAAI,IAAI;IAQhB,6BAA6B;IAC7B,QAAQ,IAAI,IAAI;IAQhB,kBAAkB;cACC,
|
|
1
|
+
{"version":3,"file":"PaginatorElement.d.ts","sourceRoot":"","sources":["../../../src/paginator/PaginatorElement.ts"],"names":[],"mappings":"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"}
|