@aquera/nile-elements 2.0.18 → 2.0.19

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.
Files changed (60) hide show
  1. package/README.md +5 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +404 -385
  5. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
  6. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
  7. package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +2 -2
  8. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  9. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  10. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js +1 -1
  11. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js.map +1 -1
  12. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.esm.js +14 -2
  13. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +4 -4
  14. package/dist/nile-select/index.cjs.js +1 -1
  15. package/dist/nile-select/index.esm.js +1 -1
  16. package/dist/nile-select/nile-select.cjs.js +2 -2
  17. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  18. package/dist/nile-select/nile-select.esm.js +1 -1
  19. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  20. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  21. package/dist/nile-select/virtual-scroll-helper.esm.js +48 -47
  22. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +4 -4
  23. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  24. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  25. package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +7 -0
  26. package/dist/src/nile-breadcrumb/nile-breadcrumb.js +24 -1
  27. package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
  28. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +51 -0
  29. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -1
  30. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js +12 -0
  31. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js.map +1 -1
  32. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +5 -0
  33. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +9 -0
  34. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  35. package/dist/src/nile-select/nile-select.d.ts +1 -0
  36. package/dist/src/nile-select/nile-select.js +16 -1
  37. package/dist/src/nile-select/nile-select.js.map +1 -1
  38. package/dist/src/nile-select/nile-select.test.js +430 -5
  39. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  40. package/dist/src/nile-select/virtual-scroll-helper.js +7 -4
  41. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  42. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +3 -1
  43. package/dist/src/nile-virtual-select/nile-virtual-select.js +14 -6
  44. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  45. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +115 -1
  46. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  47. package/dist/src/version.js +1 -1
  48. package/dist/src/version.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +57 -0
  52. package/src/nile-breadcrumb/nile-breadcrumb.ts +19 -0
  53. package/src/nile-breadcrumb-item/nile-breadcrumb-item.css.ts +12 -0
  54. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +7 -0
  55. package/src/nile-select/nile-select.test.ts +560 -5
  56. package/src/nile-select/nile-select.ts +21 -1
  57. package/src/nile-select/virtual-scroll-helper.ts +7 -4
  58. package/src/nile-virtual-select/nile-virtual-select.test.ts +139 -1
  59. package/src/nile-virtual-select/nile-virtual-select.ts +17 -6
  60. package/vscode-html-custom-data.json +39 -14
