@aquera/nile-elements 1.4.5 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +9 -0
  2. package/demo/nxtgen.css +1 -0
  3. package/demo/variables.css +2 -0
  4. package/dist/directive-7733ffce.cjs.js +6 -0
  5. package/dist/directive-7733ffce.cjs.js.map +1 -0
  6. package/dist/directive-ee0c609c.esm.js +6 -0
  7. package/dist/{fixture-1c49c014.cjs.js → fixture-958445f8.cjs.js} +2 -2
  8. package/dist/{fixture-1c49c014.cjs.js.map → fixture-958445f8.cjs.js.map} +1 -1
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/index.js +261 -256
  12. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  13. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  14. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  15. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  16. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  18. package/dist/nile-badge/index.cjs.js +1 -1
  19. package/dist/nile-badge/index.esm.js +1 -1
  20. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  21. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  22. package/dist/nile-badge/nile-badge.esm.js +1 -1
  23. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  24. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  25. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  26. package/dist/nile-button/index.cjs.js +1 -1
  27. package/dist/nile-button/index.esm.js +1 -1
  28. package/dist/nile-button/nile-button.cjs.js +1 -1
  29. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  30. package/dist/nile-button/nile-button.esm.js +1 -1
  31. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  32. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  33. package/dist/nile-button/nile-button.test.esm.js +1 -1
  34. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  35. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  36. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  37. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  38. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  39. package/dist/nile-carousel/index.cjs.js +1 -1
  40. package/dist/nile-carousel/index.esm.js +1 -1
  41. package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
  42. package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
  43. package/dist/nile-carousel/nile-carousel.esm.js +1 -1
  44. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  45. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  46. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  47. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  48. package/dist/nile-dialog/index.cjs.js +1 -1
  49. package/dist/nile-dialog/index.esm.js +1 -1
  50. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  51. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  52. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  53. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  54. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  55. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  56. package/dist/nile-drawer/index.cjs.js +1 -1
  57. package/dist/nile-drawer/index.esm.js +1 -1
  58. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  59. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  60. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  61. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  62. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  63. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  64. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  65. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  66. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  67. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  68. package/dist/nile-file-upload/index.cjs.js +1 -1
  69. package/dist/nile-file-upload/index.esm.js +1 -1
  70. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  71. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  72. package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
  73. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -6
  74. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  75. package/dist/nile-file-upload/nile-file-upload.template.esm.js +28 -33
  76. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  77. package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +1 -1
  78. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  79. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  80. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  81. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  82. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  83. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  84. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  85. package/dist/nile-icon/icons/svg/ng-layers-three-02.cjs.js +2 -0
  86. package/dist/nile-icon/icons/svg/ng-layers-three-02.cjs.js.map +1 -0
  87. package/dist/nile-icon/icons/svg/ng-layers-three-02.esm.js +1 -0
  88. package/dist/nile-icon/icons/svg/ng-shopping-bag-01.cjs.js +2 -0
  89. package/dist/nile-icon/icons/svg/ng-shopping-bag-01.cjs.js.map +1 -0
  90. package/dist/nile-icon/icons/svg/ng-shopping-bag-01.esm.js +1 -0
  91. package/dist/nile-icon/icons/svg/ng-switch-horizontal-01.cjs.js +2 -0
  92. package/dist/nile-icon/icons/svg/ng-switch-horizontal-01.cjs.js.map +1 -0
  93. package/dist/nile-icon/icons/svg/ng-switch-horizontal-01.esm.js +1 -0
  94. package/dist/nile-icon/icons/svg/ng-zap.cjs.js +2 -0
  95. package/dist/nile-icon/icons/svg/ng-zap.cjs.js.map +1 -0
  96. package/dist/nile-icon/icons/svg/ng-zap.esm.js +1 -0
  97. package/dist/nile-icon/index.cjs.js +1 -1
  98. package/dist/nile-icon/index.cjs.js.map +1 -1
  99. package/dist/nile-icon/index.esm.js +3 -4
  100. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  101. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  102. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  103. package/dist/nile-icon-button/index.cjs.js +1 -1
  104. package/dist/nile-icon-button/index.esm.js +1 -1
  105. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  106. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  107. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  108. package/dist/nile-input/index.cjs.js +1 -1
  109. package/dist/nile-input/index.esm.js +1 -1
  110. package/dist/nile-input/nile-input.cjs.js +1 -1
  111. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  112. package/dist/nile-input/nile-input.esm.js +1 -1
  113. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  114. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  115. package/dist/nile-input/nile-input.test.esm.js +1 -1
  116. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  117. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  118. package/dist/nile-menu-item/index.cjs.js +1 -1
  119. package/dist/nile-menu-item/index.esm.js +1 -1
  120. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  121. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  122. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  123. package/dist/nile-option/index.cjs.js +1 -1
  124. package/dist/nile-option/index.esm.js +1 -1
  125. package/dist/nile-option/nile-option.cjs.js +1 -1
  126. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  127. package/dist/nile-option/nile-option.esm.js +1 -1
  128. package/dist/nile-popover/index.cjs.js +1 -1
  129. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  130. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  131. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  132. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  133. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  134. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  135. package/dist/nile-select/index.cjs.js +1 -1
  136. package/dist/nile-select/index.esm.js +1 -1
  137. package/dist/nile-select/nile-select.cjs.js +1 -1
  138. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  139. package/dist/nile-select/nile-select.esm.js +1 -1
  140. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  141. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  142. package/dist/nile-select/nile-select.test.esm.js +1 -1
  143. package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
  144. package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
  145. package/dist/nile-side-bar/nile-side-bar.esm.js +2 -2
  146. package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
  147. package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
  148. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
  149. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
  150. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
  151. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
  152. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
  153. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +1 -1
  154. package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.cjs.js +1 -1
  155. package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.cjs.js.map +1 -1
  156. package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.esm.js +1 -1
  157. package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.cjs.js +1 -1
  158. package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.cjs.js.map +1 -1
  159. package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.esm.js +3 -3
  160. package/dist/nile-side-bar-header/nile-side-bar-header.css.cjs.js +1 -1
  161. package/dist/nile-side-bar-header/nile-side-bar-header.css.cjs.js.map +1 -1
  162. package/dist/nile-side-bar-header/nile-side-bar-header.css.esm.js +2 -1
  163. package/dist/nile-side-bar-logo/nile-side-bar-logo.css.cjs.js +1 -1
  164. package/dist/nile-side-bar-logo/nile-side-bar-logo.css.cjs.js.map +1 -1
  165. package/dist/nile-side-bar-logo/nile-side-bar-logo.css.esm.js +12 -7
  166. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  167. package/dist/nile-tab/index.cjs.js +1 -1
  168. package/dist/nile-tab/index.esm.js +1 -1
  169. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  170. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  171. package/dist/nile-tab/nile-tab.css.cjs.js +1 -1
  172. package/dist/nile-tab/nile-tab.css.cjs.js.map +1 -1
  173. package/dist/nile-tab/nile-tab.css.esm.js +6 -6
  174. package/dist/nile-tab/nile-tab.esm.js +1 -1
  175. package/dist/nile-tab-group/index.cjs.js +1 -1
  176. package/dist/nile-tab-group/index.esm.js +1 -1
  177. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  178. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  179. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  180. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  181. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  182. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  183. package/dist/nile-tag/index.cjs.js +1 -1
  184. package/dist/nile-tag/index.esm.js +1 -1
  185. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  186. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  187. package/dist/nile-tag/nile-tag.esm.js +1 -1
  188. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  189. package/dist/nile-toast/index.cjs.js +1 -1
  190. package/dist/nile-toast/index.esm.js +1 -1
  191. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  192. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  193. package/dist/nile-toast/nile-toast.esm.js +1 -1
  194. package/dist/nile-tree/index.cjs.js +1 -1
  195. package/dist/nile-tree/index.esm.js +1 -1
  196. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  197. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  198. package/dist/nile-tree/nile-tree.esm.js +1 -1
  199. package/dist/nile-tree-item/index.cjs.js +1 -1
  200. package/dist/nile-tree-item/index.esm.js +1 -1
  201. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  202. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  203. package/dist/nile-tree-item/nile-tree-item.css.cjs.js +1 -1
  204. package/dist/nile-tree-item/nile-tree-item.css.cjs.js.map +1 -1
  205. package/dist/nile-tree-item/nile-tree-item.css.esm.js +3 -3
  206. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  207. package/dist/nile-virtual-select/index.cjs.js +1 -1
  208. package/dist/nile-virtual-select/index.esm.js +1 -1
  209. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +7 -3
  210. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  211. package/dist/nile-virtual-select/nile-virtual-select.esm.js +9 -4
  212. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  213. package/dist/{scopedElementsWrapper-5ea5834f.cjs.js → scopedElementsWrapper-9b188ea6.cjs.js} +2 -2
  214. package/dist/{scopedElementsWrapper-5ea5834f.cjs.js.map → scopedElementsWrapper-9b188ea6.cjs.js.map} +1 -1
  215. package/dist/src/nile-icon/icons/svg/index.d.ts +4 -0
  216. package/dist/src/nile-icon/icons/svg/index.js +4 -0
  217. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  218. package/dist/src/nile-icon/icons/svg/ng-layers-three-02.d.ts +5 -0
  219. package/dist/src/nile-icon/icons/svg/ng-layers-three-02.js +5 -0
  220. package/dist/src/nile-icon/icons/svg/ng-layers-three-02.js.map +1 -0
  221. package/dist/src/nile-icon/icons/svg/ng-shopping-bag-01.d.ts +5 -0
  222. package/dist/src/nile-icon/icons/svg/ng-shopping-bag-01.js +5 -0
  223. package/dist/src/nile-icon/icons/svg/ng-shopping-bag-01.js.map +1 -0
  224. package/dist/src/nile-icon/icons/svg/ng-switch-horizontal-01.d.ts +5 -0
  225. package/dist/src/nile-icon/icons/svg/ng-switch-horizontal-01.js +5 -0
  226. package/dist/src/nile-icon/icons/svg/ng-switch-horizontal-01.js.map +1 -0
  227. package/dist/src/nile-icon/icons/svg/ng-zap.d.ts +5 -0
  228. package/dist/src/nile-icon/icons/svg/ng-zap.js +5 -0
  229. package/dist/src/nile-icon/icons/svg/ng-zap.js.map +1 -0
  230. package/dist/src/nile-icon/index.js +1 -2
  231. package/dist/src/nile-icon/index.js.map +1 -1
  232. package/dist/src/nile-side-bar/nile-side-bar.js +9 -1
  233. package/dist/src/nile-side-bar/nile-side-bar.js.map +1 -1
  234. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +1 -1
  235. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
  236. package/dist/src/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.js +1 -1
  237. package/dist/src/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.js.map +1 -1
  238. package/dist/src/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.js +1 -1
  239. package/dist/src/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.js.map +1 -1
  240. package/dist/src/nile-side-bar-header/nile-side-bar-header.css.js +2 -1
  241. package/dist/src/nile-side-bar-header/nile-side-bar-header.css.js.map +1 -1
  242. package/dist/src/nile-side-bar-logo/nile-side-bar-logo.css.js +10 -5
  243. package/dist/src/nile-side-bar-logo/nile-side-bar-logo.css.js.map +1 -1
  244. package/dist/src/nile-tab/nile-tab.css.js +4 -4
  245. package/dist/src/nile-tab/nile-tab.css.js.map +1 -1
  246. package/dist/src/nile-tree-item/nile-tree-item.css.js +3 -3
  247. package/dist/src/nile-tree-item/nile-tree-item.css.js.map +1 -1
  248. package/dist/src/version.js +2 -2
  249. package/dist/src/version.js.map +1 -1
  250. package/dist/tsconfig.tsbuildinfo +1 -1
  251. package/package.json +1 -1
  252. package/src/nile-icon/icons/svg/index.ts +4 -0
  253. package/src/nile-icon/icons/svg/ng-layers-three-02.ts +5 -0
  254. package/src/nile-icon/icons/svg/ng-shopping-bag-01.ts +5 -0
  255. package/src/nile-icon/icons/svg/ng-switch-horizontal-01.ts +5 -0
  256. package/src/nile-icon/icons/svg/ng-zap.ts +5 -0
  257. package/src/nile-icon/index.ts +1 -2
  258. package/src/nile-side-bar/nile-side-bar.ts +10 -1
  259. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +1 -1
  260. package/src/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.css.ts +1 -1
  261. package/src/nile-side-bar-group-item-text/nile-side-bar-group-item-text.css.ts +1 -1
  262. package/src/nile-side-bar-header/nile-side-bar-header.css.ts +2 -1
  263. package/src/nile-side-bar-logo/nile-side-bar-logo.css.ts +11 -5
  264. package/src/nile-tab/nile-tab.css.ts +4 -4
  265. package/src/nile-tree-item/nile-tree-item.css.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isServer as s}from\"lit-html/is-server.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t{constructor(t,{target:i,config:h,callback:e,skipInitial:o}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==i&&this.t.add(i??t),this.l=h,this.o=o??this.o,this.callback=e,s||(window.ResizeObserver?(this.u=new ResizeObserver((s=>{this.handleChanges(s),this.h.requestUpdate()})),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(s){this.value=this.callback?.(s,this.u)}hostConnected(){for(const s of this.t)this.observe(s)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(s){this.t.add(s),this.u.observe(s,this.l),this.i=!0,this.h.requestUpdate()}unobserve(s){this.t.delete(s),this.u.unobserve(s)}disconnect(){this.u.disconnect()}}export{t as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n \n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n \n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox, \n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n \n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n \n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n \n this.emit('nile-search', { \n query: this.searchValue,\n name: this.name \n });\n \n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n \n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n \n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n \n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n \n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n \n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n \n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n \n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n \n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n \n this.popup.active = true;\n \n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n \n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n \n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n \n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n \n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n &nbsp; Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this)\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["t","x","o","i","target","h","config","e","callback","skipInitial","this","Set","add","l","window","ResizeObserver","u","s","handleChanges","requestUpdate","addController","console","warn","_createClass","key","value","hostConnected","_iterator","_createForOfIteratorHelper","_step","n","done","observe","err","f","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","_export","NileVirtualSelect","_u","$","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","size","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","maxOptionsVisible","oldMaxOptionsVisible","enableTabClose","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","_iterator2","_step2","entry","classList","contains","calculateTotalWidthOfTags","_this2","_inherits","get","validity","_this$valueInput","valueInput","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","super","initializeComponent","setupEventListeners","updateComplete","then","length","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","undefined","cleanupPortalAppend","updated","changedProperties","has","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","_this$renderItemConfi","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getSearchText","_this$renderItemConfi3","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","visible","reason","onDocumentHidden","detail","concat","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this5","selectedValues","Array","isArray","filter","itemValue","some","val","String","_toConsumableArray","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","_this7","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","_this$renderItemConfi4","_this$originalOptionI","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this9$shadowRoot","virtualized","remove","handleScroll","_this10","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_g","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","animateTo","keyframes","options","_callee4","_this$popup3","_g2","_callee4$","_context5","_callee5","_callee5$","_context6","abrupt","waitForEvent","_callee6","_callee6$","_context7","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","render","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","_resetScrollPosition","_callee7","_callee7$","_context8","NileElement","styles","__decorate","prototype","state","property","type","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/lit-html/async-directive.js","../../../../node_modules/lit-html/directive-helpers.js","../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{AsyncDirective as t}from\"lit-html/async-directive.js\";import{directive as s}from\"lit-html/directive.js\";import{isServer as i}from\"lit-html/is-server.js\";class h{constructor(t,{target:s,config:h,callback:e,skipInitial:r}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==s&&this.t.add(s??t),this.l=h,this.o=r??this.o,this.callback=e,i||(window.ResizeObserver?(this.u=new ResizeObserver(t=>{this.handleChanges(t),this.h.requestUpdate()}),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}unobserve(t){this.t.delete(t),this.u.unobserve(t)}disconnect(){this.u.disconnect()}target(t){return e(this,t)}}const e=s(class extends t{constructor(){super(...arguments),this.observing=!1}render(t,s){}update(t,[s,i]){this.controller=s,this.part=t,this.observe=i,!1===i?(s.unobserve(t.element),this.observing=!1):!1===this.observing&&(s.observe(t.element),this.observing=!0)}disconnected(){this.controller?.unobserve(this.part.element),this.observing=!1}reconnected(){!1!==this.observe&&!1===this.observing&&(this.controller?.observe(this.part.element),this.observing=!0)}});export{h as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n \n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n \n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox, \n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n \n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n \n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n \n this.emit('nile-search', { \n query: this.searchValue,\n name: this.name \n });\n \n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n \n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n \n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n \n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n \n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n \n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n \n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n \n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n \n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n \n this.popup.active = true;\n \n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n \n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n \n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n \n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n \n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n &nbsp; Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this)\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["h","i","this","_$AN","o","_$AM","r","n","t","e","_$AH","size","Array","isArray","length","s","setters","_tslib","_iterator","_createForOfIteratorHelper","_step","done","_$AO","err","f","_n","Set","has","add","c","type","CHILD","_$AP","_$AQ","A","constructor","super","arguments","_this","_inherits","_k","_createClass","key","value","_$AT","isConnected","_$AU","_this$reconnected","_this$disconnected","undefined","reconnected","disconnected","setValue","strings","_$Ct","_$AI","_toConsumableArray","_$Ci","F","target","callback","config","skipInitial","l","window","ResizeObserver","u","handleChanges","requestUpdate","addController","console","warn","hostConnected","_iterator2","_step2","observe","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","hostUpdated","stop","unobserve","_A","_class","observing","_this3","render","update","controller","part","element","_this$controller2","NileVirtualSelect","q","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","maxOptionsVisible","oldMaxOptionsVisible","enableTabClose","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","_iterator3","_step3","entry","classList","contains","calculateTotalWidthOfTags","_this4","_u","get","_this$valueInput","valueInput","validity","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","initializeComponent","setupEventListeners","updateComplete","then","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","cleanupPortalAppend","updated","changedProperties","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","renderItemConfig","toString","getItemValue","getValue","getSearchText","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","visible","reason","onDocumentHidden","detail","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","selectedValues","filter","itemValue","some","val","String","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","_this9","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","concat","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this11$shadowRoot","virtualized","remove","handleScroll","_this12","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","_this$renderItemConfi5","_this13","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_m","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","keyframes","options","animateTo","_callee4","_this$popup3","_m2","_callee4$","_context5","_callee5","_callee5$","_context6","abrupt","waitForEvent","_callee6","_callee6$","_context7","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","_resetScrollPosition","_callee7","_callee7$","_context8","NileElement","styles","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0,1,2]}