@aquera/nile-elements 0.0.5-5 → 0.0.5-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-checkbox/nile-checkbox.js +8 -5
  2. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
  3. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhileloop.d.ts +5 -0
  4. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhileloop.js +5 -0
  5. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhileloop.js.map +1 -0
  6. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhleloop.d.ts +5 -0
  7. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhleloop.js +5 -0
  8. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/dowhleloop.js.map +1 -0
  9. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  10. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js +1 -0
  11. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  12. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  13. package/demo/filenames.txt +1 -1
  14. package/demo/index.html +1 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.esm.js +1 -1
  17. package/dist/index.iife.js +9 -4
  18. package/dist/nile-button/index.cjs.js +1 -1
  19. package/dist/nile-button/index.esm.js +1 -1
  20. package/dist/nile-button/nile-button.cjs.js +1 -1
  21. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  22. package/dist/nile-button/nile-button.esm.js +1 -1
  23. package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
  24. package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
  25. package/dist/nile-checkbox/nile-checkbox.esm.js +11 -6
  26. package/dist/nile-icon/icons/svg/dowhileloop.cjs.js +2 -0
  27. package/dist/nile-icon/icons/svg/dowhileloop.cjs.js.map +1 -0
  28. package/dist/nile-icon/icons/svg/dowhileloop.esm.js +1 -0
  29. package/dist/nile-icon/icons/svg/dowhleloop.cjs.js +2 -0
  30. package/dist/nile-icon/icons/svg/dowhleloop.cjs.js.map +1 -0
  31. package/dist/nile-icon/icons/svg/dowhleloop.esm.js +1 -0
  32. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  33. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  34. package/dist/nile-icon/index.cjs.js +1 -1
  35. package/dist/nile-icon/index.cjs.js.map +1 -1
  36. package/dist/nile-icon/index.esm.js +2 -2
  37. package/dist/nile-icon-button/index.cjs.js +1 -1
  38. package/dist/nile-icon-button/index.esm.js +1 -1
  39. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  40. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  41. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  42. package/dist/nile-input/index.cjs.js +1 -1
  43. package/dist/nile-input/index.esm.js +1 -1
  44. package/dist/nile-input/nile-input.cjs.js +1 -1
  45. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  46. package/dist/nile-input/nile-input.esm.js +1 -1
  47. package/dist/nile-menu-item/index.cjs.js +1 -1
  48. package/dist/nile-menu-item/index.esm.js +1 -1
  49. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  50. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  51. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  52. package/dist/nile-option/index.cjs.js +1 -1
  53. package/dist/nile-option/index.esm.js +1 -1
  54. package/dist/nile-option/nile-option.cjs.js +1 -1
  55. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  56. package/dist/nile-option/nile-option.esm.js +1 -1
  57. package/dist/nile-select/index.cjs.js +1 -1
  58. package/dist/nile-select/index.esm.js +1 -1
  59. package/dist/nile-select/nile-select.cjs.js +1 -1
  60. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  61. package/dist/nile-select/nile-select.esm.js +1 -1
  62. package/dist/nile-tag/index.cjs.js +1 -1
  63. package/dist/nile-tag/index.esm.js +1 -1
  64. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  65. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  66. package/dist/nile-tag/nile-tag.esm.js +1 -1
  67. package/dist/src/nile-checkbox/nile-checkbox.js +8 -5
  68. package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
  69. package/dist/src/nile-icon/icons/svg/dowhileloop.d.ts +5 -0
  70. package/dist/src/nile-icon/icons/svg/dowhileloop.js +5 -0
  71. package/dist/src/nile-icon/icons/svg/dowhileloop.js.map +1 -0
  72. package/dist/src/nile-icon/icons/svg/dowhleloop.d.ts +5 -0
  73. package/dist/src/nile-icon/icons/svg/dowhleloop.js +5 -0
  74. package/dist/src/nile-icon/icons/svg/dowhleloop.js.map +1 -0
  75. package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  76. package/dist/src/nile-icon/icons/svg/index.js +1 -0
  77. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +1 -1
  80. package/src/nile-checkbox/nile-checkbox.ts +8 -5
  81. package/src/nile-icon/icons/svg/dowhileloop.ts +5 -0
  82. package/src/nile-icon/icons/svg/dowhleloop.ts +5 -0
  83. package/src/nile-icon/icons/svg/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"nile-select.cjs.js","sources":["../../../src/nile-select/nile-select.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from './nile-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\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 { scrollIntoView } from '../internal/scroll';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } 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 { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\ntype NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;\n\n/**\n * Nile icon component.\n *\n * @tag nile-select\n *\n */\n\n/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n *\n * @slot - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\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. Rotates on open and close.\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 `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */\n\n@customElement('nile-select')\nexport class NileSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private typeToSelectString = '';\n private typeToSelectTimeout: number;\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLSlotElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.select__listbox') listbox: HTMLSlotElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() currentOption: NileOption;\n @state() selectedOptions: NileOption[] = [];\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /**\n * The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\n * value will be a space-delimited list of values based on the options selected.\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 /** Placeholder text to show as a hint when the select is empty. */\n @state() searchValue = '';\n\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\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 @property({ attribute: 'help-text' }) helpText = '';\n\n @property({ attribute: 'error-message' }) errorMessage = '';\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = 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 /** 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 }) clearable = false;\n\n /**\n * Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n */\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 /**\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 @property({ type: Boolean }) showSelected = false;\n\n @state() showNoResults: boolean;\n\n @property({ type: String }) noResultsMessage: string = \"No results found\";\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.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n\n // Because this is a form control, it shouldn't be opened initially\n this.open = false;\n }\n\n private addOpenListeners() {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private removeOpenListeners() {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.displayInput.setSelectionRange(0, 0);\n this.emit('nile-focus', { value: this.value , name: this.name });\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value , name: this.name });\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n // Close when focusing out of the select\n const path = event.composedPath();\n if (this && !path.includes(this)) {\n this.hide();\n }\n }\n\n /**\n * Handles the click event on the footer.\n * @param event - The click event.\n */\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n /**\n * Toggles the display of selected options in the dropdown\n * @param event - the event object\n */\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n // Only toggle if there are selected options\n if (this.selectedOptions?.length === 0) {\n return;\n }\n // Toggle the showSelected property\n this.showSelected = !this.showSelected;\n\n // Hide unselected options if showSelected is true\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n this.requestUpdate();\n }\n\n /**\n * Deselects all options and updates the value, selectedOptions, and displayLabel properties accordingly\n */\n private unSlectAll(): void {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n el.selected = false;\n el.hidden = false;\n });\n this.value = '';\n this.selectionChanged();\n this.emit('nile-change', { value: this.value , name: this.name });\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\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\n // Ignore presses when the target is an icon button (e.g. the remove button in <nile-tag>)\n if (isClearButton || isIconButton) {\n return;\n }\n\n // Close when pressing escape\n if (event.key === 'Escape' && this.open) {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n // Handle enter and space. When pressing space, we allow for type to select behaviors so if there's anything in the\n // buffer we _don't_ close it.\n if (\n event.key === 'Enter' ||\n (event.key === ' ' && this.typeToSelectString === '')\n ) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // If it's not open, open it\n if (!this.open) {\n this.show();\n return;\n }\n\n // If it is open, update the value based on the current selection and close it\n if (this.currentOption && !this.currentOption.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(this.currentOption);\n } else {\n this.setSelectedOptions(this.currentOption);\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n return;\n }\n\n // Navigate options\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const allOptions = this.getAllOptions();\n const currentIndex = allOptions.indexOf(this.currentOption);\n let newIndex = Math.max(0, currentIndex);\n\n // Prevent scrolling\n event.preventDefault();\n\n // Open it\n if (!this.open) {\n this.show();\n\n // If an option is already selected, stop here because we want that one to remain highlighted when the listbox\n // opens for the first time\n if (this.currentOption) {\n return;\n }\n }\n\n if (event.key === 'ArrowDown') {\n newIndex = currentIndex + 1;\n if (newIndex > allOptions.length - 1) newIndex = 0;\n } else if (event.key === 'ArrowUp') {\n newIndex = currentIndex - 1;\n if (newIndex < 0) newIndex = allOptions.length - 1;\n } else if (event.key === 'Home') {\n newIndex = 0;\n } else if (event.key === 'End') {\n newIndex = allOptions.length - 1;\n }\n\n this.setCurrentOption(allOptions[newIndex]);\n }\n\n // All other \"printable\" keys trigger type to select\n if (event.key.length === 1 || event.key === 'Backspace') {\n const allOptions = this.getAllOptions();\n\n // Don't block important key combos like CMD+R\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n // Open, unless the key that triggered is backspace\n if (!this.open) {\n if (event.key === 'Backspace') {\n return;\n }\n\n this.show();\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = window.setTimeout(\n () => (this.typeToSelectString = ''),\n 1000\n );\n\n if (event.key === 'Backspace') {\n this.typeToSelectString = this.typeToSelectString.slice(0, -1);\n } else {\n this.typeToSelectString += event.key.toLowerCase();\n }\n\n for (const option of allOptions) {\n const label = option.getTextLabel().toLowerCase();\n\n if (label.startsWith(this.typeToSelectString)) {\n this.setCurrentOption(option);\n break;\n }\n }\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the select\n const path = event.composedPath();\n if (this && !path.includes(this)) {\n this.hide();\n }\n }\n\n private handleLabelClick() {\n this.displayInput.focus();\n }\n\n private handleComboboxMouseDown(event: MouseEvent) {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n\n // Ignore disabled controls and clicks on tags (remove buttons)\n if (this.disabled || isIconButton) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.handleDocumentKeyDown(event);\n }\n\n private handleClearClick(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.value !== '') {\n this.setSelectedOptions([]);\n this.displayInput.focus({ preventScroll: true });\n\n // Emit after update\n this.updateComplete.then(() => {\n this.emit('nile-clear', { value: this.value , name: this.name });\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n }\n }\n\n private handleClearMouseDown(event: MouseEvent) {\n // Don't lose focus or propagate events when clicking the clear button\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleOptionClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n const oldValue = this.value;\n\n if (option && !option.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(option);\n } else {\n this.setSelectedOptions(option);\n }\n\n // Set focus after updating so the value is announced by screen readers\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== oldValue) {\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { 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 if (this.showSelected) {\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n this.requestUpdate();\n }\n\n }\n\n private handleDefaultSlotChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n const values: string[] = [];\n\n // Check for duplicate values in menu items\n if (customElements.get('nile-option')) {\n allOptions.forEach(option => values.push(option.value));\n\n // Select only the options that match the new value\n this.setSelectedOptions(\n allOptions.filter(el => value.includes(el.value))\n );\n } else {\n // Rerun this handler when <nile-option> is registered\n customElements\n .whenDefined('nile-option')\n .then(() => this.handleDefaultSlotChange());\n }\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: NileOption) {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.toggleOptionSelection(option, false);\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n }\n }\n\n // Gets an array of all <nile-option> elements\n private getAllOptions() {\n return [...this.querySelectorAll<NileOption>('nile-option')];\n }\n\n private getOptionPrefix(option: NileOption): string {\n const prefixSlot = option.shadowRoot?.querySelector('slot[name=\"prefix\"]') as HTMLSlotElement;\n if (!prefixSlot) return '';\n\n const assignedNodes = prefixSlot.assignedNodes();\n const htmlStrings: string[] = [];\n\n assignedNodes.forEach(node => {\n if (node instanceof HTMLElement) {\n htmlStrings.push(node.outerHTML);\n } else if (node.nodeType === Node.TEXT_NODE) {\n // Text node\n htmlStrings.push(node.textContent || '');\n }\n });\n\n return htmlStrings.join('');\n }\n\n // Gets the first <nile-option> element\n private getFirstOption() {\n return this.querySelector<NileOption>('nile-option');\n }\n\n // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one\n // option may be \"current\" at a time.\n private setCurrentOption(option: NileOption | null) {\n const allOptions = this.getAllOptions();\n\n // Clear selection\n allOptions.forEach(el => {\n el.current = false;\n el.tabIndex = -1;\n });\n\n // Select the target option\n if (option) {\n this.currentOption = option;\n option.current = true;\n option.tabIndex = 0;\n option.focus();\n }\n }\n\n // Sets the selected option(s)\n private setSelectedOptions(option: NileOption | NileOption[]) {\n const allOptions = this.getAllOptions();\n const newSelectedOptions = Array.isArray(option) ? option : [option];\n\n // Clear existing selection\n allOptions.forEach(el => (el.selected = false));\n\n // Set the new selection\n if (newSelectedOptions.length) {\n newSelectedOptions.forEach(el => (el.selected = true));\n }\n\n // Update selection, value, and display label\n this.selectionChanged();\n }\n\n // Toggles an option's selected state\n private toggleOptionSelection(option: NileOption, force?: boolean) {\n if (force === true || force === false) {\n option.selected = force;\n } else {\n option.selected = !option.selected;\n }\n\n this.selectionChanged();\n }\n\n // This method must be called whenever the selection changes. It will update the selected options cache, the current\n // value, and the display value\n private selectionChanged() {\n // Update selected options cache\n this.selectedOptions = this.getAllOptions().filter(el => el.selected);\n\n // Update the value and display label\n if (this.multiple) {\n this.value = this.selectedOptions.map(el => el.value);\n\n if (this.placeholder && this.value.length === 0) {\n // When no items are selected, keep the value empty so the placeholder shows\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n this.value = this.selectedOptions[0]?.value ?? '';\n this.displayLabel = this.selectedOptions[0]?.getTextLabel() ?? '';\n }\n\n // Update validity\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n\n }\n\n handleSearchFocus() {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur() {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any) {\n this.searchValue = e.detail.value;\n let filteredOptions = this.filterOptions(this.searchValue);\n\n if (filteredOptions.length === 0) {\n // Display 'No results found' message.\n this.showNoResults = true;\n } else {\n this.showNoResults = false;\n } }\n\n filterOptions(searchValue: string) {\n const allOptions = this.getAllOptions();\n const lowerCaseSearchValue = searchValue.toLowerCase();\n\n let filteredOptions: NileOption[] = [];\n\n allOptions.forEach(el => {\n const lowerCaseLabel = el.getTextLabel().toLowerCase();\n const lowerCaseValue = (el.value || '').toLowerCase();\n if (lowerCaseLabel.includes(lowerCaseSearchValue) || lowerCaseValue.includes(lowerCaseSearchValue)) {\n el.hidden = false;\n filteredOptions.push(el);\n } else {\n el.hidden = true;\n }\n });\n\n return filteredOptions;\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Close the listbox when the control is disabled\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n\n // Select only the options that match the new value\n this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open && !this.disabled) {\n // Reset the current option\n this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());\n\n // Show\n this.emit('nile-show', { value: this.value , name: this.name });\n this.addOpenListeners();\n\n await stopAnimations(this);\n this.listbox.hidden = false;\n this.popup.active = true;\n\n // Select the appropriate option based on value after the listbox opens\n requestAnimationFrame(() => {\n this.setCurrentOption(this.currentOption);\n });\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n // Make sure the current option is scrolled into view (required for Safari)\n if (this.currentOption) {\n scrollIntoView(this.currentOption, this.listbox, 'vertical', 'auto');\n }\n\n this.emit('nile-after-show', { value: this.value , name: this.name });\n } else {\n // Hide\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.listbox.hidden = true;\n this.popup.active = false;\n\n this.emit('nile-after-hide', { value: this.value , name: this.name });\n }\n }\n\n /** Shows the listbox. */\n async show() {\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 /** Hides the listbox. */\n async hide() {\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 /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.valueInput.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.valueInput.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n /** Sets focus on the control. */\n focus(options?: FocusOptions) {\n this.displayInput.focus(options);\n }\n\n /** Removes focus from the control. */\n blur() {\n this.displayInput.blur();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\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 searchValue = this.searchValue || '';\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\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 <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 <div part=\"form-control-input\" class=\"form-control-input\">\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 flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n <div\n part=\"combobox\"\n class=\"select__combobox\"\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n\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 @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n return html`\n <nile-tag\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${this.getOptionPrefix(option)\n ? html`<span class=\"tag__prefix\" slot=\"prefix\"\n >${unsafeHTML(\n this.getOptionPrefix(option)\n )}</span\n >`\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 : ''}\n\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 ${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 : ''}\n\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 </div>\n\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 @slotchange=${this.handleDefaultSlotChange}\n >\n\n ${this.optionsLoading\n ? html`\n <span 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 ${this.searchEnabled\n ? html` <div class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${searchValue}\n placeholder=\"Search...\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-blur=${this.handleSearchBlur}\n >\n <nile-icon name=\"search\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>`\n : ``}\n <div class=\"select__options\">\n ${this.showNoResults\n ? html`\n <div class=\"select__no-results\">\n ${this.noResultsMessage}\n </div>\n `\n : ''}\n <slot></slot>\n </div>\n\n ${this.multiple\n ? html` <div\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 &nbsp; Show Selected</nile-checkbox\n >\n </span>\n <span class=\"select__clear\" @click=\"${this.unSlectAll}\"\n >clear all</span\n >\n </div>`\n : ``}\n </div>\n </nile-popup>\n </div>\n\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 </div>\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 NileSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-select': NileSelect;\n }\n}\n"],"names":["NileSelect","_u","_inherits","w","_super","_createSuper","this","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","typeToSelectString","hasFocus","displayLabel","selectedOptions","name","value","defaultValue","size","placeholder","searchValue","searchEnabled","optionsLoading","multiple","helpText","errorMessage","warning","error","success","maxOptionsVisible","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showSelected","noResultsMessage","_this","_createClass","key","get","validity","_this$valueInput","valueInput","validationMessage","_this$valueInput2","connectedCallback","super","handleDocumentFocusIn","bind","handleDocumentKeyDown","handleDocumentMouseDown","addOpenListeners","document","addEventListener","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","emit","handleBlur","event","path","composedPath","includes","hide","handleFooterClick","stopPropagation","preventDefault","toggleShowSelected","length","getAllOptions","forEach","el","selected","hidden","requestUpdate","unSlectAll","selectionChanged","_this3","target","isClearButton","closest","isIconButton","focus","preventScroll","stopImmediatePropagation","currentOption","toggleOptionSelection","setSelectedOptions","updateComplete","then","show","allOptions","currentIndex","indexOf","newIndex","Math","max","setCurrentOption","metaKey","ctrlKey","altKey","clearTimeout","typeToSelectTimeout","window","setTimeout","slice","toLowerCase","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","getTextLabel","startsWith","err","e","f","handleLabelClick","handleComboboxMouseDown","some","Element","tagName","handleComboboxKeyDown","handleClearClick","handleClearMouseDown","handleOptionClick","_this5","oldValue","handleDefaultSlotChange","_this6","Array","isArray","values","customElements","push","filter","whenDefined","handleTagRemove","_toConsumableArray","querySelectorAll","getOptionPrefix","_i$shadowRoot","prefixSlot","shadowRoot","querySelector","assignedNodes","htmlStrings","node","HTMLElement","outerHTML","nodeType","Node","TEXT_NODE","textContent","join","getFirstOption","current","tabIndex","newSelectedOptions","force","map","_this$selectedOptions3","_this$selectedOptions5","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","detail","filterOptions","showNoResults","lowerCaseSearchValue","filteredOptions","lowerCaseLabel","lowerCaseValue","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this9","_m","_i2","_s3","_m2","_i3","_s4","wrap","_callee$","_context2","prev","next","stopAnimations","listbox","popup","active","requestAnimationFrame","getAnimation","dir","keyframes","options","animateTo","scrollIntoView","stop","apply","arguments","_show","_callee2","_callee2$","_context3","waitForEvent","_hide","_callee3","_callee3$","_context4","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","render","hasLabelSlot","test","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","select","select__prefix","_templateObject2","index","_templateObject3","_templateObject4","unsafeHTML","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","NileElement","styles","__decorate","query","prototype","state","property","converter","fromAttribute","split","toAttribute","type","Boolean","reflect","attribute","Number","String","watch","waitUntilFirstUpdate","_export","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
1
+ {"version":3,"file":"nile-select.cjs.js","sources":["../../../src/nile-select/nile-select.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from './nile-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\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 { scrollIntoView } from '../internal/scroll';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } 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 { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\ntype NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;\n\n/**\n * Nile icon component.\n *\n * @tag nile-select\n *\n */\n\n/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n *\n * @slot - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\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. Rotates on open and close.\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 `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */\n\n@customElement('nile-select')\nexport class NileSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private typeToSelectString = '';\n private typeToSelectTimeout: number;\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLSlotElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.select__listbox') listbox: HTMLSlotElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() currentOption: NileOption;\n @state() selectedOptions: NileOption[] = [];\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /**\n * The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\n * value will be a space-delimited list of values based on the options selected.\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 /** Placeholder text to show as a hint when the select is empty. */\n @state() searchValue = '';\n\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\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 @property({ attribute: 'help-text' }) helpText = '';\n\n @property({ attribute: 'error-message' }) errorMessage = '';\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = 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 /** 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 }) clearable = false;\n\n /**\n * Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n */\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 /**\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 @property({ type: Boolean }) showSelected = false;\n\n @state() showNoResults: boolean;\n\n @property({ type: String }) noResultsMessage: string = \"No results found\";\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.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n\n // Because this is a form control, it shouldn't be opened initially\n this.open = false;\n }\n\n private addOpenListeners() {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private removeOpenListeners() {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.displayInput.setSelectionRange(0, 0);\n this.emit('nile-focus', { value: this.value , name: this.name });\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value , name: this.name });\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n // Close when focusing out of the select\n const path = event.composedPath();\n if (this && !path.includes(this)) {\n this.hide();\n }\n }\n\n /**\n * Handles the click event on the footer.\n * @param event - The click event.\n */\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n /**\n * Toggles the display of selected options in the dropdown\n * @param event - the event object\n */\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n // Only toggle if there are selected options\n if (this.selectedOptions?.length === 0) {\n return;\n }\n // Toggle the showSelected property\n this.showSelected = !this.showSelected;\n\n // Hide unselected options if showSelected is true\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n this.requestUpdate();\n }\n\n /**\n * Deselects all options and updates the value, selectedOptions, and displayLabel properties accordingly\n */\n private unSlectAll(): void {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n el.selected = false;\n el.hidden = false;\n });\n this.value = '';\n this.selectionChanged();\n this.emit('nile-change', { value: this.value , name: this.name });\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\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\n // Ignore presses when the target is an icon button (e.g. the remove button in <nile-tag>)\n if (isClearButton || isIconButton) {\n return;\n }\n\n // Close when pressing escape\n if (event.key === 'Escape' && this.open) {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n // Handle enter and space. When pressing space, we allow for type to select behaviors so if there's anything in the\n // buffer we _don't_ close it.\n if (\n event.key === 'Enter' ||\n (event.key === ' ' && this.typeToSelectString === '')\n ) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // If it's not open, open it\n if (!this.open) {\n this.show();\n return;\n }\n\n // If it is open, update the value based on the current selection and close it\n if (this.currentOption && !this.currentOption.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(this.currentOption);\n } else {\n this.setSelectedOptions(this.currentOption);\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n return;\n }\n\n // Navigate options\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const allOptions = this.getAllOptions();\n const currentIndex = allOptions.indexOf(this.currentOption);\n let newIndex = Math.max(0, currentIndex);\n\n // Prevent scrolling\n event.preventDefault();\n\n // Open it\n if (!this.open) {\n this.show();\n\n // If an option is already selected, stop here because we want that one to remain highlighted when the listbox\n // opens for the first time\n if (this.currentOption) {\n return;\n }\n }\n\n if (event.key === 'ArrowDown') {\n newIndex = currentIndex + 1;\n if (newIndex > allOptions.length - 1) newIndex = 0;\n } else if (event.key === 'ArrowUp') {\n newIndex = currentIndex - 1;\n if (newIndex < 0) newIndex = allOptions.length - 1;\n } else if (event.key === 'Home') {\n newIndex = 0;\n } else if (event.key === 'End') {\n newIndex = allOptions.length - 1;\n }\n\n this.setCurrentOption(allOptions[newIndex]);\n }\n\n // All other \"printable\" keys trigger type to select\n if (event.key.length === 1 || event.key === 'Backspace') {\n const allOptions = this.getAllOptions();\n\n // Don't block important key combos like CMD+R\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n // Open, unless the key that triggered is backspace\n if (!this.open) {\n if (event.key === 'Backspace') {\n return;\n }\n\n this.show();\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = window.setTimeout(\n () => (this.typeToSelectString = ''),\n 1000\n );\n\n if (event.key === 'Backspace') {\n this.typeToSelectString = this.typeToSelectString.slice(0, -1);\n } else {\n this.typeToSelectString += event.key.toLowerCase();\n }\n\n for (const option of allOptions) {\n const label = option.getTextLabel().toLowerCase();\n\n if (label.startsWith(this.typeToSelectString)) {\n this.setCurrentOption(option);\n break;\n }\n }\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the select\n const path = event.composedPath();\n if (this && !path.includes(this)) {\n this.hide();\n }\n }\n\n private handleLabelClick() {\n this.displayInput.focus();\n }\n\n private handleComboboxMouseDown(event: MouseEvent) {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n\n // Ignore disabled controls and clicks on tags (remove buttons)\n if (this.disabled || isIconButton) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.handleDocumentKeyDown(event);\n }\n\n private handleClearClick(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.value !== '') {\n this.setSelectedOptions([]);\n this.displayInput.focus({ preventScroll: true });\n\n // Emit after update\n this.updateComplete.then(() => {\n this.emit('nile-clear', { value: this.value , name: this.name });\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n }\n }\n\n private handleClearMouseDown(event: MouseEvent) {\n // Don't lose focus or propagate events when clicking the clear button\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handleOptionClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n const oldValue = this.value;\n\n if (option && !option.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(option);\n } else {\n this.setSelectedOptions(option);\n }\n\n // Set focus after updating so the value is announced by screen readers\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== oldValue) {\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { 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 if (this.showSelected) {\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n this.requestUpdate();\n }\n\n }\n\n private handleDefaultSlotChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n const values: string[] = [];\n\n // Check for duplicate values in menu items\n if (customElements.get('nile-option')) {\n allOptions.forEach(option => values.push(option.value));\n\n // Select only the options that match the new value\n this.setSelectedOptions(\n allOptions.filter(el => value.includes(el.value))\n );\n } else {\n // Rerun this handler when <nile-option> is registered\n customElements\n .whenDefined('nile-option')\n .then(() => this.handleDefaultSlotChange());\n }\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: NileOption) {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.toggleOptionSelection(option, false);\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.emit('nile-input', { value: this.value , name: this.name });\n this.emit('nile-change', { value: this.value , name: this.name });\n });\n }\n }\n\n // Gets an array of all <nile-option> elements\n private getAllOptions() {\n return [...this.querySelectorAll<NileOption>('nile-option')];\n }\n\n private getOptionPrefix(option: NileOption): string {\n const prefixSlot = option.shadowRoot?.querySelector('slot[name=\"prefix\"]') as HTMLSlotElement;\n if (!prefixSlot) return '';\n\n const assignedNodes = prefixSlot.assignedNodes();\n const htmlStrings: string[] = [];\n\n assignedNodes.forEach(node => {\n if (node instanceof HTMLElement) {\n htmlStrings.push(node.outerHTML);\n } else if (node.nodeType === Node.TEXT_NODE) {\n // Text node\n htmlStrings.push(node.textContent || '');\n }\n });\n\n return htmlStrings.join('');\n }\n\n // Gets the first <nile-option> element\n private getFirstOption() {\n return this.querySelector<NileOption>('nile-option');\n }\n\n // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one\n // option may be \"current\" at a time.\n private setCurrentOption(option: NileOption | null) {\n const allOptions = this.getAllOptions();\n\n // Clear selection\n allOptions.forEach(el => {\n el.current = false;\n el.tabIndex = -1;\n });\n\n // Select the target option\n if (option) {\n this.currentOption = option;\n option.current = true;\n option.tabIndex = 0;\n option.focus();\n }\n }\n\n // Sets the selected option(s)\n private setSelectedOptions(option: NileOption | NileOption[]) {\n const allOptions = this.getAllOptions();\n const newSelectedOptions = Array.isArray(option) ? option : [option];\n\n // Clear existing selection\n allOptions.forEach(el => (el.selected = false));\n\n // Set the new selection\n if (newSelectedOptions.length) {\n newSelectedOptions.forEach(el => (el.selected = true));\n }\n\n // Update selection, value, and display label\n this.selectionChanged();\n }\n\n // Toggles an option's selected state\n private toggleOptionSelection(option: NileOption, force?: boolean) {\n if (force === true || force === false) {\n option.selected = force;\n } else {\n option.selected = !option.selected;\n }\n\n this.selectionChanged();\n }\n\n // This method must be called whenever the selection changes. It will update the selected options cache, the current\n // value, and the display value\n private selectionChanged() {\n // Update selected options cache\n this.selectedOptions = this.getAllOptions().filter(el => el.selected);\n\n // Update the value and display label\n if (this.multiple) {\n this.value = this.selectedOptions.map(el => el.value);\n\n if (this.placeholder && this.value.length === 0) {\n // When no items are selected, keep the value empty so the placeholder shows\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n this.value = this.selectedOptions[0]?.value ?? '';\n this.displayLabel = this.selectedOptions[0]?.getTextLabel() ?? '';\n }\n\n // Update validity\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n\n }\n\n handleSearchFocus() {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur() {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any) {\n this.searchValue = e.detail.value;\n let filteredOptions = this.filterOptions(this.searchValue);\n\n if (filteredOptions.length === 0) {\n // Display 'No results found' message.\n this.showNoResults = true;\n } else {\n this.showNoResults = false;\n } }\n\n filterOptions(searchValue: string) {\n const allOptions = this.getAllOptions();\n const lowerCaseSearchValue = searchValue.toLowerCase();\n\n let filteredOptions: NileOption[] = [];\n\n allOptions.forEach(el => {\n const lowerCaseLabel = el.getTextLabel().toLowerCase();\n const lowerCaseValue = (el.value || '').toLowerCase();\n if (lowerCaseLabel.includes(lowerCaseSearchValue) || lowerCaseValue.includes(lowerCaseSearchValue)) {\n el.hidden = false;\n filteredOptions.push(el);\n } else {\n el.hidden = true;\n }\n });\n\n return filteredOptions;\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Close the listbox when the control is disabled\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n\n // Select only the options that match the new value\n this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open && !this.disabled) {\n // Reset the current option\n this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());\n\n // Show\n this.emit('nile-show', { value: this.value , name: this.name });\n this.addOpenListeners();\n\n await stopAnimations(this);\n this.listbox.hidden = false;\n this.popup.active = true;\n\n // Select the appropriate option based on value after the listbox opens\n requestAnimationFrame(() => {\n this.setCurrentOption(this.currentOption);\n });\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n // Make sure the current option is scrolled into view (required for Safari)\n if (this.currentOption) {\n scrollIntoView(this.currentOption, this.listbox, 'vertical', 'auto');\n }\n\n this.emit('nile-after-show', { value: this.value , name: this.name });\n } else {\n // Hide\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.listbox.hidden = true;\n this.popup.active = false;\n\n this.emit('nile-after-hide', { value: this.value , name: this.name });\n }\n }\n\n /** Shows the listbox. */\n async show() {\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 /** Hides the listbox. */\n async hide() {\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 /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.valueInput.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.valueInput.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n /** Sets focus on the control. */\n focus(options?: FocusOptions) {\n this.displayInput.focus(options);\n }\n\n /** Removes focus from the control. */\n blur() {\n this.displayInput.blur();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\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 searchValue = this.searchValue || '';\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\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 <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 <div part=\"form-control-input\" class=\"form-control-input\">\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 flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n <div\n part=\"combobox\"\n class=\"select__combobox\"\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n\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 @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n return html`\n <nile-tag\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${this.getOptionPrefix(option)\n ? html`<span class=\"tag__prefix\" slot=\"prefix\"\n >${unsafeHTML(\n this.getOptionPrefix(option)\n )}</span\n >`\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 : ''}\n\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 ${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 : ''}\n\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 </div>\n\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 @slotchange=${this.handleDefaultSlotChange}\n >\n\n ${this.optionsLoading\n ? html`\n <span 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 ${this.searchEnabled\n ? html` <div class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${searchValue}\n placeholder=\"Search...\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-blur=${this.handleSearchBlur}\n >\n <nile-icon name=\"search\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>`\n : ``}\n <div class=\"select__options\">\n ${this.showNoResults\n ? html`\n <div class=\"select__no-results\">\n ${this.noResultsMessage}\n </div>\n `\n : ''}\n <slot></slot>\n </div>\n\n ${this.multiple\n ? html` <div\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 &nbsp; Show Selected</nile-checkbox\n >\n </span>\n <span class=\"select__clear\" @click=\"${this.unSlectAll}\"\n >clear all</span\n >\n </div>`\n : ``}\n </div>\n </nile-popup>\n </div>\n\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 </div>\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 NileSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-select': NileSelect;\n }\n}\n"],"names":["NileSelect","w","constructor","this","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","typeToSelectString","hasFocus","displayLabel","selectedOptions","name","value","defaultValue","size","placeholder","searchValue","searchEnabled","optionsLoading","multiple","helpText","errorMessage","warning","error","success","maxOptionsVisible","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showSelected","noResultsMessage","_this","_createClass","key","get","_this$valueInput","valueInput","validity","_this$valueInput2","validationMessage","connectedCallback","super","handleDocumentFocusIn","bind","handleDocumentKeyDown","handleDocumentMouseDown","addOpenListeners","document","addEventListener","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","emit","handleBlur","event","path","composedPath","includes","hide","handleFooterClick","stopPropagation","preventDefault","toggleShowSelected","_this$selectedOptions","_this2","length","getAllOptions","forEach","el","selected","hidden","requestUpdate","unSlectAll","selectionChanged","target","isClearButton","closest","isIconButton","focus","preventScroll","stopImmediatePropagation","currentOption","toggleOptionSelection","setSelectedOptions","updateComplete","then","show","allOptions","currentIndex","indexOf","newIndex","Math","max","setCurrentOption","metaKey","ctrlKey","altKey","clearTimeout","typeToSelectTimeout","window","setTimeout","slice","toLowerCase","_iterator","_createForOfIteratorHelper","s","_step","n","done","option","getTextLabel","startsWith","err","e","f","handleLabelClick","handleComboboxMouseDown","some","Element","tagName","handleComboboxKeyDown","handleClearClick","handleClearMouseDown","handleOptionClick","oldValue","handleDefaultSlotChange","Array","isArray","values","customElements","push","filter","whenDefined","handleTagRemove","_toConsumableArray","querySelectorAll","getOptionPrefix","_i$shadowRoot","prefixSlot","shadowRoot","querySelector","assignedNodes","htmlStrings","node","HTMLElement","outerHTML","nodeType","Node","TEXT_NODE","textContent","join","getFirstOption","current","tabIndex","newSelectedOptions","force","map","_this$selectedOptions3","_this$selectedOptions5","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","detail","filterOptions","showNoResults","lowerCaseSearchValue","filteredOptions","lowerCaseLabel","lowerCaseValue","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this9","_m","_i2","_s3","_m2","_i3","_s4","wrap","_callee$","_context2","prev","next","stopAnimations","listbox","popup","active","requestAnimationFrame","getAnimation","dir","keyframes","options","animateTo","scrollIntoView","stop","apply","arguments","_show","_callee2","_callee2$","_context3","waitForEvent","_hide","_callee3","_callee3$","_context4","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","render","hasLabelSlot","test","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","select","select__prefix","_templateObject2","index","_templateObject3","_templateObject4","unsafeHTML","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","NileElement","styles","__decorate","query","prototype","state","property","converter","fromAttribute","split","toAttribute","type","Boolean","reflect","attribute","Number","String","watch","waitUntilFirstUpdate","_export","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"iriDA+FaA,CAAAA,uBAAAA,EAAAA,EAAAA,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,MAAAA,MAAAA,CAAAA,YAAAA,CAAAA,CAAAA,EAAN,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,mCAGYC,EAAAA,KAAAA,CAAAC,qBAAwB,CAAA,GAAIC,CAAAA,CAAsBF,CAAAA,sBAAAA,CAAAA,KAAAA,EAAM,CACvEG,mBAAAA,CAAqB,CAAC,WAAA,CAAa,YAEpBH,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAiBI,iBAAG,CAAA,GAAIC,CAAAA,gCAEvC,WAAA,CACA,OAEML,CAAAA,CAAAA,KAAAA,CAAkBM,kBAAG,CAAA,EAAA,CASZN,KAAAA,CAAQO,QAAAA,CAAAA,CAAG,CACnBP,CAAAA,KAAAA,CAAYQ,YAAG,CAAA,EAAA,CAEfR,KAAAA,CAAeS,eAAAA,CAAiB,GAG7BT,KAAAA,CAAIU,IAAAA,CAAG,EAYnBV,CAAAA,KAAAA,CAAKW,KAAsB,CAAA,EAAA,CAGXX,KAAAA,CAAYY,YAAsB,CAAA,EAAA,CAGtCZ,KAAAA,CAAIa,IAAAA,CAAiC,QAGrCb,CAAAA,KAAAA,CAAWc,YAAG,WAGjBd,CAAAA,KAAAA,CAAWe,WAAG,CAAA,EAAA,CAEqBf,KAAAA,CAAagB,aAAAA,CAAAA,CAAG,CAEhBhB,CAAAA,KAAAA,CAAciB,cAAG,CAAA,CAAA,CAAA,CAGjBjB,KAAAA,CAAQkB,QAAAA,CAAAA,CAAG,CAEjBlB,CAAAA,KAAAA,CAAQmB,SAAG,EAEPnB,CAAAA,KAAAA,CAAYoB,YAAG,CAAA,EAAA,CAG5BpB,KAAAA,CAAOqB,OAAAA,CAAAA,CAAG,CAGVrB,CAAAA,KAAAA,CAAKsB,KAAG,CAAA,CAAA,CAAA,CAGRtB,KAAAA,CAAOuB,OAAAA,CAAAA,CAAG,CAOvCvB,CAAAA,KAAAA,CAAiBwB,kBAAG,CAGwBxB,CAAAA,KAAAA,CAAQyB,QAAG,CAAA,CAAA,CAAA,CAG1BzB,KAAAA,CAAS0B,SAAAA,CAAAA,CAAG,CAMG1B,CAAAA,KAAAA,CAAI2B,IAAG,CAAA,CAAA,CAAA,CAMtB3B,KAAAA,CAAK4B,KAAAA,CAAAA,CAAG,CAGO5B,CAAAA,KAAAA,CAAM6B,QAAG,CAGT7B,CAAAA,KAAAA,CAAI8B,IAAG,CAAA,CAAA,CAAA,CAGvC9B,KAAAA,CAAK+B,KAAAA,CAAG,GAMS/B,KAAAA,CAASgC,SAAAA,CAAqB,QAQ9BhC,CAAAA,KAAAA,CAAIiC,IAAG,CAAA,EAAA,CAGQjC,KAAAA,CAAQkC,QAAG,CAAA,CAAA,CAAA,CAE1BlC,KAAAA,CAAYmC,YAAAA,CAAAA,CAAG,CAIhBnC,CAAAA,KAAAA,CAAgBoC,gBAAW,CAAA,kBAs5BxD,QAAAC,KAAA,EAn5BCC,YAAA,CAAAxC,CAAA,GAAAyC,GAAA,YAAAC,GAAA,UAAAA,IAAA,CACE,KAAAC,gBAAA,CAAA,OAAAA,gBAAA,CAAOzC,IAAK0C,CAAAA,UAAAA,UAAAA,gBAAAA,iBAAL1C,gBAAAA,CAAiB2C,QACzB,EAGD,GAAAJ,GAAA,qBAAAC,GAAA,UAAAA,IAAA,CACE,KAAAI,iBAAA,CAAA,OAAAA,iBAAA,CAAO5C,IAAK0C,CAAAA,UAAAA,UAAAA,iBAAAA,iBAAL1C,iBAAAA,CAAiB6C,iBACzB,EAED,GAAAN,GAAA,qBAAA5B,KAAA,UAAAmC,kBAAA,CAAAA,CACEC,IAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAAAA,SAAAA,4BAAAA,IAAAA,OACA/C,IAAKgD,CAAAA,qBAAAA,CAAwBhD,KAAKgD,qBAAsBC,CAAAA,IAAAA,CAAKjD,IAC7DA,CAAAA,CAAAA,IAAAA,CAAKkD,qBAAwBlD,CAAAA,IAAAA,CAAKkD,qBAAsBD,CAAAA,IAAAA,CAAKjD,IAC7DA,CAAAA,CAAAA,IAAAA,CAAKmD,uBAA0BnD,CAAAA,IAAAA,CAAKmD,uBAAwBF,CAAAA,IAAAA,CAAKjD,MAGjEA,IAAK2B,CAAAA,IAAAA,CAAAA,CAAO,CACb,EAEO,GAAAY,GAAA,oBAAA5B,KAAA,UAAAyC,iBAAA,CAAAA,CACNC,SAASC,gBAAiB,CAAA,SAAA,CAAWtD,IAAKgD,CAAAA,qBAAAA,CAAAA,CAC1CK,QAASC,CAAAA,gBAAAA,CAAiB,UAAWtD,IAAKkD,CAAAA,qBAAAA,CAAAA,CAC1CG,QAASC,CAAAA,gBAAAA,CAAiB,WAAatD,CAAAA,IAAAA,CAAKmD,uBAC7C,CAAA,EAEO,GAAAZ,GAAA,uBAAA5B,KAAA,UAAA4C,oBAAA,CAAAA,CACNF,QAASG,CAAAA,mBAAAA,CAAoB,SAAWxD,CAAAA,IAAAA,CAAKgD,uBAC7CK,QAASG,CAAAA,mBAAAA,CAAoB,SAAWxD,CAAAA,IAAAA,CAAKkD,qBAC7CG,CAAAA,CAAAA,QAAAA,CAASG,mBAAoB,CAAA,WAAA,CAAaxD,IAAKmD,CAAAA,uBAAAA,CAChD,EAEO,GAAAZ,GAAA,eAAA5B,KAAA,UAAA8C,YAAA,CACNzD,CAAAA,IAAAA,CAAKO,UAAW,CAChBP,CAAAA,IAAAA,CAAK0D,YAAaC,CAAAA,iBAAAA,CAAkB,CAAG,CAAA,CAAA,CAAA,CACvC3D,IAAK4D,CAAAA,IAAAA,CAAK,YAAc,CAAA,CAAEjD,KAAOX,CAAAA,IAAAA,CAAKW,KAAQD,CAAAA,IAAAA,CAAMV,KAAKU,IAC1D,CAAA,CAAA,EAEO,GAAA6B,GAAA,cAAA5B,KAAA,UAAAkD,WAAA,CAAAA,CACN7D,IAAKO,CAAAA,QAAAA,CAAAA,CAAW,CAChBP,CAAAA,IAAAA,CAAK4D,IAAK,CAAA,WAAA,CAAa,CAAEjD,KAAAA,CAAOX,IAAKW,CAAAA,KAAAA,CAAQD,KAAMV,IAAKU,CAAAA,IAAAA,CAAAA,CACzD,EAEO,GAAA6B,GAAA,yBAAA5B,KAAA,UAAAqC,sBAAsBc,CAAAA,CAAAA,CAE5B,GAAMC,CAAAA,CAAAA,CAAOD,CAAME,CAAAA,YAAAA,CAAAA,CAAAA,CACfhE,IAAS+D,EAAAA,CAAAA,CAAAA,CAAKE,QAASjE,CAAAA,IAAAA,CAAAA,EACzBA,KAAKkE,IAER,CAAA,CAAA,EAMO,GAAA3B,GAAA,qBAAA5B,KAAA,UAAAwD,kBAAkBL,CACxBA,CAAAA,CAAAA,CAAAA,CAAMM,eACNN,CAAAA,CAAAA,CAAAA,CAAAA,CAAMO,cACP,CAAA,CAAA,EAMO,GAAA9B,GAAA,sBAAA5B,KAAA,UAAA2D,mBAAmBR,CAIzB,CAAA,KAAAS,qBAAA,CAAAC,MAAA,MAAA,GAHAV,EAAMM,eACNN,CAAAA,CAAAA,CAAAA,CAAAA,CAAMO,cAE+B,CAAA,CAAA,CAAA,CAAA,KAAAE,qBAAA,CAAjCvE,IAAKS,CAAAA,eAAAA,UAAAA,qBAAAA,iBAALT,qBAAAA,CAAsByE,MACxB,EAAA,OAGFzE,IAAKmC,CAAAA,YAAAA,CAAAA,CAAgBnC,IAAKmC,CAAAA,YAAAA,CAGPnC,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CACbC,QAAQC,SAAAA,CACZA,CAAAA,CAAAA,CAAAA,CAAGC,QACND,GAAAA,CAAAA,CAAGE,MAAS9E,CAAAA,MAAAA,CAAKmC,aAClB,EAGHnC,CAAAA,CAAAA,IAAAA,CAAK+E,aACN,CAAA,CAAA,EAKO,GAAAxC,GAAA,cAAA5B,KAAA,UAAAqE,WAAA,CAAAA,CACNhF,KAAKmC,YAAe,CAAA,CAAA,CAAA,CACDnC,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CACbC,OAAQC,CAAAA,SAAAA,CAAAA,CAAAA,CACjBA,CAAGC,CAAAA,QAAAA,CAAAA,CAAW,CACdD,CAAAA,CAAAA,CAAGE,MAAS,CAAA,CAAA,CAAK,EAEnB9E,CAAAA,CAAAA,IAAAA,CAAKW,MAAQ,EACbX,CAAAA,IAAAA,CAAKiF,gBACLjF,CAAAA,CAAAA,CAAAA,IAAAA,CAAK4D,IAAK,CAAA,aAAA,CAAe,CAAEjD,KAAAA,CAAOX,IAAKW,CAAAA,KAAAA,CAAQD,IAAMV,CAAAA,IAAAA,CAAKU,IAC3D,CAAA,CAAA,EAEO,GAAA6B,GAAA,yBAAA5B,KAAA,UAAAuC,sBAAsBY,CAAAA,CAAAA,KAAAA,MAAAA,MAC5B,GAAMoB,CAAAA,CAAAA,CAASpB,CAAMoB,CAAAA,MAAAA,CACfC,CAAqD,CAAA,IAAA,GAArCD,CAAOE,CAAAA,OAAAA,CAAQ,gBAC/BC,CAAAA,CAAAA,CAAAA,CAAsD,IAAvCH,GAAAA,CAAAA,CAAOE,QAAQ,kBAGpC,CAAA,CAAA,GAAA,CAAID,CAAiBE,EAAAA,CAAAA,CAAAA,CAArB,CAcA,GATkB,QAAdvB,GAAAA,CAAAA,CAAMvB,GAAoBvC,EAAAA,IAAAA,CAAK2B,IACjCmC,GAAAA,CAAAA,CAAMO,cACNP,CAAAA,CAAAA,CAAAA,CAAAA,CAAMM,kBACNpE,IAAKkE,CAAAA,IAAAA,CAAAA,CAAAA,CACLlE,IAAK0D,CAAAA,YAAAA,CAAa4B,KAAM,CAAA,CAAEC,aAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAM3B,OAAdzB,GAAAA,CAAAA,CAAMvB,GACS,EAAA,GAAA,GAAduB,CAAMvB,CAAAA,GAAAA,EAA2C,KAA5BvC,IAAKM,CAAAA,kBAAAA,CAM3B,MAJAwD,CAAAA,CAAAA,CAAMO,cACNP,CAAAA,CAAAA,CAAAA,CAAAA,CAAM0B,wBAGDxF,CAAAA,CAAAA,CAAAA,IAAAA,CAAK2B,IAMN3B,CAAAA,KAAAA,IAAAA,CAAKyF,aAAkBzF,EAAAA,CAAAA,IAAAA,CAAKyF,aAAchE,CAAAA,QAAAA,GACxCzB,KAAKkB,QACPlB,CAAAA,IAAAA,CAAK0F,qBAAsB1F,CAAAA,IAAAA,CAAKyF,aAEhCzF,CAAAA,CAAAA,IAAAA,CAAK2F,kBAAmB3F,CAAAA,IAAAA,CAAKyF,aAI/BzF,CAAAA,CAAAA,IAAAA,CAAK4F,cAAeC,CAAAA,IAAAA,CAAK,UACvB7F,CAAAA,MAAAA,CAAK4D,KAAK,YAAc,CAAA,CAAEjD,KAAOX,CAAAA,MAAAA,CAAKW,KAAQD,CAAAA,IAAAA,CAAMV,OAAKU,IACzDV,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4D,IAAK,CAAA,aAAA,CAAe,CAAEjD,KAAAA,CAAOX,OAAKW,KAAQD,CAAAA,IAAAA,CAAMV,MAAKU,CAAAA,IAAAA,CAAAA,CAAO,EAG9DV,CAAAA,CAAAA,IAAAA,CAAKkB,QACRlB,GAAAA,IAAAA,CAAKkE,IACLlE,CAAAA,CAAAA,CAAAA,IAAAA,CAAK0D,YAAa4B,CAAAA,KAAAA,CAAM,CAAEC,aAAAA,CAAAA,CAAe,WApB3CvF,KAAK8F,CAAAA,IAAAA,CAAAA,CAAAA,CA4BT,GAAI,CAAC,SAAW,CAAA,WAAA,CAAa,MAAQ,CAAA,KAAA,CAAA,CAAO7B,QAASH,CAAAA,CAAAA,CAAMvB,GAAM,CAAA,CAAA,CAC/D,GAAMwD,CAAAA,EAAAA,CAAa/F,KAAK0E,aAClBsB,CAAAA,CAAAA,CAAAA,EAAAA,CAAeD,EAAWE,CAAAA,OAAAA,CAAQjG,IAAKyF,CAAAA,aAAAA,CAAAA,CAC7C,GAAIS,CAAAA,EAAAA,CAAWC,IAAKC,CAAAA,GAAAA,CAAI,CAAGJ,CAAAA,EAAAA,CAAAA,CAM3B,GAHAlC,CAAAA,CAAMO,kBAGDrE,IAAK2B,CAAAA,IAAAA,GACR3B,IAAK8F,CAAAA,IAAAA,CAAAA,CAAAA,CAID9F,IAAKyF,CAAAA,aAAAA,CAAAA,CACP,OAIc,WAAA,GAAd3B,CAAMvB,CAAAA,GAAAA,EACR2D,EAAWF,CAAAA,EAAAA,CAAe,CACtBE,CAAAA,EAAAA,CAAWH,GAAWtB,MAAS,CAAA,CAAA,GAAGyB,EAAW,CAAA,CAAA,CAAA,EAC1B,SAAdpC,GAAAA,CAAAA,CAAMvB,GACf2D,EAAAA,EAAAA,CAAWF,EAAe,CAAA,CAAA,CACtBE,EAAW,CAAA,CAAA,GAAGA,EAAWH,CAAAA,EAAAA,CAAWtB,OAAS,CAC1B,CAAA,EAAA,MAAA,GAAdX,CAAMvB,CAAAA,GAAAA,CACf2D,EAAW,CAAA,CAAA,CACY,KAAdpC,GAAAA,CAAAA,CAAMvB,GACf2D,GAAAA,EAAAA,CAAWH,EAAWtB,CAAAA,MAAAA,CAAS,CAGjCzE,CAAAA,CAAAA,IAAAA,CAAKqG,iBAAiBN,EAAWG,CAAAA,EAAAA,CAAAA,CAClC,EAGD,GAAyB,CAArBpC,GAAAA,CAAAA,CAAMvB,GAAIkC,CAAAA,MAAAA,EAA8B,WAAdX,GAAAA,CAAAA,CAAMvB,GAAqB,CAAA,CACvD,GAAMwD,CAAAA,GAAAA,CAAa/F,KAAK0E,aAGxB,CAAA,CAAA,CAAA,GAAIZ,CAAMwC,CAAAA,OAAAA,EAAWxC,CAAMyC,CAAAA,OAAAA,EAAWzC,EAAM0C,MAC1C,CAAA,OAIF,GAAKxG,CAAAA,IAAAA,CAAK2B,IAAM,CAAA,CACd,GAAkB,WAAdmC,GAAAA,CAAAA,CAAMvB,GACR,CAAA,OAGFvC,IAAK8F,CAAAA,IAAAA,CAAAA,CACN,EAEDhC,CAAAA,CAAMM,eACNN,CAAAA,CAAAA,CAAAA,CAAAA,CAAMO,cAENoC,CAAAA,CAAAA,CAAAA,YAAAA,CAAazG,IAAK0G,CAAAA,mBAAAA,CAAAA,CAClB1G,KAAK0G,mBAAsBC,CAAAA,MAAAA,CAAOC,UAChC,CAAA,iBAAO5G,CAAAA,MAAKM,CAAAA,kBAAAA,CAAqB,EACjC,GAAA,GAAA,CAAA,CAGgB,WAAdwD,GAAAA,CAAAA,CAAMvB,GACRvC,CAAAA,IAAAA,CAAKM,kBAAqBN,CAAAA,IAAAA,CAAKM,mBAAmBuG,KAAM,CAAA,CAAA,CAAA,CAAI,CAE5D7G,CAAAA,CAAAA,IAAAA,CAAKM,kBAAsBwD,EAAAA,CAAAA,CAAMvB,GAAIuE,CAAAA,WAAAA,CAAAA,CAAAA,CAGvC,IAAAC,SAAA,CAAAC,0BAAA,CAAqBjB,GAAAA,EAAAA,KAAAA,KAArB,IAAAgB,SAAA,CAAAE,CAAA,KAAAC,KAAA,CAAAH,SAAA,CAAAI,CAAA,IAAAC,IAAA,EAAiC,IAAtBC,CAAAA,EAAUtB,CAAAA,KAAAA,CAAAA,KAAAA,CAGnB,GAFcsB,GAAOC,YAAeR,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAE1BS,UAAWvH,CAAAA,IAAAA,CAAKM,kBAAqB,CAAA,CAAA,CAC7CN,KAAKqG,gBAAiBgB,CAAAA,EAAAA,CAAAA,CACtB,MACD,CACF,CACF,OAAAG,GAAA,EAAAT,SAAA,CAAAU,CAAA,CAAAD,GAAA,WAAAT,SAAA,CAAAW,CAAA,KA5HA,CA6HF,CAEO,GAAAnF,GAAA,2BAAA5B,KAAA,UAAAwC,wBAAwBW,CAAAA,CAAAA,CAE9B,GAAMC,CAAAA,CAAAA,CAAOD,CAAME,CAAAA,YAAAA,CAAAA,CAAAA,CACfhE,IAAS+D,EAAAA,CAAAA,CAAAA,CAAKE,QAASjE,CAAAA,IAAAA,CAAAA,EACzBA,IAAKkE,CAAAA,IAAAA,CAAAA,CAER,EAEO,GAAA3B,GAAA,oBAAA5B,KAAA,UAAAgH,iBAAA,CAAAA,CACN3H,IAAK0D,CAAAA,YAAAA,CAAa4B,KACnB,CAAA,CAAA,EAEO,GAAA/C,GAAA,2BAAA5B,KAAA,UAAAiH,wBAAwB9D,CAC9B,CAAA,CAAA,GACMuB,CAAAA,CADOvB,CAAAA,CAAAA,CAAME,YACO6D,CAAAA,CAAAA,CAAAA,IAAAA,CACxBjD,SAAAA,SACEA,CAAAA,CAAckD,WAAAA,CAAAA,OAAAA,EAAwC,kBAA7BlD,GAAAA,CAAAA,CAAGmD,OAAQjB,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAIpC9G,IAAKyB,CAAAA,QAAAA,EAAY4D,CAIrBvB,GAAAA,CAAAA,CAAMO,cACNrE,CAAAA,CAAAA,CAAAA,IAAAA,CAAK0D,YAAa4B,CAAAA,KAAAA,CAAM,CAAEC,aAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CACzCvF,IAAK2B,CAAAA,IAAAA,CAAAA,CAAQ3B,IAAK2B,CAAAA,IAAAA,CACnB,EAEO,GAAAY,GAAA,yBAAA5B,KAAA,UAAAqH,sBAAsBlE,CAC5BA,CAAAA,CAAAA,CAAAA,CAAMM,eACNpE,CAAAA,CAAAA,CAAAA,IAAAA,CAAKkD,sBAAsBY,CAC5B,CAAA,EAEO,GAAAvB,GAAA,oBAAA5B,KAAA,UAAAsH,iBAAiBnE,CACvBA,CAAAA,KAAAA,MAAAA,MAAAA,CAAAA,CAAMM,eAEa,CAAA,CAAA,CAAA,EAAA,GAAfpE,IAAKW,CAAAA,KAAAA,GACPX,IAAK2F,CAAAA,kBAAAA,CAAmB,EACxB3F,CAAAA,CAAAA,IAAAA,CAAK0D,aAAa4B,KAAM,CAAA,CAAEC,aAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAGzCvF,IAAK4F,CAAAA,cAAAA,CAAeC,IAAK,CAAA,UAAA,CACvB7F,MAAK4D,CAAAA,IAAAA,CAAK,YAAc,CAAA,CAAEjD,KAAOX,CAAAA,MAAAA,CAAKW,MAAQD,IAAMV,CAAAA,MAAAA,CAAKU,IACzDV,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4D,IAAK,CAAA,YAAA,CAAc,CAAEjD,KAAAA,CAAOX,MAAKW,CAAAA,KAAAA,CAAQD,IAAMV,CAAAA,MAAAA,CAAKU,IACzDV,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4D,KAAK,aAAe,CAAA,CAAEjD,KAAOX,CAAAA,MAAAA,CAAKW,KAAQD,CAAAA,IAAAA,CAAMV,MAAKU,CAAAA,IAAAA,CAAAA,CAAO,EAGtE,CAAA,CAAA,EAEO,GAAA6B,GAAA,wBAAA5B,KAAA,UAAAuH,qBAAqBpE,CAE3BA,CAAAA,CAAAA,CAAAA,CAAMM,kBACNN,CAAMO,CAAAA,cAAAA,CAAAA,CACP,EAEO,GAAA9B,GAAA,qBAAA5B,KAAA,UAAAwH,kBAAkBrE,CAAAA,CAAAA,KAAAA,MAAAA,MACxB,GACMuD,CAAAA,CAAAA,CADSvD,CAAMoB,CAAAA,MAAAA,CACCE,OAAQ,CAAA,aAAA,CAAA,CACxBgD,CAAWpI,CAAAA,IAAAA,CAAKW,MA4BtB,GA1BI0G,CAAAA,EAAAA,CAAWA,CAAO5F,CAAAA,QAAAA,GAChBzB,IAAKkB,CAAAA,QAAAA,CACPlB,IAAK0F,CAAAA,qBAAAA,CAAsB2B,CAE3BrH,CAAAA,CAAAA,IAAAA,CAAK2F,kBAAmB0B,CAAAA,CAAAA,CAAAA,CAI1BrH,IAAK4F,CAAAA,cAAAA,CAAeC,KAAK,iBACvB7F,CAAAA,MAAAA,CAAK0D,YAAa4B,CAAAA,KAAAA,CAAM,CAAEC,aAAAA,CAAAA,CAAe,CAGvCvF,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAKW,KAAUyH,GAAAA,CAAAA,EAEjBpI,IAAK4F,CAAAA,cAAAA,CAAeC,IAAK,CAAA,UAAA,CACvB7F,OAAK4D,IAAK,CAAA,YAAA,CAAc,CAAEjD,KAAAA,CAAOX,MAAKW,CAAAA,KAAAA,CAAQD,KAAMV,MAAKU,CAAAA,IAAAA,CAAAA,CAAAA,CACzDV,MAAK4D,CAAAA,IAAAA,CAAK,aAAe,CAAA,CAAEjD,MAAOX,MAAKW,CAAAA,KAAAA,CAAQD,IAAMV,CAAAA,MAAAA,CAAKU,IAAO,CAAA,CAAA,EAAA,CAAA,CAIhEV,IAAKkB,CAAAA,QAAAA,GACRlB,IAAKkE,CAAAA,IAAAA,CAAAA,CAAAA,CACLlE,IAAK0D,CAAAA,YAAAA,CAAa4B,KAAM,CAAA,CAAEC,eAAe,CAIzCvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKmC,YAAc,CAAA,CACFnC,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CACbC,OAAQC,CAAAA,SAAAA,CAAAA,CAAAA,CACZA,CAAGC,CAAAA,QAAAA,GACND,CAAGE,CAAAA,MAAAA,CAAS9E,MAAKmC,CAAAA,YAAAA,CAClB,IAGHnC,IAAK+E,CAAAA,aAAAA,CAAAA,CACN,EAEF,CAEO,GAAAxC,GAAA,2BAAA5B,KAAA,UAAA0H,wBAAA,CAAAA,KAAAA,MAAAA,MACN,GAAMtC,CAAAA,CAAAA,CAAa/F,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CAClB/D,CAAQ2H,CAAAA,KAAAA,CAAMC,OAAQvI,CAAAA,IAAAA,CAAKW,OAASX,IAAKW,CAAAA,KAAAA,CAAQ,CAACX,IAAAA,CAAKW,KACvD6H,CAAAA,CAAAA,CAAAA,CAAmB,EAGrBC,CAAAA,cAAAA,CAAejG,GAAI,CAAA,aAAA,CAAA,EACrBuD,CAAWpB,CAAAA,OAAAA,CAAQ0C,SAAAA,CAAUmB,QAAAA,CAAAA,CAAAA,CAAOE,KAAKrB,CAAO1G,CAAAA,KAAAA,CAAAA,EAAAA,CAAAA,CAGhDX,IAAK2F,CAAAA,kBAAAA,CACHI,CAAW4C,CAAAA,MAAAA,CAAO/D,SAAAA,CAAMjE,QAAAA,CAAAA,CAAAA,CAAMsD,QAASW,CAAAA,CAAAA,CAAGjE,KAI5C8H,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,cAAAA,CACGG,WAAY,CAAA,aAAA,CAAA,CACZ/C,KAAK,iBAAM7F,CAAAA,MAAAA,CAAKqI,uBAEtB,CAAA,CAAA,EAAA,CAAA,EAEO,GAAA9F,GAAA,mBAAA5B,KAAA,UAAAkI,gBAAgB/E,CAAwBuD,CAAAA,CAAAA,CAAAA,KAAAA,MAAAA,MAC9CvD,CAAMM,CAAAA,eAAAA,CAAAA,CAAAA,CAEDpE,IAAKyB,CAAAA,QAAAA,GACRzB,IAAK0F,CAAAA,qBAAAA,CAAsB2B,GAAQ,CAGnCrH,CAAAA,CAAAA,IAAAA,CAAK4F,cAAeC,CAAAA,IAAAA,CAAK,UACvB7F,CAAAA,MAAAA,CAAK4D,IAAK,CAAA,YAAA,CAAc,CAAEjD,KAAAA,CAAOX,MAAKW,CAAAA,KAAAA,CAAQD,IAAMV,CAAAA,MAAAA,CAAKU,OACzDV,MAAK4D,CAAAA,IAAAA,CAAK,aAAe,CAAA,CAAEjD,KAAOX,CAAAA,MAAAA,CAAKW,MAAQD,IAAMV,CAAAA,MAAAA,CAAKU,IAAO,CAAA,CAAA,EAAA,CAAA,CAGtE,EAGO,GAAA6B,GAAA,iBAAA5B,KAAA,UAAA+D,cAAA,EACN,OAAAoE,kBAAA,CAAW9I,IAAK+I,CAAAA,gBAAAA,CAA6B,aAC9C,CAAA,EAAA,CAEO,GAAAxG,GAAA,mBAAA5B,KAAA,UAAAqI,gBAAgB3B,CACtB,CAAA,KAAA4B,aAAA,CAAA,GAAMC,CAAAA,CAAa7B,EAAAA,aAAAA,CAAAA,CAAAA,CAAO8B,UAAYC,UAAAA,aAAAA,iBAAnB/B,aAAAA,CAAmB+B,aAAAA,CAAc,uBACpD,GAAKF,CAAAA,CAAAA,CAAY,MAAO,EAAA,CAExB,GAAMG,CAAAA,CAAAA,CAAgBH,CAAWG,CAAAA,aAAAA,CAAAA,CAAAA,CAC3BC,CAAwB,CAAA,EAAA,CAW9B,MATAD,CAAAA,CAAAA,CAAc1E,OAAQ4E,CAAAA,SAAAA,CAAAA,CAAAA,CAChBA,YAAgBC,CAAAA,WAClBF,CAAAA,CAAAA,CAAYZ,IAAKa,CAAAA,CAAAA,CAAKE,SACbF,CAAAA,CAAAA,CAAAA,CAAKG,QAAaC,GAAAA,IAAAA,CAAKC,SAEhCN,EAAAA,CAAAA,CAAYZ,IAAKa,CAAAA,CAAAA,CAAKM,WAAe,EAAA,EAAA,CACtC,IAGIP,CAAYQ,CAAAA,IAAAA,CAAK,EACzB,CAAA,EAGO,GAAAvH,GAAA,kBAAA5B,KAAA,UAAAoJ,eAAA,CAAAA,CACN,MAAO/J,KAAAA,CAAKoJ,aAA0B,CAAA,aAAA,CACvC,EAIO,GAAA7G,GAAA,oBAAA5B,KAAA,UAAA0F,iBAAiBgB,CAAAA,CAAAA,CACJrH,KAAK0E,aAGbC,CAAAA,CAAAA,CAAAA,OAAAA,CAAQC,SAAAA,CACjBA,CAAAA,CAAAA,CAAAA,CAAGoF,OAAU,CAAA,CAAA,CAAA,CACbpF,CAAGqF,CAAAA,QAAAA,CAAAA,CAAY,CAAC,EAAA,CAAA,CAId5C,CACFrH,GAAAA,IAAAA,CAAKyF,aAAgB4B,CAAAA,CAAAA,CACrBA,EAAO2C,OAAU,CAAA,CAAA,CAAA,CACjB3C,CAAO4C,CAAAA,QAAAA,CAAW,CAClB5C,CAAAA,CAAAA,CAAO/B,KAEV,CAAA,CAAA,CAAA,EAGO,GAAA/C,GAAA,sBAAA5B,KAAA,UAAAgF,mBAAmB0B,CACzB,CAAA,CAAA,GAAMtB,CAAAA,CAAa/F,CAAAA,IAAAA,CAAK0E,gBAClBwF,CAAqB5B,CAAAA,KAAAA,CAAMC,OAAQlB,CAAAA,CAAAA,CAAAA,CAAUA,CAAS,CAAA,CAACA,CAG7DtB,CAAAA,CAAAA,CAAAA,CAAWpB,OAAQC,CAAAA,SAAAA,CAAAA,QAAOA,CAAAA,CAAGC,CAAAA,QAAAA,CAAAA,CAAW,CAGpCqF,EAAAA,CAAAA,CAAAA,CAAAA,CAAmBzF,QACrByF,CAAmBvF,CAAAA,OAAAA,CAAQC,SAAAA,CAAOA,QAAAA,CAAAA,CAAAA,CAAGC,QAAW,CAAA,CAAA,CAAA,EAAA,CAAA,CAIlD7E,KAAKiF,gBACN,CAAA,CAAA,EAGO,GAAA1C,GAAA,yBAAA5B,KAAA,UAAA+E,sBAAsB2B,CAAoB8C,CAAAA,CAAAA,CAAAA,CAE9C9C,EAAOxC,QADK,CAAA,CAAA,CAAA,GAAVsF,CAA4B,EAAA,CAAA,CAAA,GAAVA,CACFA,CAAAA,CAAAA,CAAAA,CAEC9C,CAAOxC,CAAAA,QAAAA,CAG5B7E,IAAKiF,CAAAA,gBAAAA,CAAAA,CACN,EAIO,GAAA1C,GAAA,oBAAA5B,KAAA,UAAAsE,iBAAA,CAENjF,KAAAA,sBAAAA,CAAAA,sBAAAA,CAAAA,sBAAAA,CAAAA,sBAAAA,CAAAA,MAAAA,MAAAA,IAAAA,CAAKS,gBAAkBT,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CAAgBiE,MAAO/D,CAAAA,SAAAA,CAAAA,QAAMA,CAAAA,CAAGC,CAAAA,QAAAA,EAAAA,CAAAA,CAGxD7E,IAAKkB,CAAAA,QAAAA,EACPlB,IAAKW,CAAAA,KAAAA,CAAQX,IAAKS,CAAAA,eAAAA,CAAgB2J,GAAIxF,CAAAA,SAAAA,CAAAA,QAAMA,CAAAA,EAAGjE,KAE3CX,EAAAA,CAAAA,CAAAA,IAAAA,CAAKc,WAAqC,EAAA,CAAA,GAAtBd,IAAKW,CAAAA,KAAAA,CAAM8D,MAEjCzE,CAAAA,IAAAA,CAAKQ,YAAe,CAAA,EAAA,CAEpBR,IAAKQ,CAAAA,YAAAA,CAAeR,IAAKS,CAAAA,eAAAA,CAAgBgE,OAAS,WAGpDzE,GAAAA,IAAAA,CAAKW,KAAQX,EAAAA,sBAAAA,EAAAA,sBAAAA,CAAAA,IAAAA,CAAKS,eAAgB,CAAA,CAAA,CAAA,UAAA4J,sBAAA,iBAArBrK,sBAAAA,CAAyBW,sEAAS,EAC/CX,CAAAA,IAAAA,CAAKQ,YAAeR,EAAAA,sBAAAA,EAAAA,sBAAAA,CAAAA,IAAAA,CAAKS,eAAgB,CAAA,CAAA,CAAA,UAAA6J,sBAAA,iBAArBtK,sBAAAA,CAAyBsH,+EAAkB,EAIjEtH,CAAAA,CAAAA,IAAAA,CAAK4F,cAAeC,CAAAA,IAAAA,CAAK,UACvB7F,CAAAA,MAAAA,CAAKC,qBAAsBsK,CAAAA,cAAAA,CAAAA,CAAgB,EAG9C,CAAA,EAED,GAAAhI,GAAA,qBAAA5B,KAAA,UAAA6J,kBAAA,CAAAA,CACEnH,QAASG,CAAAA,mBAAAA,CAAoB,UAAWxD,IAAKkD,CAAAA,qBAAAA,CAC9C,EAED,GAAAX,GAAA,oBAAA5B,KAAA,UAAA8J,iBAAA,CACEpH,CAAAA,QAAAA,CAASC,gBAAiB,CAAA,SAAA,CAAWtD,IAAKkD,CAAAA,qBAAAA,CAC3C,EAED,GAAAX,GAAA,sBAAA5B,KAAA,UAAA+J,mBAAmBjD,CAAAA,CAAAA,CACjBzH,KAAKe,WAAc0G,CAAAA,CAAAA,CAAEkD,MAAOhK,CAAAA,KAAAA,CAGG,CAFTX,GAAAA,IAAAA,CAAK4K,aAAc5K,CAAAA,IAAAA,CAAKe,WAE1B0D,CAAAA,CAAAA,MAAAA,CAElBzE,IAAK6K,CAAAA,aAAAA,CAAAA,CAAgB,CAErB7K,CAAAA,IAAAA,CAAK6K,eAAgB,CACnB,EAEN,GAAAtI,GAAA,iBAAA5B,KAAA,UAAAiK,cAAc7J,CACZ,CAAA,CAAA,GAAMgF,CAAAA,EAAa/F,IAAK0E,CAAAA,aAAAA,CAAAA,CAAAA,CAClBoG,CAAuB/J,CAAAA,CAAAA,CAAY+F,WAEzC,CAAA,CAAA,CAAA,GAAIiE,CAAAA,EAAgC,EAapC,CAAA,MAXAhF,CAAAA,CAAWpB,CAAAA,OAAAA,CAAQC,SAAAA,CACjB,CAAA,CAAA,GAAMoG,CAAAA,CAAiBpG,CAAAA,CAAAA,CAAG0C,YAAeR,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CACnCmE,CAAkBrG,CAAAA,CAAAA,CAAAA,CAAGjE,KAAS,EAAA,EAAA,EAAImG,cACpCkE,CAAe/G,CAAAA,QAAAA,CAAS6G,CAAyBG,CAAAA,EAAAA,CAAAA,CAAehH,QAAS6G,CAAAA,CAAAA,CAAAA,EAC3ElG,CAAGE,CAAAA,MAAAA,CAAAA,CAAS,CACZiG,CAAAA,CAAAA,CAAgBrC,IAAK9D,CAAAA,CAAAA,CAAAA,EAErBA,CAAGE,CAAAA,MAAAA,CAAAA,CAAS,CACb,EAGIiG,CAAAA,CAAAA,CACR,EAEO,GAAAxI,GAAA,iBAAA5B,KAAA,UAAAuK,cAAcpH,CAAAA,CAAAA,CACpB9D,IAAKC,CAAAA,qBAAAA,CAAsBkL,WAAY,CAAA,CAAA,CAAA,CAAA,CACvCnL,IAAKC,CAAAA,qBAAAA,CAAsBmL,gBAAiBtH,CAAAA,CAAAA,CAC7C,EAGD,GAAAvB,GAAA,wBAAA5B,KAAA,UAAA0K,qBAAA,CAAAA,CAEMrL,IAAKyB,CAAAA,QAAAA,GACPzB,IAAK2B,CAAAA,IAAAA,CAAAA,CAAO,CACZ3B,CAAAA,IAAAA,CAAKsL,gBAER,CAAA,CAAA,CAAA,EAGD,GAAA/I,GAAA,qBAAA5B,KAAA,UAAA4K,kBAAA,CAAAA,CACE,GAAMxF,CAAAA,CAAAA,CAAa/F,KAAK0E,aAClB/D,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ2H,KAAMC,CAAAA,OAAAA,CAAQvI,IAAKW,CAAAA,KAAAA,CAAAA,CAASX,IAAKW,CAAAA,KAAAA,CAAQ,CAACX,IAAAA,CAAKW,KAG7DX,CAAAA,CAAAA,IAAAA,CAAK2F,kBAAmBI,CAAAA,CAAAA,CAAW4C,OAAO/D,SAAAA,CAAMjE,QAAAA,CAAAA,CAAAA,CAAMsD,QAASW,CAAAA,CAAAA,CAAGjE,KACnE,CAAA,EAAA,CAAA,CAAA,EAGK,GAAA4B,GAAA,oBAAA5B,KAAA,gBAAA6K,iBAAA,CAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,UAAAC,QAAA,MAAAC,MAAA,UAAAC,EAAA,CAAAC,GAAA,CAAAC,GAAA,CAAAC,GAAA,CAAAC,GAAA,CAAAC,GAAA,QAAAT,mBAAA,GAAAU,IAAA,UAAAC,SAAAC,SAAA,iBAAAA,SAAA,CAAAC,IAAA,CAAAD,SAAA,CAAAE,IAAA,cACAxM,IAAAA,CAAK2B,IAAS3B,EAAAA,CAAAA,IAAAA,CAAKyB,QAAU,GAAA6K,SAAA,CAAAE,IAAA,WAE/BxM,KAAKqG,gBAAiBrG,CAAAA,IAAAA,CAAKS,eAAgB,CAAA,CAAA,CAAA,EAAMT,IAAK+J,CAAAA,cAAAA,CAAAA,CAAAA,CAAAA,CAGtD/J,IAAK4D,CAAAA,IAAAA,CAAK,WAAa,CAAA,CAAEjD,KAAOX,CAAAA,IAAAA,CAAKW,KAAQD,CAAAA,IAAAA,CAAMV,KAAKU,IACxDV,CAAAA,CAAAA,CAAAA,IAAAA,CAAKoD,gBAECqJ,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,IAAAA,SAAAA,CAAAA,CAAAA,CAAezM,IACrBA,CAAAA,QAAAA,IAAAA,CAAK0M,QAAQ5H,MAAS,CAAA,CAAA,CAAA,CACtB9E,IAAK2M,CAAAA,KAAAA,CAAMC,MAAS,CAAA,CAAA,CAAA,CAGpBC,sBAAsB,UACpB7M,CAAAA,MAAAA,CAAKqG,gBAAiBrG,CAAAA,MAAAA,CAAKyF,aAAc,CAAA,EAAA,CAAA,CAAAqG,EAAA,CAGZgB,CAAAA,CAAa9M,IAAM,CAAA,aAAA,CAAe,CAC/D+M,GAAK,CAAA,KAAA,CAAA,CAAA,CADCC,GAASC,CAAAA,EAAAA,CAAXD,SAAAA,CAAaC,GAAYH,CAAAA,EAAAA,CAAdG,OAAAA,CAAAA,SAAAA,CAAAA,IAAAA,UAGXC,CAAAA,CAAUlN,CAAAA,IAAAA,CAAK2M,KAAMA,CAAAA,KAAAA,CAAOK,GAAWC,CAAAA,GAAAA,CAAAA,SAGzCjN,IAAKyF,CAAAA,aAAAA,EACP0H,CAAenN,CAAAA,IAAAA,CAAKyF,aAAezF,CAAAA,IAAAA,CAAK0M,QAAS,UAAY,CAAA,MAAA,CAAA,CAG/D1M,IAAK4D,CAAAA,IAAAA,CAAK,iBAAmB,CAAA,CAAEjD,KAAOX,CAAAA,IAAAA,CAAKW,KAAQD,CAAAA,IAAAA,CAAMV,IAAKU,CAAAA,IAAAA,CAAAA,CAC/D,CAAA4L,SAAA,CAAAE,IAAA,kBAECxM,KAAK4D,IAAK,CAAA,WAAA,CAAa,CAAEjD,KAAAA,CAAOX,IAAKW,CAAAA,KAAAA,CAAQD,IAAMV,CAAAA,IAAAA,CAAKU,IACxDV,CAAAA,CAAAA,CAAAA,IAAAA,CAAKuD,mBAECkJ,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,IAAAA,UAAAA,CAAAA,CAAAA,CAAezM,IACrB,CAAA,SAAAiM,GAAA,CAA+Ba,CAAAA,CAAa9M,IAAM,CAAA,aAAA,CAAe,CAC/D+M,GAAAA,CAAK,KAEDG,CAAAA,CAAAA,CAHEF,GAASC,CAAAA,GAAAA,CAAXD,UAAaC,GAAYH,CAAAA,GAAAA,CAAdG,OAAAA,CAAAA,SAAAA,CAAAA,IAAAA,UAGXC,CAAAA,CAAAA,CAAUlN,IAAK2M,CAAAA,KAAAA,CAAMA,KAAOK,CAAAA,GAAAA,CAAWC,aAC7CjN,IAAK0M,CAAAA,OAAAA,CAAQ5H,MAAS,CAAA,CAAA,CAAA,CACtB9E,IAAK2M,CAAAA,KAAAA,CAAMC,MAAS,CAAA,CAAA,CAAA,CAEpB5M,IAAK4D,CAAAA,IAAAA,CAAK,iBAAmB,CAAA,CAAEjD,KAAOX,CAAAA,IAAAA,CAAKW,MAAQD,IAAMV,CAAAA,IAAAA,CAAKU,IAC/D,CAAA,CAAA,0BAAA4L,SAAA,CAAAc,IAAA,MAAAxB,OAAA,QAIH,YAAAN,iBAAA,SAAAE,iBAAA,CAAA6B,KAAA,MAAAC,SAAA,UAAAhC,gBAAA,OAAA/I,GAAA,QAAA5B,KAAA,gBAAA4M,KAAA,CAAA9B,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,UAAA6B,SAAA,SAAA9B,mBAAA,GAAAU,IAAA,UAAAqB,UAAAC,SAAA,iBAAAA,SAAA,CAAAnB,IAAA,CAAAmB,SAAA,CAAAlB,IAAA,cACE,CAAIxM,IAAK2B,CAAAA,IAAAA,EAAAA,CAAQ3B,IAAKyB,CAAAA,QAAAA,GAAAA,SAAAA,CAAAA,IAAAA,iBAAAA,SAAAA,CAAAA,MAAAA,WAKtBzB,IAAAA,CAAK2B,MAAO,CACLgM,CAAAA,CAAAA,CAAa3N,IAAM,CAAA,iBAAA,CAAA,UALxBA,IAAK2B,CAAAA,IAAAA,CAAAA,CAAO,CAMf,yBAAA+L,SAAA,CAAAN,IAAA,MAAAI,QAAA,QAGD,YAAA1H,KAAA,SAAAyH,KAAA,CAAAF,KAAA,MAAAC,SAAA,UAAAxH,IAAA,OAAAvD,GAAA,QAAA5B,KAAA,gBAAAiN,KAAA,CAAAnC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,UAAAkC,SAAA,SAAAnC,mBAAA,GAAAU,IAAA,UAAA0B,UAAAC,SAAA,iBAAAA,SAAA,CAAAxB,IAAA,CAAAwB,SAAA,CAAAvB,IAAA,cACOxM,IAAK2B,CAAAA,IAAAA,EAAAA,CAAQ3B,KAAKyB,QAMvB,GAAAsM,SAAA,CAAAvB,IAAA,iBAAAuB,SAAA,CAAAC,MAAA,WADAhO,IAAK2B,CAAAA,IAAAA,CAAAA,CAAO,CACLgM,CAAAA,CAAAA,CAAa3N,IAAM,CAAA,iBAAA,CAAA,UALxBA,IAAK2B,CAAAA,IAAAA,CAAAA,CAAO,CAMf,yBAAAoM,SAAA,CAAAX,IAAA,MAAAS,QAAA,QAGD,YAAA3J,KAAA,SAAA0J,KAAA,CAAAP,KAAA,MAAAC,SAAA,UAAApJ,IAAA,OAAA3B,GAAA,iBAAA5B,KAAA,UAAAsN,cAAA,CAAAA,CACE,MAAOjO,KAAK0C,CAAAA,UAAAA,CAAWuL,aACxB,CAAA,CAAA,EAGD,GAAA1L,GAAA,WAAA5B,KAAA,UAAAuN,QAAA,CAAAA,CACE,MAAOlO,KAAAA,CAAKC,qBAAsBiO,CAAAA,OAAAA,CAAAA,CACnC,EAGD,GAAA3L,GAAA,kBAAA5B,KAAA,UAAAwN,eAAA,CACE,CAAA,MAAOnO,MAAK0C,UAAWyL,CAAAA,cAAAA,CAAAA,CACxB,EAGD,GAAA5L,GAAA,qBAAA5B,KAAA,UAAAyN,kBAAkBC,CAAAA,CAAAA,CAChBrO,IAAK0C,CAAAA,UAAAA,CAAW0L,iBAAkBC,CAAAA,CAAAA,CAAAA,CAClCrO,IAAKC,CAAAA,qBAAAA,CAAsBsK,cAC5B,CAAA,CAAA,EAGD,GAAAhI,GAAA,SAAA5B,KAAA,UAAA2E,MAAM2H,CAAAA,CAAAA,CACJjN,IAAK0D,CAAAA,YAAAA,CAAa4B,KAAM2H,CAAAA,CAAAA,CACzB,EAGD,GAAA1K,GAAA,QAAA5B,KAAA,UAAA2N,KAAA,CACEtO,CAAAA,IAAAA,CAAK0D,YAAa4K,CAAAA,IAAAA,CAAAA,CACnB,EAED,GAAA/L,GAAA,UAAA5B,KAAA,UAAA4N,OAAA,mBACE,GAAMC,CAAAA,CAAAA,CAAexO,IAAKI,CAAAA,iBAAAA,CAAkBqO,IAAK,CAAA,OAAA,CAAA,CACzBzO,IAAKI,CAAAA,iBAAAA,CAAkBqO,IAAK,CAAA,WAAA,CAAA,CACpD,GAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAW1O,IAAK+B,CAAAA,KAAAA,EAAAA,CAAAA,CAAiByM,EACjCG,CACJ3O,CAAAA,IAAAA,CAAK0B,SAAc1B,EAAAA,CAAAA,IAAAA,CAAKyB,QAAYzB,EAAAA,IAAAA,CAAKW,KAAM8D,CAAAA,MAAAA,CAAS,CACpDmK,CAAAA,CAAAA,CAAuB5O,IAAKc,CAAAA,WAAAA,EAAqC,CAAtBd,GAAAA,IAAAA,CAAKW,MAAM8D,MACtD1D,CAAAA,CAAAA,CAAcf,IAAKe,CAAAA,WAAAA,EAAe,EAClC8N,CAAAA,CAAAA,CAAAA,CAAAA,CAAc7O,IAAKmB,CAAAA,QAAAA,CACnB2N,CAAkB9O,CAAAA,CAAAA,CAAAA,IAAAA,CAAKoB,YAE7B,CAAA,MAAO2N,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,0gGAGCC,CAAAA,CAAS,CACf,cAAgB,CAAA,CAAA,CAAA,CAChB,qBAAqC,CAAA,OAAA,GAAdlP,KAAKa,IAC5B,CAAA,sBAAA,CAAsC,QAAdb,GAAAA,IAAAA,CAAKa,KAC7B,qBAAqC,CAAA,OAAA,GAAdb,KAAKa,IAC5B,CAAA,yBAAA,CAA2B6N,EAC3B,6BAA+BG,CAAAA,CAAAA,CAAAA,CAAAA,CAOjBH,CAAAA,CAAW,OAAU,CAAA,MAAA,CAC1B1O,IAAK2H,CAAAA,gBAAAA,CAEO3H,IAAK+B,CAAAA,KAAAA,CAKhBmN,CAAS,CAAA,CACfC,MAAQ,CAAA,CAAA,CAAA,CACR,iBAAmBnP,CAAAA,IAAAA,CAAKqB,QACxB,eAAiBrB,CAAAA,IAAAA,CAAKsB,KACtB,CAAA,iBAAA,CAAmBtB,IAAKuB,CAAAA,OAAAA,CACxB,oBAAoB,CACpB,CAAA,gBAAA,CAAkBvB,IAAK6B,CAAAA,MAAAA,CACvB,cAAgB7B,CAAAA,IAAAA,CAAK8B,KACrB,cAAgB9B,CAAAA,IAAAA,CAAK2B,IACrB,CAAA,kBAAA,CAAoB3B,IAAKyB,CAAAA,QAAAA,CACzB,mBAAoBzB,IAAKkB,CAAAA,QAAAA,CACzB,iBAAmBlB,CAAAA,IAAAA,CAAKO,QACxB,CAAA,6BAAA,CAA+BqO,EAC/B,aAAkC,CAAA,KAAA,GAAnB5O,IAAKgC,CAAAA,SAAAA,CACpB,gBAAqC,CAAA,QAAA,GAAnBhC,KAAKgC,SACvB,CAAA,eAAA,CAA+B,OAAdhC,GAAAA,IAAAA,CAAKa,IACtB,CAAA,gBAAA,CAAgC,WAAdb,IAAKa,CAAAA,IAAAA,CACvB,eAA+B,CAAA,OAAA,GAAdb,IAAKa,CAAAA,IAAAA,CAAAA,CAAAA,CAEZb,IAAKgC,CAAAA,SAAAA,CACNhC,IAAAA,CAAK4B,MAAQ,OAAU,CAAA,UAAA,CAWrB5B,IAAKgI,CAAAA,qBAAAA,CACHhI,IAAK4H,CAAAA,uBAAAA,CAKRsH,CAAAA,CAAS,CACfE,cAAAA,CAAAA,CAAgB,CAChBlO,CAAAA,QAAAA,CAAUlB,IAAKkB,CAAAA,QAAAA,CAAAA,CAAAA,CAQHlB,IAAKc,CAAAA,WAAAA,CACPd,IAAKyB,CAAAA,QAAAA,CACRzB,IAAKQ,CAAAA,YAAAA,CAMER,IAAAA,CAAK2B,KAAO,MAAS,CAAA,OAAA,CAGrB3B,IAAAA,CAAKyB,SAAW,MAAS,CAAA,OAAA,CAIhCzB,IAAKyD,CAAAA,WAAAA,CACNzD,IAAK6D,CAAAA,UAAAA,CAGb7D,IAAAA,CAAKkB,SACH6N,CAAI,CAAAM,gBAAA,GAAAA,gBAAA,CAAAJ,sBAAA,mJAEEjP,IAAKS,CAAAA,eAAAA,CAAgB2J,GAAI,CAAA,SAAC/C,CAAQiI,CAAAA,CAAAA,QAEhCA,CAAAA,CAAQtP,CAAAA,OAAAA,CAAKwB,iBACbxB,EAAAA,OAAAA,CAAKwB,iBAAqB,EAAA,CAAA,CAEnBuN,CAAI,CAAAQ,gBAAA,GAAAA,gBAAA,CAAAN,sBAAA,kwBASCjP,OAAK8B,CAAAA,IAAAA,CACN9B,OAAKa,CAAAA,IAAAA,CAEIiD,SAAAA,CACd9D,QAAAA,CAAAA,OAAAA,CAAK6I,gBAAgB/E,CAAOuD,CAAAA,CAAAA,CAAAA,GAE5BrH,OAAKgJ,CAAAA,eAAAA,CAAgB3B,GACnB0H,CAAI,CAAAS,gBAAA,GAAAA,gBAAA,CAAAP,sBAAA,wIACCQ,CAAAA,CACDzP,QAAKgJ,eAAgB3B,CAAAA,CAAAA,CAAAA,CAAAA,EAGzB,EAAA,CACFA,CAAOC,CAAAA,YAAAA,CAAAA,CAAAA,EAGJgI,CAAUtP,GAAAA,OAAAA,CAAKwB,kBACjBuN,CAAI,CAAAW,gBAAA,GAAAA,gBAAA,CAAAT,sBAAA,mLAEHjP,OAAAA,CAAKS,gBAAgBgE,MAAS6K,CAAAA,CAAAA,EAI/B,IAAA,EAAA,CAAA,EAKf,EAAA,CAKUtP,IAAKyB,CAAAA,QAAAA,CACLzB,IAAKkC,CAAAA,QAAAA,CACRoG,KAAAA,CAAMC,QAAQvI,IAAKW,CAAAA,KAAAA,CAAAA,CACxBX,KAAKW,KAAMmJ,CAAAA,IAAAA,CAAK,MAChB9J,IAAKW,CAAAA,KAAAA,CAGA,iBAAMX,CAAAA,OAAKsF,CAAAA,KAAAA,CAAAA,CAAAA,GACTtF,IAAKkL,CAAAA,aAAAA,CAGhByD,CAAAA,CACEI,CAAI,CAAAY,gBAAA,GAAAA,gBAAA,CAAAV,sBAAA,sjBAMajP,IAAKkI,CAAAA,oBAAAA,CACTlI,IAAKiI,CAAAA,gBAAAA,EAQlB,EAAA,CAcYjI,IAAAA,CAAK2B,KAAO,MAAS,CAAA,OAAA,CACd3B,IAAAA,CAAKkB,SAAW,MAAS,CAAA,OAAA,CAGvBlB,IAAAA,CAAKgB,cAC1B,yBACA,CAAA,EAAA,CAEOhB,IAAKmI,CAAAA,iBAAAA,CACFnI,IAAKqI,CAAAA,uBAAAA,CAGjBrI,IAAAA,CAAKiB,eACH8N,CAAI,CAAAa,gBAAA,GAAAA,gBAAA,CAAAX,sBAAA,oSAQJ,EAAA,CAEFjP,IAAAA,CAAKgB,cACH+N,CAAI,CAAAc,gBAAA,GAAAA,gBAAA,CAAAZ,sBAAA,0fAISlO,CAAAA,CAEKf,IAAK0K,CAAAA,kBAAAA,CACL1K,IAAKwK,CAAAA,iBAAAA,CACNxK,IAAKyK,CAAAA,gBAAAA,EAKtB,EAAA,CAEAzK,IAAAA,CAAK6K,cACHkE,CAAI,CAAAe,gBAAA,GAAAA,gBAAA,CAAAb,sBAAA,mJAEEjP,IAAKoC,CAAAA,gBAAAA,EAGX,EAAA,CAIJpC,IAAAA,CAAKkB,SACH6N,CAAI,CAAAgB,iBAAA,GAAAA,iBAAA,CAAAd,sBAAA,gqBAEQjP,IAAKmE,CAAAA,iBAAAA,CAGHnE,IAAKsE,CAAAA,kBAAAA,CAIgC,CAAA,GAAhCtE,KAAKS,eAAgBgE,CAAAA,MAAAA,CACtBzE,IAAKmC,CAAAA,YAAAA,CAKiBnC,IAAKgF,CAAAA,UAAAA,EAI7C,EAAA,CAKR6J,CACEE,CAAAA,CAAI,CAAAiB,iBAAA,GAAAA,iBAAA,CAAAf,sBAAA,wDAAyBjP,IAAAA,CAAKmB,QAClC,EAAA,EAAA,CACF2N,CAAAA,CACEC,CAAI,CAAAkB,iBAAA,GAAAA,iBAAA,CAAAhB,sBAAA,8HAEGjP,IAAKoB,CAAAA,YAAAA,EAGZ,EAAA,EAGT,CAnhCMvB,WAAAA,CAAAA,GADuBqQ,CAAAA,GACvBrQ,CAAAA,CAAMsQ,OAAmBA,CAadC,CAAAA,CAAAA,CAAA,CAAjBC,CAAM,CAAA,SAAA,CAAA,CAAA,CAA4BxQ,CAAAyQ,CAAAA,SAAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CACPF,EAAA,CAA3BC,CAAAA,CAAM,mBAA+CxQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,UAAA,CAAA,IAAA,IACrBF,CAAA,CAAA,CAAhCC,CAAM,CAAA,wBAAA,CAAA,CAAA,CAAyDxQ,CAAAyQ,CAAAA,SAAAA,CAAA,mBAAA,EACjCF,CAAAA,CAAAA,CAAAA,CAAA,CAA9BC,CAAAA,CAAM,sBAAqDxQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,UAAA,YAAA,CAAA,IAAA,EAAA,CAAA,CACjCF,CAAA,CAAA,CAA1BC,CAAM,CAAA,kBAAA,CAAA,CAAA,CAA6CxQ,EAAAyQ,SAAA,CAAA,SAAA,CAAA,IAAA,EAE3CF,CAAAA,CAAAA,CAAAA,CAAA,CAARG,CAAAA,CAAAA,CAAAA,CAAAA,CAAiC1Q,EAAAyQ,SAAA,CAAA,UAAA,CAAA,IAAA,EACzBF,CAAAA,CAAAA,CAAAA,CAAA,CAARG,CAAAA,CAAAA,CAAAA,CAAAA,CAA0B1Q,EAAAyQ,SAAA,CAAA,cAAA,CAAA,IAAA,IAClBF,CAAA,CAAA,CAARG,KAAkC1Q,CAAAyQ,CAAAA,SAAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAC1BF,CAAA,CAAA,CAARG,KAA2C1Q,CAAAyQ,CAAAA,SAAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAGhCF,CAAA,CAAA,CAAXI,KAAqB3Q,CAAAyQ,CAAAA,SAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA,CAYtBF,CAAA,CAAA,CANCI,EAAS,CACRC,SAAAA,CAAW,CACTC,aAAAA,CAAgB/P,SAAAA,cAAAA,CAAkBA,QAAAA,CAAAA,CAAAA,CAAMgQ,MAAM,GAC9CC,CAAAA,GAAAA,WAAAA,CAAcjQ,SAAAA,YAAAA,CAAoBA,QAAAA,CAAAA,CAAAA,CAAMmJ,IAAK,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAGnBjK,EAAAyQ,SAAA,CAAA,OAAA,CAAA,IAAA,EAGdF,CAAAA,CAAAA,CAAAA,CAAA,CAAfxP,CAAAA,CAAAA,CAAAA,CAAAA,CAAoDf,EAAAyQ,SAAA,CAAA,cAAA,CAAA,IAAA,EAGzCF,CAAAA,CAAAA,CAAAA,CAAA,CAAXI,CAAAA,CAAAA,CAAAA,CAAAA,CAAyD3Q,EAAAyQ,SAAA,CAAA,MAAA,CAAA,IAAA,IAG9CF,CAAA,CAAA,CAAXI,KAAqC3Q,CAAAyQ,CAAAA,SAAAA,CAAA,aAAA,CAAA,IAAA,EAAA,CAAA,CAG7BF,CAAA,CAAA,CAARG,KAAyB1Q,CAAAyQ,CAAAA,SAAAA,CAAA,aAAA,CAAA,IAAA,EAAA,CAAA,CAEkBF,CAAA,CAAA,CAA3CI,EAAS,CAAEK,IAAAA,CAAMC,OAASC,CAAAA,OAAAA,CAAAA,CAAS,CAA8BlR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,UAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAEtBF,CAAA,CAAA,CAA3CI,CAAS,CAAA,CAAEK,KAAMC,OAASC,CAAAA,OAAAA,CAAAA,CAAS,CAA+BlR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,gBAAA,CAAA,IAAA,IAGvBF,CAAA,CAAA,CAA3CI,CAAS,CAAA,CAAEK,IAAMC,CAAAA,OAAAA,CAASC,SAAS,CAAyBlR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,UAAA,CAAA,IAAA,EAEvBF,CAAAA,CAAAA,CAAAA,CAAA,CAArCI,CAAS,CAAA,CAAEQ,SAAW,CAAA,WAAA,CAAA,CAAA,CAAA,CAA6BnR,CAAAyQ,CAAAA,SAAAA,CAAA,eAAA,EAEVF,CAAAA,CAAAA,CAAAA,CAAA,CAAzCI,CAAAA,CAAS,CAAEQ,SAAAA,CAAW,mBAAqCnR,CAAAyQ,CAAAA,SAAAA,CAAA,cAAA,CAAA,IAAA,EAAA,CAAA,CAG/BF,CAAA,CAAA,CAA5BI,EAAS,CAAEK,IAAAA,CAAMC,OAA2BjR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,SAAA,CAAA,IAAA,IAGhBF,CAAA,CAAA,CAA5BI,CAAS,CAAA,CAAEK,IAAMC,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAyBjR,EAAAyQ,SAAA,CAAA,OAAA,CAAA,IAAA,EAGdF,CAAAA,CAAAA,CAAAA,CAAA,CAA5BI,CAAAA,CAAS,CAAEK,IAAMC,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAA2BjR,CAAAyQ,CAAAA,SAAAA,CAAA,SAAA,CAAA,IAAA,EAAA,CAAA,CAO7CF,EAAA,CADCI,CAAAA,CAAS,CAAEQ,SAAAA,CAAW,qBAAuBH,CAAAA,IAAAA,CAAMI,UAC9BpR,CAAAyQ,CAAAA,SAAAA,CAAA,wBAAA,EAGsBF,CAAAA,CAAAA,CAAAA,CAAA,CAA3CI,CAAS,CAAA,CAAEK,IAAMC,CAAAA,OAAAA,CAASC,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyBlR,EAAAyQ,SAAA,CAAA,UAAA,CAAA,IAAA,EAGhCF,CAAAA,CAAAA,CAAAA,CAAA,CAA5BI,CAAAA,CAAS,CAAEK,IAAMC,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAA6BjR,CAAAyQ,CAAAA,SAAAA,CAAA,WAAA,CAAA,IAAA,EAAA,CAAA,CAMHF,EAAA,CAA3CI,CAAAA,CAAS,CAAEK,IAAAA,CAAMC,OAASC,CAAAA,OAAAA,CAAAA,CAAS,KAAqBlR,CAAAyQ,CAAAA,SAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA,CAM5BF,CAAA,CAAA,CAA5BI,EAAS,CAAEK,IAAAA,CAAMC,OAAyBjR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,OAAA,CAAA,IAAA,IAGCF,CAAA,CAAA,CAA3CI,CAAS,CAAA,CAAEK,IAAMC,CAAAA,OAAAA,CAASC,SAAS,CAAuBlR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,UAAA,QAAA,CAAA,IAAA,EAAA,CAAA,CAGfF,EAAA,CAA3CI,CAAAA,CAAS,CAAEK,IAAAA,CAAMC,OAASC,CAAAA,OAAAA,CAAAA,CAAS,KAAqBlR,CAAAyQ,CAAAA,SAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA,CAG7CF,CAAA,CAAA,CAAXI,KAAsB3Q,CAAAyQ,CAAAA,SAAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CAMMF,CAAA,CAAA,CAA5BI,EAAS,CAAEO,OAAAA,CAAAA,CAAS,CAA+ClR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,WAAA,CAAA,IAAA,IAQvCF,CAAA,CAAA,CAA5BI,CAAS,CAAA,CAAEO,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBlR,EAAAyQ,SAAA,CAAA,MAAA,CAAA,IAAA,EAGKF,CAAAA,CAAAA,CAAAA,CAAA,CAA3CI,CAAAA,CAAS,CAAEK,IAAMC,CAAAA,OAAAA,CAASC,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyBlR,CAAAyQ,CAAAA,SAAAA,CAAA,eAAA,EAEhCF,CAAAA,CAAAA,CAAAA,CAAA,CAA5BI,CAAS,CAAA,CAAEK,KAAMC,OAAgCjR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,cAAA,CAAA,IAAA,EAEzCF,CAAAA,CAAAA,CAAAA,CAAA,CAARG,CAA+B1Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,eAAA,CAAA,IAAA,EAEJF,CAAAA,CAAAA,CAAAA,CAAA,CAA3BI,CAAS,CAAA,CAAEK,IAAMK,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAwDrR,CAAAyQ,CAAAA,SAAAA,CAAA,uBAAA,EA0gB1EF,CAAAA,CAAAA,CAAAA,CAAA,CADCe,CAAAA,CAAM,UAAY,CAAA,CAAEC,sBAAsB,CAO1CvR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,SAAA,CAAA,sBAAA,CAAA,IAGDF,CAAAA,CAAAA,CAAAA,CAAA,CADCe,CAAM,CAAA,OAAA,CAAS,CAAEC,oBAAAA,CAAAA,CAAsB,CAOvCvR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAyQ,UAAA,mBAAA,CAAA,IAAA,CAAA,CAGKF,CAAA,CAAA,CADLe,CAAM,CAAA,MAAA,CAAQ,CAAEC,oBAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA6CtCvR,CAAAyQ,CAAAA,SAAAA,CAAA,kBAAA,CAAA,IAAA,CAAA,CAAAe,OAAA,KAvsBUxR,EAAUuQ,CAAA,CAAA,CADtBkB,CAAc,CAAA,aAAA,CAAA,CAAA,CACFzR,CAuhCb0R,CAAAA,EAAAA,CAAAA,CAAoB,cAAe,CACjCvE,SAAAA,CAAW,CACT,CAAEwE,OAAS,CAAA,CAAA,CAAGC,MAAO,EACrB,CAAA,CAAA,CAAED,OAAS,CAAA,CAAA,CAAGC,KAAO,CAAA,CAAA,CAAA,CAAA,CAEvBxE,QAAS,CAAEyE,QAAAA,CAAU,GAAKC,CAAAA,MAAAA,CAAQ,MAGpCJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,cAAe,CACjCvE,SAAAA,CAAW,CACT,CAAEwE,OAAS,CAAA,CAAA,CAAGC,MAAO,CACrB,CAAA,CAAA,CAAED,OAAS,CAAA,CAAA,CAAGC,KAAO,CAAA,EAAA,CAAA,CAAA,CAEvBxE,QAAS,CAAEyE,QAAAA,CAAU,GAAKC,CAAAA,MAAAA,CAAQ"}
@@ -1,4 +1,4 @@
1
- import{__decorate as i}from"tslib";import{x as s}from"../index-cd2f9c12.esm.js";import{query as e,state as o,customElement as n}from"lit/decorators.js";import{s as t}from"./nile-select.css.esm.js";import"../nile-icon/index.esm.js";import"../nile-popup/nile-popup.esm.js";import"../nile-tag/nile-tag.esm.js";import{s as c,a as l}from"../internal/animate.esm.js";import{classMap as m}from"lit/directives/class-map.js";import{d as r}from"../internal/default-value.esm.js";import{F as p}from"../internal/form.esm.js";import{s as a,g as v}from"../utilities/animation-registry.esm.js";import{H as g}from"../internal/slot.esm.js";import{s as h}from"../internal/scroll.esm.js";import{w as j}from"../internal/event.esm.js";import{w as d}from"../internal/watch.esm.js";import{N as u}from"../internal/nile-element.esm.js";import{unsafeHTML as f}from"lit/directives/unsafe-html.js";import{n as b}from"../property-09139d3c.esm.js";import"lit";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/actionworkflow.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/agents.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/anomaly.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/application.esm.js";import"../nile-icon/icons/svg/applications.esm.js";import"../nile-icon/icons/svg/approve.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/bell-icon.esm.js";import"../nile-icon/icons/svg/bell.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cancel.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/caution.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/chevron-down.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/componentblock.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/continuous.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/custom.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-expression.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-persistent-variable.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/data-type-variable.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/default-1.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deleteuser.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/document.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/downarrow.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/draglist.esm.js";import"../nile-icon/icons/svg/droparrow.esm.js";import"../nile-icon/icons/svg/dropdown.esm.js";import"../nile-icon/icons/svg/edit-pencil.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/enabled.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/event.esm.js";import"../nile-icon/icons/svg/every.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-1.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow-h.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-aquera.esm.js";import"../nile-icon/icons/svg/flowmap-block.esm.js";import"../nile-icon/icons/svg/flowmap-cancel.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-drag.esm.js";import"../nile-icon/icons/svg/flowmap-ellipsis.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-hand.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-redo.esm.js";import"../nile-icon/icons/svg/flowmap-section.esm.js";import"../nile-icon/icons/svg/flowmap-text.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/form.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-actions.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-functions.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/header-variable.esm.js";import"../nile-icon/icons/svg/help-1.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/if.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info-icon1.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/info2.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/itemplaceholder.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/leftarrow.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/manageduser.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/multiple-user.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/next-down.esm.js";import"../nile-icon/icons/svg/next.esm.js";import"../nile-icon/icons/svg/no-anomaly.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/not.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/notscheduled.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/ou-analysis-icon.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pen.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/personaldetails.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/placeholder-wf.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/plus-icon.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/prev-up.esm.js";import"../nile-icon/icons/svg/prev.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/returnvalue.esm.js";import"../nile-icon/icons/svg/revocationcycle.esm.js";import"../nile-icon/icons/svg/revokation-cycle.esm.js";import"../nile-icon/icons/svg/rightarrow.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/rolemanager.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/selectuser.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendprompt.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/setting.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/shape.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/smalltick.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/themes.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/trash-no-fill.esm.js";import"../nile-icon/icons/svg/trash.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-1.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/uparrow.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updateuser.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-analysis-icon.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user-inactive.esm.js";import"../nile-icon/icons/svg/user-selection.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove-1.esm.js";import"../nile-icon/icons/svg/userremove-2.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local-1.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new-1.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/while.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-solid.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"../nile-tag/nile-tag.css.esm.js";import"../nile-icon-button/nile-icon-button.esm.js";import"../nile-icon-button/nile-icon-button.css.esm.js";import"lit/static-html.js";import"lit/directives/if-defined.js";import"../internal/offset.esm.js";let w=class extends u{constructor(){super(...arguments),this.formControlController=new p(this,{assumeInteractionOn:["nile-blur","nile-input"]}),this.hasSlotController=new g(this,"help-text","label"),this.typeToSelectString="",this.hasFocus=!1,this.displayLabel="",this.selectedOptions=[],this.name="",this.value="",this.defaultValue="",this.size="medium",this.placeholder="Select...",this.searchValue="",this.searchEnabled=!1,this.optionsLoading=!1,this.multiple=!1,this.helpText="",this.errorMessage="",this.warning=!1,this.error=!1,this.success=!1,this.maxOptionsVisible=3,this.disabled=!1,this.clearable=!1,this.open=!1,this.hoist=!1,this.filled=!1,this.pill=!1,this.label="",this.placement="bottom",this.form="",this.required=!1,this.showSelected=!1,this.noResultsMessage="No results found"}get validity(){return this.valueInput?.validity}get validationMessage(){return this.valueInput?.validationMessage}connectedCallback(){super.connectedCallback(),this.handleDocumentFocusIn=this.handleDocumentFocusIn.bind(this),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.open=!1}addOpenListeners(){document.addEventListener("focusin",this.handleDocumentFocusIn),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown)}removeOpenListeners(){document.removeEventListener("focusin",this.handleDocumentFocusIn),document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown)}handleFocus(){this.hasFocus=!0,this.displayInput.setSelectionRange(0,0),this.emit("nile-focus",{value:this.value,name:this.name})}handleBlur(){this.hasFocus=!1,this.emit("nile-blur",{value:this.value,name:this.name})}handleDocumentFocusIn(i){const s=i.composedPath();this&&!s.includes(this)&&this.hide()}handleFooterClick(i){i.stopPropagation(),i.preventDefault()}toggleShowSelected(i){if(i.stopPropagation(),i.preventDefault(),0===this.selectedOptions?.length)return;this.showSelected=!this.showSelected;this.getAllOptions().forEach((i=>{i.selected||(i.hidden=this.showSelected)})),this.requestUpdate()}unSlectAll(){this.showSelected=!1;this.getAllOptions().forEach((i=>{i.selected=!1,i.hidden=!1})),this.value="",this.selectionChanged(),this.emit("nile-change",{value:this.value,name:this.name})}handleDocumentKeyDown(i){const s=i.target,e=null!==s.closest(".select__clear"),o=null!==s.closest("nile-icon-button");if(!e&&!o){if("Escape"===i.key&&this.open&&(i.preventDefault(),i.stopPropagation(),this.hide(),this.displayInput.focus({preventScroll:!0})),"Enter"===i.key||" "===i.key&&""===this.typeToSelectString)return i.preventDefault(),i.stopImmediatePropagation(),this.open?void(this.currentOption&&!this.currentOption.disabled&&(this.multiple?this.toggleOptionSelection(this.currentOption):this.setSelectedOptions(this.currentOption),this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})),this.multiple||(this.hide(),this.displayInput.focus({preventScroll:!0})))):void this.show();if(["ArrowUp","ArrowDown","Home","End"].includes(i.key)){const s=this.getAllOptions(),e=s.indexOf(this.currentOption);let o=Math.max(0,e);if(i.preventDefault(),!this.open&&(this.show(),this.currentOption))return;"ArrowDown"===i.key?(o=e+1,o>s.length-1&&(o=0)):"ArrowUp"===i.key?(o=e-1,o<0&&(o=s.length-1)):"Home"===i.key?o=0:"End"===i.key&&(o=s.length-1),this.setCurrentOption(s[o])}if(1===i.key.length||"Backspace"===i.key){const s=this.getAllOptions();if(i.metaKey||i.ctrlKey||i.altKey)return;if(!this.open){if("Backspace"===i.key)return;this.show()}i.stopPropagation(),i.preventDefault(),clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=window.setTimeout((()=>this.typeToSelectString=""),1e3),"Backspace"===i.key?this.typeToSelectString=this.typeToSelectString.slice(0,-1):this.typeToSelectString+=i.key.toLowerCase();for(const i of s){if(i.getTextLabel().toLowerCase().startsWith(this.typeToSelectString)){this.setCurrentOption(i);break}}}}}handleDocumentMouseDown(i){const s=i.composedPath();this&&!s.includes(this)&&this.hide()}handleLabelClick(){this.displayInput.focus()}handleComboboxMouseDown(i){const s=i.composedPath().some((i=>i instanceof Element&&"nile-icon-button"===i.tagName.toLowerCase()));this.disabled||s||(i.preventDefault(),this.displayInput.focus({preventScroll:!0}),this.open=!this.open)}handleComboboxKeyDown(i){i.stopPropagation(),this.handleDocumentKeyDown(i)}handleClearClick(i){i.stopPropagation(),""!==this.value&&(this.setSelectedOptions([]),this.displayInput.focus({preventScroll:!0}),this.updateComplete.then((()=>{this.emit("nile-clear",{value:this.value,name:this.name}),this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})))}handleClearMouseDown(i){i.stopPropagation(),i.preventDefault()}handleOptionClick(i){const s=i.target.closest("nile-option"),e=this.value;if(s&&!s.disabled&&(this.multiple?this.toggleOptionSelection(s):this.setSelectedOptions(s),this.updateComplete.then((()=>this.displayInput.focus({preventScroll:!0}))),this.value!==e&&this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})),this.multiple||(this.hide(),this.displayInput.focus({preventScroll:!0}))),this.showSelected){this.getAllOptions().forEach((i=>{i.selected||(i.hidden=this.showSelected)})),this.requestUpdate()}}handleDefaultSlotChange(){const i=this.getAllOptions(),s=Array.isArray(this.value)?this.value:[this.value],e=[];customElements.get("nile-option")?(i.forEach((i=>e.push(i.value))),this.setSelectedOptions(i.filter((i=>s.includes(i.value))))):customElements.whenDefined("nile-option").then((()=>this.handleDefaultSlotChange()))}handleTagRemove(i,s){i.stopPropagation(),this.disabled||(this.toggleOptionSelection(s,!1),this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})))}getAllOptions(){return[...this.querySelectorAll("nile-option")]}getOptionPrefix(i){const s=i.shadowRoot?.querySelector('slot[name="prefix"]');if(!s)return"";const e=s.assignedNodes(),o=[];return e.forEach((i=>{i instanceof HTMLElement?o.push(i.outerHTML):i.nodeType===Node.TEXT_NODE&&o.push(i.textContent||"")})),o.join("")}getFirstOption(){return this.querySelector("nile-option")}setCurrentOption(i){this.getAllOptions().forEach((i=>{i.current=!1,i.tabIndex=-1})),i&&(this.currentOption=i,i.current=!0,i.tabIndex=0,i.focus())}setSelectedOptions(i){const s=this.getAllOptions(),e=Array.isArray(i)?i:[i];s.forEach((i=>i.selected=!1)),e.length&&e.forEach((i=>i.selected=!0)),this.selectionChanged()}toggleOptionSelection(i,s){i.selected=!0===s||!1===s?s:!i.selected,this.selectionChanged()}selectionChanged(){this.selectedOptions=this.getAllOptions().filter((i=>i.selected)),this.multiple?(this.value=this.selectedOptions.map((i=>i.value)),this.placeholder&&0===this.value.length?this.displayLabel="":this.displayLabel=this.selectedOptions.length+" selected"):(this.value=this.selectedOptions[0]?.value??"",this.displayLabel=this.selectedOptions[0]?.getTextLabel()??""),this.updateComplete.then((()=>{this.formControlController.updateValidity()}))}handleSearchFocus(){document.removeEventListener("keydown",this.handleDocumentKeyDown)}handleSearchBlur(){document.addEventListener("keydown",this.handleDocumentKeyDown)}handleSearchChange(i){this.searchValue=i.detail.value,0===this.filterOptions(this.searchValue).length?this.showNoResults=!0:this.showNoResults=!1}filterOptions(i){const s=this.getAllOptions(),e=i.toLowerCase();let o=[];return s.forEach((i=>{const s=i.getTextLabel().toLowerCase(),n=(i.value||"").toLowerCase();s.includes(e)||n.includes(e)?(i.hidden=!1,o.push(i)):i.hidden=!0})),o}handleInvalid(i){this.formControlController.setValidity(!1),this.formControlController.emitInvalidEvent(i)}handleDisabledChange(){this.disabled&&(this.open=!1,this.handleOpenChange())}handleValueChange(){const i=this.getAllOptions(),s=Array.isArray(this.value)?this.value:[this.value];this.setSelectedOptions(i.filter((i=>s.includes(i.value))))}async handleOpenChange(){if(this.open&&!this.disabled){this.setCurrentOption(this.selectedOptions[0]||this.getFirstOption()),this.emit("nile-show",{value:this.value,name:this.name}),this.addOpenListeners(),await c(this),this.listbox.hidden=!1,this.popup.active=!0,requestAnimationFrame((()=>{this.setCurrentOption(this.currentOption)}));const{keyframes:i,options:s}=v(this,"select.show",{dir:"ltr"});await l(this.popup.popup,i,s),this.currentOption&&h(this.currentOption,this.listbox,"vertical","auto"),this.emit("nile-after-show",{value:this.value,name:this.name})}else{this.emit("nile-hide",{value:this.value,name:this.name}),this.removeOpenListeners(),await c(this);const{keyframes:i,options:s}=v(this,"select.hide",{dir:"ltr"});await l(this.popup.popup,i,s),this.listbox.hidden=!0,this.popup.active=!1,this.emit("nile-after-hide",{value:this.value,name:this.name})}}async show(){if(!this.open&&!this.disabled)return this.open=!0,j(this,"nile-after-show");this.open=!1}async hide(){if(this.open&&!this.disabled)return this.open=!1,j(this,"nile-after-hide");this.open=!1}checkValidity(){return this.valueInput.checkValidity()}getForm(){return this.formControlController.getForm()}reportValidity(){return this.valueInput.reportValidity()}setCustomValidity(i){this.valueInput.setCustomValidity(i),this.formControlController.updateValidity()}focus(i){this.displayInput.focus(i)}blur(){this.displayInput.blur()}render(){const i=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const e=!!this.label||!!i,o=this.clearable&&!this.disabled&&this.value.length>0,n=this.placeholder&&0===this.value.length,t=this.searchValue||"",c=!!this.helpText,l=!!this.errorMessage;return s`
1
+ import{__decorate as i}from"tslib";import{x as s}from"../index-cd2f9c12.esm.js";import{query as e,state as o,customElement as n}from"lit/decorators.js";import{s as t}from"./nile-select.css.esm.js";import"../nile-icon/index.esm.js";import"../nile-popup/nile-popup.esm.js";import"../nile-tag/nile-tag.esm.js";import{s as c,a as l}from"../internal/animate.esm.js";import{classMap as m}from"lit/directives/class-map.js";import{d as r}from"../internal/default-value.esm.js";import{F as p}from"../internal/form.esm.js";import{s as a,g as v}from"../utilities/animation-registry.esm.js";import{H as g}from"../internal/slot.esm.js";import{s as h}from"../internal/scroll.esm.js";import{w as j}from"../internal/event.esm.js";import{w as d}from"../internal/watch.esm.js";import{N as u}from"../internal/nile-element.esm.js";import{unsafeHTML as f}from"lit/directives/unsafe-html.js";import{n as b}from"../property-09139d3c.esm.js";import"lit";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/actionworkflow.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/agents.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/anomaly.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/application.esm.js";import"../nile-icon/icons/svg/applications.esm.js";import"../nile-icon/icons/svg/approve.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/bell-icon.esm.js";import"../nile-icon/icons/svg/bell.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cancel.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/caution.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/chevron-down.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/componentblock.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/continuous.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/custom.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-expression.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-persistent-variable.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/data-type-variable.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/default-1.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deleteuser.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/document.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downarrow.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/draglist.esm.js";import"../nile-icon/icons/svg/droparrow.esm.js";import"../nile-icon/icons/svg/dropdown.esm.js";import"../nile-icon/icons/svg/edit-pencil.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/enabled.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/event.esm.js";import"../nile-icon/icons/svg/every.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-1.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow-h.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-aquera.esm.js";import"../nile-icon/icons/svg/flowmap-block.esm.js";import"../nile-icon/icons/svg/flowmap-cancel.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-drag.esm.js";import"../nile-icon/icons/svg/flowmap-ellipsis.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-hand.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-redo.esm.js";import"../nile-icon/icons/svg/flowmap-section.esm.js";import"../nile-icon/icons/svg/flowmap-text.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/form.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-actions.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-functions.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/header-variable.esm.js";import"../nile-icon/icons/svg/help-1.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/if.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info-icon1.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/info2.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/itemplaceholder.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/leftarrow.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/manageduser.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/multiple-user.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/next-down.esm.js";import"../nile-icon/icons/svg/next.esm.js";import"../nile-icon/icons/svg/no-anomaly.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/not.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/notscheduled.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/ou-analysis-icon.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pen.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/personaldetails.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/placeholder-wf.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/plus-icon.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/prev-up.esm.js";import"../nile-icon/icons/svg/prev.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/returnvalue.esm.js";import"../nile-icon/icons/svg/revocationcycle.esm.js";import"../nile-icon/icons/svg/revokation-cycle.esm.js";import"../nile-icon/icons/svg/rightarrow.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/rolemanager.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/selectuser.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendprompt.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/setting.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/shape.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/smalltick.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/themes.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/trash-no-fill.esm.js";import"../nile-icon/icons/svg/trash.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-1.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/uparrow.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updateuser.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-analysis-icon.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user-inactive.esm.js";import"../nile-icon/icons/svg/user-selection.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove-1.esm.js";import"../nile-icon/icons/svg/userremove-2.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local-1.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new-1.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/while.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-solid.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"../nile-tag/nile-tag.css.esm.js";import"../nile-icon-button/nile-icon-button.esm.js";import"../nile-icon-button/nile-icon-button.css.esm.js";import"lit/static-html.js";import"lit/directives/if-defined.js";import"../internal/offset.esm.js";let w=class extends u{constructor(){super(...arguments),this.formControlController=new p(this,{assumeInteractionOn:["nile-blur","nile-input"]}),this.hasSlotController=new g(this,"help-text","label"),this.typeToSelectString="",this.hasFocus=!1,this.displayLabel="",this.selectedOptions=[],this.name="",this.value="",this.defaultValue="",this.size="medium",this.placeholder="Select...",this.searchValue="",this.searchEnabled=!1,this.optionsLoading=!1,this.multiple=!1,this.helpText="",this.errorMessage="",this.warning=!1,this.error=!1,this.success=!1,this.maxOptionsVisible=3,this.disabled=!1,this.clearable=!1,this.open=!1,this.hoist=!1,this.filled=!1,this.pill=!1,this.label="",this.placement="bottom",this.form="",this.required=!1,this.showSelected=!1,this.noResultsMessage="No results found"}get validity(){return this.valueInput?.validity}get validationMessage(){return this.valueInput?.validationMessage}connectedCallback(){super.connectedCallback(),this.handleDocumentFocusIn=this.handleDocumentFocusIn.bind(this),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.open=!1}addOpenListeners(){document.addEventListener("focusin",this.handleDocumentFocusIn),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown)}removeOpenListeners(){document.removeEventListener("focusin",this.handleDocumentFocusIn),document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown)}handleFocus(){this.hasFocus=!0,this.displayInput.setSelectionRange(0,0),this.emit("nile-focus",{value:this.value,name:this.name})}handleBlur(){this.hasFocus=!1,this.emit("nile-blur",{value:this.value,name:this.name})}handleDocumentFocusIn(i){const s=i.composedPath();this&&!s.includes(this)&&this.hide()}handleFooterClick(i){i.stopPropagation(),i.preventDefault()}toggleShowSelected(i){if(i.stopPropagation(),i.preventDefault(),0===this.selectedOptions?.length)return;this.showSelected=!this.showSelected;this.getAllOptions().forEach((i=>{i.selected||(i.hidden=this.showSelected)})),this.requestUpdate()}unSlectAll(){this.showSelected=!1;this.getAllOptions().forEach((i=>{i.selected=!1,i.hidden=!1})),this.value="",this.selectionChanged(),this.emit("nile-change",{value:this.value,name:this.name})}handleDocumentKeyDown(i){const s=i.target,e=null!==s.closest(".select__clear"),o=null!==s.closest("nile-icon-button");if(!e&&!o){if("Escape"===i.key&&this.open&&(i.preventDefault(),i.stopPropagation(),this.hide(),this.displayInput.focus({preventScroll:!0})),"Enter"===i.key||" "===i.key&&""===this.typeToSelectString)return i.preventDefault(),i.stopImmediatePropagation(),this.open?void(this.currentOption&&!this.currentOption.disabled&&(this.multiple?this.toggleOptionSelection(this.currentOption):this.setSelectedOptions(this.currentOption),this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})),this.multiple||(this.hide(),this.displayInput.focus({preventScroll:!0})))):void this.show();if(["ArrowUp","ArrowDown","Home","End"].includes(i.key)){const s=this.getAllOptions(),e=s.indexOf(this.currentOption);let o=Math.max(0,e);if(i.preventDefault(),!this.open&&(this.show(),this.currentOption))return;"ArrowDown"===i.key?(o=e+1,o>s.length-1&&(o=0)):"ArrowUp"===i.key?(o=e-1,o<0&&(o=s.length-1)):"Home"===i.key?o=0:"End"===i.key&&(o=s.length-1),this.setCurrentOption(s[o])}if(1===i.key.length||"Backspace"===i.key){const s=this.getAllOptions();if(i.metaKey||i.ctrlKey||i.altKey)return;if(!this.open){if("Backspace"===i.key)return;this.show()}i.stopPropagation(),i.preventDefault(),clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=window.setTimeout((()=>this.typeToSelectString=""),1e3),"Backspace"===i.key?this.typeToSelectString=this.typeToSelectString.slice(0,-1):this.typeToSelectString+=i.key.toLowerCase();for(const i of s){if(i.getTextLabel().toLowerCase().startsWith(this.typeToSelectString)){this.setCurrentOption(i);break}}}}}handleDocumentMouseDown(i){const s=i.composedPath();this&&!s.includes(this)&&this.hide()}handleLabelClick(){this.displayInput.focus()}handleComboboxMouseDown(i){const s=i.composedPath().some((i=>i instanceof Element&&"nile-icon-button"===i.tagName.toLowerCase()));this.disabled||s||(i.preventDefault(),this.displayInput.focus({preventScroll:!0}),this.open=!this.open)}handleComboboxKeyDown(i){i.stopPropagation(),this.handleDocumentKeyDown(i)}handleClearClick(i){i.stopPropagation(),""!==this.value&&(this.setSelectedOptions([]),this.displayInput.focus({preventScroll:!0}),this.updateComplete.then((()=>{this.emit("nile-clear",{value:this.value,name:this.name}),this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})))}handleClearMouseDown(i){i.stopPropagation(),i.preventDefault()}handleOptionClick(i){const s=i.target.closest("nile-option"),e=this.value;if(s&&!s.disabled&&(this.multiple?this.toggleOptionSelection(s):this.setSelectedOptions(s),this.updateComplete.then((()=>this.displayInput.focus({preventScroll:!0}))),this.value!==e&&this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})),this.multiple||(this.hide(),this.displayInput.focus({preventScroll:!0}))),this.showSelected){this.getAllOptions().forEach((i=>{i.selected||(i.hidden=this.showSelected)})),this.requestUpdate()}}handleDefaultSlotChange(){const i=this.getAllOptions(),s=Array.isArray(this.value)?this.value:[this.value],e=[];customElements.get("nile-option")?(i.forEach((i=>e.push(i.value))),this.setSelectedOptions(i.filter((i=>s.includes(i.value))))):customElements.whenDefined("nile-option").then((()=>this.handleDefaultSlotChange()))}handleTagRemove(i,s){i.stopPropagation(),this.disabled||(this.toggleOptionSelection(s,!1),this.updateComplete.then((()=>{this.emit("nile-input",{value:this.value,name:this.name}),this.emit("nile-change",{value:this.value,name:this.name})})))}getAllOptions(){return[...this.querySelectorAll("nile-option")]}getOptionPrefix(i){const s=i.shadowRoot?.querySelector('slot[name="prefix"]');if(!s)return"";const e=s.assignedNodes(),o=[];return e.forEach((i=>{i instanceof HTMLElement?o.push(i.outerHTML):i.nodeType===Node.TEXT_NODE&&o.push(i.textContent||"")})),o.join("")}getFirstOption(){return this.querySelector("nile-option")}setCurrentOption(i){this.getAllOptions().forEach((i=>{i.current=!1,i.tabIndex=-1})),i&&(this.currentOption=i,i.current=!0,i.tabIndex=0,i.focus())}setSelectedOptions(i){const s=this.getAllOptions(),e=Array.isArray(i)?i:[i];s.forEach((i=>i.selected=!1)),e.length&&e.forEach((i=>i.selected=!0)),this.selectionChanged()}toggleOptionSelection(i,s){i.selected=!0===s||!1===s?s:!i.selected,this.selectionChanged()}selectionChanged(){this.selectedOptions=this.getAllOptions().filter((i=>i.selected)),this.multiple?(this.value=this.selectedOptions.map((i=>i.value)),this.placeholder&&0===this.value.length?this.displayLabel="":this.displayLabel=this.selectedOptions.length+" selected"):(this.value=this.selectedOptions[0]?.value??"",this.displayLabel=this.selectedOptions[0]?.getTextLabel()??""),this.updateComplete.then((()=>{this.formControlController.updateValidity()}))}handleSearchFocus(){document.removeEventListener("keydown",this.handleDocumentKeyDown)}handleSearchBlur(){document.addEventListener("keydown",this.handleDocumentKeyDown)}handleSearchChange(i){this.searchValue=i.detail.value,0===this.filterOptions(this.searchValue).length?this.showNoResults=!0:this.showNoResults=!1}filterOptions(i){const s=this.getAllOptions(),e=i.toLowerCase();let o=[];return s.forEach((i=>{const s=i.getTextLabel().toLowerCase(),n=(i.value||"").toLowerCase();s.includes(e)||n.includes(e)?(i.hidden=!1,o.push(i)):i.hidden=!0})),o}handleInvalid(i){this.formControlController.setValidity(!1),this.formControlController.emitInvalidEvent(i)}handleDisabledChange(){this.disabled&&(this.open=!1,this.handleOpenChange())}handleValueChange(){const i=this.getAllOptions(),s=Array.isArray(this.value)?this.value:[this.value];this.setSelectedOptions(i.filter((i=>s.includes(i.value))))}async handleOpenChange(){if(this.open&&!this.disabled){this.setCurrentOption(this.selectedOptions[0]||this.getFirstOption()),this.emit("nile-show",{value:this.value,name:this.name}),this.addOpenListeners(),await c(this),this.listbox.hidden=!1,this.popup.active=!0,requestAnimationFrame((()=>{this.setCurrentOption(this.currentOption)}));const{keyframes:i,options:s}=v(this,"select.show",{dir:"ltr"});await l(this.popup.popup,i,s),this.currentOption&&h(this.currentOption,this.listbox,"vertical","auto"),this.emit("nile-after-show",{value:this.value,name:this.name})}else{this.emit("nile-hide",{value:this.value,name:this.name}),this.removeOpenListeners(),await c(this);const{keyframes:i,options:s}=v(this,"select.hide",{dir:"ltr"});await l(this.popup.popup,i,s),this.listbox.hidden=!0,this.popup.active=!1,this.emit("nile-after-hide",{value:this.value,name:this.name})}}async show(){if(!this.open&&!this.disabled)return this.open=!0,j(this,"nile-after-show");this.open=!1}async hide(){if(this.open&&!this.disabled)return this.open=!1,j(this,"nile-after-hide");this.open=!1}checkValidity(){return this.valueInput.checkValidity()}getForm(){return this.formControlController.getForm()}reportValidity(){return this.valueInput.reportValidity()}setCustomValidity(i){this.valueInput.setCustomValidity(i),this.formControlController.updateValidity()}focus(i){this.displayInput.focus(i)}blur(){this.displayInput.blur()}render(){const i=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const e=!!this.label||!!i,o=this.clearable&&!this.disabled&&this.value.length>0,n=this.placeholder&&0===this.value.length,t=this.searchValue||"",c=!!this.helpText,l=!!this.errorMessage;return s`
2
2
  <div
3
3
  part="form-control"
4
4
  class=${m({"form-control":!0,"form-control--small":"small"===this.size,"form-control--medium":"medium"===this.size,"form-control--large":"large"===this.size,"form-control--has-label":e,"form-control--has-help-text":c})}