@@ -1 +1 @@
1
- {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/lit-html/async-directive.js","../../../../node_modules/lit-html/directive-helpers.js","../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{AsyncDirective as t}from\"lit-html/async-directive.js\";import{directive as s}from\"lit-html/directive.js\";import{isServer as i}from\"lit-html/is-server.js\";class h{constructor(t,{target:s,config:h,callback:e,skipInitial:r}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==s&&this.t.add(s??t),this.l=h,this.o=r??this.o,this.callback=e,i||(window.ResizeObserver?(this.u=new ResizeObserver(t=>{this.handleChanges(t),this.h.requestUpdate()}),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}unobserve(t){this.t.delete(t),this.u.unobserve(t)}disconnect(){this.u.disconnect()}target(t){return e(this,t)}}const e=s(class extends t{constructor(){super(...arguments),this.observing=!1}render(t,s){}update(t,[s,i]){this.controller=s,this.part=t,this.observe=i,!1===i?(s.unobserve(t.element),this.observing=!1):!1===this.observing&&(s.observe(t.element),this.observing=!0)}disconnected(){this.controller?.unobserve(this.part.element),this.observing=!1}reconnected(){!1!==this.observe&&!1===this.observing&&(this.controller?.observe(this.part.element),this.observing=!0)}});export{h as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-lite-tooltip/nile-lite-tooltip';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { KeyCode } from '../internal/enum';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n\n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Re-runs the fitted-chip layout when the control's own width changes. */\n @property({ type: Boolean, attribute: true, reflect: true }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /**\n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n private _maxOptionsVisible = 3;\n\n private maxOptionsVisibleExplicit = false;\n\n @property({ attribute: 'max-options-visible', type: Number })\n get maxOptionsVisible(): number {\n return this._maxOptionsVisible;\n }\n\n set maxOptionsVisible(value: number) {\n const previous = this._maxOptionsVisible;\n this._maxOptionsVisible = value;\n // Any assignment opts this instance out of automatic chip fitting.\n this.maxOptionsVisibleExplicit = true;\n this.requestUpdate('maxOptionsVisible', previous);\n }\n\n private get chipFittingEnabled(): boolean {\n return !!this.multiple && this.showTooltip && !this.maxOptionsVisibleExplicit;\n }\n\n private get legacyTagFitEnabled(): boolean {\n return !!this.multiple && !this.showTooltip;\n }\n\n private setFittedMaxOptionsVisible(value: number): void {\n const previous = this._maxOptionsVisible;\n this._maxOptionsVisible = value;\n this.requestUpdate('maxOptionsVisible', previous);\n }\n\n /** Minimum width, in px, of a squeezed chip. Needs `showtooltip`. */\n @property({ type: Number, attribute: true }) chipMinWidth = 110;\n\n /** Maximum width, in px, of a squeezed chip. Needs `showtooltip`. */\n @property({ type: Number, attribute: true }) chipMaxWidth = 180;\n\n /**\n * Opts into the fitted chip row: chips are sized between chipMinWidth and chipMaxWidth, the\n * rest collapse into a +N button, and a clipped chip shows its full value in a tooltip.\n * Off by default, which keeps the pre-2.0.9 chip row.\n */\n @property({ type: Boolean, attribute: true, reflect: true }) showTooltip = false;\n\n\n @state() private hiddenChipCount = 0;\n @state() oldMaxOptionsVisible: number = 1;\n\n /** Last measured width of the overflow button, in px. */\n private lastOverflowWidth = 0;\n\n private chipFitFrame = 0;\n private lastChipLayout = { hidden: -1, visible: -1 };\n @state() private clippedChips: boolean[] = [];\n private clipFrame = 0;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n /** Legacy: hide the option checkbox (the \"Show Selected\" footer is kept). */\n @property({ type: Boolean, reflect: true }) legacy = false;\n\n /** Variant: show a tick on the right of the selected option (single-select). */\n @property({ type: Boolean, reflect: true, attribute: true }) tickOnSelect = false;\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n\n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n this.destroyChipFit();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (\n changedProperties.has('autoResize') ||\n changedProperties.has('multiple') ||\n changedProperties.has('maxOptionsVisible') ||\n changedProperties.has('showTooltip')\n ) {\n this.setupResizeObserver();\n }\n if (\n changedProperties.has('showTooltip') &&\n changedProperties.get('showTooltip') !== undefined &&\n this.legacyTagFitEnabled\n ) {\n this.calculateTotalWidthOfTags();\n }\n if (\n changedProperties.has('chipMinWidth') ||\n changedProperties.has('chipMaxWidth')\n ) {\n this.destroyChipFit();\n }\n if (this.chipFittingEnabled) {\n this.calculateTotalWidthOfTags();\n }\n if (this.multiple && this.showTooltip) {\n this.scheduleClipCheck();\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemDescription(item: any): string {\n if (this.renderItemConfig?.getDescription) {\n return this.renderItemConfig.getDescription(item);\n }\n return item?.description || item || '';\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemPrefix(item: any): string {\n if (this.renderItemConfig?.getPrefix) {\n return this.renderItemConfig.getPrefix(item);\n }\n return item?.prefix || item || '';\n }\n\n /**\n * Get suffix for an item using renderItemConfig or fallback to item.suffix\n */\n private getItemSuffix(item: any): string {\n if (this.renderItemConfig?.getSuffix) {\n return this.renderItemConfig.getSuffix(item);\n }\n return item?.suffix || item || '';\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n\n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n\n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n\n\n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return;\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return;\n\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private observedTagsContainer?: Element;\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n const isOverflowButton = path.some(\n el =>\n el instanceof HTMLButtonElement &&\n el.classList.contains('select__tags-count')\n );\n return this.disabled || isIconButton || isOverflowButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n\n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n\n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n\n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value,\n itemsToSearch,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue,\n this.allowHtmlLabel\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n\n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n\n this.emit('nile-search', {\n query: this.searchValue,\n name: this.name\n });\n\n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n\n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n\n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n\n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.getItemDescription.bind(this),\n this.descriptionSearchEnabled,\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n\n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n\n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n\n this.popup.active = true;\n\n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n\n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n\n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n\n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean,\n hasClearIcon: boolean,\n isPlaceholderVisible: boolean,\n hasHelpText: boolean,\n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderFittedTags(): TemplateResult {\n return html`\n <div part=\"tags\" class=\"select__tags select__tags--fitted\">\n ${this.selectedOptions.map((option, index) => {\n const label = this.getChipLabel(option);\n return html`\n <nile-lite-tooltip\n class=\"select__tag-tip\"\n .content=${label}\n ?disabled=${this.chipTooltipDisabled(index)}\n >\n <nile-tag\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base,\n prefix:tag__prefix,\n prefix_content_wrapper:tag__prefix_content_wrapper\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n tabindex=\"0\"\n aria-label=${`${label}. Press Backspace or Delete to remove.`}\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n @keydown=${(event: KeyboardEvent) =>\n this.handleChipKeyDown(event, option)}\n >\n ${label}\n </nile-tag>\n </nile-lite-tooltip>\n `;\n })}\n ${this.hiddenChipCount > 0\n ? html`<button\n type=\"button\"\n class=\"select__tags-count\"\n ?disabled=${this.disabled}\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-label=${`${this.hiddenChipCount} more selected`}\n @click=${this.handleOverflowActivate}\n @keydown=${this.handleOverflowKeyDown}\n >+${this.hiddenChipCount}</button\n >`\n : ''}\n </div>\n `;\n }\n\n private renderTags(): TemplateResult {\n if (this.chipFittingEnabled) {\n return this.renderFittedTags();\n }\n\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n return this.showTooltip\n ? html`<nile-lite-tooltip\n class=\"select__tag-tip\"\n .content=${option.getTextLabel()}\n ?disabled=${this.chipTooltipDisabled(index)}\n >${this.renderLegacyTag(option, index)}</nile-lite-tooltip\n >`\n : this.renderLegacyTag(option, index);\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderLegacyTag(option: VirtualOption, index: number): TemplateResult {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n style=${ifDefined(\n this.showTooltip ? `max-width:${this.chipMaxWidth}px` : undefined\n )}\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n\n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n\n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=${classMap({\n 'select__footer': true,\n loading: !!this.loading,\n 'select__footer--query': !this.noWidthSync || this.portal,\n })}\n @click=\"${this.handleFooterClick}\"\n >\n <span\n class=\"select__footer-action\"\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n title=\"Show selected\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n <span class=\"select__footer-label\">Selected</span></nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n title=\"Clear\"\n >\n <nile-glyph\n class=\"select__footer-glyph\"\n name=\"ng-eraser\"\n size=\"16\"\n method=\"var(--nile-svg-method-stroke, var(--ng-svg-method-stroke))\"\n color=\"var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700))\"\n ></nile-glyph\n ><span class=\"select__footer-label\">Clear</span>\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.renderItemConfig?.getDescription,\n this.renderItemConfig?.getPrefix,\n this.renderItemConfig?.getSuffix,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this),\n this.allowHtmlLabel,\n this.enableDescription,\n this.tickOnSelect,\n this.legacy\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private setupResizeObserver(): void {\n const wanted =\n this.autoResize && (this.chipFittingEnabled || this.legacyTagFitEnabled)\n ? (this.shadowRoot?.querySelector('.select__tags') as HTMLElement | null) ??\n undefined\n : undefined;\n\n if (wanted === this.observedTagsContainer) {\n if (!this.chipFittingEnabled) this.destroyChipFit();\n return;\n }\n\n if (this.observedTagsContainer) {\n this.resizeController.unobserve(this.observedTagsContainer);\n this.observedTagsContainer = undefined;\n }\n\n if (wanted) {\n this.resizeController.observe(wanted);\n this.observedTagsContainer = wanted;\n return;\n }\n\n if (!this.chipFittingEnabled) {\n this.destroyChipFit();\n }\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.legacyTagFitEnabled) {\n this.fitTagsLegacy();\n return;\n }\n if (!this.chipFittingEnabled) return;\n\n if (this.chipFitFrame) cancelAnimationFrame(this.chipFitFrame);\n this.chipFitFrame = requestAnimationFrame(() => {\n this.chipFitFrame = 0;\n this.layoutChips();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private fitTagsLegacy(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.setFittedMaxOptionsVisible(Infinity);\n setTimeout(() => {\n const widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.setFittedMaxOptionsVisible(lastindex);\n }, 1);\n }\n\n private allocateChipWidths(\n natural: number[],\n available: number\n ): number[] | null {\n const min = this.chipMinWidth;\n const max = this.chipMaxWidth;\n const total = natural.reduce((sum, w) => sum + w, 0);\n\n if (total <= available) {\n return natural.slice();\n }\n\n // Nothing reveals a truncated value without a tooltip, so chips keep their\n // natural width and the surplus moves into the +N button instead.\n if (!this.showTooltip) return null;\n\n const capped = natural.map(w => Math.min(w, max));\n const cappedTotal = capped.reduce((sum, w) => sum + w, 0);\n if (cappedTotal <= available) {\n return capped;\n }\n\n const widths = new Array<number>(natural.length).fill(0);\n let pool = capped.map((_, i) => i);\n let remaining = available;\n\n for (;;) {\n if (pool.length === 0) break;\n const share = remaining / pool.length;\n const settled = pool.filter(i => capped[i] <= share);\n if (settled.length === 0) break;\n for (const i of settled) {\n widths[i] = capped[i];\n remaining -= capped[i];\n }\n pool = pool.filter(i => capped[i] > share);\n }\n\n if (pool.length > 0) {\n const share = remaining / pool.length;\n\n if (share < min) {\n return null;\n }\n\n const width = Math.floor(share);\n for (const i of pool) {\n widths[i] = width;\n }\n }\n\n return widths;\n }\n\n private computeChipFit(\n natural: number[],\n available: number,\n overflowWidth: number,\n gap: number\n ): { visibleCount: number; widths: number[]; hiddenCount: number } {\n const total = natural.length;\n\n if (total === 0) {\n return { visibleCount: 0, widths: [], hiddenCount: 0 };\n }\n\n for (let count = total; count >= 1; count--) {\n const hidden = total - count;\n const reserved = hidden > 0 ? overflowWidth + gap : 0;\n const row = available - reserved - gap * (count - 1);\n\n if (row <= 0) continue;\n\n const widths = this.allocateChipWidths(natural.slice(0, count), row);\n if (widths) {\n return { visibleCount: count, widths, hiddenCount: hidden };\n }\n }\n\n const room = available - overflowWidth - gap;\n const fallback = Math.max(\n 0,\n // A single chip too wide for the row has to be clipped either way; only\n // the tooltip variant squeezes it to chipMinWidth.\n Math.min(natural[0], this.showTooltip ? Math.max(this.chipMinWidth, room) : room)\n );\n return { visibleCount: 1, widths: [fallback], hiddenCount: total - 1 };\n }\n\n private layoutChips(): void {\n const root = this.shadowRoot;\n if (!root) return;\n\n const container = root.querySelector('.select__tags') as HTMLElement | null;\n if (!container) return;\n\n const chips = Array.from(\n container.querySelectorAll('nile-tag')\n ) as HTMLElement[];\n if (chips.length === 0) {\n this.hiddenChipCount = 0;\n return;\n }\n\n const overflowEl = container.querySelector(\n '.select__tags-count'\n ) as HTMLElement | null;\n\n for (const chip of chips) {\n chip.style.display = '';\n chip.style.width = 'auto';\n chip.style.maxWidth = 'none';\n chip.style.minWidth = '0';\n chip.style.flex = '0 0 auto';\n }\n const natural = chips.map(chip =>\n Math.ceil(chip.getBoundingClientRect().width)\n );\n // Not rendered yet on the pass that first finds an overflow; reuse the last width.\n const overflowWidth = overflowEl\n ? Math.ceil(overflowEl.getBoundingClientRect().width)\n : this.lastOverflowWidth;\n if (overflowEl) this.lastOverflowWidth = overflowWidth;\n\n const containerStyles = getComputedStyle(container);\n const gap =\n parseFloat(containerStyles.columnGap || containerStyles.gap || '0') || 0;\n\n const fit = this.computeChipFit(\n natural,\n container.clientWidth,\n overflowWidth,\n gap\n );\n\n chips.forEach((chip, index) => {\n if (index < fit.visibleCount) {\n // Never squeeze a chip below chipMinWidth: narrower than that it is\n // also narrower than the tag's own box - the label is already at zero\n // while the remove button is fixed - so the box overflows the chip and\n // paints the X over the next chip or the +N button. A chip whose\n // natural width is already smaller is left alone, not padded out.\n const width = Math.min(\n natural[index],\n Math.max(fit.widths[index], this.chipMinWidth)\n );\n chip.style.display = '';\n chip.style.width = `${width}px`;\n chip.style.maxWidth = `${width}px`;\n chip.style.flex = '0 0 auto';\n } else {\n chip.style.display = 'none';\n }\n });\n\n if (\n this.lastChipLayout.hidden !== fit.hiddenCount ||\n this.lastChipLayout.visible !== fit.visibleCount\n ) {\n this.lastChipLayout = {\n hidden: fit.hiddenCount,\n visible: fit.visibleCount\n };\n this.hiddenChipCount = fit.hiddenCount;\n }\n\n this.refreshClippedChips();\n }\n\n private labelOverflows(content: HTMLSlotElement): boolean {\n let left = Infinity;\n let right = -Infinity;\n const range = document.createRange();\n for (const node of content.assignedNodes({ flatten: true })) {\n let rect: DOMRect;\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent?.trim()) continue;\n range.selectNodeContents(node);\n rect = range.getBoundingClientRect();\n } else if (node instanceof Element) {\n rect = node.getBoundingClientRect();\n } else {\n continue;\n }\n if (rect.width === 0) continue;\n left = Math.min(left, rect.left);\n right = Math.max(right, rect.right);\n }\n if (right < left) return false;\n\n const box = content.getBoundingClientRect();\n const styles = getComputedStyle(content);\n const boxLeft = box.left + parseFloat(styles.borderLeftWidth) + parseFloat(styles.paddingLeft);\n const boxRight = box.right - parseFloat(styles.borderRightWidth) - parseFloat(styles.paddingRight);\n const epsilon = 1 / 64;\n return right > boxRight + epsilon || left < boxLeft - epsilon;\n }\n\n private isChipClipped(el: HTMLElement | null | undefined): boolean {\n if (!el) return false;\n\n const root = el.shadowRoot;\n if (root) {\n const content = root.querySelector(\n '[part=\"content\"]'\n ) as HTMLSlotElement | null;\n if (content && this.labelOverflows(content)) return true;\n\n const inner = root.querySelector(\n '[part=\"prefix_content_wrapper\"]'\n ) as HTMLElement | null;\n if (inner && inner.scrollWidth > inner.clientWidth + 1) return true;\n }\n\n return el.scrollWidth > el.clientWidth + 1;\n }\n\n private refreshClippedChips(): void {\n if (!this.multiple) return;\n\n const root = this.shadowRoot;\n if (!root) return;\n\n const chips = Array.from(\n root.querySelectorAll('.select__tags nile-tag')\n ) as HTMLElement[];\n\n const next = chips.map(chip => this.isChipClipped(chip));\n\n const same =\n next.length === this.clippedChips.length &&\n next.every((v, i) => v === this.clippedChips[i]);\n\n if (!same) {\n this.clippedChips = next;\n }\n }\n\n private scheduleClipCheck(): void {\n if (this.clipFrame) cancelAnimationFrame(this.clipFrame);\n this.clipFrame = requestAnimationFrame(() => {\n this.clipFrame = 0;\n this.refreshClippedChips();\n });\n }\n\n /** A chip gets a tooltip only while its text is measured as clipped. */\n private chipTooltipDisabled(index: number): boolean {\n return !this.showTooltip || !(this.clippedChips[index] ?? false);\n }\n\n private destroyChipFit(): void {\n if (this.chipFitFrame) cancelAnimationFrame(this.chipFitFrame);\n this.chipFitFrame = 0;\n if (this.clipFrame) cancelAnimationFrame(this.clipFrame);\n this.clipFrame = 0;\n this.lastChipLayout = { hidden: -1, visible: -1 };\n }\n\n private getChipLabel(option: VirtualOption): string {\n return (option.getTextLabel?.() ?? '').trim();\n }\n\n private handleChipKeyDown(event: KeyboardEvent, option: VirtualOption): void {\n if (event.key !== KeyCode.BACKSPACE && event.key !== KeyCode.DELETE) return;\n if (this.disabled) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n const removedIndex = this.selectedOptions.indexOf(option);\n\n this.handleTagRemove(\n new CustomEvent('nile-remove') as unknown as NileRemoveEvent,\n option\n );\n\n this.restoreFocusAfterChipRemoval(removedIndex);\n }\n\n /** Moves focus to the next chip, the last chip, or the field after a removal. */\n private async restoreFocusAfterChipRemoval(\n removedIndex: number\n ): Promise<void> {\n if (removedIndex < 0) return;\n\n await this.updateComplete;\n\n // Wait for the fit pass so hidden chips are not focused.\n await new Promise<void>(resolve => requestAnimationFrame(() => resolve()));\n\n const visibleChips = Array.from(\n this.shadowRoot?.querySelectorAll<HTMLElement>('.select__tags nile-tag') ??\n []\n ).filter(chip => chip.style.display !== 'none');\n\n const target =\n visibleChips[removedIndex] ?? visibleChips[visibleChips.length - 1];\n\n if (target) {\n target.focus({ preventScroll: true });\n } else {\n this.displayInput?.focus({ preventScroll: true });\n }\n }\n\n private handleOverflowActivate(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n if (this.disabled) return;\n this.open = !this.open;\n }\n\n private handleOverflowKeyDown(event: KeyboardEvent): void {\n if (event.key !== KeyCode.ENTER && event.key !== KeyCode.SPACE) return;\n this.handleOverflowActivate(event);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["h","i","this","_$AN","o","_$AM","r","n","t","e","arguments","length","undefined","_$AH","size","Array","isArray","s","setters","_tslib","_iterator","_createForOfIteratorHelper","_step","done","_$AO","err","f","_n","Set","has","add","c","type","CHILD","_$AP","_$AQ","V","super","_this","_inherits","_k","_createClass","key","value","_$AT","isConnected","_$AU","reconnected","disconnected","setValue","strings","_$Ct","_$AI","_$Ci","_export","M","target","config","callback","skipInitial","l","window","ResizeObserver","u","handleChanges","requestUpdate","addController","console","warn","hostConnected","_iterator2","_step2","observe","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","hostUpdated","stop","unobserve","_V","_class","constructor","observing","_this3","render","update","controller","part","element","_this$controller2","NileVirtualSelect","_f","I","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","_maxOptionsVisible","maxOptionsVisibleExplicit","chipMinWidth","chipMaxWidth","showTooltip","hiddenChipCount","oldMaxOptionsVisible","lastOverflowWidth","chipFitFrame","lastChipLayout","hidden","visible","clippedChips","clipFrame","enableTabClose","descriptionSearchEnabled","allowHtmlLabel","enableDescription","legacy","tickOnSelect","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","_iterator3","_step3","entry","classList","contains","calculateTotalWidthOfTags","_this4","get","set","previous","setFittedMaxOptionsVisible","validity","_this$valueInput","valueInput","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","initializeComponent","setupEventListeners","updateComplete","then","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","cleanupPortalAppend","destroyChipFit","updated","changedProperties","setupResizeObserver","legacyTagFitEnabled","chipFittingEnabled","scheduleClipCheck","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getItemDescription","_this$renderItemConfi3","getDescription","description","getItemPrefix","getPrefix","prefix","getItemSuffix","_this$renderItemConfi5","getSuffix","suffix","getSearchText","_this$renderItemConfi6","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","reason","onDocumentHidden","detail","concat","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this7","selectedValues","filter","itemValue","some","val","String","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","isOverflowButton","HTMLButtonElement","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","_this9","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","_toConsumableArray","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this11$shadowRoot","virtualized","shadowRoot","querySelector","remove","handleScroll","_this12","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_m","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","keyframes","options","animateTo","_callee4","_this$popup3","_m2","_callee4$","_context5","_callee5","_callee5$","_context6","waitForEvent","_callee6","_callee6$","_context7","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","renderFittedTags","_this14","_templateObject12","map","index","getChipLabel","_templateObject13","chipTooltipDisabled","handleChipKeyDown","_templateObject14","handleOverflowActivate","handleOverflowKeyDown","_templateObject15","maxOptionsVisible","_templateObject16","renderLegacyTag","_templateObject17","_templateObject18","classes","select__invisible","Infinity","_templateObject19","_this17","_templateObject20","join","_templateObject21","_templateObject22","_templateObject23","select__suffix","_templateObject24","_templateObject25","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","select__footer","_templateObject32","_templateObject33","_templateObject34","_templateObject35","_templateObject36","_this$renderItemConfi9","_this$renderItemConfi10","_this$renderItemConfi11","_this$renderItemConfi12","_this$renderItemConfi13","VirtualSelectRenderer","wanted","_this$shadowRoot$quer","observedTagsContainer","fitTagsLegacy","cancelAnimationFrame","layoutChips","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","allocateChipWidths","natural","available","min","max","reduce","sum","w","slice","capped","fill","pool","_","remaining","_loop","share","settled","_iterator5","_step5","width","_iterator4","_step4","computeChipFit","overflowWidth","gap","total","visibleCount","hiddenCount","count","row","room","root","container","chips","from","overflowEl","_i10","_n3","chip","display","maxWidth","minWidth","flex","getBoundingClientRect","containerStyles","getComputedStyle","parseFloat","columnGap","fit","clientWidth","refreshClippedChips","labelOverflows","content","left","right","range","createRange","_iterator6","assignedNodes","flatten","_step6","node","rect","nodeType","Node","TEXT_NODE","_t2$textContent","textContent","trim","selectNodeContents","box","styles","boxLeft","borderLeftWidth","paddingLeft","epsilon","borderRightWidth","paddingRight","isChipClipped","inner","scrollWidth","_this22","same","every","_i$getTextLabel","_i$getTextLabel2","KeyCode","BACKSPACE","DELETE","removedIndex","indexOf","CustomEvent","restoreFocusAfterChipRemoval","_restoreFocusAfterChipRemoval","_callee7","_context8","abrupt","visibleChips","_this$shadowRoot$quer2","_this$displayInput","ENTER","SPACE","_resetScrollPosition","_callee8","_callee8$","_context9","NileElement","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","Boolean","attribute","reflect","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/lit-html/async-directive.js","../../../../node_modules/lit-html/directive-helpers.js","../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{AsyncDirective as t}from\"lit-html/async-directive.js\";import{directive as s}from\"lit-html/directive.js\";import{isServer as i}from\"lit-html/is-server.js\";class h{constructor(t,{target:s,config:h,callback:e,skipInitial:r}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==s&&this.t.add(s??t),this.l=h,this.o=r??this.o,this.callback=e,i||(window.ResizeObserver?(this.u=new ResizeObserver(t=>{this.handleChanges(t),this.h.requestUpdate()}),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}unobserve(t){this.t.delete(t),this.u.unobserve(t)}disconnect(){this.u.disconnect()}target(t){return e(this,t)}}const e=s(class extends t{constructor(){super(...arguments),this.observing=!1}render(t,s){}update(t,[s,i]){this.controller=s,this.part=t,this.observe=i,!1===i?(s.unobserve(t.element),this.observing=!1):!1===this.observing&&(s.observe(t.element),this.observing=!0)}disconnected(){this.controller?.unobserve(this.part.element),this.observing=!1}reconnected(){!1!==this.observe&&!1===this.observing&&(this.controller?.observe(this.part.element),this.observing=!0)}});export{h as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-lite-tooltip/nile-lite-tooltip';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { KeyCode } from '../internal/enum';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n\n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n @property({ type: Array }) data: any = [];\n\n private lastSeenValue: string | string[] | undefined;\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Re-runs the fitted-chip layout when the control's own width changes. */\n @property({ type: Boolean, attribute: true, reflect: true }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /**\n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n private _maxOptionsVisible = 3;\n\n private maxOptionsVisibleExplicit = false;\n\n @property({ attribute: 'max-options-visible', type: Number })\n get maxOptionsVisible(): number {\n return this._maxOptionsVisible;\n }\n\n set maxOptionsVisible(value: number) {\n const previous = this._maxOptionsVisible;\n this._maxOptionsVisible = value;\n // Any assignment opts this instance out of automatic chip fitting.\n this.maxOptionsVisibleExplicit = true;\n this.requestUpdate('maxOptionsVisible', previous);\n }\n\n private get chipFittingEnabled(): boolean {\n return !!this.multiple && this.showTooltip && !this.maxOptionsVisibleExplicit;\n }\n\n private get legacyTagFitEnabled(): boolean {\n return !!this.multiple && !this.showTooltip;\n }\n\n private setFittedMaxOptionsVisible(value: number): void {\n const previous = this._maxOptionsVisible;\n this._maxOptionsVisible = value;\n this.requestUpdate('maxOptionsVisible', previous);\n }\n\n /** Minimum width, in px, of a squeezed chip. Needs `showtooltip`. */\n @property({ type: Number, attribute: true }) chipMinWidth = 110;\n\n /** Maximum width, in px, of a squeezed chip. Needs `showtooltip`. */\n @property({ type: Number, attribute: true }) chipMaxWidth = 180;\n\n /**\n * Opts into the fitted chip row: chips are sized between chipMinWidth and chipMaxWidth, the\n * rest collapse into a +N button, and a clipped chip shows its full value in a tooltip.\n * Off by default, which keeps the pre-2.0.9 chip row.\n */\n @property({ type: Boolean, attribute: true, reflect: true }) showTooltip = false;\n\n\n @state() private hiddenChipCount = 0;\n @state() oldMaxOptionsVisible: number = 1;\n\n /** Last measured width of the overflow button, in px. */\n private lastOverflowWidth = 0;\n\n private chipFitFrame = 0;\n private lastChipLayout = { hidden: -1, visible: -1 };\n @state() private clippedChips: boolean[] = [];\n private clipFrame = 0;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n /** Legacy: hide the option checkbox (the \"Show Selected\" footer is kept). */\n @property({ type: Boolean, reflect: true }) legacy = false;\n\n /** Variant: show a tick on the right of the selected option (single-select). */\n @property({ type: Boolean, reflect: true, attribute: true }) tickOnSelect = false;\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n\n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n this.destroyChipFit();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (\n changedProperties.has('autoResize') ||\n changedProperties.has('multiple') ||\n changedProperties.has('maxOptionsVisible') ||\n changedProperties.has('showTooltip')\n ) {\n this.setupResizeObserver();\n }\n if (\n changedProperties.has('showTooltip') &&\n changedProperties.get('showTooltip') !== undefined &&\n this.legacyTagFitEnabled\n ) {\n this.calculateTotalWidthOfTags();\n }\n if (\n changedProperties.has('chipMinWidth') ||\n changedProperties.has('chipMaxWidth')\n ) {\n this.destroyChipFit();\n }\n if (this.chipFittingEnabled) {\n this.calculateTotalWidthOfTags();\n }\n if (this.multiple && this.showTooltip) {\n this.scheduleClipCheck();\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemDescription(item: any): string {\n if (this.renderItemConfig?.getDescription) {\n return this.renderItemConfig.getDescription(item);\n }\n return item?.description || item || '';\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemPrefix(item: any): string {\n if (this.renderItemConfig?.getPrefix) {\n return this.renderItemConfig.getPrefix(item);\n }\n return item?.prefix || item || '';\n }\n\n /**\n * Get suffix for an item using renderItemConfig or fallback to item.suffix\n */\n private getItemSuffix(item: any): string {\n if (this.renderItemConfig?.getSuffix) {\n return this.renderItemConfig.getSuffix(item);\n }\n return item?.suffix || item || '';\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n\n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n\n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n\n\n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return;\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return;\n\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n /** Narrows `data` to the items that are currently selected (the \"Selected\" view). */\n private applySelectedFilter(): void {\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n this.applySelectedFilter();\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private observedTagsContainer?: Element;\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n const isOverflowButton = path.some(\n el =>\n el instanceof HTMLButtonElement &&\n el.classList.contains('select__tags-count')\n );\n return this.disabled || isIconButton || isOverflowButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n\n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n\n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n\n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n this.lastSeenValue = this.value;\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value,\n itemsToSearch,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue,\n this.allowHtmlLabel\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n\n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n\n this.emit('nile-search', {\n query: this.searchValue,\n name: this.name\n });\n\n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n\n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n\n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n\n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.getItemDescription.bind(this),\n this.descriptionSearchEnabled,\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n const externalValueChange = this.value !== this.lastSeenValue;\n this.selectionChanged();\n if (externalValueChange && this.showTooltip && this.showSelected) {\n this.applySelectedFilter();\n }\n this.requestUpdate();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n\n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n\n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n\n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n\n this.popup.active = true;\n\n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n\n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n\n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n\n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean,\n hasClearIcon: boolean,\n isPlaceholderVisible: boolean,\n hasHelpText: boolean,\n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderFittedTags(): TemplateResult {\n return html`\n <div part=\"tags\" class=\"select__tags select__tags--fitted\">\n ${this.selectedOptions.map((option, index) => {\n const label = this.getChipLabel(option);\n return html`\n <nile-lite-tooltip\n class=\"select__tag-tip\"\n .content=${label}\n ?disabled=${this.chipTooltipDisabled(index)}\n >\n <nile-tag\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base,\n prefix:tag__prefix,\n prefix_content_wrapper:tag__prefix_content_wrapper\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n tabindex=\"0\"\n aria-label=${`${label}. Press Backspace or Delete to remove.`}\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n @keydown=${(event: KeyboardEvent) =>\n this.handleChipKeyDown(event, option)}\n >\n ${label}\n </nile-tag>\n </nile-lite-tooltip>\n `;\n })}\n ${this.hiddenChipCount > 0\n ? html`<button\n type=\"button\"\n class=\"select__tags-count\"\n ?disabled=${this.disabled}\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-label=${`${this.hiddenChipCount} more selected`}\n @click=${this.handleOverflowActivate}\n @keydown=${this.handleOverflowKeyDown}\n >+${this.hiddenChipCount}</button\n >`\n : ''}\n </div>\n `;\n }\n\n private renderTags(): TemplateResult {\n if (this.chipFittingEnabled) {\n return this.renderFittedTags();\n }\n\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n return this.showTooltip\n ? html`<nile-lite-tooltip\n class=\"select__tag-tip\"\n .content=${option.getTextLabel()}\n ?disabled=${this.chipTooltipDisabled(index)}\n >${this.renderLegacyTag(option, index)}</nile-lite-tooltip\n >`\n : this.renderLegacyTag(option, index);\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderLegacyTag(option: VirtualOption, index: number): TemplateResult {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n style=${ifDefined(\n this.showTooltip ? `max-width:${this.chipMaxWidth}px` : undefined\n )}\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n\n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n\n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=${classMap({\n 'select__footer': true,\n loading: !!this.loading,\n 'select__footer--query': !this.noWidthSync || this.portal,\n })}\n @click=\"${this.handleFooterClick}\"\n >\n <span\n class=\"select__footer-action\"\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n title=\"Show selected\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n <span class=\"select__footer-label\">Selected</span></nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n title=\"Clear\"\n >\n <nile-glyph\n class=\"select__footer-glyph\"\n name=\"ng-eraser\"\n size=\"16\"\n method=\"var(--nile-svg-method-stroke, var(--ng-svg-method-stroke))\"\n color=\"var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700))\"\n ></nile-glyph\n ><span class=\"select__footer-label\">Clear</span>\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.renderItemConfig?.getDescription,\n this.renderItemConfig?.getPrefix,\n this.renderItemConfig?.getSuffix,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this),\n this.allowHtmlLabel,\n this.enableDescription,\n this.tickOnSelect,\n this.legacy\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private setupResizeObserver(): void {\n const wanted =\n this.autoResize && (this.chipFittingEnabled || this.legacyTagFitEnabled)\n ? (this.shadowRoot?.querySelector('.select__tags') as HTMLElement | null) ??\n undefined\n : undefined;\n\n if (wanted === this.observedTagsContainer) {\n if (!this.chipFittingEnabled) this.destroyChipFit();\n return;\n }\n\n if (this.observedTagsContainer) {\n this.resizeController.unobserve(this.observedTagsContainer);\n this.observedTagsContainer = undefined;\n }\n\n if (wanted) {\n this.resizeController.observe(wanted);\n this.observedTagsContainer = wanted;\n return;\n }\n\n if (!this.chipFittingEnabled) {\n this.destroyChipFit();\n }\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.legacyTagFitEnabled) {\n this.fitTagsLegacy();\n return;\n }\n if (!this.chipFittingEnabled) return;\n\n if (this.chipFitFrame) cancelAnimationFrame(this.chipFitFrame);\n this.chipFitFrame = requestAnimationFrame(() => {\n this.chipFitFrame = 0;\n this.layoutChips();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private fitTagsLegacy(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.setFittedMaxOptionsVisible(Infinity);\n setTimeout(() => {\n const widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.setFittedMaxOptionsVisible(lastindex);\n }, 1);\n }\n\n private allocateChipWidths(\n natural: number[],\n available: number\n ): number[] | null {\n const min = this.chipMinWidth;\n const max = this.chipMaxWidth;\n const total = natural.reduce((sum, w) => sum + w, 0);\n\n if (total <= available) {\n return natural.slice();\n }\n\n // Nothing reveals a truncated value without a tooltip, so chips keep their\n // natural width and the surplus moves into the +N button instead.\n if (!this.showTooltip) return null;\n\n const capped = natural.map(w => Math.min(w, max));\n const cappedTotal = capped.reduce((sum, w) => sum + w, 0);\n if (cappedTotal <= available) {\n return capped;\n }\n\n const widths = new Array<number>(natural.length).fill(0);\n let pool = capped.map((_, i) => i);\n let remaining = available;\n\n for (;;) {\n if (pool.length === 0) break;\n const share = remaining / pool.length;\n const settled = pool.filter(i => capped[i] <= share);\n if (settled.length === 0) break;\n for (const i of settled) {\n widths[i] = capped[i];\n remaining -= capped[i];\n }\n pool = pool.filter(i => capped[i] > share);\n }\n\n if (pool.length > 0) {\n const share = remaining / pool.length;\n\n if (share < min) {\n return null;\n }\n\n const width = Math.floor(share);\n for (const i of pool) {\n widths[i] = width;\n }\n }\n\n return widths;\n }\n\n private computeChipFit(\n natural: number[],\n available: number,\n overflowWidth: number,\n gap: number\n ): { visibleCount: number; widths: number[]; hiddenCount: number } {\n const total = natural.length;\n\n if (total === 0) {\n return { visibleCount: 0, widths: [], hiddenCount: 0 };\n }\n\n for (let count = total; count >= 1; count--) {\n const hidden = total - count;\n const reserved = hidden > 0 ? overflowWidth + gap : 0;\n const row = available - reserved - gap * (count - 1);\n\n if (row <= 0) continue;\n\n const widths = this.allocateChipWidths(natural.slice(0, count), row);\n if (widths) {\n return { visibleCount: count, widths, hiddenCount: hidden };\n }\n }\n\n const room = available - overflowWidth - gap;\n const fallback = Math.max(\n 0,\n // A single chip too wide for the row has to be clipped either way; only\n // the tooltip variant squeezes it to chipMinWidth.\n Math.min(natural[0], this.showTooltip ? Math.max(this.chipMinWidth, room) : room)\n );\n return { visibleCount: 1, widths: [fallback], hiddenCount: total - 1 };\n }\n\n private layoutChips(): void {\n const root = this.shadowRoot;\n if (!root) return;\n\n const container = root.querySelector('.select__tags') as HTMLElement | null;\n if (!container) return;\n\n const chips = Array.from(\n container.querySelectorAll('nile-tag')\n ) as HTMLElement[];\n if (chips.length === 0) {\n this.hiddenChipCount = 0;\n return;\n }\n\n const overflowEl = container.querySelector(\n '.select__tags-count'\n ) as HTMLElement | null;\n\n for (const chip of chips) {\n chip.style.display = '';\n chip.style.width = 'auto';\n chip.style.maxWidth = 'none';\n chip.style.minWidth = '0';\n chip.style.flex = '0 0 auto';\n }\n const natural = chips.map(chip =>\n Math.ceil(chip.getBoundingClientRect().width)\n );\n // Not rendered yet on the pass that first finds an overflow; reuse the last width.\n const overflowWidth = overflowEl\n ? Math.ceil(overflowEl.getBoundingClientRect().width)\n : this.lastOverflowWidth;\n if (overflowEl) this.lastOverflowWidth = overflowWidth;\n\n const containerStyles = getComputedStyle(container);\n const gap =\n parseFloat(containerStyles.columnGap || containerStyles.gap || '0') || 0;\n\n const fit = this.computeChipFit(\n natural,\n container.clientWidth,\n overflowWidth,\n gap\n );\n\n chips.forEach((chip, index) => {\n if (index < fit.visibleCount) {\n // Never squeeze a chip below chipMinWidth: narrower than that it is\n // also narrower than the tag's own box - the label is already at zero\n // while the remove button is fixed - so the box overflows the chip and\n // paints the X over the next chip or the +N button. A chip whose\n // natural width is already smaller is left alone, not padded out.\n const width = Math.min(\n natural[index],\n Math.max(fit.widths[index], this.chipMinWidth)\n );\n chip.style.display = '';\n chip.style.width = `${width}px`;\n chip.style.maxWidth = `${width}px`;\n chip.style.flex = '0 0 auto';\n } else {\n chip.style.display = 'none';\n }\n });\n\n if (\n this.lastChipLayout.hidden !== fit.hiddenCount ||\n this.lastChipLayout.visible !== fit.visibleCount\n ) {\n this.lastChipLayout = {\n hidden: fit.hiddenCount,\n visible: fit.visibleCount\n };\n this.hiddenChipCount = fit.hiddenCount;\n }\n\n this.refreshClippedChips();\n }\n\n private labelOverflows(content: HTMLSlotElement): boolean {\n let left = Infinity;\n let right = -Infinity;\n const range = document.createRange();\n for (const node of content.assignedNodes({ flatten: true })) {\n let rect: DOMRect;\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent?.trim()) continue;\n range.selectNodeContents(node);\n rect = range.getBoundingClientRect();\n } else if (node instanceof Element) {\n rect = node.getBoundingClientRect();\n } else {\n continue;\n }\n if (rect.width === 0) continue;\n left = Math.min(left, rect.left);\n right = Math.max(right, rect.right);\n }\n if (right < left) return false;\n\n const box = content.getBoundingClientRect();\n const styles = getComputedStyle(content);\n const boxLeft = box.left + parseFloat(styles.borderLeftWidth) + parseFloat(styles.paddingLeft);\n const boxRight = box.right - parseFloat(styles.borderRightWidth) - parseFloat(styles.paddingRight);\n const epsilon = 1 / 64;\n return right > boxRight + epsilon || left < boxLeft - epsilon;\n }\n\n private isChipClipped(el: HTMLElement | null | undefined): boolean {\n if (!el) return false;\n\n const root = el.shadowRoot;\n if (root) {\n const content = root.querySelector(\n '[part=\"content\"]'\n ) as HTMLSlotElement | null;\n if (content && this.labelOverflows(content)) return true;\n\n const inner = root.querySelector(\n '[part=\"prefix_content_wrapper\"]'\n ) as HTMLElement | null;\n if (inner && inner.scrollWidth > inner.clientWidth + 1) return true;\n }\n\n return el.scrollWidth > el.clientWidth + 1;\n }\n\n private refreshClippedChips(): void {\n if (!this.multiple) return;\n\n const root = this.shadowRoot;\n if (!root) return;\n\n const chips = Array.from(\n root.querySelectorAll('.select__tags nile-tag')\n ) as HTMLElement[];\n\n const next = chips.map(chip => this.isChipClipped(chip));\n\n const same =\n next.length === this.clippedChips.length &&\n next.every((v, i) => v === this.clippedChips[i]);\n\n if (!same) {\n this.clippedChips = next;\n }\n }\n\n private scheduleClipCheck(): void {\n if (this.clipFrame) cancelAnimationFrame(this.clipFrame);\n this.clipFrame = requestAnimationFrame(() => {\n this.clipFrame = 0;\n this.refreshClippedChips();\n });\n }\n\n /** A chip gets a tooltip only while its text is measured as clipped. */\n private chipTooltipDisabled(index: number): boolean {\n return !this.showTooltip || !(this.clippedChips[index] ?? false);\n }\n\n private destroyChipFit(): void {\n if (this.chipFitFrame) cancelAnimationFrame(this.chipFitFrame);\n this.chipFitFrame = 0;\n if (this.clipFrame) cancelAnimationFrame(this.clipFrame);\n this.clipFrame = 0;\n this.lastChipLayout = { hidden: -1, visible: -1 };\n }\n\n private getChipLabel(option: VirtualOption): string {\n return (option.getTextLabel?.() ?? '').trim();\n }\n\n private handleChipKeyDown(event: KeyboardEvent, option: VirtualOption): void {\n if (event.key !== KeyCode.BACKSPACE && event.key !== KeyCode.DELETE) return;\n if (this.disabled) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n const removedIndex = this.selectedOptions.indexOf(option);\n\n this.handleTagRemove(\n new CustomEvent('nile-remove') as unknown as NileRemoveEvent,\n option\n );\n\n this.restoreFocusAfterChipRemoval(removedIndex);\n }\n\n /** Moves focus to the next chip, the last chip, or the field after a removal. */\n private async restoreFocusAfterChipRemoval(\n removedIndex: number\n ): Promise<void> {\n if (removedIndex < 0) return;\n\n await this.updateComplete;\n\n // Wait for the fit pass so hidden chips are not focused.\n await new Promise<void>(resolve => requestAnimationFrame(() => resolve()));\n\n const visibleChips = Array.from(\n this.shadowRoot?.querySelectorAll<HTMLElement>('.select__tags nile-tag') ??\n []\n ).filter(chip => chip.style.display !== 'none');\n\n const target =\n visibleChips[removedIndex] ?? visibleChips[visibleChips.length - 1];\n\n if (target) {\n target.focus({ preventScroll: true });\n } else {\n this.displayInput?.focus({ preventScroll: true });\n }\n }\n\n private handleOverflowActivate(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n if (this.disabled) return;\n this.open = !this.open;\n }\n\n private handleOverflowKeyDown(event: KeyboardEvent): void {\n if (event.key !== KeyCode.ENTER && event.key !== KeyCode.SPACE) return;\n this.handleOverflowActivate(event);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["h","i","this","_$AN","o","_$AM","r","n","t","e","arguments","length","undefined","_$AH","size","Array","isArray","s","setters","_tslib","_iterator","_createForOfIteratorHelper","_step","done","_$AO","err","f","_n","Set","has","add","c","type","CHILD","_$AP","_$AQ","V","super","_this","_inherits","_k","_createClass","key","value","_$AT","isConnected","_$AU","reconnected","disconnected","setValue","strings","_$Ct","_$AI","_$Ci","_export","M","target","config","skipInitial","callback","l","window","ResizeObserver","u","handleChanges","requestUpdate","addController","console","warn","hostConnected","_iterator2","_step2","observe","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","delete","_V","_class","observing","_this3","render","update","controller","part","element","NileVirtualSelect","_f","I","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","_maxOptionsVisible","maxOptionsVisibleExplicit","chipMinWidth","chipMaxWidth","showTooltip","hiddenChipCount","oldMaxOptionsVisible","lastOverflowWidth","chipFitFrame","lastChipLayout","hidden","visible","clippedChips","clipFrame","enableTabClose","descriptionSearchEnabled","allowHtmlLabel","enableDescription","legacy","tickOnSelect","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","entry","_iterator3","_step3","classList","contains","calculateTotalWidthOfTags","_this4","get","maxOptionsVisible","set","previous","chipFittingEnabled","legacyTagFitEnabled","setFittedMaxOptionsVisible","validity","_this$valueInput","valueInput","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","initializeComponent","setupEventListeners","updateComplete","then","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","cleanupPortalAppend","destroyChipFit","updated","changedProperties","setupResizeObserver","scheduleClipCheck","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getItemDescription","_this$renderItemConfi3","getDescription","description","getItemPrefix","_this$renderItemConfi4","getPrefix","prefix","getItemSuffix","getSuffix","suffix","getSearchText","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","reason","onDocumentHidden","detail","concat","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","applySelectedFilter","selectedValues","filter","itemValue","some","val","String","toggleShowSelected","_this$selectedOptions","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","_toConsumableArray","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","isOverflowButton","HTMLButtonElement","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","_this9","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","lastSeenValue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this11$shadowRoot","virtualized","shadowRoot","querySelector","remove","handleScroll","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","_this$renderItemConfi8","_this13","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","externalValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_m","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","animateTo","keyframes","options","_callee4","_this$popup3","_m2","_callee4$","_context5","_callee5","_callee5$","_context6","abrupt","waitForEvent","_callee6","_callee6$","_context7","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","renderFittedTags","_this14","_templateObject12","map","index","getChipLabel","_templateObject13","chipTooltipDisabled","handleChipKeyDown","_templateObject14","handleOverflowActivate","handleOverflowKeyDown","_templateObject15","_templateObject16","renderLegacyTag","_templateObject17","_templateObject18","classes","select__invisible","Infinity","_templateObject19","_this17","_templateObject20","join","_templateObject21","_templateObject22","_templateObject23","select__suffix","_templateObject24","_templateObject25","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","select__footer","_templateObject32","_templateObject33","_templateObject34","_templateObject35","_templateObject36","_this$renderItemConfi9","_this$renderItemConfi10","_this$renderItemConfi11","_this$renderItemConfi12","_this$renderItemConfi13","VirtualSelectRenderer","wanted","_this$shadowRoot$quer","observedTagsContainer","fitTagsLegacy","cancelAnimationFrame","layoutChips","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","allocateChipWidths","natural","available","min","max","reduce","sum","w","slice","capped","fill","pool","_","remaining","_loop","share","settled","_iterator5","_step5","width","_iterator4","_step4","computeChipFit","overflowWidth","gap","total","visibleCount","hiddenCount","count","row","room","root","container","chips","from","overflowEl","_i9","_n3","chip","display","maxWidth","minWidth","flex","getBoundingClientRect","containerStyles","getComputedStyle","parseFloat","columnGap","fit","clientWidth","refreshClippedChips","labelOverflows","content","left","right","range","createRange","_iterator6","assignedNodes","flatten","_step6","node","rect","nodeType","Node","TEXT_NODE","_t2$textContent","textContent","trim","selectNodeContents","box","styles","boxLeft","borderLeftWidth","paddingLeft","epsilon","borderRightWidth","paddingRight","isChipClipped","inner","scrollWidth","_this22","same","every","_i$getTextLabel","_i$getTextLabel2","KeyCode","BACKSPACE","DELETE","removedIndex","indexOf","CustomEvent","restoreFocusAfterChipRemoval","_restoreFocusAfterChipRemoval","_callee7","_context8","visibleChips","_this$shadowRoot$quer2","_this$displayInput","ENTER","SPACE","_resetScrollPosition","_callee8","_callee8$","_context9","NileElement","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","Boolean","attribute","reflect","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0,1,2]}