@siemens/ix 0.0.0-20240419081748 → 0.0.0-20240508065324

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 (424) hide show
  1. package/components/dropdown.js +112 -9
  2. package/components/dropdown.js.map +1 -1
  3. package/components/group-context-menu.js +1 -1
  4. package/components/group-context-menu.js.map +1 -1
  5. package/components/group-item.js +3 -3
  6. package/components/group-item.js.map +1 -1
  7. package/components/ix-category-filter.js +34 -10
  8. package/components/ix-category-filter.js.map +1 -1
  9. package/components/ix-event-list-item.js +5 -4
  10. package/components/ix-event-list-item.js.map +1 -1
  11. package/components/ix-event-list.js +26 -25
  12. package/components/ix-event-list.js.map +1 -1
  13. package/components/ix-form-field.js +1 -1
  14. package/components/ix-form-field.js.map +1 -1
  15. package/components/ix-group.js +16 -9
  16. package/components/ix-group.js.map +1 -1
  17. package/components/ix-icon-toggle-button.js +1 -1
  18. package/components/ix-input-group.js +1 -1
  19. package/components/ix-key-value-list.js +1 -1
  20. package/components/ix-kpi.js +3 -3
  21. package/components/ix-link-button.js +3 -3
  22. package/components/ix-map-navigation.js +2 -2
  23. package/components/ix-menu-about-item.js +1 -1
  24. package/components/ix-menu-about-news.js +4 -4
  25. package/components/ix-menu-about.js +1 -1
  26. package/components/ix-menu-about.js.map +1 -1
  27. package/components/ix-menu-avatar.js +2 -2
  28. package/components/ix-menu-category.js +5 -5
  29. package/components/ix-menu-settings-item.js +1 -1
  30. package/components/ix-menu.js +11 -11
  31. package/components/ix-message-bar.js +1 -1
  32. package/components/ix-modal-example.js +1 -1
  33. package/components/ix-modal-footer.js +1 -1
  34. package/components/ix-modal-loading.js +1 -1
  35. package/components/ix-pagination.js +2 -2
  36. package/components/ix-pane-layout.js +1 -1
  37. package/components/ix-pill.js +4 -4
  38. package/components/ix-playground-internal.js +1 -1
  39. package/components/ix-split-button-item.js +1 -1
  40. package/components/ix-tile.js +4 -4
  41. package/components/ix-toggle-button.js +2 -2
  42. package/components/ix-toggle.js +2 -2
  43. package/components/ix-tree.js +1 -1
  44. package/components/ix-upload.js +3 -3
  45. package/components/ix-validation-tooltip.js +2 -2
  46. package/components/ix-workflow-step.js +3 -3
  47. package/components/ix-workflow-steps.js +1 -1
  48. package/components/map-navigation-overlay.js +2 -2
  49. package/components/menu-avatar-item.js +1 -1
  50. package/components/menu-expand-icon.js +1 -1
  51. package/components/menu-item.js +2 -2
  52. package/components/modal-content.js +1 -1
  53. package/components/modal-header.js +1 -1
  54. package/components/row.js +1 -1
  55. package/components/select-item.js +9 -1
  56. package/components/select-item.js.map +1 -1
  57. package/components/select.js +161 -42
  58. package/components/select.js.map +1 -1
  59. package/components/spinner.js +1 -1
  60. package/components/tabs.js +2 -2
  61. package/components/time-picker.js +1 -1
  62. package/components/time-picker.js.map +1 -1
  63. package/components/toast.js +2 -2
  64. package/components/tooltip.js +2 -2
  65. package/components/tree-item.js +4 -4
  66. package/dist/cjs/focus-9c8ffbb0.js +65 -0
  67. package/dist/cjs/focus-9c8ffbb0.js.map +1 -0
  68. package/dist/cjs/ix-avatar_2.cjs.entry.js +1 -1
  69. package/dist/cjs/ix-category-filter.cjs.entry.js +33 -10
  70. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ix-col_4.cjs.entry.js +1 -1
  72. package/dist/cjs/ix-dropdown.cjs.entry.js +52 -8
  73. package/dist/cjs/ix-dropdown.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ix-event-list-item.cjs.entry.js +5 -4
  75. package/dist/cjs/ix-event-list-item.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ix-event-list.cjs.entry.js +26 -25
  77. package/dist/cjs/ix-event-list.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ix-filter-chip_2.cjs.entry.js +8 -1
  79. package/dist/cjs/ix-filter-chip_2.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ix-form-field.cjs.entry.js +1 -1
  81. package/dist/cjs/ix-form-field.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ix-group-context-menu_2.cjs.entry.js +4 -4
  83. package/dist/cjs/ix-group-context-menu_2.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ix-group.cjs.entry.js +13 -7
  85. package/dist/cjs/ix-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ix-icon-button_2.cjs.entry.js +1 -1
  87. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +1 -1
  88. package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
  89. package/dist/cjs/ix-key-value-list.cjs.entry.js +1 -1
  90. package/dist/cjs/ix-kpi.cjs.entry.js +3 -3
  91. package/dist/cjs/ix-link-button.cjs.entry.js +3 -3
  92. package/dist/cjs/ix-map-navigation-overlay.cjs.entry.js +2 -2
  93. package/dist/cjs/ix-map-navigation.cjs.entry.js +2 -2
  94. package/dist/cjs/ix-menu-about-item.cjs.entry.js +1 -1
  95. package/dist/cjs/ix-menu-about-news.cjs.entry.js +4 -4
  96. package/dist/cjs/ix-menu-about.cjs.entry.js +1 -1
  97. package/dist/cjs/ix-menu-about.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ix-menu-avatar.cjs.entry.js +2 -2
  99. package/dist/cjs/ix-menu-category.cjs.entry.js +5 -5
  100. package/dist/cjs/ix-menu-expand-icon.cjs.entry.js +1 -1
  101. package/dist/cjs/ix-menu-item.cjs.entry.js +2 -2
  102. package/dist/cjs/ix-menu-settings-item.cjs.entry.js +1 -1
  103. package/dist/cjs/ix-menu.cjs.entry.js +11 -11
  104. package/dist/cjs/ix-message-bar.cjs.entry.js +1 -1
  105. package/dist/cjs/ix-modal-content_2.cjs.entry.js +2 -2
  106. package/dist/cjs/ix-modal-example.cjs.entry.js +1 -1
  107. package/dist/cjs/ix-modal-footer.cjs.entry.js +1 -1
  108. package/dist/cjs/ix-modal-loading.cjs.entry.js +1 -1
  109. package/dist/cjs/ix-pagination.cjs.entry.js +2 -2
  110. package/dist/cjs/ix-pane-layout.cjs.entry.js +1 -1
  111. package/dist/cjs/ix-pill.cjs.entry.js +4 -4
  112. package/dist/cjs/ix-playground-internal.cjs.entry.js +1 -1
  113. package/dist/cjs/ix-select.cjs.entry.js +159 -39
  114. package/dist/cjs/ix-select.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ix-split-button-item.cjs.entry.js +1 -1
  116. package/dist/cjs/ix-tab-item_2.cjs.entry.js +2 -2
  117. package/dist/cjs/ix-tile.cjs.entry.js +4 -4
  118. package/dist/cjs/ix-time-picker.cjs.entry.js +1 -1
  119. package/dist/cjs/ix-time-picker.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ix-toast.cjs.entry.js +2 -2
  121. package/dist/cjs/ix-toggle-button.cjs.entry.js +2 -2
  122. package/dist/cjs/ix-toggle.cjs.entry.js +2 -2
  123. package/dist/cjs/ix-tooltip.cjs.entry.js +2 -2
  124. package/dist/cjs/ix-tree-item.cjs.entry.js +4 -4
  125. package/dist/cjs/ix-tree.cjs.entry.js +1 -1
  126. package/dist/cjs/ix-upload.cjs.entry.js +3 -3
  127. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +2 -2
  128. package/dist/cjs/ix-workflow-step.cjs.entry.js +3 -3
  129. package/dist/cjs/ix-workflow-steps.cjs.entry.js +1 -1
  130. package/dist/cjs/loader.cjs.js +1 -1
  131. package/dist/cjs/siemens-ix.cjs.js +1 -1
  132. package/dist/collection/components/category-filter/category-filter.css +60 -24
  133. package/dist/collection/components/category-filter/category-filter.js +58 -9
  134. package/dist/collection/components/category-filter/category-filter.js.map +1 -1
  135. package/dist/collection/components/dropdown/dropdown.js +52 -8
  136. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  137. package/dist/collection/components/dropdown/test/dropdown.ct.js +42 -0
  138. package/dist/collection/components/dropdown/test/dropdown.ct.js.map +1 -1
  139. package/dist/collection/components/event-list/event-list.js +26 -25
  140. package/dist/collection/components/event-list/event-list.js.map +1 -1
  141. package/dist/collection/components/event-list/test/event-list.ct.js +61 -0
  142. package/dist/collection/components/event-list/test/event-list.ct.js.map +1 -0
  143. package/dist/collection/components/event-list/test/event-list.spec.js +0 -47
  144. package/dist/collection/components/event-list/test/event-list.spec.js.map +1 -1
  145. package/dist/collection/components/event-list-item/event-list-item.js +5 -4
  146. package/dist/collection/components/event-list-item/event-list-item.js.map +1 -1
  147. package/dist/collection/components/form-field/form-field.css +30 -12
  148. package/dist/collection/components/group/group-context-menu.css +3 -0
  149. package/dist/collection/components/group/group.js +16 -9
  150. package/dist/collection/components/group/group.js.map +1 -1
  151. package/dist/collection/components/group/test/group.ct.js +47 -0
  152. package/dist/collection/components/group/test/group.ct.js.map +1 -0
  153. package/dist/collection/components/group-item/group-item.css +9 -4
  154. package/dist/collection/components/group-item/group-item.js +2 -2
  155. package/dist/collection/components/icon-toggle-button/icon-toggle-button.js +1 -1
  156. package/dist/collection/components/input-group/input-group.js +1 -1
  157. package/dist/collection/components/key-value-list/key-value-list.js +1 -1
  158. package/dist/collection/components/kpi/kpi.js +3 -3
  159. package/dist/collection/components/link-button/link-button.js +3 -3
  160. package/dist/collection/components/map-navigation/map-navigation.js +2 -2
  161. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.js +2 -2
  162. package/dist/collection/components/menu/menu-expand-icon.js +1 -1
  163. package/dist/collection/components/menu/menu.js +11 -11
  164. package/dist/collection/components/menu-about/menu-about.js +2 -2
  165. package/dist/collection/components/menu-about/menu-about.js.map +1 -1
  166. package/dist/collection/components/menu-about-item/menu-about-item.js +1 -1
  167. package/dist/collection/components/menu-about-news/menu-about-news.js +4 -4
  168. package/dist/collection/components/menu-avatar/menu-avatar.js +2 -2
  169. package/dist/collection/components/menu-avatar-item/menu-avatar-item.js +1 -1
  170. package/dist/collection/components/menu-category/menu-category.js +5 -5
  171. package/dist/collection/components/menu-item/menu-item.js +2 -2
  172. package/dist/collection/components/menu-settings-item/menu-settings-item.js +1 -1
  173. package/dist/collection/components/message-bar/message-bar.js +1 -1
  174. package/dist/collection/components/modal-content/modal-content.js +1 -1
  175. package/dist/collection/components/modal-footer/modal-footer.js +1 -1
  176. package/dist/collection/components/modal-header/modal-header.js +1 -1
  177. package/dist/collection/components/modal-loading/modal-loading.js +1 -1
  178. package/dist/collection/components/pagination/pagination.js +2 -2
  179. package/dist/collection/components/pane-layout/pane-layout.js +1 -1
  180. package/dist/collection/components/pill/pill.js +4 -4
  181. package/dist/collection/components/playground/example-modal.js +1 -1
  182. package/dist/collection/components/playground/playground.js +1 -1
  183. package/dist/collection/components/row/row.js +1 -1
  184. package/dist/collection/components/select/select.css +27 -9
  185. package/dist/collection/components/select/select.js +159 -38
  186. package/dist/collection/components/select/select.js.map +1 -1
  187. package/dist/collection/components/select/test/select.ct.js +342 -0
  188. package/dist/collection/components/select/test/select.ct.js.map +1 -1
  189. package/dist/collection/components/select-item/select-item.js +32 -1
  190. package/dist/collection/components/select-item/select-item.js.map +1 -1
  191. package/dist/collection/components/spinner/spinner.js +1 -1
  192. package/dist/collection/components/split-button-item/split-button-item.js +1 -1
  193. package/dist/collection/components/tabs/tabs.js +2 -2
  194. package/dist/collection/components/tile/tile.js +4 -4
  195. package/dist/collection/components/time-picker/time-picker.css +30 -12
  196. package/dist/collection/components/toast/toast.js +2 -2
  197. package/dist/collection/components/toggle/toggle.js +2 -2
  198. package/dist/collection/components/toggle-button/toggle-button.js +2 -2
  199. package/dist/collection/components/tooltip/tooltip.js +2 -2
  200. package/dist/collection/components/tree/tree.js +1 -1
  201. package/dist/collection/components/tree-item/tree-item.js +4 -4
  202. package/dist/collection/components/upload/upload.js +3 -3
  203. package/dist/collection/components/utils/focus.js +60 -0
  204. package/dist/collection/components/utils/focus.js.map +1 -0
  205. package/dist/collection/components/validation-tooltip/validation-tooltip.js +2 -2
  206. package/dist/collection/components/workflow-step/workflow-step.js +3 -3
  207. package/dist/collection/components/workflow-steps/workflow-steps.js +1 -1
  208. package/dist/collection/tests/category-filter/category-filter.e2e.js +30 -0
  209. package/dist/collection/tests/category-filter/category-filter.e2e.js.map +1 -1
  210. package/dist/collection/tests/select/select.e2e.js +21 -0
  211. package/dist/collection/tests/select/select.e2e.js.map +1 -1
  212. package/dist/esm/focus-d4d3abaf.js +63 -0
  213. package/dist/esm/focus-d4d3abaf.js.map +1 -0
  214. package/dist/esm/ix-avatar_2.entry.js +1 -1
  215. package/dist/esm/ix-category-filter.entry.js +33 -10
  216. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  217. package/dist/esm/ix-col_4.entry.js +1 -1
  218. package/dist/esm/ix-dropdown.entry.js +52 -8
  219. package/dist/esm/ix-dropdown.entry.js.map +1 -1
  220. package/dist/esm/ix-event-list-item.entry.js +5 -4
  221. package/dist/esm/ix-event-list-item.entry.js.map +1 -1
  222. package/dist/esm/ix-event-list.entry.js +26 -25
  223. package/dist/esm/ix-event-list.entry.js.map +1 -1
  224. package/dist/esm/ix-filter-chip_2.entry.js +8 -1
  225. package/dist/esm/ix-filter-chip_2.entry.js.map +1 -1
  226. package/dist/esm/ix-form-field.entry.js +1 -1
  227. package/dist/esm/ix-form-field.entry.js.map +1 -1
  228. package/dist/esm/ix-group-context-menu_2.entry.js +4 -4
  229. package/dist/esm/ix-group-context-menu_2.entry.js.map +1 -1
  230. package/dist/esm/ix-group.entry.js +14 -8
  231. package/dist/esm/ix-group.entry.js.map +1 -1
  232. package/dist/esm/ix-icon-button_2.entry.js +1 -1
  233. package/dist/esm/ix-icon-toggle-button.entry.js +1 -1
  234. package/dist/esm/ix-input-group.entry.js +1 -1
  235. package/dist/esm/ix-key-value-list.entry.js +1 -1
  236. package/dist/esm/ix-kpi.entry.js +3 -3
  237. package/dist/esm/ix-link-button.entry.js +3 -3
  238. package/dist/esm/ix-map-navigation-overlay.entry.js +2 -2
  239. package/dist/esm/ix-map-navigation.entry.js +2 -2
  240. package/dist/esm/ix-menu-about-item.entry.js +1 -1
  241. package/dist/esm/ix-menu-about-news.entry.js +4 -4
  242. package/dist/esm/ix-menu-about.entry.js +1 -1
  243. package/dist/esm/ix-menu-about.entry.js.map +1 -1
  244. package/dist/esm/ix-menu-avatar.entry.js +2 -2
  245. package/dist/esm/ix-menu-category.entry.js +5 -5
  246. package/dist/esm/ix-menu-expand-icon.entry.js +1 -1
  247. package/dist/esm/ix-menu-item.entry.js +2 -2
  248. package/dist/esm/ix-menu-settings-item.entry.js +1 -1
  249. package/dist/esm/ix-menu.entry.js +11 -11
  250. package/dist/esm/ix-message-bar.entry.js +1 -1
  251. package/dist/esm/ix-modal-content_2.entry.js +2 -2
  252. package/dist/esm/ix-modal-example.entry.js +1 -1
  253. package/dist/esm/ix-modal-footer.entry.js +1 -1
  254. package/dist/esm/ix-modal-loading.entry.js +1 -1
  255. package/dist/esm/ix-pagination.entry.js +2 -2
  256. package/dist/esm/ix-pane-layout.entry.js +1 -1
  257. package/dist/esm/ix-pill.entry.js +4 -4
  258. package/dist/esm/ix-playground-internal.entry.js +1 -1
  259. package/dist/esm/ix-select.entry.js +159 -39
  260. package/dist/esm/ix-select.entry.js.map +1 -1
  261. package/dist/esm/ix-split-button-item.entry.js +1 -1
  262. package/dist/esm/ix-tab-item_2.entry.js +2 -2
  263. package/dist/esm/ix-tile.entry.js +4 -4
  264. package/dist/esm/ix-time-picker.entry.js +1 -1
  265. package/dist/esm/ix-time-picker.entry.js.map +1 -1
  266. package/dist/esm/ix-toast.entry.js +2 -2
  267. package/dist/esm/ix-toggle-button.entry.js +2 -2
  268. package/dist/esm/ix-toggle.entry.js +2 -2
  269. package/dist/esm/ix-tooltip.entry.js +2 -2
  270. package/dist/esm/ix-tree-item.entry.js +4 -4
  271. package/dist/esm/ix-tree.entry.js +1 -1
  272. package/dist/esm/ix-upload.entry.js +3 -3
  273. package/dist/esm/ix-validation-tooltip.entry.js +2 -2
  274. package/dist/esm/ix-workflow-step.entry.js +3 -3
  275. package/dist/esm/ix-workflow-steps.entry.js +1 -1
  276. package/dist/esm/loader.js +1 -1
  277. package/dist/esm/siemens-ix.js +1 -1
  278. package/dist/playwright-ct.config.js +1 -1
  279. package/dist/playwright-ct.config.js.map +1 -1
  280. package/dist/siemens-ix/{p-d2ee87ae.entry.js → p-0a1bfcfc.entry.js} +2 -2
  281. package/dist/siemens-ix/{p-ca838b5c.entry.js → p-0b7741b7.entry.js} +2 -2
  282. package/dist/siemens-ix/{p-9c03b231.entry.js → p-114bb49b.entry.js} +2 -2
  283. package/dist/siemens-ix/{p-c2f6aaae.entry.js → p-262026ab.entry.js} +2 -2
  284. package/dist/siemens-ix/{p-d48a746d.entry.js → p-29b0bef3.entry.js} +2 -2
  285. package/dist/siemens-ix/{p-f2856faf.entry.js → p-30e8a26a.entry.js} +2 -2
  286. package/dist/siemens-ix/{p-1450ba99.entry.js → p-3b8e4fe5.entry.js} +2 -2
  287. package/dist/siemens-ix/{p-96615442.entry.js → p-418959d3.entry.js} +2 -2
  288. package/dist/siemens-ix/{p-96615442.entry.js.map → p-418959d3.entry.js.map} +1 -1
  289. package/dist/siemens-ix/p-4290098e.entry.js +2 -0
  290. package/dist/siemens-ix/{p-cb1c0d63.entry.js.map → p-4290098e.entry.js.map} +1 -1
  291. package/dist/siemens-ix/p-43a58a77.entry.js +2 -0
  292. package/dist/siemens-ix/{p-7289b0be.entry.js.map → p-43a58a77.entry.js.map} +1 -1
  293. package/dist/siemens-ix/p-4fd11865.entry.js +2 -0
  294. package/dist/siemens-ix/p-56bbdae4.entry.js +2 -0
  295. package/dist/siemens-ix/{p-0d268489.entry.js → p-5f08da2c.entry.js} +2 -2
  296. package/dist/siemens-ix/{p-26789c86.entry.js → p-601cfc6a.entry.js} +2 -2
  297. package/dist/siemens-ix/p-64c895ac.entry.js +2 -0
  298. package/dist/siemens-ix/p-64c895ac.entry.js.map +1 -0
  299. package/dist/siemens-ix/p-678d821f.entry.js +2 -0
  300. package/dist/siemens-ix/{p-b1ec7f32.entry.js → p-6ea6396e.entry.js} +2 -2
  301. package/dist/siemens-ix/{p-7c1fd9a0.entry.js → p-6eb4eefc.entry.js} +2 -2
  302. package/dist/siemens-ix/{p-af46164c.entry.js → p-784fe260.entry.js} +2 -2
  303. package/dist/siemens-ix/{p-9fcf9dcd.entry.js → p-8d161202.entry.js} +2 -2
  304. package/dist/siemens-ix/{p-d77fa665.entry.js → p-90c55341.entry.js} +2 -2
  305. package/dist/siemens-ix/p-90c55341.entry.js.map +1 -0
  306. package/dist/siemens-ix/p-96d2d21f.entry.js +2 -0
  307. package/dist/siemens-ix/p-96d2d21f.entry.js.map +1 -0
  308. package/dist/siemens-ix/{p-c5762d6c.entry.js → p-9dabe2f7.entry.js} +2 -2
  309. package/dist/siemens-ix/p-a039faa9.entry.js +2 -0
  310. package/dist/siemens-ix/p-a039faa9.entry.js.map +1 -0
  311. package/dist/siemens-ix/p-a35d02ea.entry.js +2 -0
  312. package/dist/siemens-ix/{p-31cc5367.entry.js → p-a3ad98bc.entry.js} +2 -2
  313. package/dist/siemens-ix/p-a6fbea5b.entry.js +2 -0
  314. package/dist/siemens-ix/p-a6fbea5b.entry.js.map +1 -0
  315. package/dist/siemens-ix/p-a9d1ab94.entry.js +2 -0
  316. package/dist/siemens-ix/{p-080653aa.entry.js.map → p-a9d1ab94.entry.js.map} +1 -1
  317. package/dist/siemens-ix/p-aa58d9d7.entry.js +2 -0
  318. package/dist/siemens-ix/p-aa58d9d7.entry.js.map +1 -0
  319. package/dist/siemens-ix/p-abb29515.entry.js +2 -0
  320. package/dist/siemens-ix/p-abb29515.entry.js.map +1 -0
  321. package/dist/siemens-ix/{p-f6635bfc.entry.js → p-ac1d46d6.entry.js} +2 -2
  322. package/dist/siemens-ix/p-add5b76c.entry.js +2 -0
  323. package/dist/siemens-ix/{p-33e903e1.entry.js.map → p-add5b76c.entry.js.map} +1 -1
  324. package/dist/siemens-ix/{p-d76ee9ff.entry.js → p-af74fc62.entry.js} +2 -2
  325. package/dist/siemens-ix/{p-32fa185a.entry.js → p-b02fd2c5.entry.js} +2 -2
  326. package/dist/siemens-ix/p-b32c2183.entry.js +2 -0
  327. package/dist/siemens-ix/{p-d0cf522c.entry.js.map → p-b32c2183.entry.js.map} +1 -1
  328. package/dist/siemens-ix/{p-6f056fc6.entry.js → p-bc5d33ce.entry.js} +2 -2
  329. package/dist/siemens-ix/{p-f17e4cce.entry.js → p-bd310180.entry.js} +2 -2
  330. package/dist/siemens-ix/p-c09553f3.js +2 -0
  331. package/dist/siemens-ix/p-c09553f3.js.map +1 -0
  332. package/dist/siemens-ix/{p-c89a070a.entry.js → p-c29aff68.entry.js} +2 -2
  333. package/dist/siemens-ix/{p-30f449bc.entry.js → p-ca65a043.entry.js} +2 -2
  334. package/dist/siemens-ix/{p-4bbae41b.entry.js → p-cbbe9dee.entry.js} +2 -2
  335. package/dist/siemens-ix/p-ccf1bd22.entry.js +2 -0
  336. package/dist/siemens-ix/{p-47017ce7.entry.js → p-d08cbeaf.entry.js} +2 -2
  337. package/dist/siemens-ix/p-d600ea55.entry.js +2 -0
  338. package/dist/siemens-ix/p-d600ea55.entry.js.map +1 -0
  339. package/dist/siemens-ix/{p-1255e76b.entry.js → p-d6a094cf.entry.js} +2 -2
  340. package/dist/siemens-ix/{p-3e4e3b23.entry.js → p-dbf234e5.entry.js} +2 -2
  341. package/dist/siemens-ix/{p-177f9a5c.entry.js → p-e2464e13.entry.js} +2 -2
  342. package/dist/siemens-ix/{p-d9d5389b.entry.js → p-e678bfc5.entry.js} +2 -2
  343. package/dist/siemens-ix/{p-c8e0563a.entry.js → p-ec741c06.entry.js} +2 -2
  344. package/dist/siemens-ix/{p-ca658a19.entry.js → p-ed2ec72f.entry.js} +2 -2
  345. package/dist/siemens-ix/{p-d9370972.entry.js → p-f2a81e70.entry.js} +2 -2
  346. package/dist/siemens-ix/{p-1ad7fd83.entry.js → p-fe273de4.entry.js} +2 -2
  347. package/dist/siemens-ix/siemens-ix-core.css +1 -1
  348. package/dist/siemens-ix/siemens-ix.css +30 -12
  349. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  350. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  351. package/dist/types/components/category-filter/category-filter.d.ts +10 -0
  352. package/dist/types/components/dropdown/dropdown.d.ts +7 -1
  353. package/dist/types/components/event-list/test/event-list.ct.d.ts +1 -0
  354. package/dist/types/components/group/group.d.ts +1 -0
  355. package/dist/types/components/group/test/group.ct.d.ts +1 -0
  356. package/dist/types/components/menu-about/menu-about.d.ts +1 -1
  357. package/dist/types/components/select/select.d.ts +15 -3
  358. package/dist/types/components/select-item/select-item.d.ts +5 -1
  359. package/dist/types/components/utils/focus.d.ts +10 -0
  360. package/dist/types/components.d.ts +15 -2
  361. package/package.json +1 -1
  362. package/scss/components/form/_input.scss +11 -8
  363. package/dist/siemens-ix/p-080653aa.entry.js +0 -2
  364. package/dist/siemens-ix/p-08bedeaa.entry.js +0 -2
  365. package/dist/siemens-ix/p-2a9673f3.entry.js +0 -2
  366. package/dist/siemens-ix/p-2a9673f3.entry.js.map +0 -1
  367. package/dist/siemens-ix/p-33e903e1.entry.js +0 -2
  368. package/dist/siemens-ix/p-37e4df76.entry.js +0 -2
  369. package/dist/siemens-ix/p-37e4df76.entry.js.map +0 -1
  370. package/dist/siemens-ix/p-7289b0be.entry.js +0 -2
  371. package/dist/siemens-ix/p-7b5ed355.entry.js +0 -2
  372. package/dist/siemens-ix/p-87fe9d5f.entry.js +0 -2
  373. package/dist/siemens-ix/p-87fe9d5f.entry.js.map +0 -1
  374. package/dist/siemens-ix/p-8a06a632.entry.js +0 -2
  375. package/dist/siemens-ix/p-96f2c71a.entry.js +0 -2
  376. package/dist/siemens-ix/p-96f2c71a.entry.js.map +0 -1
  377. package/dist/siemens-ix/p-9fd3ae7f.entry.js +0 -2
  378. package/dist/siemens-ix/p-a93df5f2.entry.js +0 -2
  379. package/dist/siemens-ix/p-a93df5f2.entry.js.map +0 -1
  380. package/dist/siemens-ix/p-ab446f83.entry.js +0 -2
  381. package/dist/siemens-ix/p-ab446f83.entry.js.map +0 -1
  382. package/dist/siemens-ix/p-b78fd38b.entry.js +0 -2
  383. package/dist/siemens-ix/p-b78fd38b.entry.js.map +0 -1
  384. package/dist/siemens-ix/p-c49701a0.entry.js +0 -2
  385. package/dist/siemens-ix/p-cb1c0d63.entry.js +0 -2
  386. package/dist/siemens-ix/p-d0cf522c.entry.js +0 -2
  387. package/dist/siemens-ix/p-d77fa665.entry.js.map +0 -1
  388. /package/dist/siemens-ix/{p-d2ee87ae.entry.js.map → p-0a1bfcfc.entry.js.map} +0 -0
  389. /package/dist/siemens-ix/{p-ca838b5c.entry.js.map → p-0b7741b7.entry.js.map} +0 -0
  390. /package/dist/siemens-ix/{p-9c03b231.entry.js.map → p-114bb49b.entry.js.map} +0 -0
  391. /package/dist/siemens-ix/{p-c2f6aaae.entry.js.map → p-262026ab.entry.js.map} +0 -0
  392. /package/dist/siemens-ix/{p-d48a746d.entry.js.map → p-29b0bef3.entry.js.map} +0 -0
  393. /package/dist/siemens-ix/{p-f2856faf.entry.js.map → p-30e8a26a.entry.js.map} +0 -0
  394. /package/dist/siemens-ix/{p-1450ba99.entry.js.map → p-3b8e4fe5.entry.js.map} +0 -0
  395. /package/dist/siemens-ix/{p-c49701a0.entry.js.map → p-4fd11865.entry.js.map} +0 -0
  396. /package/dist/siemens-ix/{p-9fd3ae7f.entry.js.map → p-56bbdae4.entry.js.map} +0 -0
  397. /package/dist/siemens-ix/{p-0d268489.entry.js.map → p-5f08da2c.entry.js.map} +0 -0
  398. /package/dist/siemens-ix/{p-26789c86.entry.js.map → p-601cfc6a.entry.js.map} +0 -0
  399. /package/dist/siemens-ix/{p-7b5ed355.entry.js.map → p-678d821f.entry.js.map} +0 -0
  400. /package/dist/siemens-ix/{p-b1ec7f32.entry.js.map → p-6ea6396e.entry.js.map} +0 -0
  401. /package/dist/siemens-ix/{p-7c1fd9a0.entry.js.map → p-6eb4eefc.entry.js.map} +0 -0
  402. /package/dist/siemens-ix/{p-af46164c.entry.js.map → p-784fe260.entry.js.map} +0 -0
  403. /package/dist/siemens-ix/{p-9fcf9dcd.entry.js.map → p-8d161202.entry.js.map} +0 -0
  404. /package/dist/siemens-ix/{p-c5762d6c.entry.js.map → p-9dabe2f7.entry.js.map} +0 -0
  405. /package/dist/siemens-ix/{p-08bedeaa.entry.js.map → p-a35d02ea.entry.js.map} +0 -0
  406. /package/dist/siemens-ix/{p-31cc5367.entry.js.map → p-a3ad98bc.entry.js.map} +0 -0
  407. /package/dist/siemens-ix/{p-f6635bfc.entry.js.map → p-ac1d46d6.entry.js.map} +0 -0
  408. /package/dist/siemens-ix/{p-d76ee9ff.entry.js.map → p-af74fc62.entry.js.map} +0 -0
  409. /package/dist/siemens-ix/{p-32fa185a.entry.js.map → p-b02fd2c5.entry.js.map} +0 -0
  410. /package/dist/siemens-ix/{p-6f056fc6.entry.js.map → p-bc5d33ce.entry.js.map} +0 -0
  411. /package/dist/siemens-ix/{p-f17e4cce.entry.js.map → p-bd310180.entry.js.map} +0 -0
  412. /package/dist/siemens-ix/{p-c89a070a.entry.js.map → p-c29aff68.entry.js.map} +0 -0
  413. /package/dist/siemens-ix/{p-30f449bc.entry.js.map → p-ca65a043.entry.js.map} +0 -0
  414. /package/dist/siemens-ix/{p-4bbae41b.entry.js.map → p-cbbe9dee.entry.js.map} +0 -0
  415. /package/dist/siemens-ix/{p-8a06a632.entry.js.map → p-ccf1bd22.entry.js.map} +0 -0
  416. /package/dist/siemens-ix/{p-47017ce7.entry.js.map → p-d08cbeaf.entry.js.map} +0 -0
  417. /package/dist/siemens-ix/{p-1255e76b.entry.js.map → p-d6a094cf.entry.js.map} +0 -0
  418. /package/dist/siemens-ix/{p-3e4e3b23.entry.js.map → p-dbf234e5.entry.js.map} +0 -0
  419. /package/dist/siemens-ix/{p-177f9a5c.entry.js.map → p-e2464e13.entry.js.map} +0 -0
  420. /package/dist/siemens-ix/{p-d9d5389b.entry.js.map → p-e678bfc5.entry.js.map} +0 -0
  421. /package/dist/siemens-ix/{p-c8e0563a.entry.js.map → p-ec741c06.entry.js.map} +0 -0
  422. /package/dist/siemens-ix/{p-ca658a19.entry.js.map → p-ed2ec72f.entry.js.map} +0 -0
  423. /package/dist/siemens-ix/{p-d9370972.entry.js.map → p-f2a81e70.entry.js.map} +0 -0
  424. /package/dist/siemens-ix/{p-1ad7fd83.entry.js.map → p-fe273de4.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/select.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { IxSelectItemLabelChangeEvent } from '../select-item/events';\nimport { OnListener } from '../utils/listener';\n\n@Component({\n tag: 'ix-select',\n styleUrl: 'select.scss',\n shadow: true,\n})\nexport class Select {\n @Element() hostElement!: HTMLIxSelectElement;\n\n /**\n * Indices of selected items.\n * This corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list.\n * @deprecated since 2.0.0. Use the `value` property instead.\n */\n @Prop({ mutable: true }) selectedIndices?: string | string[];\n\n /**\n * Current selected value.\n * This corresponds to the value property of ix-select-items\n * @since 2.0.0\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n /**\n * Show clear button\n */\n @Prop() allowClear = false;\n\n /**\n * Selection mode\n */\n @Prop() mode: 'single' | 'multiple' = 'single';\n\n /**\n * Select is extendable\n */\n @Prop() editable = false;\n\n /**\n * If true the select will be in disabled state\n */\n @Prop() disabled = false;\n\n /**\n * If true the select will be in readonly mode\n */\n @Prop() readonly = false;\n\n /**\n * Input field placeholder\n */\n @Prop() i18nPlaceholder = 'Select an option';\n\n /**\n * Input field placeholder for editable select\n */\n @Prop() i18nPlaceholderEditable = 'Type of select option';\n\n /**\n * Select list header\n */\n @Prop() i18nSelectListHeader = 'Please select an option';\n\n /**\n * Hint inside of dropdown if no items where found with current filter text\n *\n * @since 1.5.0\n */\n @Prop() i18nNoMatches = 'No matches';\n\n /**\n * Hide list header\n *\n * @since 1.5.0\n */\n @Prop() hideListHeader = false;\n\n /**\n * Value changed\n * @since 2.0.0\n */\n @Event() valueChange: EventEmitter<string | string[]>;\n\n /**\n * Item selection changed\n * @deprecated since 2.0.0. Use `valueChange` instead.\n */\n @Event() itemSelectionChange: EventEmitter<string[]>;\n\n /**\n * Event dispatched whenever the text input changes.\n *\n * @since 2.0.0\n */\n @Event() inputChange: EventEmitter<string>;\n\n /**\n * Item added to selection\n */\n @Event() addItem: EventEmitter<string>;\n\n @State() dropdownShow = false;\n @State() selectedLabels: string[];\n @State() dropdownWrapperRef!: HTMLElement;\n @State() dropdownAnchor!: HTMLElement;\n @State() isDropdownEmpty = false;\n @State() hasFocus = false;\n @State() navigationItem: HTMLIxSelectItemElement;\n @State() inputFilterText: string;\n @State() inputValue: string;\n\n private inputRef!: HTMLInputElement;\n private dropdownRef!: HTMLIxDropdownElement;\n private addItemRef!: HTMLDivElement;\n\n private labelMutationObserver: MutationObserver;\n\n get items() {\n return [\n ...Array.from(this.hostElement.querySelectorAll('ix-select-item')),\n ...Array.from(\n this.hostElement.shadowRoot.querySelectorAll('ix-select-item')\n ),\n ];\n }\n\n get selectedItems() {\n return this.items.filter((item) => item.selected);\n }\n\n get addItemButton() {\n return this.hostElement.shadowRoot.querySelector('.add-item');\n }\n\n get isSingleMode() {\n return this.mode === 'single';\n }\n\n get isMultipleMode() {\n return this.mode === 'multiple';\n }\n\n get isEveryDropdownItemHidden() {\n return this.items.every((item) => item.classList.contains('d-none'));\n }\n\n @Watch('selectedIndices')\n watchSelectedIndices(value: string | string[]) {\n this.value = value;\n this.updateSelection();\n }\n\n @Watch('value')\n watchValue(value: string | string[]) {\n this.selectedIndices = value;\n this.updateSelection();\n }\n\n @Listen('itemClick')\n onItemClicked(event: CustomEvent<string>) {\n const newId = event.detail;\n this.itemClick(newId);\n }\n\n private itemClick(newId: string) {\n this.value = this.toggleValue(newId);\n this.updateSelection();\n this.emitValueChange();\n }\n\n private emitAddItem(value: string) {\n if (value.trim() === '') {\n return;\n }\n\n const newItem = document.createElement('ix-select-item');\n newItem.value = value;\n newItem.label = value;\n\n this.addItemRef.appendChild(newItem);\n\n this.clearInput();\n this.itemClick(value);\n this.addItem.emit(value);\n }\n\n private toggleValue(itemValue: string) {\n if (!this.isMultipleMode) {\n return itemValue;\n }\n\n if (!this.value) {\n return [itemValue];\n }\n\n let value = this.value;\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n if (value.includes(itemValue)) {\n return value.filter((value) => value !== itemValue);\n } else {\n return [...value, itemValue];\n }\n }\n\n private updateSelection() {\n let ids = [];\n\n if (this.value) {\n ids = Array.isArray(this.value) ? [...this.value] : [this.value];\n }\n\n this.items.forEach((item) => {\n item.selected = ids.some(\n // Check can be removed if value is type of string in future releases\n (i) =>\n i ===\n (item.value !== undefined && item.value !== null\n ? item.value.toString()\n : '')\n );\n });\n\n this.selectedLabels = this.selectedItems.map((item) => item.label);\n\n if (this.isSingleMode) {\n this.inputValue = this.selectedLabels?.length\n ? this.selectedLabels[0]\n : null;\n return;\n }\n\n this.inputValue = null;\n }\n\n private emitValueChange() {\n this.valueChange.emit(this.value);\n\n if (!this.value) {\n this.itemSelectionChange.emit(null);\n } else {\n this.itemSelectionChange.emit(\n Array.isArray(this.value) ? this.value : [this.value]\n );\n }\n }\n\n componentDidLoad() {\n this.inputRef.addEventListener('input', () => {\n this.dropdownShow = true;\n this.inputChange.emit(this.inputRef.value);\n });\n }\n\n componentWillLoad() {\n if (this.selectedIndices && !this.value) {\n this.value = this.selectedIndices;\n }\n\n this.updateSelection();\n }\n\n @Listen('ix-select-item:labelChange')\n onLabelChange(event: IxSelectItemLabelChangeEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.updateSelection();\n }\n\n disconnectedCallback() {\n if (this.labelMutationObserver) {\n this.labelMutationObserver.disconnect();\n }\n }\n\n private itemExists(item: string) {\n return this.items.find((i) => i.label === item);\n }\n\n private dropdownVisibilityChanged(event: CustomEvent<boolean>) {\n this.dropdownShow = event.detail;\n this.hasFocus = event.detail;\n\n if (event.detail) {\n this.inputRef.focus();\n this.inputRef.select();\n\n this.removeHiddenFromItems();\n this.isDropdownEmpty = this.isEveryDropdownItemHidden;\n } else {\n this.navigationItem = undefined;\n }\n }\n\n @OnListener<Select>('keydown', (self) => self.dropdownShow)\n async onKeyDown(event: KeyboardEvent) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n this.onArrowNavigation(event, event.code);\n }\n\n if (!this.dropdownShow) {\n return;\n }\n\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n await this.onEnterNavigation();\n }\n\n if (event.code === 'Escape') {\n this.dropdownShow = false;\n }\n }\n\n private async onEnterNavigation() {\n if (this.isMultipleMode) {\n return;\n }\n\n if (this.editable && !this.itemExists(this.inputFilterText)) {\n this.emitAddItem(this.inputFilterText);\n this.navigationItem = this.items[this.items.length - 1];\n }\n\n this.navigationItem?.onItemClick();\n await this.dropdownRef?.updatePosition();\n\n if (this.isSingleMode && !this.editable) {\n this.dropdownShow = false;\n }\n }\n\n private onArrowNavigation(\n event: KeyboardEvent,\n key: 'ArrowDown' | 'ArrowUp'\n ) {\n event.preventDefault();\n event.stopPropagation();\n\n this.dropdownShow = true;\n\n const items = this.items.filter((i) => !i.classList.contains('d-none'));\n if (this.navigationItem === undefined) {\n this.applyFocusTo(items[0]);\n return;\n }\n\n let indexOfNavigationItem = items.findIndex(\n (item) => item === this.navigationItem\n );\n\n if (key === 'ArrowDown') {\n indexOfNavigationItem++;\n } else {\n indexOfNavigationItem--;\n }\n\n const newFocusItem = items[indexOfNavigationItem];\n this.applyFocusTo(newFocusItem);\n }\n\n private applyFocusTo(element: HTMLIxSelectItemElement) {\n if (!element) {\n return;\n }\n this.navigationItem = element;\n\n setTimeout(() => {\n element.shadowRoot\n .querySelector('ix-dropdown-item')\n .shadowRoot.querySelector('button')\n .focus();\n });\n }\n\n private filterItemsWithTypeahead() {\n this.inputFilterText = this.inputRef.value;\n\n if (this.isSingleMode && this.inputFilterText === this.selectedLabels[0]) {\n return;\n }\n\n if (this.inputFilterText) {\n this.items.forEach((item) => {\n item.classList.remove('d-none');\n if (\n !item.label.toLowerCase().includes(this.inputFilterText.toLowerCase())\n ) {\n item.classList.add('d-none');\n }\n });\n } else {\n this.removeHiddenFromItems();\n }\n\n this.isDropdownEmpty = this.isEveryDropdownItemHidden;\n }\n\n private removeHiddenFromItems() {\n this.items.forEach((item) => {\n item.classList.remove('d-none');\n });\n }\n\n private clearInput() {\n this.inputRef.value = '';\n this.inputFilterText = '';\n }\n\n private clear() {\n this.clearInput();\n this.selectedLabels = [];\n this.value = [];\n this.valueChange.emit(null);\n this.dropdownShow = false;\n }\n\n private onInputBlur(e) {\n if (this.editable) {\n return;\n }\n\n if (this.isSingleMode) {\n return;\n }\n\n if (!this.dropdownShow && this.mode !== 'multiple') {\n e.target['value'] = this.selectedLabels;\n }\n }\n\n private placeholderValue() {\n if (this.editable) {\n return this.i18nPlaceholderEditable;\n }\n\n if (this.readonly) {\n return '';\n }\n\n return this.i18nPlaceholder;\n }\n\n private isAddItemVisible() {\n return (\n !this.itemExists(this.inputFilterText) &&\n this.editable &&\n this.inputFilterText\n );\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n select: true,\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n ref={(ref) => {\n this.dropdownAnchor = ref;\n if (!this.editable) this.dropdownWrapperRef = ref;\n }}\n >\n <div class=\"input-container\">\n <div class=\"chips\">\n {this.isMultipleMode\n ? this.selectedItems?.map((item) => (\n <ix-filter-chip\n disabled={this.disabled || this.readonly}\n key={item.value}\n onCloseClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.itemClick(item.value);\n }}\n >\n {item.label}\n </ix-filter-chip>\n ))\n : ''}\n <div class=\"trigger\">\n <input\n autocomplete=\"off\"\n data-testid=\"input\"\n disabled={this.disabled}\n readOnly={this.readonly}\n type=\"text\"\n class={{\n 'allow-clear':\n this.allowClear && !!this.selectedLabels?.length,\n }}\n placeholder={this.placeholderValue()}\n value={this.inputValue}\n ref={(ref) => (this.inputRef = ref)}\n onBlur={(e) => this.onInputBlur(e)}\n onFocus={() => {\n this.navigationItem = undefined;\n }}\n onInput={() => this.filterItemsWithTypeahead()}\n onKeyDown={(e) => this.onKeyDown(e)}\n />\n {this.allowClear &&\n (this.selectedLabels?.length || this.inputFilterText) ? (\n <ix-icon-button\n class=\"clear\"\n icon={'clear'}\n ghost\n oval\n size=\"16\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.clear();\n }}\n />\n ) : null}\n {this.disabled || this.readonly ? null : (\n <ix-icon-button\n data-select-dropdown\n class={{ 'dropdown-visible': this.dropdownShow }}\n icon=\"chevron-down-small\"\n ghost\n ref={(ref) => {\n if (this.editable) this.dropdownWrapperRef = ref;\n }}\n ></ix-icon-button>\n )}\n </div>\n </div>\n </div>\n </div>\n <ix-dropdown\n ref={(ref) => (this.dropdownRef = ref)}\n show={this.dropdownShow}\n closeBehavior={this.isMultipleMode ? 'outside' : 'both'}\n class={{\n 'd-none': this.disabled || this.readonly,\n }}\n anchor={this.dropdownAnchor}\n trigger={this.dropdownWrapperRef}\n onShowChanged={(e) => this.dropdownVisibilityChanged(e)}\n placement=\"bottom-start\"\n overwriteDropdownStyle={async () => {\n return {\n minWidth: `${this.hostElement.clientWidth}px`,\n };\n }}\n >\n <div\n class={{\n 'select-list-header': true,\n hidden: this.hideListHeader || this.isDropdownEmpty,\n }}\n title={this.i18nSelectListHeader}\n >\n {this.i18nSelectListHeader}\n </div>\n <slot></slot>\n <div ref={(ref) => (this.addItemRef = ref)} class=\"d-contents\"></div>\n {this.isAddItemVisible() ? (\n <ix-dropdown-item\n data-testid=\"add-item\"\n icon={'plus'}\n class={{\n 'add-item': true,\n }}\n label={this.inputFilterText}\n onItemClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.emitAddItem(this.inputFilterText);\n }}\n ></ix-dropdown-item>\n ) : null}\n {this.isDropdownEmpty && !this.editable ? (\n <div class=\"select-list-header\">{this.i18nNoMatches}</div>\n ) : (\n ''\n )}\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/select.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { IxSelectItemLabelChangeEvent } from '../select-item/events';\nimport { ArrowFocusController } from '../utils/focus';\nimport { OnListener } from '../utils/listener';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { DropdownItemWrapper } from '../dropdown/dropdown-controller';\n\n@Component({\n tag: 'ix-select',\n styleUrl: 'select.scss',\n shadow: true,\n})\nexport class Select {\n @Element() hostElement!: HTMLIxSelectElement;\n\n /**\n * Indices of selected items.\n * This corresponds to the value property of ix-select-items and therefor not necessarily the indices of the items in the list.\n * @deprecated since 2.0.0. Use the `value` property instead.\n */\n @Prop({ mutable: true }) selectedIndices?: string | string[];\n\n /**\n * Current selected value.\n * This corresponds to the value property of ix-select-items\n * @since 2.0.0\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n /**\n * Show clear button\n */\n @Prop() allowClear = false;\n\n /**\n * Selection mode\n */\n @Prop() mode: 'single' | 'multiple' = 'single';\n\n /**\n * Select is extendable\n */\n @Prop() editable = false;\n\n /**\n * If true the select will be in disabled state\n */\n @Prop() disabled = false;\n\n /**\n * If true the select will be in readonly mode\n */\n @Prop() readonly = false;\n\n /**\n * Input field placeholder\n */\n @Prop() i18nPlaceholder = 'Select an option';\n\n /**\n * Input field placeholder for editable select\n */\n @Prop() i18nPlaceholderEditable = 'Type of select option';\n\n /**\n * Select list header\n */\n @Prop() i18nSelectListHeader = 'Please select an option';\n\n /**\n * Hint inside of dropdown if no items where found with current filter text\n *\n * @since 1.5.0\n */\n @Prop() i18nNoMatches = 'No matches';\n\n /**\n * Hide list header\n *\n * @since 1.5.0\n */\n @Prop() hideListHeader = false;\n\n /**\n * Value changed\n * @since 2.0.0\n */\n @Event() valueChange: EventEmitter<string | string[]>;\n\n /**\n * Item selection changed\n * @deprecated since 2.0.0. Use `valueChange` instead.\n */\n @Event() itemSelectionChange: EventEmitter<string[]>;\n\n /**\n * Event dispatched whenever the text input changes.\n *\n * @since 2.0.0\n */\n @Event() inputChange: EventEmitter<string>;\n\n /**\n * Item added to selection\n */\n @Event() addItem: EventEmitter<string>;\n\n @State() dropdownShow = false;\n @State() selectedLabels: string[];\n @State() dropdownWrapperRef!: HTMLElement;\n @State() dropdownAnchor!: HTMLElement;\n @State() isDropdownEmpty = false;\n @State() navigationItem: DropdownItemWrapper;\n @State() inputFilterText: string;\n @State() inputValue: string;\n\n private inputRef!: HTMLInputElement;\n private dropdownRef!: HTMLIxDropdownElement;\n private customItemsContainerRef!: HTMLDivElement;\n private addItemRef!: HTMLIxDropdownItemElement;\n\n private itemMutationObserver: MutationObserver;\n\n private arrowFocusController: ArrowFocusController;\n private focusControllerCallbackBind = this.focusDropdownItem.bind(this);\n\n private itemObserver = createMutationObserver(() => {\n this.arrowFocusController.items = this.visibleNonShadowItems;\n });\n\n get nonShadowItems() {\n return Array.from(this.hostElement.querySelectorAll('ix-select-item'));\n }\n\n get visibleNonShadowItems() {\n return this.nonShadowItems.filter(\n (item) => !item.classList.contains('d-none')\n );\n }\n\n get shadowItems() {\n return Array.from(\n this.hostElement.shadowRoot.querySelectorAll('ix-select-item')\n );\n }\n\n get visibleShadowItems() {\n return this.shadowItems.filter(\n (item) => !item.classList.contains('d-none')\n );\n }\n\n get items() {\n return [...this.nonShadowItems, ...this.shadowItems];\n }\n\n get visibleItems() {\n return this.items.filter((item) => !item.classList.contains('d-none'));\n }\n\n get selectedItems() {\n return this.items.filter((item) => item.selected);\n }\n\n get addItemButton() {\n return this.hostElement.shadowRoot.querySelector('.add-item');\n }\n\n get isSingleMode() {\n return this.mode === 'single';\n }\n\n get isMultipleMode() {\n return this.mode === 'multiple';\n }\n\n get isEveryDropdownItemHidden() {\n return this.items.every((item) => item.classList.contains('d-none'));\n }\n\n @Watch('selectedIndices')\n watchSelectedIndices(value: string | string[]) {\n this.value = value;\n this.updateSelection();\n }\n\n @Watch('value')\n watchValue(value: string | string[]) {\n this.selectedIndices = value;\n this.updateSelection();\n }\n\n @Watch('dropdownShow')\n watchDropdownShow(show: boolean) {\n if (show) {\n this.arrowFocusController = new ArrowFocusController(\n this.visibleNonShadowItems,\n this.dropdownRef,\n this.focusControllerCallbackBind\n );\n\n this.arrowFocusController.wrap = !this.editable;\n\n this.itemObserver.observe(this.dropdownRef, {\n childList: true,\n subtree: true,\n });\n } else {\n this.arrowFocusController.disconnect();\n this.arrowFocusController = undefined;\n this.itemObserver.disconnect();\n }\n }\n\n @Listen('itemClick')\n onItemClicked(event: CustomEvent<string>) {\n const newId = event.detail;\n this.itemClick(newId);\n }\n\n private focusDropdownItem(index: number) {\n this.navigationItem = undefined;\n\n if (index < this.visibleNonShadowItems.length) {\n const nestedDropdownItem =\n this.visibleNonShadowItems[index]?.shadowRoot.querySelector(\n 'ix-dropdown-item'\n );\n\n requestAnimationFrame(() => {\n nestedDropdownItem.shadowRoot.querySelector('button').focus();\n });\n }\n }\n\n private itemClick(newId: string) {\n this.value = this.toggleValue(newId);\n this.updateSelection();\n this.emitValueChange();\n }\n\n private emitAddItem(value: string) {\n if (value === undefined || value.trim() === '') {\n return;\n }\n\n const newItem = document.createElement('ix-select-item');\n newItem.value = value;\n newItem.label = value;\n\n this.customItemsContainerRef.appendChild(newItem);\n\n this.clearInput();\n this.itemClick(value);\n this.addItem.emit(value);\n }\n\n private toggleValue(itemValue: string) {\n if (!this.isMultipleMode) {\n return itemValue;\n }\n\n if (!this.value) {\n return [itemValue];\n }\n\n let value = this.value;\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n if (value.includes(itemValue)) {\n return value.filter((value) => value !== itemValue);\n } else {\n return [...value, itemValue];\n }\n }\n\n private updateSelection() {\n let ids = [];\n\n if (this.value) {\n ids = Array.isArray(this.value) ? [...this.value] : [this.value];\n }\n\n this.items.forEach((item) => {\n item.selected = ids.some(\n // Check can be removed if value is type of string in future releases\n (i) =>\n i ===\n (item.value !== undefined && item.value !== null\n ? item.value.toString()\n : '')\n );\n });\n\n this.selectedLabels = this.selectedItems.map((item) => item.label);\n\n if (this.isSingleMode && this.selectedLabels?.length) {\n this.inputValue = this.selectedLabels[0];\n this.inputRef && (this.inputRef.value = this.inputValue);\n return;\n }\n\n this.inputValue = null;\n }\n\n private emitValueChange() {\n this.valueChange.emit(this.value);\n\n if (!this.value) {\n this.itemSelectionChange.emit(null);\n } else {\n this.itemSelectionChange.emit(\n Array.isArray(this.value) ? this.value : [this.value]\n );\n }\n }\n\n componentDidLoad() {\n this.inputRef.addEventListener('input', () => {\n this.dropdownShow = true;\n this.inputChange.emit(this.inputRef.value);\n });\n }\n\n componentWillLoad() {\n if (this.selectedIndices && !this.value) {\n this.value = this.selectedIndices;\n }\n\n this.updateSelection();\n }\n\n @Listen('ix-select-item:labelChange')\n onLabelChange(event: IxSelectItemLabelChangeEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.updateSelection();\n }\n\n disconnectedCallback() {\n if (this.itemMutationObserver) {\n this.itemMutationObserver.disconnect();\n }\n }\n\n private itemExists(item: string) {\n return this.items.find((i) => i.label === item);\n }\n\n private dropdownVisibilityChanged(event: CustomEvent<boolean>) {\n this.dropdownShow = event.detail;\n\n if (event.detail) {\n this.inputRef.focus();\n this.inputRef.select();\n\n this.removeHiddenFromItems();\n this.isDropdownEmpty = this.isEveryDropdownItemHidden;\n } else {\n this.navigationItem = undefined;\n this.updateSelection();\n this.inputFilterText = '';\n }\n }\n\n @OnListener<Select>('keydown', (self) => self.dropdownShow)\n async onKeyDown(event: KeyboardEvent) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n await this.onArrowNavigation(event, event.code);\n }\n\n if (!this.dropdownShow) {\n return;\n }\n\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n await this.onEnterNavigation();\n }\n\n if (event.code === 'Escape') {\n this.dropdownShow = false;\n }\n }\n\n private async onEnterNavigation() {\n if (this.isMultipleMode) {\n return;\n }\n\n let item: HTMLIxSelectItemElement;\n\n if (this.editable && !this.itemExists(this.inputFilterText)) {\n this.emitAddItem(this.inputFilterText);\n item = this.items[this.items.length - 1];\n }\n\n if (item) {\n item.onItemClick();\n }\n\n await this.dropdownRef?.updatePosition();\n\n if (this.isSingleMode && !this.editable) {\n this.dropdownShow = false;\n }\n }\n\n private async onArrowNavigation(\n event: KeyboardEvent,\n key: 'ArrowDown' | 'ArrowUp'\n ) {\n if (event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.dropdownShow = true;\n\n if (!this.navigationItem && document.activeElement === this.hostElement) {\n if (this.visibleItems.length) {\n this.applyFocusTo(this.visibleItems.shift());\n } else if (this.isAddItemVisible()) {\n this.focusAddItemButton();\n }\n return;\n }\n\n const moveUp = key === 'ArrowUp';\n const indexNonShadow = this.visibleNonShadowItems.indexOf(\n document.activeElement as any\n );\n\n // Slotted select items\n if (indexNonShadow === 0) {\n if (!this.visibleShadowItems.length && this.isAddItemVisible()) {\n this.focusAddItemButton();\n } else {\n this.applyFocusTo(this.visibleShadowItems.pop());\n }\n return;\n } else if (\n indexNonShadow !== -1 &&\n indexNonShadow === this.visibleNonShadowItems.length - 1\n ) {\n if (this.visibleShadowItems.length) {\n this.applyFocusTo(this.visibleShadowItems.shift());\n } else if (this.isAddItemVisible()) {\n this.focusAddItemButton();\n }\n return;\n }\n\n if (\n this.isAddItemVisible() &&\n this.addItemRef.contains(\n await this.navigationItem.getDropdownItemElement()\n )\n ) {\n if (moveUp) {\n this.applyFocusTo(this.visibleItems.pop());\n } else {\n if (this.visibleItems.length) {\n this.applyFocusTo(this.visibleItems.shift());\n }\n }\n return;\n }\n\n // Custom select items\n const indexShadow = this.visibleShadowItems.indexOf(\n this.navigationItem as any\n );\n\n if (moveUp) {\n if (indexShadow === 0) {\n if (this.visibleNonShadowItems.length) {\n this.applyFocusTo(this.visibleNonShadowItems.pop());\n } else if (this.isAddItemVisible()) {\n this.focusAddItemButton();\n }\n } else {\n this.applyFocusTo(this.visibleShadowItems[indexShadow - 1]);\n }\n } else {\n if (indexShadow === this.visibleShadowItems.length - 1) {\n if (this.isAddItemVisible()) {\n this.focusAddItemButton();\n } else {\n this.applyFocusTo(this.visibleItems.shift());\n }\n } else {\n this.applyFocusTo(this.visibleShadowItems[indexShadow + 1]);\n }\n }\n }\n\n private applyFocusTo(element: HTMLIxSelectItemElement) {\n if (!element) {\n return;\n }\n\n this.navigationItem = element;\n\n setTimeout(() => {\n element.shadowRoot\n .querySelector('ix-dropdown-item')\n .shadowRoot.querySelector('button')\n .focus();\n });\n }\n\n private focusAddItemButton() {\n if (this.addItemButton) {\n this.addItemButton.shadowRoot.querySelector('button').focus();\n this.navigationItem = this.addItemRef;\n }\n }\n\n private filterItemsWithTypeahead() {\n this.inputFilterText = this.inputRef.value;\n\n if (this.isSingleMode && this.inputFilterText === this.selectedLabels[0]) {\n return;\n }\n\n if (this.inputFilterText) {\n this.items.forEach((item) => {\n item.classList.remove('d-none');\n if (\n !item.label.toLowerCase().includes(this.inputFilterText.toLowerCase())\n ) {\n item.classList.add('d-none');\n }\n });\n } else {\n this.removeHiddenFromItems();\n }\n\n if (this.arrowFocusController) {\n this.arrowFocusController.items = this.visibleNonShadowItems;\n }\n\n this.isDropdownEmpty = this.isEveryDropdownItemHidden;\n }\n\n private removeHiddenFromItems() {\n this.items.forEach((item) => {\n item.classList.remove('d-none');\n });\n }\n\n private clearInput() {\n this.inputRef.value = '';\n this.inputFilterText = '';\n }\n\n private clear() {\n this.clearInput();\n this.selectedLabels = [];\n this.value = [];\n this.valueChange.emit(null);\n this.dropdownShow = false;\n }\n\n private onInputBlur(e) {\n if (this.editable) {\n return;\n }\n\n if (this.isSingleMode) {\n return;\n }\n\n if (!this.dropdownShow && this.mode !== 'multiple') {\n e.target['value'] = this.selectedLabels;\n }\n }\n\n private placeholderValue() {\n if (this.disabled) {\n return '';\n }\n\n if (this.readonly) {\n return '';\n }\n\n if (this.editable) {\n return this.i18nPlaceholderEditable;\n }\n\n return this.i18nPlaceholder;\n }\n\n private isAddItemVisible() {\n return (\n !this.itemExists(this.inputFilterText) &&\n this.editable &&\n this.inputFilterText\n );\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n select: true,\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n ref={(ref) => {\n this.dropdownAnchor = ref;\n if (!this.editable) this.dropdownWrapperRef = ref;\n }}\n >\n <div class=\"input-container\">\n <div class=\"chips\">\n {this.isMultipleMode\n ? this.selectedItems?.map((item) => (\n <ix-filter-chip\n disabled={this.disabled || this.readonly}\n key={item.value}\n onCloseClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.itemClick(item.value);\n }}\n >\n {item.label}\n </ix-filter-chip>\n ))\n : ''}\n <div class=\"trigger\">\n <input\n autocomplete=\"off\"\n data-testid=\"input\"\n disabled={this.disabled}\n readOnly={this.readonly}\n type=\"text\"\n class={{\n 'allow-clear':\n this.allowClear && !!this.selectedLabels?.length,\n }}\n placeholder={this.placeholderValue()}\n value={this.inputValue}\n ref={(ref) => (this.inputRef = ref)}\n onBlur={(e) => this.onInputBlur(e)}\n onFocus={() => {\n this.navigationItem = undefined;\n }}\n onInput={() => this.filterItemsWithTypeahead()}\n onKeyDown={(e) => this.onKeyDown(e)}\n />\n {this.allowClear &&\n (this.selectedLabels?.length || this.inputFilterText) ? (\n <ix-icon-button\n class=\"clear\"\n icon={'clear'}\n ghost\n oval\n size=\"16\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.clear();\n }}\n />\n ) : null}\n {this.disabled || this.readonly ? null : (\n <ix-icon-button\n data-select-dropdown\n class={{ 'dropdown-visible': this.dropdownShow }}\n icon=\"chevron-down-small\"\n ghost\n ref={(ref) => {\n if (this.editable) this.dropdownWrapperRef = ref;\n }}\n ></ix-icon-button>\n )}\n </div>\n </div>\n </div>\n </div>\n <ix-dropdown\n ref={(ref) => (this.dropdownRef = ref)}\n show={this.dropdownShow}\n closeBehavior={this.isMultipleMode ? 'outside' : 'both'}\n class={{\n 'd-none': this.disabled || this.readonly,\n }}\n anchor={this.dropdownAnchor}\n trigger={this.dropdownWrapperRef}\n onShowChanged={(e) => this.dropdownVisibilityChanged(e)}\n placement=\"bottom-start\"\n overwriteDropdownStyle={async () => {\n return {\n minWidth: `${this.hostElement.clientWidth}px`,\n };\n }}\n >\n <div\n class={{\n 'select-list-header': true,\n hidden: this.hideListHeader || this.isDropdownEmpty,\n }}\n title={this.i18nSelectListHeader}\n >\n {this.i18nSelectListHeader}\n </div>\n <slot></slot>\n <div\n ref={(ref) => (this.customItemsContainerRef = ref)}\n class=\"d-contents\"\n ></div>\n {this.isAddItemVisible() ? (\n <ix-dropdown-item\n data-testid=\"add-item\"\n icon={'plus'}\n class={{\n 'add-item': true,\n }}\n label={this.inputFilterText}\n onItemClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n this.emitAddItem(this.inputFilterText);\n }}\n onFocus={() => (this.navigationItem = this.addItemRef)}\n ref={(ref) => {\n this.addItemRef = ref;\n }}\n ></ix-dropdown-item>\n ) : null}\n {this.isDropdownEmpty && !this.editable ? (\n <div class=\"select-list-header\">{this.i18nNoMatches}</div>\n ) : (\n ''\n )}\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
@@ -134,4 +134,346 @@ test('open filtered dropdown on input', async ({ mount, page }) => {
134
134
  await expect(item1).toBeVisible();
135
135
  await expect(item2).not.toBeVisible();
136
136
  });
137
+ test('remove text from input and reselect the element', async ({ mount, page, }) => {
138
+ await mount(`
139
+ <ix-select value="2">
140
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
141
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
142
+ <ix-select-item value="3" label="Item 3">Test</ix-select-item>
143
+ </ix-select>
144
+ `);
145
+ await page.locator('[data-select-dropdown]').click();
146
+ const element = page.locator('ix-select');
147
+ await element.evaluate((select) => (select.value = []));
148
+ const dropdown = element.locator('ix-dropdown');
149
+ await expect(dropdown).toBeVisible();
150
+ const item2 = page.getByRole('button', { name: 'Item 2' });
151
+ await item2.click();
152
+ const inputValue = await element.locator('input').inputValue();
153
+ expect(inputValue).toEqual('Item 2');
154
+ });
155
+ test('type in a novel item name in editable mode and then remove it', async ({ mount, page, }) => {
156
+ await mount(`
157
+ <ix-select value="2" editable>
158
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
159
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
160
+ </ix-select>
161
+ `);
162
+ const element = page.locator('ix-select');
163
+ await expect(element).toHaveClass(/hydrated/);
164
+ await page.locator('[data-select-dropdown]').click();
165
+ await page.getByTestId('input').fill('test');
166
+ await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();
167
+ await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();
168
+ const add = page.getByRole('button', { name: 'test' });
169
+ await expect(add).toBeVisible();
170
+ await page.getByTestId('input').fill('');
171
+ await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();
172
+ await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();
173
+ await expect(add).not.toBeVisible();
174
+ });
175
+ test('type in a novel item name in editable mode, click outside and reopen the select', async ({ mount, page, }) => {
176
+ await mount(`
177
+ <ix-select value="2" editable>
178
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
179
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
180
+ <ix-select-item value="3" label="Item 3">Test</ix-select-item>
181
+ </ix-select>
182
+ <ix-button>outside</ix-button>
183
+ `);
184
+ const selectElement = page.locator('ix-select');
185
+ const btnElement = page.locator('ix-button');
186
+ await expect(selectElement).toHaveClass(/hydrated/);
187
+ await expect(btnElement).toBeVisible();
188
+ await page.locator('[data-select-dropdown]').click();
189
+ await page.getByTestId('input').fill('test');
190
+ const add = page.getByRole('button', { name: 'test' });
191
+ await expect(add).toBeVisible();
192
+ await btnElement.click();
193
+ const inputValue = await page.getByTestId('input').inputValue();
194
+ expect(inputValue).toBe('Item 2');
195
+ await page.locator('[data-select-dropdown]').click();
196
+ await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();
197
+ await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();
198
+ await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();
199
+ });
200
+ test.describe('arrow key navigation', () => {
201
+ test.describe('ArrowDown', () => {
202
+ test('input -> slotted item', async ({ mount, page }) => {
203
+ await mount(`
204
+ <ix-select>
205
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
206
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
207
+ </ix-select>
208
+ `);
209
+ await page.locator('ix-select input').click();
210
+ await page.keyboard.down('ArrowDown');
211
+ const itemOne = await page.locator('ix-select-item').first();
212
+ await expect(itemOne).toBeFocused();
213
+ });
214
+ test('input -> dynamic item', async ({ mount, page }) => {
215
+ await mount(`
216
+ <ix-select editable></ix-select>
217
+ `);
218
+ await page.locator('ix-select input').focus();
219
+ await page.keyboard.type('I');
220
+ await page.waitForSelector('.add-item');
221
+ await page.keyboard.down('ArrowDown');
222
+ const itemOne = await page.locator('.add-item');
223
+ await expect(itemOne).toBeFocused();
224
+ });
225
+ test('input -> add item', async ({ mount, page }) => {
226
+ await mount(`
227
+ <ix-select editable></ix-select>
228
+ `);
229
+ await page.locator('ix-select input').focus();
230
+ await page.keyboard.type('I');
231
+ await page.keyboard.down('Enter');
232
+ await page.waitForSelector('.checkmark');
233
+ await page.keyboard.down('ArrowDown');
234
+ const addItem = await page.locator('ix-dropdown-item');
235
+ await expect(addItem).toBeFocused();
236
+ });
237
+ test('slot -> dynamic item', async ({ mount, page }) => {
238
+ await mount(`
239
+ <ix-select editable>
240
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
241
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
242
+ </ix-select>
243
+ `);
244
+ await page.locator('ix-select input').focus();
245
+ await page.keyboard.type('I');
246
+ await page.keyboard.down('Enter');
247
+ await page.waitForSelector('.checkmark');
248
+ await page.keyboard.down('ArrowDown');
249
+ await page.waitForTimeout(100);
250
+ await page.keyboard.down('ArrowDown');
251
+ await page.waitForTimeout(100);
252
+ await page.keyboard.down('ArrowDown');
253
+ await page.waitForTimeout(100);
254
+ const itemThree = page.locator('ix-select-item').last();
255
+ await expect(itemThree).toBeFocused();
256
+ });
257
+ test('slot -> add item', async ({ mount, page }) => {
258
+ await mount(`
259
+ <ix-select editable>
260
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
261
+ <ix-select-item value="2" label="Item 2">Test</ix-select-item>
262
+ </ix-select>
263
+ `);
264
+ await page.locator('ix-select input').focus();
265
+ await page.keyboard.type('I');
266
+ await page.waitForSelector('.add-item');
267
+ await page.keyboard.down('ArrowDown');
268
+ await page.waitForTimeout(100);
269
+ await page.keyboard.down('ArrowDown');
270
+ await page.waitForTimeout(100);
271
+ await page.keyboard.down('ArrowDown');
272
+ await page.waitForTimeout(100);
273
+ const addItem = page.locator('.add-item');
274
+ await expect(addItem).toBeFocused();
275
+ });
276
+ test('dynamic item -> add item', async ({ mount, page }) => {
277
+ await mount(`
278
+ <ix-select editable>
279
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
280
+ </ix-select>
281
+ `);
282
+ await page.locator('ix-select input').focus();
283
+ await page.keyboard.type('Item 2');
284
+ await page.keyboard.down('Enter');
285
+ await page.waitForSelector('.checkmark');
286
+ await page.locator('input').clear();
287
+ await page.keyboard.type('I');
288
+ await page.waitForSelector('.add-item');
289
+ await page.keyboard.down('ArrowDown');
290
+ await page.waitForTimeout(100);
291
+ await page.keyboard.down('ArrowDown');
292
+ await page.waitForTimeout(100);
293
+ await page.keyboard.down('ArrowDown');
294
+ await page.waitForTimeout(100);
295
+ const addItem = page.locator('.add-item');
296
+ await expect(addItem).toBeFocused();
297
+ });
298
+ test('wrap - dynamic item -> slot', async ({ mount, page }) => {
299
+ await mount(`
300
+ <ix-select editable>
301
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
302
+ </ix-select>
303
+ `);
304
+ await page.locator('ix-select input').focus();
305
+ await page.keyboard.type('Item 2');
306
+ await page.keyboard.press('Enter');
307
+ await page.locator('input').clear();
308
+ await page.keyboard.down('ArrowDown');
309
+ await page.waitForTimeout(100);
310
+ await page.keyboard.down('ArrowDown');
311
+ await page.waitForTimeout(100);
312
+ const itemTwo = page.locator('ix-select-item').nth(1);
313
+ await expect(itemTwo).toBeFocused();
314
+ await page.keyboard.down('ArrowDown');
315
+ await page.waitForTimeout(100);
316
+ const itemOne = page.locator('ix-select-item').first();
317
+ await expect(itemOne).toBeFocused();
318
+ });
319
+ test('wrap - add item -> slot', async ({ mount, page }) => {
320
+ await mount(`
321
+ <ix-select editable>
322
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
323
+ </ix-select>
324
+ `);
325
+ await page.locator('ix-select input').focus();
326
+ await page.keyboard.type('I');
327
+ await page.waitForSelector('.add-item');
328
+ await page.keyboard.down('ArrowDown');
329
+ await page.waitForTimeout(100);
330
+ await page.keyboard.down('ArrowDown');
331
+ await page.waitForTimeout(100);
332
+ const addItem = page.locator('.add-item');
333
+ await expect(addItem).toBeFocused();
334
+ await page.keyboard.down('ArrowDown');
335
+ await page.waitForTimeout(100);
336
+ const itemOne = page.locator('ix-select-item').first();
337
+ await expect(itemOne).toBeFocused();
338
+ });
339
+ test('wrap - add item -> dynamic item', async ({ mount, page }) => {
340
+ await mount(`
341
+ <ix-select editable></ix-select>
342
+ `);
343
+ await page.locator('ix-select input').focus();
344
+ await page.keyboard.type('Item 1');
345
+ await page.keyboard.press('Enter');
346
+ await page.waitForSelector('.checkmark');
347
+ await page.locator('input').clear();
348
+ await page.keyboard.type('I');
349
+ await page.waitForSelector('.add-item');
350
+ await page.keyboard.down('ArrowDown');
351
+ await page.waitForTimeout(100);
352
+ await page.keyboard.down('ArrowDown');
353
+ await page.waitForTimeout(100);
354
+ const addItem = page.locator('.add-item');
355
+ await expect(addItem).toBeFocused();
356
+ await page.keyboard.down('ArrowDown');
357
+ await page.waitForTimeout(100);
358
+ const itemOne = page.locator('ix-select-item');
359
+ await expect(itemOne).toBeFocused();
360
+ });
361
+ });
362
+ test.describe('ArrowUp', () => {
363
+ test('dynamic item -> slot', async ({ mount, page }) => {
364
+ await mount(`
365
+ <ix-select editable>
366
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
367
+ </ix-select>
368
+ `);
369
+ await page.locator('ix-select input').focus();
370
+ await page.keyboard.type('I');
371
+ await page.keyboard.down('Enter');
372
+ await page.waitForSelector('.checkmark');
373
+ await page.keyboard.down('ArrowDown');
374
+ await page.waitForTimeout(100);
375
+ await page.keyboard.down('ArrowDown');
376
+ await page.waitForTimeout(100);
377
+ const itemTwo = page.locator('ix-select-item').last();
378
+ await expect(itemTwo).toBeFocused();
379
+ await page.keyboard.down('ArrowUp');
380
+ await page.waitForTimeout(100);
381
+ const itemOne = page.locator('ix-select-item').first();
382
+ await expect(itemOne).toBeFocused();
383
+ });
384
+ test('add item -> slot', async ({ mount, page }) => {
385
+ await mount(`
386
+ <ix-select editable>
387
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
388
+ </ix-select>
389
+ `);
390
+ await page.locator('ix-select input').focus();
391
+ await page.keyboard.type('I');
392
+ await page.waitForSelector('.add-item');
393
+ await page.keyboard.down('ArrowDown');
394
+ await page.waitForTimeout(100);
395
+ await page.keyboard.down('ArrowDown');
396
+ await page.waitForTimeout(100);
397
+ const addItem = page.locator('.add-item');
398
+ await expect(addItem).toBeFocused();
399
+ await page.keyboard.down('ArrowUp');
400
+ await page.waitForTimeout(100);
401
+ const itemOne = page.locator('ix-select-item');
402
+ await expect(itemOne).toBeFocused();
403
+ });
404
+ test('add item -> dynamic item', async ({ mount, page }) => {
405
+ await mount(`
406
+ <ix-select editable></ix-select>
407
+ `);
408
+ await page.locator('ix-select input').focus();
409
+ await page.keyboard.type('Item 1');
410
+ await page.keyboard.press('Enter');
411
+ await page.waitForSelector('.checkmark');
412
+ await page.locator('input').clear();
413
+ await page.keyboard.type('I');
414
+ await page.waitForSelector('.add-item');
415
+ await page.keyboard.down('ArrowDown');
416
+ await page.waitForTimeout(100);
417
+ await page.keyboard.down('ArrowDown');
418
+ await page.waitForTimeout(100);
419
+ const addItem = page.locator('.add-item');
420
+ await expect(addItem).toBeFocused();
421
+ await page.keyboard.down('ArrowUp');
422
+ await page.waitForTimeout(100);
423
+ const itemOne = page.locator('ix-select-item');
424
+ await expect(itemOne).toBeFocused();
425
+ });
426
+ test('wrap - slot -> dynamic item', async ({ mount, page }) => {
427
+ await mount(`
428
+ <ix-select editable>
429
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
430
+ </ix-select>
431
+ `);
432
+ await page.locator('input').focus();
433
+ await page.keyboard.type('Item 2');
434
+ await page.keyboard.press('Enter');
435
+ await page.locator('input').clear();
436
+ await page.keyboard.down('ArrowDown');
437
+ await page.waitForTimeout(100);
438
+ await page.keyboard.down('ArrowUp');
439
+ await page.waitForTimeout(100);
440
+ const itemTwo = page.locator('ix-select-item').last();
441
+ await expect(itemTwo).toBeFocused();
442
+ });
443
+ test('wrap - slot -> add-item', async ({ mount, page }) => {
444
+ await mount(`
445
+ <ix-select editable>
446
+ <ix-select-item value="1" label="Item 1">Test</ix-select-item>
447
+ </ix-select>
448
+ `);
449
+ await page.locator('ix-select input').focus();
450
+ await page.keyboard.type('I');
451
+ await page.waitForSelector('.add-item');
452
+ await page.keyboard.down('ArrowDown');
453
+ await page.waitForTimeout(100);
454
+ await page.keyboard.down('ArrowUp');
455
+ await page.waitForTimeout(100);
456
+ const addItem = page.locator('.add-item');
457
+ await expect(addItem).toBeFocused();
458
+ });
459
+ test('wrap - dynamic item -> add item', async ({ mount, page }) => {
460
+ await mount(`
461
+ <ix-select editable></ix-select>
462
+ `);
463
+ await page.locator('ix-select input').focus();
464
+ await page.keyboard.type('Item 1');
465
+ await page.keyboard.press('Enter');
466
+ await page.waitForSelector('.checkmark');
467
+ await page.locator('input').clear();
468
+ await page.keyboard.type('I');
469
+ await page.waitForSelector('.add-item');
470
+ await page.keyboard.down('ArrowDown');
471
+ await page.waitForTimeout(100);
472
+ await page.keyboard.down('ArrowUp');
473
+ await page.waitForTimeout(100);
474
+ const addItem = page.locator('.add-item');
475
+ await expect(addItem).toBeFocused();
476
+ });
477
+ });
478
+ });
137
479
  //# sourceMappingURL=select.ct.js.map