@aquera/nile-elements 0.1.75-beta-1.4 → 0.1.75-beta-1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/index.html +0 -25
- package/dist/index.js +357 -331
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -5
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +1 -1
- package/dist/nile-select/nile-select.esm.js +2 -7
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.esm.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
- package/dist/nile-select/virtual-scroll-helper.esm.js +2 -0
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/index.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +5 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +20 -1
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +21 -12
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +11 -10
- package/dist/nile-virtual-select/selection-manager.cjs.js +1 -1
- package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -1
- package/dist/nile-virtual-select/selection-manager.esm.js +1 -1
- package/dist/src/nile-button/nile-button.d.ts +1 -1
- package/dist/src/nile-button/nile-button.js +1 -1
- package/dist/src/nile-button/nile-button.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +1 -1
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +5 -1
- package/dist/src/nile-select/nile-select.js +31 -15
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/virtual-scroll-helper.js +2 -0
- package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +20 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +22 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.js +148 -22
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
- package/dist/src/nile-virtual-select/renderer.js +9 -8
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/src/nile-virtual-select/selection-manager.js +1 -1
- package/dist/src/nile-virtual-select/selection-manager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -15
- package/src/nile-button/nile-button.ts +1 -1
- package/src/nile-select/nile-select.css.ts +1 -1
- package/src/nile-select/nile-select.ts +31 -17
- package/src/nile-select/virtual-scroll-helper.ts +2 -0
- package/src/nile-virtual-select/nile-virtual-select.css.ts +20 -1
- package/src/nile-virtual-select/nile-virtual-select.ts +158 -26
- package/src/nile-virtual-select/renderer.ts +10 -8
- package/src/nile-virtual-select/selection-manager.ts +1 -1
- package/vscode-html-custom-data.json +61 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["/**\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\nimport {\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-checkbox/nile-checkbox';\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 { 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, 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';\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 *\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 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\n @query('.select') popup: NilePopup;\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 /** 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 /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = 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 /** 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 * 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 @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\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 }\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 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 }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\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 }\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 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\n if (!hitSelf && !hitPopup) {\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 \n if (!hitSelf && !hitPopup) {\n this.hide();\n }\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 const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => \n selectedValues.includes(item.value)\n );\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n this.requestUpdate();\n this.resetScrollPosition();\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 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 return this.disabled || isIconButton;\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 );\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 }\n\n this.calculateTotalWidthOfTags();\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.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.resetScrollPosition();\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.renderItemConfig?.getSearchText\n );\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 @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && 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 if (this.open) {\n this.resetScrollPosition();\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\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n await this.handleOpen();\n } else {\n await this.handleClose();\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 this.popup.active = true;\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.initializeOriginalItems();\n this.filterVirtualOptions(this.searchValue);\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 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 this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n private initializeOriginalItems(): void {\n if (this.originalOptionItems.length === 0 && this.data.length > 0) {\n this.originalOptionItems = [...this.data];\n }\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.hoist ? 'fixed' : 'absolute'}\n distance=\"6\"\n flip\n shift\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.renderListbox()}\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 renderTags(): TemplateResult {\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 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 ?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 } 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 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=\"close\" library=\"system\"></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=\"arrowdown\"></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 : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\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=\"search\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n return this.optionsLoading\n ? 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 : html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\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.showNoResults,\n this.noResultsMessage,\n this.optionsLoading\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 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 calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let 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 let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\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.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private resetScrollPosition(): void {\n this.updateComplete.then(() => {\n if (this.virtualizedContainer) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer) {\n virtualizer.scrollTop = 0;\n }\n }\n });\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"],"names":["NileVirtualSelect","constructor","this","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","name","data","originalOptionItems","value","defaultValue","size","placeholder","searchValue","searchEnabled","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","maxOptionsVisible","oldMaxOptionsVisible","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","_this","validity","_this$valueInput","valueInput","validationMessage","_this$valueInput$vali","_this$valueInput2","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","emit","getDisplayText","item","_this$renderItemConfi","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getSearchText","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","target","isClearButton","closest","isIconButton","key","preventDefault","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","selectedValues","Array","isArray","filter","requestUpdate","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","some","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","_this4","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","_this$renderItemConfi4","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","calculateTotalWidthOfTags","handleSearchFocus","handleSearchBlur","handleSearchChange","e","detail","filterVirtualOptions","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","async","handleOpen","handleClose","_context2","stop","_callee","stopAnimations","active","_h","getAnimation","dir","keyframes","options","animateTo","initializeOriginalItems","_context3","_callee2","_h2","_context4","_callee3","_toConsumableArray","waitForEvent","_context5","_callee4","_show","apply","arguments","_hide","_asyncToGenerator","_regeneratorRuntime","mark","_context6","next","abrupt","_callee5","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","render","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","undefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject9","select__prefix","_templateObject0","_this6","_templateObject1","map","index","classes","select__invisible","Infinity","_templateObject10","_templateObject11","_templateObject12","_this7","_templateObject13","join","_templateObject14","_templateObject15","_templateObject16","select__suffix","_templateObject17","_templateObject18","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","shadowRoot","selectTagsDiv","querySelector","offsetWidth","setTimeout","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","i","virtualizedContainer","_this0$shadowRoot","scrollTop","listbox","virtualizer","NileElement","styles","__decorate","query","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","String","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isServer as s}from\"lit-html/is-server.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t{constructor(t,{target:i,config:h,callback:e,skipInitial:o}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==i&&this.t.add(i??t),this.l=h,this.o=o??this.o,this.callback=e,s||(window.ResizeObserver?(this.u=new ResizeObserver((s=>{this.handleChanges(s),this.h.requestUpdate()})),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(s){this.value=this.callback?.(s,this.u)}hostConnected(){for(const s of this.t)this.observe(s)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(s){this.t.add(s),this.u.observe(s,this.l),this.i=!0,this.h.requestUpdate()}unobserve(s){this.t.delete(s),this.u.unobserve(s)}disconnect(){this.u.disconnect()}}export{t 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\nimport {\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-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 { 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 { ResizeController } from '@lit-labs/observers/resize-controller.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 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\n @query('.select') popup: NilePopup;\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\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 /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) 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 /** 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 * 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 @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n @state() showListbox: 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 // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\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 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 }\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\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 }\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 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\n if (!hitSelf && !hitPopup) {\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 \n if (!hitSelf && !hitPopup) {\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 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 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 this.requestUpdate();\n this.resetScrollPosition();\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 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 return this.disabled || isIconButton;\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 );\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 }\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 \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.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\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.renderItemConfig?.getSearchText\n );\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 @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\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 \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\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\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n await this.handleOpen();\n this.showListbox = true;\n } else {\n await this.handleClose();\n this.showListbox = false;\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 this.popup.active = true;\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.initializeOriginalItems();\n this.filterVirtualOptions(this.searchValue);\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 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 this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n private initializeOriginalItems(): void {\n if (this.data.length > 0) {\n this.originalOptionItems = [...this.data];\n }\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.hoist ? 'fixed' : 'absolute'}\n distance=\"6\"\n flip\n shift\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\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 renderTags(): TemplateResult {\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 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 ?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 } 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 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=\"close\" library=\"system\"></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=\"arrowdown\"></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 : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\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=\"search\" 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=\"select__footer ${this.loading ? 'loading' : ''}\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\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.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this)\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 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 calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let 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 let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\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.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private resetScrollPosition(): void {\n this.updateComplete.then(() => {\n if (this.virtualizedContainer && this.virtualizedContainer.isConnected) {\n this.virtualizedContainer.scrollTop = 0;\n \n const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;\n if (listbox && listbox.isConnected) {\n listbox.scrollTop = 0;\n }\n \n const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;\n if (virtualizer && virtualizer.isConnected) {\n virtualizer.scrollTop = 0;\n }\n }\n });\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"],"names":["t","constructor","target","o","i","h","config","e","callback","skipInitial","this","Set","add","l","window","ResizeObserver","u","s","handleChanges","requestUpdate","addController","console","warn","value","hostConnected","_iterator","_createForOfIteratorHelper","_step","n","done","observe","err","f","hostDisconnected","disconnect","async","_context2","stop","_callee","unobserve","delete","_export","NileVirtualSelect","_u","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","size","placeholder","autoResize","searchValue","searchEnabled","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","maxOptionsVisible","oldMaxOptionsVisible","showListbox","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hide","handleWindowError","message","preventDefault","resizeController","ResizeController","entries","entry","_iterator2","_step2","classList","contains","calculateTotalWidthOfTags","_this2","validity","_this$valueInput","valueInput","validationMessage","_this$valueInput$vali","_this$valueInput2","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","scrollTimeout","clearTimeout","undefined","updated","changedProperties","has","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","_this$renderItemConfi","renderItemConfig","toString","getItemValue","getValue","getSearchText","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","key","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this4","selectedValues","Array","isArray","filter","itemValue","some","val","String","_toConsumableArray","resetScrollPosition","unSelectAll","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","concat","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","detail","query","filterVirtualOptions","_this8$shadowRoot","virtualized","remove","handleScroll","_this9","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","_this$renderItemConfi5","result","VirtualSelectSearchManager","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handleOpen","handleClose","_context3","_callee2","stopAnimations","active","_m","getAnimation","dir","keyframes","options","animateTo","initializeOriginalItems","_context4","_callee3","_context5","_callee4","waitForEvent","_context6","_callee5","_show","apply","arguments","_hide","_asyncToGenerator","_regeneratorRuntime","mark","_context7","_callee6","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","render","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","_templateObject0","select__prefix","_templateObject1","_this0","_templateObject10","map","index","classes","select__invisible","Infinity","_templateObject11","_templateObject12","_templateObject13","_this1","_templateObject14","join","_templateObject15","_templateObject16","_templateObject17","select__suffix","_templateObject18","_templateObject19","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","virtualizedContainer","isConnected","_this12$shadowRoot","listbox","virtualizer","NileElement","styles","__decorate","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",o=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n box-sizing: border-box;\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: 6px;\n color: var(--nile-colors-dark-900);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: 14px;\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700);\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500);\n margin-top: 0.75rem;\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: 0.875rem;\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: 0.25rem;\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif);\n font-weight: 400;\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900);\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif);\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif);\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900);\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: 0.5rem;\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 14px;\n letter-spacing: 0.2px;\n margin: 6px;\n }\n\n .select__tags-count-clearable {\n margin-right: 50px;\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900);\n background: var(--nile-colors-white-base);\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n border-color: var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-500);\n opacity: 0.5;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500);\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500);\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500);\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100);\n color: var(--nile-colors-dark-900);\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: 4px;\n font-size: 14px;\n padding: 12px;\n height: 40px;\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: 0.75rem;\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: 0;\n }\n\n .select--medium .select__tags {\n gap: 3px;\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: 2.5rem;\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600);\n border: none;\n background: none;\n padding: 0;\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: 0.25rem;\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: 1rem;\n font-weight: 400;\n background: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n border-radius: 0.25rem;\n padding-block: 0;\n padding-inline: 0;\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n }\n\n .select__options {\n font-size: 14px;\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: 10px;\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: 0.25rem;\n }\n\n .select__listbox::slotted(small) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--nile-colors-dark-500);\n padding-block: 0.25rem;\n padding-inline: 1rem;\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: 8px;\n background-color: white;\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 8px 12px 16px;\n gap: 12px;\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: 20px;\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: 10px;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: 12px;\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600);\n }\n"]))));}};});
|
|
1
|
+
System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",o=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n box-sizing: border-box;\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized.no-scroll {\n overflow-y: hidden !important;\n max-height: none !important;\n}\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: 6px;\n color: var(--nile-colors-dark-900);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: 14px;\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700);\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500);\n margin-top: 0.75rem;\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: 0.875rem;\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: 0.25rem;\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif);\n font-weight: 400;\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900);\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif);\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif);\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900);\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: 0.5rem;\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 14px;\n letter-spacing: 0.2px;\n margin: 6px;\n }\n\n .select__tags-count-clearable {\n margin-right: 50px;\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900);\n background: var(--nile-colors-white-base);\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n border-color: var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-500);\n opacity: 0.5;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500);\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500);\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500);\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100);\n color: var(--nile-colors-dark-900);\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: 4px;\n font-size: 14px;\n padding: 12px;\n height: 40px;\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: 0.75rem;\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: 0;\n }\n\n .select--medium .select__tags {\n gap: 3px;\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: 2.5rem;\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600);\n border: none;\n background: none;\n padding: 0;\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: 0.25rem;\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: 1rem;\n font-weight: 400;\n background: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n border-radius: 0.25rem;\n padding-block: 0;\n padding-inline: 0;\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n }\n\n .select__options {\n font-size: 14px;\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: 10px;\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: 0.25rem;\n }\n\n .select__listbox::slotted(small) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--nile-colors-dark-500);\n padding-block: 0.25rem;\n padding-inline: 1rem;\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: 8px;\n background-color: white;\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border-top: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 8px 12px 16px;\n gap: 12px;\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: 20px;\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: 10px;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: 12px;\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600);\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n"]))));}};});
|
|
2
2
|
//# sourceMappingURL=nile-virtual-select.css.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-virtual-select.css.cjs.js","sources":["../../../src/nile-virtual-select/nile-virtual-select.css.ts"],"sourcesContent":["/**\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\nimport {css} from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: 6px;\n color: var(--nile-colors-dark-900);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: 14px;\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700);\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500);\n margin-top: 0.75rem;\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: 0.875rem;\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: 0.25rem;\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif);\n font-weight: 400;\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900);\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif);\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif);\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900);\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: 0.5rem;\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 14px;\n letter-spacing: 0.2px;\n margin: 6px;\n }\n\n .select__tags-count-clearable {\n margin-right: 50px;\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900);\n background: var(--nile-colors-white-base);\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n border-color: var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-500);\n opacity: 0.5;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500);\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500);\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500);\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100);\n color: var(--nile-colors-dark-900);\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: 4px;\n font-size: 14px;\n padding: 12px;\n height: 40px;\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: 0.75rem;\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: 0;\n }\n\n .select--medium .select__tags {\n gap: 3px;\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: 2.5rem;\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600);\n border: none;\n background: none;\n padding: 0;\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: 0.25rem;\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: 1rem;\n font-weight: 400;\n background: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n border-radius: 0.25rem;\n padding-block: 0;\n padding-inline: 0;\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n }\n\n .select__options {\n font-size: 14px;\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: 10px;\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: 0.25rem;\n }\n\n .select__listbox::slotted(small) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--nile-colors-dark-500);\n padding-block: 0.25rem;\n padding-inline: 1rem;\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: 8px;\n background-color: white;\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 8px 12px 16px;\n gap: 12px;\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: 20px;\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: 10px;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: 12px;\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600);\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
1
|
+
{"version":3,"file":"nile-virtual-select.css.cjs.js","sources":["../../../src/nile-virtual-select/nile-virtual-select.css.ts"],"sourcesContent":["/**\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\nimport {css} from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized.no-scroll {\n overflow-y: hidden !important;\n max-height: none !important;\n}\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: 6px;\n color: var(--nile-colors-dark-900);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: 14px;\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700);\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500);\n margin-top: 0.75rem;\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: 0.875rem;\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: 0.25rem;\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif);\n font-weight: 400;\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900);\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif);\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif);\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900);\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: 0.5rem;\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600);\n font-family: Colfax-regular;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 14px;\n letter-spacing: 0.2px;\n margin: 6px;\n }\n\n .select__tags-count-clearable {\n margin-right: 50px;\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900);\n background: var(--nile-colors-white-base);\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n border-color: var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-500);\n opacity: 0.5;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500);\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500);\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500);\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100);\n color: var(--nile-colors-dark-900);\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: 4px;\n font-size: 14px;\n padding: 12px;\n height: 40px;\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: 0.75rem;\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: 0.75rem;\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: 0;\n }\n\n .select--medium .select__tags {\n gap: 3px;\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: 2.5rem;\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600);\n border: none;\n background: none;\n padding: 0;\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: 0.25rem;\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: 1rem;\n font-weight: 400;\n background: var(--nile-colors-white-base);\n border: solid 1px var(--nile-colors-neutral-500);\n border-radius: 0.25rem;\n padding-block: 0;\n padding-inline: 0;\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n }\n\n .select__options {\n font-size: 14px;\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: 10px;\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: 0.25rem;\n }\n\n .select__listbox::slotted(small) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--nile-colors-dark-500);\n padding-block: 0.25rem;\n padding-inline: 1rem;\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: 8px;\n background-color: white;\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border-top: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 8px 12px 16px;\n gap: 12px;\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: 20px;\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: 10px;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: 12px;\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600);\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|