@aquera/nile-elements 0.0.10 → 0.0.12

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 (199) hide show
  1. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-dialog/nile-dialog.css.js +3 -0
  2. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-dialog/nile-dialog.css.js.map +1 -1
  3. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-dialog/nile-dialog.d.ts +4 -0
  4. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-dialog/nile-dialog.js +64 -17
  5. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  6. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/default-cursor.d.ts +5 -0
  7. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/default-cursor.js +5 -0
  8. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/default-cursor.js.map +1 -0
  9. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/email.d.ts +1 -1
  10. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/email.js +1 -1
  11. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/email.js.map +1 -1
  12. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/foreach.d.ts +1 -1
  13. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/foreach.js +1 -1
  14. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/foreach.js.map +1 -1
  15. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/form.d.ts +1 -1
  16. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/form.js +1 -1
  17. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/form.js.map +1 -1
  18. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/header-flows.d.ts +1 -1
  19. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/header-flows.js +1 -1
  20. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/header-flows.js.map +1 -1
  21. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/if.d.ts +1 -1
  22. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/if.js +1 -1
  23. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/if.js.map +1 -1
  24. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  25. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js +1 -0
  26. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  27. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log-info.d.ts +1 -1
  28. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log-info.js +1 -1
  29. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log-info.js.map +1 -1
  30. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log.d.ts +1 -1
  31. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log.js +1 -1
  32. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/log.js.map +1 -1
  33. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/orchestration.d.ts +1 -1
  34. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/orchestration.js +1 -1
  35. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/orchestration.js.map +1 -1
  36. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/while.d.ts +1 -1
  37. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/while.js +1 -1
  38. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/while.js.map +1 -1
  39. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/whileloop.d.ts +1 -1
  40. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/whileloop.js +1 -1
  41. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/whileloop.js.map +1 -1
  42. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow.d.ts +1 -1
  43. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow.js +1 -1
  44. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow.js.map +1 -1
  45. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  46. package/demo/filenames.txt +1 -1
  47. package/dist/index.cjs.js +1 -1
  48. package/dist/index.esm.js +1 -1
  49. package/dist/index.iife.js +34 -21
  50. package/dist/nile-badge/index.cjs.js +1 -1
  51. package/dist/nile-badge/index.esm.js +1 -1
  52. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  53. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  54. package/dist/nile-badge/nile-badge.esm.js +1 -1
  55. package/dist/nile-button/index.cjs.js +1 -1
  56. package/dist/nile-button/index.esm.js +1 -1
  57. package/dist/nile-button/nile-button.cjs.js +1 -1
  58. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  59. package/dist/nile-button/nile-button.esm.js +1 -1
  60. package/dist/nile-dialog/index.cjs.js +1 -1
  61. package/dist/nile-dialog/index.esm.js +1 -1
  62. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  63. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  64. package/dist/nile-dialog/nile-dialog.css.cjs.js +1 -1
  65. package/dist/nile-dialog/nile-dialog.css.cjs.js.map +1 -1
  66. package/dist/nile-dialog/nile-dialog.css.esm.js +3 -0
  67. package/dist/nile-dialog/nile-dialog.esm.js +14 -4
  68. package/dist/nile-icon/icons/svg/default-cursor.cjs.js +2 -0
  69. package/dist/nile-icon/icons/svg/default-cursor.cjs.js.map +1 -0
  70. package/dist/nile-icon/icons/svg/default-cursor.esm.js +1 -0
  71. package/dist/nile-icon/icons/svg/email.cjs.js +1 -1
  72. package/dist/nile-icon/icons/svg/email.cjs.js.map +1 -1
  73. package/dist/nile-icon/icons/svg/email.esm.js +1 -1
  74. package/dist/nile-icon/icons/svg/foreach.cjs.js +1 -1
  75. package/dist/nile-icon/icons/svg/foreach.cjs.js.map +1 -1
  76. package/dist/nile-icon/icons/svg/foreach.esm.js +1 -1
  77. package/dist/nile-icon/icons/svg/form.cjs.js +1 -1
  78. package/dist/nile-icon/icons/svg/form.cjs.js.map +1 -1
  79. package/dist/nile-icon/icons/svg/form.esm.js +1 -1
  80. package/dist/nile-icon/icons/svg/header-flows.cjs.js +1 -1
  81. package/dist/nile-icon/icons/svg/header-flows.cjs.js.map +1 -1
  82. package/dist/nile-icon/icons/svg/header-flows.esm.js +1 -1
  83. package/dist/nile-icon/icons/svg/if.cjs.js +1 -1
  84. package/dist/nile-icon/icons/svg/if.cjs.js.map +1 -1
  85. package/dist/nile-icon/icons/svg/if.esm.js +1 -1
  86. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  87. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  88. package/dist/nile-icon/icons/svg/log-info.cjs.js +1 -1
  89. package/dist/nile-icon/icons/svg/log-info.cjs.js.map +1 -1
  90. package/dist/nile-icon/icons/svg/log-info.esm.js +1 -1
  91. package/dist/nile-icon/icons/svg/log.cjs.js +1 -1
  92. package/dist/nile-icon/icons/svg/log.cjs.js.map +1 -1
  93. package/dist/nile-icon/icons/svg/log.esm.js +1 -1
  94. package/dist/nile-icon/icons/svg/orchestration.cjs.js +1 -1
  95. package/dist/nile-icon/icons/svg/orchestration.cjs.js.map +1 -1
  96. package/dist/nile-icon/icons/svg/orchestration.esm.js +1 -1
  97. package/dist/nile-icon/icons/svg/while.cjs.js +1 -1
  98. package/dist/nile-icon/icons/svg/while.cjs.js.map +1 -1
  99. package/dist/nile-icon/icons/svg/while.esm.js +1 -1
  100. package/dist/nile-icon/icons/svg/whileloop.cjs.js +1 -1
  101. package/dist/nile-icon/icons/svg/whileloop.cjs.js.map +1 -1
  102. package/dist/nile-icon/icons/svg/whileloop.esm.js +1 -1
  103. package/dist/nile-icon/icons/svg/workflow.cjs.js +1 -1
  104. package/dist/nile-icon/icons/svg/workflow.cjs.js.map +1 -1
  105. package/dist/nile-icon/icons/svg/workflow.esm.js +1 -1
  106. package/dist/nile-icon/index.cjs.js +1 -1
  107. package/dist/nile-icon/index.cjs.js.map +1 -1
  108. package/dist/nile-icon/index.esm.js +1 -1
  109. package/dist/nile-icon-button/index.cjs.js +1 -1
  110. package/dist/nile-icon-button/index.esm.js +1 -1
  111. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  112. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  113. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  114. package/dist/nile-input/index.cjs.js +1 -1
  115. package/dist/nile-input/index.esm.js +1 -1
  116. package/dist/nile-input/nile-input.cjs.js +1 -1
  117. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  118. package/dist/nile-input/nile-input.esm.js +1 -1
  119. package/dist/nile-menu-item/index.cjs.js +1 -1
  120. package/dist/nile-menu-item/index.esm.js +1 -1
  121. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  122. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  123. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  124. package/dist/nile-option/index.cjs.js +1 -1
  125. package/dist/nile-option/index.esm.js +1 -1
  126. package/dist/nile-option/nile-option.cjs.js +1 -1
  127. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  128. package/dist/nile-option/nile-option.esm.js +1 -1
  129. package/dist/nile-select/index.cjs.js +1 -1
  130. package/dist/nile-select/index.esm.js +1 -1
  131. package/dist/nile-select/nile-select.cjs.js +1 -1
  132. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  133. package/dist/nile-select/nile-select.esm.js +1 -1
  134. package/dist/nile-tag/index.cjs.js +1 -1
  135. package/dist/nile-tag/index.esm.js +1 -1
  136. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  137. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  138. package/dist/nile-tag/nile-tag.esm.js +1 -1
  139. package/dist/src/nile-dialog/nile-dialog.css.js +3 -0
  140. package/dist/src/nile-dialog/nile-dialog.css.js.map +1 -1
  141. package/dist/src/nile-dialog/nile-dialog.d.ts +4 -0
  142. package/dist/src/nile-dialog/nile-dialog.js +64 -17
  143. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  144. package/dist/src/nile-icon/icons/svg/default-cursor.d.ts +5 -0
  145. package/dist/src/nile-icon/icons/svg/default-cursor.js +5 -0
  146. package/dist/src/nile-icon/icons/svg/default-cursor.js.map +1 -0
  147. package/dist/src/nile-icon/icons/svg/email.d.ts +1 -1
  148. package/dist/src/nile-icon/icons/svg/email.js +1 -1
  149. package/dist/src/nile-icon/icons/svg/email.js.map +1 -1
  150. package/dist/src/nile-icon/icons/svg/foreach.d.ts +1 -1
  151. package/dist/src/nile-icon/icons/svg/foreach.js +1 -1
  152. package/dist/src/nile-icon/icons/svg/foreach.js.map +1 -1
  153. package/dist/src/nile-icon/icons/svg/form.d.ts +1 -1
  154. package/dist/src/nile-icon/icons/svg/form.js +1 -1
  155. package/dist/src/nile-icon/icons/svg/form.js.map +1 -1
  156. package/dist/src/nile-icon/icons/svg/header-flows.d.ts +1 -1
  157. package/dist/src/nile-icon/icons/svg/header-flows.js +1 -1
  158. package/dist/src/nile-icon/icons/svg/header-flows.js.map +1 -1
  159. package/dist/src/nile-icon/icons/svg/if.d.ts +1 -1
  160. package/dist/src/nile-icon/icons/svg/if.js +1 -1
  161. package/dist/src/nile-icon/icons/svg/if.js.map +1 -1
  162. package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  163. package/dist/src/nile-icon/icons/svg/index.js +1 -0
  164. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  165. package/dist/src/nile-icon/icons/svg/log-info.d.ts +1 -1
  166. package/dist/src/nile-icon/icons/svg/log-info.js +1 -1
  167. package/dist/src/nile-icon/icons/svg/log-info.js.map +1 -1
  168. package/dist/src/nile-icon/icons/svg/log.d.ts +1 -1
  169. package/dist/src/nile-icon/icons/svg/log.js +1 -1
  170. package/dist/src/nile-icon/icons/svg/log.js.map +1 -1
  171. package/dist/src/nile-icon/icons/svg/orchestration.d.ts +1 -1
  172. package/dist/src/nile-icon/icons/svg/orchestration.js +1 -1
  173. package/dist/src/nile-icon/icons/svg/orchestration.js.map +1 -1
  174. package/dist/src/nile-icon/icons/svg/while.d.ts +1 -1
  175. package/dist/src/nile-icon/icons/svg/while.js +1 -1
  176. package/dist/src/nile-icon/icons/svg/while.js.map +1 -1
  177. package/dist/src/nile-icon/icons/svg/whileloop.d.ts +1 -1
  178. package/dist/src/nile-icon/icons/svg/whileloop.js +1 -1
  179. package/dist/src/nile-icon/icons/svg/whileloop.js.map +1 -1
  180. package/dist/src/nile-icon/icons/svg/workflow.d.ts +1 -1
  181. package/dist/src/nile-icon/icons/svg/workflow.js +1 -1
  182. package/dist/src/nile-icon/icons/svg/workflow.js.map +1 -1
  183. package/dist/tsconfig.tsbuildinfo +1 -1
  184. package/package.json +1 -1
  185. package/src/nile-dialog/nile-dialog.css.ts +3 -0
  186. package/src/nile-dialog/nile-dialog.ts +82 -24
  187. package/src/nile-icon/icons/svg/default-cursor.ts +5 -0
  188. package/src/nile-icon/icons/svg/email.ts +1 -1
  189. package/src/nile-icon/icons/svg/foreach.ts +1 -1
  190. package/src/nile-icon/icons/svg/form.ts +1 -1
  191. package/src/nile-icon/icons/svg/header-flows.ts +1 -1
  192. package/src/nile-icon/icons/svg/if.ts +1 -1
  193. package/src/nile-icon/icons/svg/index.ts +1 -0
  194. package/src/nile-icon/icons/svg/log-info.ts +1 -1
  195. package/src/nile-icon/icons/svg/log.ts +1 -1
  196. package/src/nile-icon/icons/svg/orchestration.ts +1 -1
  197. package/src/nile-icon/icons/svg/while.ts +1 -1
  198. package/src/nile-icon/icons/svg/whileloop.ts +1 -1
  199. package/src/nile-icon/icons/svg/workflow.ts +1 -1
@@ -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 this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\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 onInputChange(event: Event) {\n // This will stop the event from bubbling up to the parent `nile-select` component\n event.stopPropagation();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const 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 ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\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 distance=\"6\"\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 ${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 ${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 @nile-change=\"${this.onInputChange}\"\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 ${this.selectedOptions.length !== 0\n ? html` <span\n class=\"select__clear\"\n @click=\"${this.unSlectAll}\"\n >clear all</span\n >`\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","_this$valueInput","valueInput","validity","_this$valueInput2","validationMessage","connectedCallback","super","handleDocumentFocusIn","bind","handleDocumentKeyDown","handleDocumentMouseDown","emit","disconnectedCallback","addOpenListeners","document","addEventListener","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","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","_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$selectedOptions2","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","animateTo","keyframes","options","scrollIntoView","stop","apply","arguments","_show","_callee2","_callee2$","_context3","abrupt","waitForEvent","_hide","_callee3","_callee3$","_context4","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","render","_this10","hasLabelSlot","test","hasLabelSuffixSlot","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","_templateObject2","select","select__prefix","_templateObject3","index","_templateObject4","_templateObject5","unsafeHTML","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","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 this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\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 onInputChange(event: Event) {\n // This will stop the event from bubbling up to the parent `nile-select` component\n event.stopPropagation();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const 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 ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\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 distance=\"6\"\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 ${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 ${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 @nile-change=\"${this.onInputChange}\"\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 ${this.selectedOptions.length !== 0\n ? html` <span\n class=\"select__clear\"\n @click=\"${this.unSlectAll}\"\n >clear all</span\n >`\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","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","emit","disconnectedCallback","addOpenListeners","document","addEventListener","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","handleBlur","event","path","composedPath","includes","hide","handleFooterClick","stopPropagation","preventDefault","toggleShowSelected","_this$selectedOptions","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","s","_step","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$selectedOptions2","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","animateTo","keyframes","options","scrollIntoView","stop","apply","arguments","_show","_callee2","_callee2$","_context3","abrupt","waitForEvent","_hide","_callee3","_callee3$","_context4","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","render","_this10","hasLabelSlot","test","hasLabelSuffixSlot","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","_templateObject2","select","select__prefix","_templateObject3","index","_templateObject4","_templateObject5","unsafeHTML","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","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,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/apply-filter.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/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.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/numberinput.esm.js";import"../nile-icon/icons/svg/object.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/persistentdata.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/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.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,this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}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()}onInputChange(i){i.stopPropagation()}render(){const i=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const e=this.hasSlotController.test("label-suffix"),o=!!this.label||!!i,n=this.clearable&&!this.disabled&&this.value.length>0,t=this.placeholder&&0===this.value.length,c=this.searchValue||"",l=!!this.helpText,r=!!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/apply-filter.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/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.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-cursor.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/numberinput.esm.js";import"../nile-icon/icons/svg/object.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/persistentdata.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/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.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,this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}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()}onInputChange(i){i.stopPropagation()}render(){const i=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const e=this.hasSlotController.test("label-suffix"),o=!!this.label||!!i,n=this.clearable&&!this.disabled&&this.value.length>0,t=this.placeholder&&0===this.value.length,c=this.searchValue||"",l=!!this.helpText,r=!!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":o,"form-control--has-help-text":l})}