@siemens/ix 2.6.0 → 2.6.1

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 (311) hide show
  1. package/components/button.js +7 -2
  2. package/components/button.js.map +1 -1
  3. package/components/dropdown-item.js +1 -1
  4. package/components/dropdown-item.js.map +1 -1
  5. package/components/field-label.js +1 -1
  6. package/components/field-label.js.map +1 -1
  7. package/components/field-wrapper.js +2 -2
  8. package/components/field-wrapper.js.map +1 -1
  9. package/components/index3.js +2 -1
  10. package/components/index3.js.map +1 -1
  11. package/components/input.util.js +4 -8
  12. package/components/input.util.js.map +1 -1
  13. package/components/ix-date-input.js +6 -6
  14. package/components/ix-date-input.js.map +1 -1
  15. package/components/ix-input.js +3 -3
  16. package/components/ix-input.js.map +1 -1
  17. package/components/ix-number-input.js +5 -5
  18. package/components/ix-number-input.js.map +1 -1
  19. package/components/ix-textarea.js +2 -2
  20. package/components/ix-textarea.js.map +1 -1
  21. package/components/ix-toggle-button.js +2 -2
  22. package/components/ix-toggle.js +25 -5
  23. package/components/ix-toggle.js.map +1 -1
  24. package/components/ix-tree.js +330 -496
  25. package/components/ix-tree.js.map +1 -1
  26. package/components/ix-upload.js +3 -3
  27. package/components/ix-validation-tooltip.js +2 -2
  28. package/components/ix-workflow-step.js +3 -3
  29. package/components/ix-workflow-steps.js +1 -1
  30. package/components/modal.js +6 -0
  31. package/components/modal.js.map +1 -1
  32. package/components/select.js +68 -52
  33. package/components/select.js.map +1 -1
  34. package/components/tooltip.js +2 -2
  35. package/components/tree-item.js +6 -5
  36. package/components/tree-item.js.map +1 -1
  37. package/dist/cjs/{app-globals-3c9c6a50.js → app-globals-4d8f1524.js} +2 -2
  38. package/dist/cjs/{app-globals-3c9c6a50.js.map → app-globals-4d8f1524.js.map} +1 -1
  39. package/dist/cjs/core-js-b22adfab.js +26 -0
  40. package/dist/cjs/core-js-b22adfab.js.map +1 -0
  41. package/dist/cjs/{helper-text-util-3192e78f.js → helper-text-util-635a1877.js} +2 -2
  42. package/dist/cjs/{helper-text-util-3192e78f.js.map → helper-text-util-635a1877.js.map} +1 -1
  43. package/dist/cjs/{index-74904d8b.js → index-492e6488.js} +2 -2
  44. package/dist/cjs/{index-74904d8b.js.map → index-492e6488.js.map} +1 -1
  45. package/dist/cjs/{index-d2117dc0.js → index-b44a6617.js} +3 -1
  46. package/dist/cjs/index-b44a6617.js.map +1 -0
  47. package/dist/cjs/index.cjs.js +2 -2
  48. package/dist/cjs/{index.es2017-0c2b80b6.js → index.es2017-805b5876.js} +3 -3
  49. package/dist/cjs/{index.es2017-0c2b80b6.js.map → index.es2017-805b5876.js.map} +1 -1
  50. package/dist/cjs/{input.util-1c2fa43d.js → input.util-54d161e6.js} +5 -9
  51. package/dist/cjs/input.util-54d161e6.js.map +1 -0
  52. package/dist/cjs/ix-application-header.cjs.entry.js +2 -2
  53. package/dist/cjs/ix-application-switch-modal.cjs.entry.js +1 -1
  54. package/dist/cjs/ix-button.cjs.entry.js +7 -2
  55. package/dist/cjs/ix-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ix-col_4.cjs.entry.js +1 -1
  57. package/dist/cjs/ix-date-input.cjs.entry.js +6 -6
  58. package/dist/cjs/ix-date-input.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ix-dropdown-item.cjs.entry.js +1 -1
  60. package/dist/cjs/ix-dropdown-item.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ix-field-label_3.cjs.entry.js +7 -7
  62. package/dist/cjs/ix-field-label_3.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ix-helper-text.cjs.entry.js +2 -2
  64. package/dist/cjs/{ix-icon.entry-e95ddded.js → ix-icon.entry-e33446e2.js} +2 -2
  65. package/dist/cjs/{ix-icon.entry-e95ddded.js.map → ix-icon.entry-e33446e2.js.map} +1 -1
  66. package/dist/cjs/ix-input.cjs.entry.js +5 -5
  67. package/dist/cjs/ix-input.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ix-menu.cjs.entry.js +2 -2
  69. package/dist/cjs/ix-number-input.cjs.entry.js +7 -7
  70. package/dist/cjs/ix-number-input.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ix-select.cjs.entry.js +68 -52
  72. package/dist/cjs/ix-select.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ix-textarea.cjs.entry.js +3 -3
  74. package/dist/cjs/ix-textarea.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ix-time-picker.cjs.entry.js +1 -1
  76. package/dist/cjs/ix-toggle-button.cjs.entry.js +2 -2
  77. package/dist/cjs/ix-toggle.cjs.entry.js +17 -3
  78. package/dist/cjs/ix-toggle.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ix-tree-item.cjs.entry.js +6 -5
  80. package/dist/cjs/ix-tree-item.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ix-tree.cjs.entry.js +330 -489
  82. package/dist/cjs/ix-tree.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ix-upload.cjs.entry.js +3 -3
  84. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +2 -2
  85. package/dist/cjs/ix-workflow-step.cjs.entry.js +3 -3
  86. package/dist/cjs/ix-workflow-steps.cjs.entry.js +1 -1
  87. package/dist/cjs/loader.cjs.js +3 -3
  88. package/dist/cjs/{modal-a49409aa.js → modal-923c83a6.js} +7 -1
  89. package/dist/cjs/modal-923c83a6.js.map +1 -0
  90. package/dist/cjs/{setup-86b7d543.js → setup-cc07fbfc.js} +2 -2
  91. package/dist/cjs/{setup-86b7d543.js.map → setup-cc07fbfc.js.map} +1 -1
  92. package/dist/cjs/siemens-ix.cjs.js +3 -3
  93. package/dist/collection/components/button/button.js +7 -2
  94. package/dist/collection/components/button/button.js.map +1 -1
  95. package/dist/collection/components/date-input/date-input.js +8 -6
  96. package/dist/collection/components/date-input/date-input.js.map +1 -1
  97. package/dist/collection/components/dropdown-item/dropdown-item.css +0 -3
  98. package/dist/collection/components/field-label/field-label.js +13 -5
  99. package/dist/collection/components/field-label/field-label.js.map +1 -1
  100. package/dist/collection/components/field-wrapper/field-wrapper.js +12 -4
  101. package/dist/collection/components/field-wrapper/field-wrapper.js.map +1 -1
  102. package/dist/collection/components/input/input.fc.js +4 -8
  103. package/dist/collection/components/input/input.fc.js.map +1 -1
  104. package/dist/collection/components/input/input.js +5 -3
  105. package/dist/collection/components/input/input.js.map +1 -1
  106. package/dist/collection/components/input/number-input.js +7 -5
  107. package/dist/collection/components/input/number-input.js.map +1 -1
  108. package/dist/collection/components/input/textarea.js +2 -2
  109. package/dist/collection/components/input/textarea.js.map +1 -1
  110. package/dist/collection/components/modal/test/modal.ct.js +57 -65
  111. package/dist/collection/components/modal/test/modal.ct.js.map +1 -1
  112. package/dist/collection/components/select/select.js +68 -52
  113. package/dist/collection/components/select/select.js.map +1 -1
  114. package/dist/collection/components/select/test/select.ct.js +72 -100
  115. package/dist/collection/components/select/test/select.ct.js.map +1 -1
  116. package/dist/collection/components/toggle/toggle.css +376 -161
  117. package/dist/collection/components/toggle/toggle.js +17 -3
  118. package/dist/collection/components/toggle/toggle.js.map +1 -1
  119. package/dist/collection/components/toggle-button/toggle-button.js +2 -2
  120. package/dist/collection/components/tooltip/tooltip.js +2 -2
  121. package/dist/collection/components/tree/tree.js +6 -3
  122. package/dist/collection/components/tree/tree.js.map +1 -1
  123. package/dist/collection/components/tree-item/tree-item.js +6 -5
  124. package/dist/collection/components/tree-item/tree-item.js.map +1 -1
  125. package/dist/collection/components/upload/upload.js +3 -3
  126. package/dist/collection/components/utils/lazy-list/index.js +2 -0
  127. package/dist/collection/components/utils/lazy-list/index.js.map +1 -0
  128. package/dist/collection/components/utils/lazy-list/lazy.js +343 -0
  129. package/dist/collection/components/utils/lazy-list/lazy.js.map +1 -0
  130. package/dist/collection/components/utils/modal/modal.js +6 -0
  131. package/dist/collection/components/utils/modal/modal.js.map +1 -1
  132. package/dist/collection/components/validation-tooltip/validation-tooltip.js +2 -2
  133. package/dist/collection/components/workflow-step/workflow-step.js +3 -3
  134. package/dist/collection/components/workflow-steps/workflow-steps.js +1 -1
  135. package/dist/collection/tests/html-tags/html-tags.e2e.js +17 -0
  136. package/dist/collection/tests/html-tags/html-tags.e2e.js.map +1 -0
  137. package/dist/esm/app-globals-40082a83.js +7 -0
  138. package/dist/esm/{app-globals-ae0ca705.js.map → app-globals-40082a83.js.map} +1 -1
  139. package/dist/esm/{core-js-78b486a8.js → core-js-4a847feb.js} +2 -2
  140. package/dist/esm/{core-js-78b486a8.js.map → core-js-4a847feb.js.map} +1 -1
  141. package/dist/esm/{helper-text-util-10896253.js → helper-text-util-e47b864d.js} +2 -2
  142. package/dist/esm/{helper-text-util-10896253.js.map → helper-text-util-e47b864d.js.map} +1 -1
  143. package/dist/esm/{index-ad2af369.js → index-2b76ea55.js} +3 -2
  144. package/dist/esm/index-2b76ea55.js.map +1 -0
  145. package/dist/esm/{index-60d17930.js → index-7421df0c.js} +2 -2
  146. package/dist/esm/{index-60d17930.js.map → index-7421df0c.js.map} +1 -1
  147. package/dist/esm/{index.es2017-93ac816c.js → index.es2017-4e6fdf77.js} +3 -3
  148. package/dist/esm/{index.es2017-93ac816c.js.map → index.es2017-4e6fdf77.js.map} +1 -1
  149. package/dist/esm/index.js +3 -3
  150. package/dist/esm/{input.util-715860e3.js → input.util-c855b2ed.js} +5 -9
  151. package/dist/esm/input.util-c855b2ed.js.map +1 -0
  152. package/dist/esm/ix-application-header.entry.js +2 -2
  153. package/dist/esm/ix-application-switch-modal.entry.js +1 -1
  154. package/dist/esm/ix-button.entry.js +7 -2
  155. package/dist/esm/ix-button.entry.js.map +1 -1
  156. package/dist/esm/ix-col_4.entry.js +1 -1
  157. package/dist/esm/ix-date-input.entry.js +6 -6
  158. package/dist/esm/ix-date-input.entry.js.map +1 -1
  159. package/dist/esm/ix-dropdown-item.entry.js +1 -1
  160. package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
  161. package/dist/esm/ix-field-label_3.entry.js +7 -7
  162. package/dist/esm/ix-field-label_3.entry.js.map +1 -1
  163. package/dist/esm/ix-helper-text.entry.js +2 -2
  164. package/dist/esm/{ix-icon.entry-621b700a.js → ix-icon.entry-f5f7c268.js} +2 -2
  165. package/dist/esm/{ix-icon.entry-621b700a.js.map → ix-icon.entry-f5f7c268.js.map} +1 -1
  166. package/dist/esm/ix-input.entry.js +5 -5
  167. package/dist/esm/ix-input.entry.js.map +1 -1
  168. package/dist/esm/ix-menu.entry.js +2 -2
  169. package/dist/esm/ix-number-input.entry.js +7 -7
  170. package/dist/esm/ix-number-input.entry.js.map +1 -1
  171. package/dist/esm/ix-select.entry.js +68 -52
  172. package/dist/esm/ix-select.entry.js.map +1 -1
  173. package/dist/esm/ix-textarea.entry.js +3 -3
  174. package/dist/esm/ix-textarea.entry.js.map +1 -1
  175. package/dist/esm/ix-time-picker.entry.js +1 -1
  176. package/dist/esm/ix-toggle-button.entry.js +2 -2
  177. package/dist/esm/ix-toggle.entry.js +18 -4
  178. package/dist/esm/ix-toggle.entry.js.map +1 -1
  179. package/dist/esm/ix-tree-item.entry.js +6 -5
  180. package/dist/esm/ix-tree-item.entry.js.map +1 -1
  181. package/dist/esm/ix-tree.entry.js +330 -489
  182. package/dist/esm/ix-tree.entry.js.map +1 -1
  183. package/dist/esm/ix-upload.entry.js +3 -3
  184. package/dist/esm/ix-validation-tooltip.entry.js +2 -2
  185. package/dist/esm/ix-workflow-step.entry.js +3 -3
  186. package/dist/esm/ix-workflow-steps.entry.js +1 -1
  187. package/dist/esm/loader.js +3 -3
  188. package/dist/esm/{modal-101eef04.js → modal-4b3f8800.js} +7 -1
  189. package/dist/{cjs/modal-a49409aa.js.map → esm/modal-4b3f8800.js.map} +1 -1
  190. package/dist/esm/{setup-d88021f8.js → setup-9c5fe321.js} +2 -2
  191. package/dist/esm/{setup-d88021f8.js.map → setup-9c5fe321.js.map} +1 -1
  192. package/dist/esm/siemens-ix.js +3 -3
  193. package/dist/siemens-ix/index.esm.js +1 -1
  194. package/dist/siemens-ix/{p-0dbc970e.entry.js → p-0b2f0536.entry.js} +2 -2
  195. package/dist/siemens-ix/{p-2b226409.entry.js → p-0b5c9f33.entry.js} +2 -2
  196. package/dist/siemens-ix/p-0b5c9f33.entry.js.map +1 -0
  197. package/dist/siemens-ix/{p-044c2a7b.entry.js → p-18542846.entry.js} +2 -2
  198. package/dist/siemens-ix/p-20938f73.entry.js +2 -0
  199. package/dist/siemens-ix/p-20938f73.entry.js.map +1 -0
  200. package/dist/siemens-ix/p-22cba43a.entry.js +2 -0
  201. package/dist/siemens-ix/p-22cba43a.entry.js.map +1 -0
  202. package/dist/siemens-ix/{p-9fe2759f.entry.js → p-243e8b32.entry.js} +2 -2
  203. package/dist/siemens-ix/p-243e8b32.entry.js.map +1 -0
  204. package/dist/siemens-ix/p-38d9d569.js +2 -0
  205. package/dist/siemens-ix/p-38d9d569.js.map +1 -0
  206. package/dist/siemens-ix/{p-d7aa00d6.js → p-3aaecbd9.js} +2 -2
  207. package/dist/siemens-ix/{p-175599e4.entry.js → p-42320fb3.entry.js} +2 -2
  208. package/dist/siemens-ix/p-44fa005c.js +4 -0
  209. package/dist/siemens-ix/{p-a2200306.js.map → p-44fa005c.js.map} +1 -1
  210. package/dist/siemens-ix/p-451551d1.js +2 -0
  211. package/dist/siemens-ix/p-451551d1.js.map +1 -0
  212. package/dist/siemens-ix/p-53fd545a.entry.js +2 -0
  213. package/dist/siemens-ix/p-53fd545a.entry.js.map +1 -0
  214. package/dist/siemens-ix/p-5fbdff13.entry.js +2 -0
  215. package/dist/siemens-ix/p-5fbdff13.entry.js.map +1 -0
  216. package/dist/siemens-ix/{p-1f6df0c6.js → p-738c2d1f.js} +2 -2
  217. package/dist/siemens-ix/{p-424e8092.entry.js → p-897c8e5b.entry.js} +2 -2
  218. package/dist/siemens-ix/p-897c8e5b.entry.js.map +1 -0
  219. package/dist/siemens-ix/{p-f35386ec.js → p-93d4d3c9.js} +2 -2
  220. package/dist/siemens-ix/{p-9948574f.entry.js → p-97d4b3bd.entry.js} +2 -2
  221. package/dist/siemens-ix/{p-6a4a2064.entry.js → p-9f960c0b.entry.js} +2 -2
  222. package/dist/siemens-ix/{p-0c89cbcc.entry.js → p-a4dc6824.entry.js} +2 -2
  223. package/dist/siemens-ix/{p-fe87443e.js → p-a6af13b0.js} +2 -2
  224. package/dist/siemens-ix/p-af7c4b16.entry.js +2 -0
  225. package/dist/siemens-ix/p-af7c4b16.entry.js.map +1 -0
  226. package/dist/siemens-ix/{p-a3364116.entry.js → p-afb4565c.entry.js} +2 -2
  227. package/dist/siemens-ix/{p-4c9b7548.entry.js → p-bc272f75.entry.js} +2 -2
  228. package/dist/siemens-ix/{p-3205726a.entry.js → p-bfe469e4.entry.js} +2 -2
  229. package/dist/siemens-ix/{p-792e1c52.entry.js → p-c07557b0.entry.js} +2 -2
  230. package/dist/siemens-ix/p-c07557b0.entry.js.map +1 -0
  231. package/dist/siemens-ix/p-c3ca17fc.js +2 -0
  232. package/dist/siemens-ix/p-c530de51.entry.js +2 -0
  233. package/dist/siemens-ix/p-c530de51.entry.js.map +1 -0
  234. package/dist/siemens-ix/p-d2f21544.js +2 -0
  235. package/dist/siemens-ix/{p-68bb2a09.entry.js → p-d9b654af.entry.js} +2 -2
  236. package/dist/siemens-ix/p-d9b654af.entry.js.map +1 -0
  237. package/dist/siemens-ix/{p-e9a37b3f.entry.js → p-ee0645f8.entry.js} +2 -2
  238. package/dist/siemens-ix/p-fe158b99.js +2 -0
  239. package/dist/siemens-ix/p-fe158b99.js.map +1 -0
  240. package/dist/siemens-ix/{p-f39048a2.entry.js → p-fe396297.entry.js} +2 -2
  241. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  242. package/dist/types/components/button/button.d.ts +1 -0
  243. package/dist/types/components/date-input/date-input.d.ts +2 -0
  244. package/dist/types/components/field-label/field-label.d.ts +1 -1
  245. package/dist/types/components/field-wrapper/field-wrapper.d.ts +1 -1
  246. package/dist/types/components/input/input.d.ts +2 -0
  247. package/dist/types/components/input/number-input.d.ts +2 -0
  248. package/dist/types/components/modal/test/modal.ct.d.ts +2 -1
  249. package/dist/types/components/select/select.d.ts +9 -8
  250. package/dist/types/components/utils/lazy-list/index.d.ts +2 -0
  251. package/dist/types/components/utils/lazy-list/lazy.d.ts +51 -0
  252. package/dist/types/components.d.ts +9 -3
  253. package/hydrate/index.js +499 -621
  254. package/package.json +1 -2
  255. package/dist/cjs/_commonjsHelpers-0192c5b3.js +0 -17
  256. package/dist/cjs/_commonjsHelpers-0192c5b3.js.map +0 -1
  257. package/dist/cjs/core-js-2fc351ee.js +0 -26
  258. package/dist/cjs/core-js-2fc351ee.js.map +0 -1
  259. package/dist/cjs/index-d2117dc0.js.map +0 -1
  260. package/dist/cjs/input.util-1c2fa43d.js.map +0 -1
  261. package/dist/esm/_commonjsHelpers-e557d4a5.js +0 -13
  262. package/dist/esm/_commonjsHelpers-e557d4a5.js.map +0 -1
  263. package/dist/esm/app-globals-ae0ca705.js +0 -7
  264. package/dist/esm/index-ad2af369.js.map +0 -1
  265. package/dist/esm/input.util-715860e3.js.map +0 -1
  266. package/dist/esm/modal-101eef04.js.map +0 -1
  267. package/dist/siemens-ix/p-0f0e7e14.entry.js +0 -2
  268. package/dist/siemens-ix/p-0f0e7e14.entry.js.map +0 -1
  269. package/dist/siemens-ix/p-23a4b81f.js +0 -2
  270. package/dist/siemens-ix/p-23a4b81f.js.map +0 -1
  271. package/dist/siemens-ix/p-2b226409.entry.js.map +0 -1
  272. package/dist/siemens-ix/p-424e8092.entry.js.map +0 -1
  273. package/dist/siemens-ix/p-45840cb9.js +0 -2
  274. package/dist/siemens-ix/p-45840cb9.js.map +0 -1
  275. package/dist/siemens-ix/p-4624a772.entry.js +0 -2
  276. package/dist/siemens-ix/p-4624a772.entry.js.map +0 -1
  277. package/dist/siemens-ix/p-50096707.js +0 -2
  278. package/dist/siemens-ix/p-5682e985.js +0 -2
  279. package/dist/siemens-ix/p-5db5a0b5.entry.js +0 -2
  280. package/dist/siemens-ix/p-5db5a0b5.entry.js.map +0 -1
  281. package/dist/siemens-ix/p-68bb2a09.entry.js.map +0 -1
  282. package/dist/siemens-ix/p-792e1c52.entry.js.map +0 -1
  283. package/dist/siemens-ix/p-79bb0d39.js +0 -2
  284. package/dist/siemens-ix/p-79bb0d39.js.map +0 -1
  285. package/dist/siemens-ix/p-857f99c8.entry.js +0 -2
  286. package/dist/siemens-ix/p-857f99c8.entry.js.map +0 -1
  287. package/dist/siemens-ix/p-9fe2759f.entry.js.map +0 -1
  288. package/dist/siemens-ix/p-a2200306.js +0 -4
  289. package/dist/siemens-ix/p-a427e6a2.js +0 -2
  290. package/dist/siemens-ix/p-a427e6a2.js.map +0 -1
  291. package/dist/siemens-ix/p-bded112a.entry.js +0 -2
  292. package/dist/siemens-ix/p-bded112a.entry.js.map +0 -1
  293. package/dist/siemens-ix/p-f7618d1d.entry.js +0 -2
  294. package/dist/siemens-ix/p-f7618d1d.entry.js.map +0 -1
  295. /package/dist/siemens-ix/{p-0dbc970e.entry.js.map → p-0b2f0536.entry.js.map} +0 -0
  296. /package/dist/siemens-ix/{p-044c2a7b.entry.js.map → p-18542846.entry.js.map} +0 -0
  297. /package/dist/siemens-ix/{p-d7aa00d6.js.map → p-3aaecbd9.js.map} +0 -0
  298. /package/dist/siemens-ix/{p-175599e4.entry.js.map → p-42320fb3.entry.js.map} +0 -0
  299. /package/dist/siemens-ix/{p-1f6df0c6.js.map → p-738c2d1f.js.map} +0 -0
  300. /package/dist/siemens-ix/{p-f35386ec.js.map → p-93d4d3c9.js.map} +0 -0
  301. /package/dist/siemens-ix/{p-9948574f.entry.js.map → p-97d4b3bd.entry.js.map} +0 -0
  302. /package/dist/siemens-ix/{p-6a4a2064.entry.js.map → p-9f960c0b.entry.js.map} +0 -0
  303. /package/dist/siemens-ix/{p-0c89cbcc.entry.js.map → p-a4dc6824.entry.js.map} +0 -0
  304. /package/dist/siemens-ix/{p-fe87443e.js.map → p-a6af13b0.js.map} +0 -0
  305. /package/dist/siemens-ix/{p-a3364116.entry.js.map → p-afb4565c.entry.js.map} +0 -0
  306. /package/dist/siemens-ix/{p-4c9b7548.entry.js.map → p-bc272f75.entry.js.map} +0 -0
  307. /package/dist/siemens-ix/{p-3205726a.entry.js.map → p-bfe469e4.entry.js.map} +0 -0
  308. /package/dist/siemens-ix/{p-5682e985.js.map → p-c3ca17fc.js.map} +0 -0
  309. /package/dist/siemens-ix/{p-50096707.js.map → p-d2f21544.js.map} +0 -0
  310. /package/dist/siemens-ix/{p-e9a37b3f.entry.js.map → p-ee0645f8.entry.js.map} +0 -0
  311. /package/dist/siemens-ix/{p-f39048a2.entry.js.map → p-fe396297.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as r,g as n}from"./p-5806df2b.js";import{c as s,g as o}from"./p-45840cb9.js";import{r as h}from"./p-effd2dcf.js";import{d as a}from"./p-7aa26727.js";var u={exports:{}};(function(t,i){(function(i){{t.exports=i()}})((function(){return function(){function t(i,e,r){function n(h,a){if(!e[h]){if(!i[h]){var u="function"==typeof s&&s;if(!a&&u)return u(h,!0);if(o)return o(h,!0);var f=new Error("Cannot find module '"+h+"'");throw f.code="MODULE_NOT_FOUND",f}var c=e[h]={exports:{}};i[h][0].call(c.exports,(function(t){var e=i[h][1][t];return n(e||t)}),c,c.exports,t,i,e,r)}return e[h].exports}for(var o="function"==typeof s&&s,h=0;h<r.length;h++)n(r[h]);return n}return t}()({1:[function(t,i,e){Object.defineProperty(e,"__esModule",{value:true});var r=function(){function t(t,i){for(var e=0;e<i.length;e++){var r=i[e];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(t,r.key,r)}}return function(i,e,r){if(e)t(i.prototype,e);if(r)t(i,r);return i}}();function n(t,i,e){if(i in t){Object.defineProperty(t,i,{value:e,enumerable:true,configurable:true,writable:true})}else{t[i]=e}return t}function s(t,i){if(!(t instanceof i)){throw new TypeError("Cannot call a class as a function")}}var o={width:"100%",height:"100%"};var h=function t(i){return Number(i)===Number(i)};var a="classList"in document.documentElement?function(t,i){t.classList.add(i)}:function(t,i){var e=t.getAttribute("class")||"";t.setAttribute("class",e+" "+i)};var u=function(){r(t,null,[{key:"create",value:function i(e,r){return new t(e,r)}},{key:"mergeStyle",value:function t(i,e){for(var r in e){if(i.style[r]!==e[r]){i.style[r]=e[r]}}}},{key:"getMaxBrowserHeight",value:function i(){var e=document.createElement("div");var r=document.createElement("div");t.mergeStyle(e,{position:"absolute",height:"1px",opacity:0});t.mergeStyle(r,{height:"1e7px"});e.appendChild(r);document.body.appendChild(e);var n=r.offsetHeight;document.body.removeChild(e);return n}}]);function t(i,e){var r=this;s(this,t);this._config={};this._lastRepaint=null;this._maxElementHeight=t.getMaxBrowserHeight();this.refresh(i,e);var n=this._config;var o=function t(){var i=r._getScrollPosition();var e=r._lastRepaint;r._renderAnimationFrame=window.requestAnimationFrame(t);if(i===e){return}var s=e?i-e:0;if(!e||s<0||s>r._averageHeight){var o=r._renderChunk();r._lastRepaint=i;if(o!==false&&typeof n.afterRender==="function"){n.afterRender()}}};o()}r(t,[{key:"destroy",value:function t(){window.cancelAnimationFrame(this._renderAnimationFrame)}},{key:"refresh",value:function i(e,r){var s;Object.assign(this._config,o,r);if(!e||e.nodeType!==1){throw new Error("HyperList requires a valid DOM Node container")}this._element=e;var a=this._config;var u=this._scroller||a.scroller||document.createElement(a.scrollerTagName||"tr");if(typeof a.useFragment!=="boolean"){this._config.useFragment=true}if(!a.generate){throw new Error("Missing required `generate` function")}if(!h(a.total)){throw new Error("Invalid required `total` value, expected number")}if(!Array.isArray(a.itemHeight)&&!h(a.itemHeight)){throw new Error("\n Invalid required `itemHeight` value, expected number or array\n ".trim())}else if(h(a.itemHeight)){this._itemHeights=Array(a.total).fill(a.itemHeight)}else{this._itemHeights=a.itemHeight}Object.keys(o).filter((function(t){return t in a})).forEach((function(t){var i=a[t];var e=h(i);if(i&&typeof i!=="string"&&typeof i!=="number"){var r="Invalid optional `"+t+"`, expected string or number";throw new Error(r)}else if(e){a[t]=i+"px"}}));var f=Boolean(a.horizontal);var c=a[f?"width":"height"];if(c){var l=h(c);var v=l?false:c.slice(-1)==="%";var d=l?c:parseInt(c.replace(/px|%/,""),10);var p=window[f?"innerWidth":"innerHeight"];if(v){this._containerSize=p*d/100}else{this._containerSize=h(c)?c:d}}var m=a.scrollContainer;var g=a.itemHeight*a.total;var w=this._maxElementHeight;if(g>w){console.warn(["HyperList: The maximum element height",w+"px has","been exceeded; please reduce your item height."].join(" "))}var b={width:""+a.width,height:m?g+"px":""+a.height,overflow:m?"none":"auto",position:"relative"};t.mergeStyle(e,b);if(m){t.mergeStyle(a.scrollContainer,{overflow:"auto"})}var y=(s={opacity:"0",position:"absolute"},n(s,f?"height":"width","1px"),n(s,f?"width":"height",g+"px"),s);t.mergeStyle(u,y);if(!this._scroller){e.appendChild(u)}var x=this._computeScrollPadding();this._scrollPaddingBottom=x.bottom;this._scrollPaddingTop=x.top;this._scroller=u;this._scrollHeight=this._computeScrollHeight();this._itemPositions=this._itemPositions||Array(a.total).fill(0);this._computePositions(0);this._renderChunk(this._lastRepaint!==null);if(typeof a.afterRender==="function"){a.afterRender()}}},{key:"_getRow",value:function i(e){var r=this._config;var s=r.generate(e);var o=s.height;if(o!==undefined&&h(o)){s=s.element;if(o!==this._itemHeights[e]){this._itemHeights[e]=o;this._computePositions(e);this._scrollHeight=this._computeScrollHeight(e)}}else{o=this._itemHeights[e]}if(!s||s.nodeType!==1){throw new Error("Generator did not return a DOM Node for index: "+e)}a(s,r.rowClassName||"vrow");var u=this._itemPositions[e]+this._scrollPaddingTop;t.mergeStyle(s,n({position:"absolute"},r.horizontal?"left":"top",u+"px"));return s}},{key:"_getScrollPosition",value:function t(){var i=this._config;if(typeof i.overrideScrollPosition==="function"){return i.overrideScrollPosition()}return this._element[i.horizontal?"scrollLeft":"scrollTop"]}},{key:"_renderChunk",value:function t(i){var e=this._config;var r=this._element;var n=this._getScrollPosition();var s=e.total;var o=e.reverse?this._getReverseFrom(n):this._getFrom(n)-1;if(o<0||o-this._screenItemsLen<0){o=0}if(!i&&this._lastFrom===o){return false}this._lastFrom=o;var h=o+this._cachedItemsLen;if(h>s||h+this._cachedItemsLen>s){h=s}var a=e.useFragment?document.createDocumentFragment():[];var u=this._scroller;a[e.useFragment?"appendChild":"push"](u);for(var f=o;f<h;f++){var c=this._getRow(f);a[e.useFragment?"appendChild":"push"](c)}if(e.applyPatch){return e.applyPatch(r,a)}r.innerHTML="";r.appendChild(a)}},{key:"_computePositions",value:function t(){var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;var e=this._config;var r=e.total;var n=e.reverse;if(i<1&&!n){i=1}for(var s=i;s<r;s++){if(n){if(s===0){this._itemPositions[0]=this._scrollHeight-this._itemHeights[0]}else{this._itemPositions[s]=this._itemPositions[s-1]-this._itemHeights[s]}}else{this._itemPositions[s]=this._itemHeights[s-1]+this._itemPositions[s-1]}}}},{key:"_computeScrollHeight",value:function i(){var e,r=this;var s=this._config;var o=Boolean(s.horizontal);var h=s.total;var a=this._itemHeights.reduce((function(t,i){return t+i}),0)+this._scrollPaddingBottom+this._scrollPaddingTop;t.mergeStyle(this._scroller,(e={opacity:0,position:"absolute",top:"0px"},n(e,o?"height":"width","1px"),n(e,o?"width":"height",a+"px"),e));var u=this._itemHeights.slice(0).sort((function(t,i){return t-i}));var f=Math.floor(h/2);var c=h%2===0?(u[f]+u[f-1])/2:u[f];var l=o?"clientWidth":"clientHeight";var v=s.scrollContainer?s.scrollContainer:this._element;var d=v[l]?v[l]:this._containerSize;this._screenItemsLen=Math.ceil(d/c);this._containerSize=d;this._cachedItemsLen=Math.max(this._cachedItemsLen||0,this._screenItemsLen*3);this._averageHeight=c;if(s.reverse){window.requestAnimationFrame((function(){if(o){r._element.scrollLeft=a}else{r._element.scrollTop=a}}))}return a}},{key:"_computeScrollPadding",value:function t(){var i=this._config;var e=Boolean(i.horizontal);var r=i.reverse;var n=window.getComputedStyle(this._element);var s=function t(i){var e=n.getPropertyValue("padding-"+i);return parseInt(e,10)||0};if(e&&r){return{bottom:s("left"),top:s("right")}}else if(e){return{bottom:s("right"),top:s("left")}}else if(r){return{bottom:s("top"),top:s("bottom")}}else{return{bottom:s("bottom"),top:s("top")}}}},{key:"_getFrom",value:function t(i){var e=0;while(this._itemPositions[e]<i){e++}return e}},{key:"_getReverseFrom",value:function t(i){var e=this._config.total-1;while(e>0&&this._itemPositions[e]<i+this._containerSize){e--}return e}}]);return t}();e.default=u;i.exports=e["default"]},{}]},{},[1])(1)}))})(u);const f=o(u.exports);const c=":host{display:block}";const l=c;const v=class{constructor(e){t(this,e);this.contextChange=i(this,"contextChange",7);this.nodeToggled=i(this,"nodeToggled",7);this.nodeClicked=i(this,"nodeClicked",7);this.nodeRemoved=i(this,"nodeRemoved",7);this.toggleListener=new Map;this.itemClickListener=new Map;this.updates=new Map;this.hasFirstRender=false;this.root=undefined;this.model={};this.renderItem=undefined;this.context={}}updatePadding(t,i){t.style.paddingLeft=i.level+"rem"}getVirtualizerOptions(){const t=this.buildTreeList(this.model[this.root]);let i=(i,e,r)=>{if(i.hasChildren&&!this.toggleListener.has(e)){const n=e=>{e.preventDefault();e.stopPropagation();const n=this.getContext(t[r].id);n.isExpanded=!n.isExpanded;this.nodeToggled.emit({id:i.id,isExpaned:n.isExpanded});this.setContext(i.id,n)};e.addEventListener("toggle",n);this.toggleListener.set(e,n)}};return{itemHeight:32,total:t.length,generate:e=>{const r=t[e];const n=this.hostElement.querySelector(`[data-tree-node-id="${r.id}"]`);const s=this.getContext(r.id);if(n){n.hasChildren=r.hasChildren;n.context=Object.assign({},s);i(r,n,e);if(this.updates.has(r.id)){const t=this.updates.get(r.id);if(t){t(r,Object.assign({},this.context))}}this.updatePadding(n,r);return n}const o=t=>{this.updates.set(r.id,t)};let u=null;if(this.renderItem){u=this.renderItem(e,r,t,Object.assign({},this.context),o)}if(u===null){u=h(r,s,o)}const f=u;f.setAttribute("data-tree-node-id",r.id);f.style.paddingRight="1rem";this.updatePadding(f,r);if(!this.itemClickListener.has(f)){const t=t=>{const i=t.composedPath();const e=i.indexOf(this.hostElement);const n=i.slice(0,e);const s=a.pathIncludesTrigger(n);if(t.defaultPrevented){return}if(s){return}Object.values(this.context).forEach((t=>t.isSelected=false));const o=this.getContext(r.id);o.isSelected=true;this.setContext(r.id,o);this.nodeClicked.emit(r.id)};f.addEventListener("toggle",(t=>{t.preventDefault()}));f.addEventListener("click",t);this.itemClickListener.set(f,t)}i(r,f,e);return f}}}setContext(t,i){this.context=Object.assign(Object.assign({},this.context),{[t]:i});this.contextChange.emit(this.context)}getContext(t){if(!this.context){return{isExpanded:false,isSelected:false}}if(!this.context[t]){this.context[t]={isExpanded:false,isSelected:false}}return this.context[t]}buildTreeList(t,i=0){const e=[];if(t===null||t===void 0?void 0:t.hasChildren){const r=i+1;t.children.forEach((t=>{const n=this.model[t];const s=this.getContext(t);e.push(Object.assign(Object.assign({},n),{level:i}));if(n.hasChildren&&s.isExpanded){e.push(...this.buildTreeList(n,r))}}))}return e}componentDidLoad(){this.initList();this.observer=new MutationObserver((t=>{let i=[];t.forEach((t=>{i=[...i,...Array.from(t.removedNodes)];t.addedNodes.forEach((t=>{const e=i.indexOf(t);if(e>=0){i.splice(e,1)}}))}));this.nodeRemoved.emit(i)}));this.observer.observe(this.hostElement,{childList:true})}componentWillRender(){this.hasFirstRender=true;if(this.isListInitialized()){this.refreshList()}else{this.initList()}}disconnectedCallback(){var t,i;(t=this.hyperlist)===null||t===void 0?void 0:t.destroy();(i=this.observer)===null||i===void 0?void 0:i.disconnect()}modelChange(){if(this.hasFirstRender&&!this.isListInitialized()){this.initList()}}isListInitialized(){var t;const i=(t=this.hyperlist)===null||t===void 0?void 0:t._itemPositions;return i!==undefined&&i.length&&!(i===null||i===void 0?void 0:i.some((t=>t===undefined||Number.isNaN(t))))}refreshList(){if(this.hyperlist){this.hyperlist.refresh(this.hostElement,this.getVirtualizerOptions())}}initList(){var t;if(!this.model){return}(t=this.hyperlist)===null||t===void 0?void 0:t.destroy();const i=this.getVirtualizerOptions();this.hyperlist=new f(this.hostElement,i)}render(){return e(r,{key:"546ff1bb1f22e6a0ce218f560a667ef329ae86d3"},e("slot",{key:"b80ab61e3b9985743cf29e481f52393e20ff6fc3"}))}get hostElement(){return n(this)}static get watchers(){return{model:["modelChange"]}}};v.style=l;export{v as ix_tree};
2
- //# sourceMappingURL=p-bded112a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["f","module","exports","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","_dereq_","Object","defineProperty","value","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_defineProperty","obj","_classCallCheck","instance","TypeError","defaultConfig","width","height","isNumber","input","Number","addClass","document","documentElement","element","className","classList","add","oldClass","getAttribute","setAttribute","HyperList","create","userProvidedConfig","mergeStyle","style","getMaxBrowserHeight","wrapper","createElement","fixture","position","opacity","appendChild","body","maxElementHeight","offsetHeight","removeChild","_this","this","_config","_lastRepaint","_maxElementHeight","refresh","config","render","scrollTop","_getScrollPosition","lastRepaint","_renderAnimationFrame","window","requestAnimationFrame","diff","_averageHeight","rendered","_renderChunk","afterRender","destroy","cancelAnimationFrame","_scrollerStyle","assign","nodeType","_element","scroller","_scroller","scrollerTagName","useFragment","generate","total","Array","isArray","itemHeight","trim","_itemHeights","fill","keys","filter","prop","forEach","isValueNumber","msg","isHoriz","Boolean","horizontal","isValuePercent","slice","numberValue","parseInt","replace","innerSize","_containerSize","scrollContainer","scrollerHeight","console","warn","join","elementStyle","overflow","scrollerStyle","padding","_computeScrollPadding","_scrollPaddingBottom","bottom","_scrollPaddingTop","top","_scrollHeight","_computeScrollHeight","_itemPositions","_computePositions","_getRow","item","undefined","rowClassName","overrideScrollPosition","force","from","reverse","_getReverseFrom","_getFrom","_screenItemsLen","_lastFrom","to","_cachedItemsLen","fragment","createDocumentFragment","row","applyPatch","innerHTML","arguments","_HyperList$mergeStyle2","_this2","scrollHeight","reduce","b","sortedItemHeights","sort","middle","Math","floor","averageHeight","clientProp","containerHeight","ceil","max","scrollLeft","isReverse","styles","getComputedStyle","location","cssValue","getPropertyValue","default","treeCss","IxTreeStyle0","Tree","toggleListener","Map","itemClickListener","updates","hasFirstRender","updatePadding","paddingLeft","level","getVirtualizerOptions","list","buildTreeList","model","root","setToggleListener","el","index","hasChildren","has","toggleCallback","preventDefault","stopPropagation","context","getContext","id","isExpanded","nodeToggled","emit","isExpaned","setContext","addEventListener","set","renderedTreeItem","hostElement","querySelector","doUpdate","get","update","callback","innerElement","renderItem","renderDefaultItem","paddingRight","itemClickCallback","event","path","composedPath","treeIndex","indexOf","treePath","hasTrigger","dropdownController","pathIncludesTrigger","defaultPrevented","values","isSelected","nodeClicked","contextChange","itemList","newLevel","children","push","componentDidLoad","initList","observer","MutationObserver","records","removed","record","removedNodes","addedNodes","an","splice","nodeRemoved","observe","childList","componentWillRender","isListInitialized","refreshList","disconnectedCallback","_a","hyperlist","_b","disconnect","modelChange","itemPositions","some","isNaN","Hyperlist","h","Host"],"sources":["../../node_modules/.pnpm/hyperlist@1.0.0/node_modules/hyperlist/dist/hyperlist.js","src/components/tree/tree.css?tag=ix-tree&encapsulation=shadow","src/components/tree/tree.tsx"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.HyperList = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_dereq_,module,exports){\n'use strict';\n\n// Default configuration.\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n width: '100%',\n height: '100%'\n\n // Check for valid number.\n};var isNumber = function isNumber(input) {\n return Number(input) === Number(input);\n};\n\n// Add a class to an element.\nvar addClass = 'classList' in document.documentElement ? function (element, className) {\n element.classList.add(className);\n} : function (element, className) {\n var oldClass = element.getAttribute('class') || '';\n element.setAttribute('class', oldClass + ' ' + className);\n};\n\n/**\n * Creates a HyperList instance that virtually scrolls very large amounts of\n * data effortlessly.\n */\n\nvar HyperList = function () {\n _createClass(HyperList, null, [{\n key: 'create',\n value: function create(element, userProvidedConfig) {\n return new HyperList(element, userProvidedConfig);\n }\n\n /**\n * Merge given css style on an element\n * @param {DOMElement} element\n * @param {Object} style\n */\n\n }, {\n key: 'mergeStyle',\n value: function mergeStyle(element, style) {\n for (var i in style) {\n if (element.style[i] !== style[i]) {\n element.style[i] = style[i];\n }\n }\n }\n }, {\n key: 'getMaxBrowserHeight',\n value: function getMaxBrowserHeight() {\n // Create two elements, the wrapper is `1px` tall and is transparent and\n // positioned at the top of the page. Inside that is an element that gets\n // set to 1 billion pixels. Then reads the max height the browser can\n // calculate.\n var wrapper = document.createElement('div');\n var fixture = document.createElement('div');\n\n // As said above, these values get set to put the fixture elements into the\n // right visual state.\n HyperList.mergeStyle(wrapper, { position: 'absolute', height: '1px', opacity: 0 });\n HyperList.mergeStyle(fixture, { height: '1e7px' });\n\n // Add the fixture into the wrapper element.\n wrapper.appendChild(fixture);\n\n // Apply to the page, the values won't kick in unless this is attached.\n document.body.appendChild(wrapper);\n\n // Get the maximum element height in pixels.\n var maxElementHeight = fixture.offsetHeight;\n\n // Remove the element immediately after reading the value.\n document.body.removeChild(wrapper);\n\n return maxElementHeight;\n }\n }]);\n\n function HyperList(element, userProvidedConfig) {\n var _this = this;\n\n _classCallCheck(this, HyperList);\n\n this._config = {};\n this._lastRepaint = null;\n this._maxElementHeight = HyperList.getMaxBrowserHeight();\n\n this.refresh(element, userProvidedConfig);\n\n var config = this._config;\n\n // Create internal render loop.\n var render = function render() {\n var scrollTop = _this._getScrollPosition();\n var lastRepaint = _this._lastRepaint;\n\n _this._renderAnimationFrame = window.requestAnimationFrame(render);\n\n if (scrollTop === lastRepaint) {\n return;\n }\n\n var diff = lastRepaint ? scrollTop - lastRepaint : 0;\n if (!lastRepaint || diff < 0 || diff > _this._averageHeight) {\n var rendered = _this._renderChunk();\n\n _this._lastRepaint = scrollTop;\n\n if (rendered !== false && typeof config.afterRender === 'function') {\n config.afterRender();\n }\n }\n };\n\n render();\n }\n\n _createClass(HyperList, [{\n key: 'destroy',\n value: function destroy() {\n window.cancelAnimationFrame(this._renderAnimationFrame);\n }\n }, {\n key: 'refresh',\n value: function refresh(element, userProvidedConfig) {\n var _scrollerStyle;\n\n Object.assign(this._config, defaultConfig, userProvidedConfig);\n\n if (!element || element.nodeType !== 1) {\n throw new Error('HyperList requires a valid DOM Node container');\n }\n\n this._element = element;\n\n var config = this._config;\n\n var scroller = this._scroller || config.scroller || document.createElement(config.scrollerTagName || 'tr');\n\n // Default configuration option `useFragment` to `true`.\n if (typeof config.useFragment !== 'boolean') {\n this._config.useFragment = true;\n }\n\n if (!config.generate) {\n throw new Error('Missing required `generate` function');\n }\n\n if (!isNumber(config.total)) {\n throw new Error('Invalid required `total` value, expected number');\n }\n\n if (!Array.isArray(config.itemHeight) && !isNumber(config.itemHeight)) {\n throw new Error('\\n Invalid required `itemHeight` value, expected number or array\\n '.trim());\n } else if (isNumber(config.itemHeight)) {\n this._itemHeights = Array(config.total).fill(config.itemHeight);\n } else {\n this._itemHeights = config.itemHeight;\n }\n\n // Width and height should be coerced to string representations. Either in\n // `%` or `px`.\n Object.keys(defaultConfig).filter(function (prop) {\n return prop in config;\n }).forEach(function (prop) {\n var value = config[prop];\n var isValueNumber = isNumber(value);\n\n if (value && typeof value !== 'string' && typeof value !== 'number') {\n var msg = 'Invalid optional `' + prop + '`, expected string or number';\n throw new Error(msg);\n } else if (isValueNumber) {\n config[prop] = value + 'px';\n }\n });\n\n var isHoriz = Boolean(config.horizontal);\n var value = config[isHoriz ? 'width' : 'height'];\n\n if (value) {\n var isValueNumber = isNumber(value);\n var isValuePercent = isValueNumber ? false : value.slice(-1) === '%';\n // Compute the containerHeight as number\n var numberValue = isValueNumber ? value : parseInt(value.replace(/px|%/, ''), 10);\n var innerSize = window[isHoriz ? 'innerWidth' : 'innerHeight'];\n\n if (isValuePercent) {\n this._containerSize = innerSize * numberValue / 100;\n } else {\n this._containerSize = isNumber(value) ? value : numberValue;\n }\n }\n\n var scrollContainer = config.scrollContainer;\n var scrollerHeight = config.itemHeight * config.total;\n var maxElementHeight = this._maxElementHeight;\n\n if (scrollerHeight > maxElementHeight) {\n console.warn(['HyperList: The maximum element height', maxElementHeight + 'px has', 'been exceeded; please reduce your item height.'].join(' '));\n }\n\n // Decorate the container element with styles that will match\n // the user supplied configuration.\n var elementStyle = {\n width: '' + config.width,\n height: scrollContainer ? scrollerHeight + 'px' : '' + config.height,\n overflow: scrollContainer ? 'none' : 'auto',\n position: 'relative'\n };\n\n HyperList.mergeStyle(element, elementStyle);\n\n if (scrollContainer) {\n HyperList.mergeStyle(config.scrollContainer, { overflow: 'auto' });\n }\n\n var scrollerStyle = (_scrollerStyle = {\n opacity: '0',\n position: 'absolute'\n }, _defineProperty(_scrollerStyle, isHoriz ? 'height' : 'width', '1px'), _defineProperty(_scrollerStyle, isHoriz ? 'width' : 'height', scrollerHeight + 'px'), _scrollerStyle);\n\n HyperList.mergeStyle(scroller, scrollerStyle);\n\n // Only append the scroller element once.\n if (!this._scroller) {\n element.appendChild(scroller);\n }\n\n var padding = this._computeScrollPadding();\n this._scrollPaddingBottom = padding.bottom;\n this._scrollPaddingTop = padding.top;\n\n // Set the scroller instance.\n this._scroller = scroller;\n this._scrollHeight = this._computeScrollHeight();\n\n // Reuse the item positions if refreshed, otherwise set to empty array.\n this._itemPositions = this._itemPositions || Array(config.total).fill(0);\n\n // Each index in the array should represent the position in the DOM.\n this._computePositions(0);\n\n // Render after refreshing. Force render if we're calling refresh manually.\n this._renderChunk(this._lastRepaint !== null);\n\n if (typeof config.afterRender === 'function') {\n config.afterRender();\n }\n }\n }, {\n key: '_getRow',\n value: function _getRow(i) {\n var config = this._config;\n var item = config.generate(i);\n var height = item.height;\n\n if (height !== undefined && isNumber(height)) {\n item = item.element;\n\n // The height isn't the same as predicted, compute positions again\n if (height !== this._itemHeights[i]) {\n this._itemHeights[i] = height;\n this._computePositions(i);\n this._scrollHeight = this._computeScrollHeight(i);\n }\n } else {\n height = this._itemHeights[i];\n }\n\n if (!item || item.nodeType !== 1) {\n throw new Error('Generator did not return a DOM Node for index: ' + i);\n }\n\n addClass(item, config.rowClassName || 'vrow');\n\n var top = this._itemPositions[i] + this._scrollPaddingTop;\n\n HyperList.mergeStyle(item, _defineProperty({\n position: 'absolute'\n }, config.horizontal ? 'left' : 'top', top + 'px'));\n\n return item;\n }\n }, {\n key: '_getScrollPosition',\n value: function _getScrollPosition() {\n var config = this._config;\n\n if (typeof config.overrideScrollPosition === 'function') {\n return config.overrideScrollPosition();\n }\n\n return this._element[config.horizontal ? 'scrollLeft' : 'scrollTop'];\n }\n }, {\n key: '_renderChunk',\n value: function _renderChunk(force) {\n var config = this._config;\n var element = this._element;\n var scrollTop = this._getScrollPosition();\n var total = config.total;\n\n var from = config.reverse ? this._getReverseFrom(scrollTop) : this._getFrom(scrollTop) - 1;\n\n if (from < 0 || from - this._screenItemsLen < 0) {\n from = 0;\n }\n\n if (!force && this._lastFrom === from) {\n return false;\n }\n\n this._lastFrom = from;\n\n var to = from + this._cachedItemsLen;\n\n if (to > total || to + this._cachedItemsLen > total) {\n to = total;\n }\n\n // Append all the new rows in a document fragment that we will later append\n // to the parent node\n var fragment = config.useFragment ? document.createDocumentFragment() : []\n // Sometimes you'll pass fake elements to this tool and Fragments require\n // real elements.\n\n\n // The element that forces the container to scroll.\n ;var scroller = this._scroller;\n\n // Keep the scroller in the list of children.\n fragment[config.useFragment ? 'appendChild' : 'push'](scroller);\n\n for (var i = from; i < to; i++) {\n var row = this._getRow(i);\n\n fragment[config.useFragment ? 'appendChild' : 'push'](row);\n }\n\n if (config.applyPatch) {\n return config.applyPatch(element, fragment);\n }\n\n element.innerHTML = '';\n element.appendChild(fragment);\n }\n }, {\n key: '_computePositions',\n value: function _computePositions() {\n var from = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n var config = this._config;\n var total = config.total;\n var reverse = config.reverse;\n\n if (from < 1 && !reverse) {\n from = 1;\n }\n\n for (var i = from; i < total; i++) {\n if (reverse) {\n if (i === 0) {\n this._itemPositions[0] = this._scrollHeight - this._itemHeights[0];\n } else {\n this._itemPositions[i] = this._itemPositions[i - 1] - this._itemHeights[i];\n }\n } else {\n this._itemPositions[i] = this._itemHeights[i - 1] + this._itemPositions[i - 1];\n }\n }\n }\n }, {\n key: '_computeScrollHeight',\n value: function _computeScrollHeight() {\n var _HyperList$mergeStyle2,\n _this2 = this;\n\n var config = this._config;\n var isHoriz = Boolean(config.horizontal);\n var total = config.total;\n var scrollHeight = this._itemHeights.reduce(function (a, b) {\n return a + b;\n }, 0) + this._scrollPaddingBottom + this._scrollPaddingTop;\n\n HyperList.mergeStyle(this._scroller, (_HyperList$mergeStyle2 = {\n opacity: 0,\n position: 'absolute',\n top: '0px'\n }, _defineProperty(_HyperList$mergeStyle2, isHoriz ? 'height' : 'width', '1px'), _defineProperty(_HyperList$mergeStyle2, isHoriz ? 'width' : 'height', scrollHeight + 'px'), _HyperList$mergeStyle2));\n\n // Calculate the height median\n var sortedItemHeights = this._itemHeights.slice(0).sort(function (a, b) {\n return a - b;\n });\n var middle = Math.floor(total / 2);\n var averageHeight = total % 2 === 0 ? (sortedItemHeights[middle] + sortedItemHeights[middle - 1]) / 2 : sortedItemHeights[middle];\n\n var clientProp = isHoriz ? 'clientWidth' : 'clientHeight';\n var element = config.scrollContainer ? config.scrollContainer : this._element;\n var containerHeight = element[clientProp] ? element[clientProp] : this._containerSize;\n this._screenItemsLen = Math.ceil(containerHeight / averageHeight);\n this._containerSize = containerHeight;\n\n // Cache 3 times the number of items that fit in the container viewport.\n this._cachedItemsLen = Math.max(this._cachedItemsLen || 0, this._screenItemsLen * 3);\n this._averageHeight = averageHeight;\n\n if (config.reverse) {\n window.requestAnimationFrame(function () {\n if (isHoriz) {\n _this2._element.scrollLeft = scrollHeight;\n } else {\n _this2._element.scrollTop = scrollHeight;\n }\n });\n }\n\n return scrollHeight;\n }\n }, {\n key: '_computeScrollPadding',\n value: function _computeScrollPadding() {\n var config = this._config;\n var isHoriz = Boolean(config.horizontal);\n var isReverse = config.reverse;\n var styles = window.getComputedStyle(this._element);\n\n var padding = function padding(location) {\n var cssValue = styles.getPropertyValue('padding-' + location);\n return parseInt(cssValue, 10) || 0;\n };\n\n if (isHoriz && isReverse) {\n return {\n bottom: padding('left'),\n top: padding('right')\n };\n } else if (isHoriz) {\n return {\n bottom: padding('right'),\n top: padding('left')\n };\n } else if (isReverse) {\n return {\n bottom: padding('top'),\n top: padding('bottom')\n };\n } else {\n return {\n bottom: padding('bottom'),\n top: padding('top')\n };\n }\n }\n }, {\n key: '_getFrom',\n value: function _getFrom(scrollTop) {\n var i = 0;\n\n while (this._itemPositions[i] < scrollTop) {\n i++;\n }\n\n return i;\n }\n }, {\n key: '_getReverseFrom',\n value: function _getReverseFrom(scrollTop) {\n var i = this._config.total - 1;\n\n while (i > 0 && this._itemPositions[i] < scrollTop + this._containerSize) {\n i--;\n }\n\n return i;\n }\n }]);\n\n return HyperList;\n}();\n\nexports.default = HyperList;\nmodule.exports = exports['default'];\n\n},{}]},{},[1])(1)\n});\n","/*\n * SPDX-FileCopyrightText: 2024 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\n:host {\n display: block;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 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 Prop,\n Watch,\n} from '@stencil/core';\nimport Hyperlist from 'hyperlist';\nimport { renderDefaultItem } from '../tree-item/default-tree-item';\nimport {\n TreeContext,\n TreeItem,\n TreeItemContext,\n TreeItemVisual,\n TreeModel,\n UpdateCallback,\n} from './tree-model';\nimport { dropdownController } from '../dropdown/dropdown-controller';\n\n@Component({\n tag: 'ix-tree',\n styleUrl: 'tree.css',\n shadow: true,\n})\nexport class Tree {\n @Element() hostElement!: HTMLIxTreeElement;\n\n /**\n * Initial root element will not be rendered\n */\n @Prop() root!: string;\n\n /**\n * Tree model\n */\n @Prop() model: TreeModel<any> = {};\n\n /**\n * Render function of tree items\n */\n @Prop() renderItem?: <T = any>(\n index: number,\n data: T,\n dataList: Array<T>,\n context: TreeContext,\n update: (callback: UpdateCallback) => void\n ) => HTMLElement;\n\n /**\n * Selection and collapsed state management\n */\n @Prop({ mutable: true }) context: TreeContext = {};\n\n /**\n * Context changed\n */\n @Event() contextChange!: EventEmitter<TreeContext>;\n\n /**\n * Node toggled event\n * @since 1.5.0\n */\n @Event() nodeToggled!: EventEmitter<{ id: string; isExpaned: boolean }>;\n\n /**\n * Node clicked event\n * @since 1.5.0\n */\n @Event() nodeClicked!: EventEmitter<string>;\n\n /**\n * Emits removed nodes\n */\n @Event() nodeRemoved!: EventEmitter<any>;\n\n private hyperlist: Hyperlist;\n\n private toggleListener = new Map<HTMLElement, Function>();\n private itemClickListener = new Map<HTMLElement, Function>();\n private updates = new Map<string, UpdateCallback>();\n private observer!: MutationObserver;\n private hasFirstRender = false;\n\n private updatePadding(element: HTMLElement, item: TreeItemVisual<unknown>) {\n element.style.paddingLeft = item.level + 'rem';\n }\n\n private getVirtualizerOptions() {\n const list = this.buildTreeList(this.model[this.root]);\n\n let setToggleListener = (\n item: TreeItemVisual<any>,\n el: HTMLElement,\n index: number\n ) => {\n if (item.hasChildren && !this.toggleListener.has(el)) {\n const toggleCallback = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n const context = this.getContext(list[index].id);\n context.isExpanded = !context.isExpanded;\n this.nodeToggled.emit({ id: item.id, isExpaned: context.isExpanded });\n this.setContext(item.id, context);\n };\n el.addEventListener('toggle', toggleCallback);\n this.toggleListener.set(el, toggleCallback);\n }\n };\n\n return {\n itemHeight: 32,\n total: list.length,\n generate: (index: number) => {\n const item = list[index];\n\n const renderedTreeItem = this.hostElement.querySelector(\n `[data-tree-node-id=\"${item.id}\"]`\n ) as HTMLIxTreeItemElement;\n\n const context = this.getContext(item.id);\n\n if (renderedTreeItem) {\n renderedTreeItem.hasChildren = item.hasChildren;\n renderedTreeItem.context = { ...context };\n\n setToggleListener(item, renderedTreeItem, index);\n\n if (this.updates.has(item.id)) {\n const doUpdate = this.updates.get(item.id);\n\n if (doUpdate) {\n doUpdate(item, { ...this.context });\n }\n }\n\n this.updatePadding(renderedTreeItem, item);\n return renderedTreeItem;\n }\n\n const update = (callback: UpdateCallback) => {\n this.updates.set(item.id, callback);\n };\n\n let innerElement: HTMLElement | null = null;\n if (this.renderItem) {\n innerElement = this.renderItem(\n index,\n item,\n list,\n { ...this.context },\n update\n );\n }\n\n if (innerElement === null) {\n innerElement = renderDefaultItem(item, context, update);\n }\n\n const el = innerElement;\n el.setAttribute('data-tree-node-id', item.id);\n el.style.paddingRight = '1rem';\n this.updatePadding(el, item);\n\n if (!this.itemClickListener.has(el)) {\n const itemClickCallback = (event: Event) => {\n const path = event.composedPath();\n const treeIndex = path.indexOf(this.hostElement);\n const treePath = path.slice(0, treeIndex);\n const hasTrigger = dropdownController.pathIncludesTrigger(treePath);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (hasTrigger) {\n return;\n }\n\n Object.values(this.context).forEach((c) => (c.isSelected = false));\n const context = this.getContext(item.id);\n context.isSelected = true;\n this.setContext(item.id, context);\n this.nodeClicked.emit(item.id);\n };\n el.addEventListener('toggle', (event) => {\n event.preventDefault();\n });\n el.addEventListener('click', itemClickCallback);\n this.itemClickListener.set(el, itemClickCallback);\n }\n\n setToggleListener(item, el, index);\n\n return el;\n },\n };\n }\n\n private setContext(id: string, context: TreeItemContext) {\n this.context = {\n ...this.context,\n [id]: context,\n };\n\n this.contextChange.emit(this.context);\n }\n\n private getContext(id: string): TreeItemContext {\n if (!this.context) {\n return {\n isExpanded: false,\n isSelected: false,\n };\n }\n if (!this.context[id]) {\n this.context[id] = {\n isExpanded: false,\n isSelected: false,\n };\n }\n return this.context[id];\n }\n\n private buildTreeList(\n root: TreeItem<any>,\n level: number = 0\n ): TreeItemVisual<any>[] {\n const itemList: TreeItemVisual<any>[] = [];\n\n if (root?.hasChildren) {\n const newLevel = level + 1;\n root.children.forEach((id: string) => {\n const item = this.model[id];\n const context = this.getContext(id);\n itemList.push({ ...item, level });\n if (item.hasChildren && context.isExpanded) {\n itemList.push(...this.buildTreeList(item, newLevel));\n }\n });\n }\n\n return itemList;\n }\n\n componentDidLoad() {\n this.initList();\n\n this.observer = new MutationObserver((records) => {\n let removed: unknown[] = [];\n\n records.forEach((record) => {\n removed = [...removed, ...Array.from(record.removedNodes)];\n\n record.addedNodes.forEach((an) => {\n const index = removed.indexOf(an);\n if (index >= 0) {\n removed.splice(index, 1);\n }\n });\n });\n\n this.nodeRemoved.emit(removed);\n });\n\n this.observer.observe(this.hostElement, {\n childList: true,\n });\n }\n\n componentWillRender() {\n this.hasFirstRender = true;\n\n if (this.isListInitialized()) {\n this.refreshList();\n } else {\n this.initList();\n }\n }\n\n disconnectedCallback() {\n this.hyperlist?.destroy();\n this.observer?.disconnect();\n }\n\n @Watch('model')\n modelChange() {\n if (this.hasFirstRender && !this.isListInitialized()) {\n this.initList();\n }\n }\n\n private isListInitialized() {\n const itemPositions = this.hyperlist?._itemPositions;\n\n return (\n itemPositions !== undefined &&\n itemPositions.length &&\n !itemPositions?.some(\n (item: number) => item === undefined || Number.isNaN(item)\n )\n );\n }\n\n private refreshList() {\n if (this.hyperlist) {\n this.hyperlist.refresh(this.hostElement, this.getVirtualizerOptions());\n }\n }\n\n private initList() {\n if (!this.model) {\n return;\n }\n\n this.hyperlist?.destroy();\n const config = this.getVirtualizerOptions();\n this.hyperlist = new Hyperlist(this.hostElement, config);\n }\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"sNAAA,SAAUA,GAA6D,CAACC,EAAAC,QAAeF,GAAG,CAAyO,EAAnU,EAAqU,WAAqC,OAAO,WAAY,SAASG,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAER,GAAG,IAAIK,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,IAAIC,EAAE,mBAAmBC,GAASA,EAAQ,IAAIV,GAAGS,EAAE,OAAOA,EAAED,GAAG,GAAG,GAAGG,EAAE,OAAOA,EAAEH,GAAG,GAAG,IAAII,EAAE,IAAIC,MAAM,uBAAuBL,EAAE,KAAK,MAAMI,EAAEE,KAAK,mBAAmBF,CAAC,CAAC,IAAIG,EAAEV,EAAEG,GAAG,CAACN,QAAQ,IAAIE,EAAEI,GAAG,GAAGQ,KAAKD,EAAEb,SAAQ,SAASC,GAAG,IAAIE,EAAED,EAAEI,GAAG,GAAGL,GAAG,OAAOI,EAAEF,GAAGF,EAAE,GAAEY,EAAEA,EAAEb,QAAQC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAOD,EAAEG,GAAGN,OAAO,CAAC,IAAI,IAAIS,EAAE,mBAAmBD,GAASA,EAAQF,EAAE,EAAEA,EAAEF,EAAEW,OAAOT,IAAID,EAAED,EAAEE,IAAI,OAAOD,CAAC,CAAC,OAAOJ,CAAE,CAAxc,GAA4c,CAAC,EAAE,CAAC,SAASe,EAAQjB,EAAOC,GAKz1BiB,OAAOC,eAAelB,EAAS,aAAc,CAC3CmB,MAAO,OAGT,IAAIC,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMR,OAAQT,IAAK,CAAE,IAAIkB,EAAaD,EAAMjB,GAAIkB,EAAWC,WAAaD,EAAWC,YAAc,MAAOD,EAAWE,aAAe,KAAM,GAAI,UAAWF,EAAYA,EAAWG,SAAW,KAAMV,OAAOC,eAAeI,EAAQE,EAAWI,IAAKJ,EAAY,CAAE,CAAG,OAAO,SAAUK,EAAaC,EAAYC,GAAe,GAAID,EAAYT,EAAiBQ,EAAYG,UAAWF,GAAa,GAAIC,EAAaV,EAAiBQ,EAAaE,GAAc,OAAOF,CAAY,CAAG,CAA5hB,GAEnB,SAASI,EAAgBC,EAAKN,EAAKT,GAAS,GAAIS,KAAOM,EAAK,CAAEjB,OAAOC,eAAegB,EAAKN,EAAK,CAAET,MAAOA,EAAOM,WAAY,KAAMC,aAAc,KAAMC,SAAU,MAAQ,KAAQ,CAAEO,EAAIN,GAAOT,CAAM,CAAG,OAAOe,CAAI,CAE/M,SAASC,EAAgBC,EAAUP,GAAe,KAAMO,aAAoBP,GAAc,CAAE,MAAM,IAAIQ,UAAU,oCAAqC,CAAE,CAEvJ,IAAIC,EAAgB,CAClBC,MAAO,OACPC,OAAQ,QAGR,IAAIC,EAAW,SAASA,EAASC,GACjC,OAAOC,OAAOD,KAAWC,OAAOD,EAClC,EAGA,IAAIE,EAAW,cAAeC,SAASC,gBAAkB,SAAUC,EAASC,GAC1ED,EAAQE,UAAUC,IAAIF,EACxB,EAAI,SAAUD,EAASC,GACrB,IAAIG,EAAWJ,EAAQK,aAAa,UAAY,GAChDL,EAAQM,aAAa,QAASF,EAAW,IAAMH,EACjD,EAOA,IAAIM,EAAY,WACdlC,EAAakC,EAAW,KAAM,CAAC,CAC7B1B,IAAK,SACLT,MAAO,SAASoC,EAAOR,EAASS,GAC9B,OAAO,IAAIF,EAAUP,EAASS,EACpC,GAQK,CACD5B,IAAK,aACLT,MAAO,SAASsC,EAAWV,EAASW,GAClC,IAAK,IAAIpD,KAAKoD,EAAO,CACnB,GAAIX,EAAQW,MAAMpD,KAAOoD,EAAMpD,GAAI,CACjCyC,EAAQW,MAAMpD,GAAKoD,EAAMpD,EACnC,CACA,CACA,GACK,CACDsB,IAAK,sBACLT,MAAO,SAASwC,IAKd,IAAIC,EAAUf,SAASgB,cAAc,OACrC,IAAIC,EAAUjB,SAASgB,cAAc,OAIrCP,EAAUG,WAAWG,EAAS,CAAEG,SAAU,WAAYvB,OAAQ,MAAOwB,QAAS,IAC9EV,EAAUG,WAAWK,EAAS,CAAEtB,OAAQ,UAGxCoB,EAAQK,YAAYH,GAGpBjB,SAASqB,KAAKD,YAAYL,GAG1B,IAAIO,EAAmBL,EAAQM,aAG/BvB,SAASqB,KAAKG,YAAYT,GAE1B,OAAOO,CACb,KAGE,SAASb,EAAUP,EAASS,GAC1B,IAAIc,EAAQC,KAEZpC,EAAgBoC,KAAMjB,GAEtBiB,KAAKC,QAAU,GACfD,KAAKE,aAAe,KACpBF,KAAKG,kBAAoBpB,EAAUK,sBAEnCY,KAAKI,QAAQ5B,EAASS,GAEtB,IAAIoB,EAASL,KAAKC,QAGlB,IAAIK,EAAS,SAASA,IACpB,IAAIC,EAAYR,EAAMS,qBACtB,IAAIC,EAAcV,EAAMG,aAExBH,EAAMW,sBAAwBC,OAAOC,sBAAsBN,GAE3D,GAAIC,IAAcE,EAAa,CAC7B,MACR,CAEM,IAAII,EAAOJ,EAAcF,EAAYE,EAAc,EACnD,IAAKA,GAAeI,EAAO,GAAKA,EAAOd,EAAMe,eAAgB,CAC3D,IAAIC,EAAWhB,EAAMiB,eAErBjB,EAAMG,aAAeK,EAErB,GAAIQ,IAAa,cAAgBV,EAAOY,cAAgB,WAAY,CAClEZ,EAAOY,aACjB,CACA,CACA,EAEIX,GACJ,CAEEzD,EAAakC,EAAW,CAAC,CACvB1B,IAAK,UACLT,MAAO,SAASsE,IACdP,OAAOQ,qBAAqBnB,KAAKU,sBACvC,GACK,CACDrD,IAAK,UACLT,MAAO,SAASwD,EAAQ5B,EAASS,GAC/B,IAAImC,EAEJ1E,OAAO2E,OAAOrB,KAAKC,QAASlC,EAAekB,GAE3C,IAAKT,GAAWA,EAAQ8C,WAAa,EAAG,CACtC,MAAM,IAAIlF,MAAM,gDACxB,CAEM4D,KAAKuB,SAAW/C,EAEhB,IAAI6B,EAASL,KAAKC,QAElB,IAAIuB,EAAWxB,KAAKyB,WAAapB,EAAOmB,UAAYlD,SAASgB,cAAce,EAAOqB,iBAAmB,MAGrG,UAAWrB,EAAOsB,cAAgB,UAAW,CAC3C3B,KAAKC,QAAQ0B,YAAc,IACnC,CAEM,IAAKtB,EAAOuB,SAAU,CACpB,MAAM,IAAIxF,MAAM,uCACxB,CAEM,IAAK8B,EAASmC,EAAOwB,OAAQ,CAC3B,MAAM,IAAIzF,MAAM,kDACxB,CAEM,IAAK0F,MAAMC,QAAQ1B,EAAO2B,cAAgB9D,EAASmC,EAAO2B,YAAa,CACrE,MAAM,IAAI5F,MAAM,kFAAkF6F,OAC1G,MAAa,GAAI/D,EAASmC,EAAO2B,YAAa,CACtChC,KAAKkC,aAAeJ,MAAMzB,EAAOwB,OAAOM,KAAK9B,EAAO2B,WAC5D,KAAa,CACLhC,KAAKkC,aAAe7B,EAAO2B,UACnC,CAIMtF,OAAO0F,KAAKrE,GAAesE,QAAO,SAAUC,GAC1C,OAAOA,KAAQjC,CACvB,IAASkC,SAAQ,SAAUD,GACnB,IAAI1F,EAAQyD,EAAOiC,GACnB,IAAIE,EAAgBtE,EAAStB,GAE7B,GAAIA,UAAgBA,IAAU,iBAAmBA,IAAU,SAAU,CACnE,IAAI6F,EAAM,qBAAuBH,EAAO,+BACxC,MAAM,IAAIlG,MAAMqG,EAC1B,MAAe,GAAID,EAAe,CACxBnC,EAAOiC,GAAQ1F,EAAQ,IACjC,CACA,IAEM,IAAI8F,EAAUC,QAAQtC,EAAOuC,YAC7B,IAAIhG,EAAQyD,EAAOqC,EAAU,QAAU,UAEvC,GAAI9F,EAAO,CACT,IAAI4F,EAAgBtE,EAAStB,GAC7B,IAAIiG,EAAiBL,EAAgB,MAAQ5F,EAAMkG,OAAO,KAAO,IAEjE,IAAIC,EAAcP,EAAgB5F,EAAQoG,SAASpG,EAAMqG,QAAQ,OAAQ,IAAK,IAC9E,IAAIC,EAAYvC,OAAO+B,EAAU,aAAe,eAEhD,GAAIG,EAAgB,CAClB7C,KAAKmD,eAAiBD,EAAYH,EAAc,GAC1D,KAAe,CACL/C,KAAKmD,eAAiBjF,EAAStB,GAASA,EAAQmG,CAC1D,CACA,CAEM,IAAIK,EAAkB/C,EAAO+C,gBAC7B,IAAIC,EAAiBhD,EAAO2B,WAAa3B,EAAOwB,MAChD,IAAIjC,EAAmBI,KAAKG,kBAE5B,GAAIkD,EAAiBzD,EAAkB,CACrC0D,QAAQC,KAAK,CAAC,wCAAyC3D,EAAmB,SAAU,kDAAkD4D,KAAK,KACnJ,CAIM,IAAIC,EAAe,CACjBzF,MAAO,GAAKqC,EAAOrC,MACnBC,OAAQmF,EAAkBC,EAAiB,KAAO,GAAKhD,EAAOpC,OAC9DyF,SAAUN,EAAkB,OAAS,OACrC5D,SAAU,YAGZT,EAAUG,WAAWV,EAASiF,GAE9B,GAAIL,EAAiB,CACnBrE,EAAUG,WAAWmB,EAAO+C,gBAAiB,CAAEM,SAAU,QACjE,CAEM,IAAIC,GAAiBvC,EAAiB,CACpC3B,QAAS,IACTD,SAAU,YACT9B,EAAgB0D,EAAgBsB,EAAU,SAAW,QAAS,OAAQhF,EAAgB0D,EAAgBsB,EAAU,QAAU,SAAUW,EAAiB,MAAOjC,GAE/JrC,EAAUG,WAAWsC,EAAUmC,GAG/B,IAAK3D,KAAKyB,UAAW,CACnBjD,EAAQkB,YAAY8B,EAC5B,CAEM,IAAIoC,EAAU5D,KAAK6D,wBACnB7D,KAAK8D,qBAAuBF,EAAQG,OACpC/D,KAAKgE,kBAAoBJ,EAAQK,IAGjCjE,KAAKyB,UAAYD,EACjBxB,KAAKkE,cAAgBlE,KAAKmE,uBAG1BnE,KAAKoE,eAAiBpE,KAAKoE,gBAAkBtC,MAAMzB,EAAOwB,OAAOM,KAAK,GAGtEnC,KAAKqE,kBAAkB,GAGvBrE,KAAKgB,aAAahB,KAAKE,eAAiB,MAExC,UAAWG,EAAOY,cAAgB,WAAY,CAC5CZ,EAAOY,aACf,CACA,GACK,CACD5D,IAAK,UACLT,MAAO,SAAS0H,EAAQvI,GACtB,IAAIsE,EAASL,KAAKC,QAClB,IAAIsE,EAAOlE,EAAOuB,SAAS7F,GAC3B,IAAIkC,EAASsG,EAAKtG,OAElB,GAAIA,IAAWuG,WAAatG,EAASD,GAAS,CAC5CsG,EAAOA,EAAK/F,QAGZ,GAAIP,IAAW+B,KAAKkC,aAAanG,GAAI,CACnCiE,KAAKkC,aAAanG,GAAKkC,EACvB+B,KAAKqE,kBAAkBtI,GACvBiE,KAAKkE,cAAgBlE,KAAKmE,qBAAqBpI,EACzD,CACA,KAAa,CACLkC,EAAS+B,KAAKkC,aAAanG,EACnC,CAEM,IAAKwI,GAAQA,EAAKjD,WAAa,EAAG,CAChC,MAAM,IAAIlF,MAAM,kDAAoDL,EAC5E,CAEMsC,EAASkG,EAAMlE,EAAOoE,cAAgB,QAEtC,IAAIR,EAAMjE,KAAKoE,eAAerI,GAAKiE,KAAKgE,kBAExCjF,EAAUG,WAAWqF,EAAM7G,EAAgB,CACzC8B,SAAU,YACTa,EAAOuC,WAAa,OAAS,MAAOqB,EAAM,OAE7C,OAAOM,CACb,GACK,CACDlH,IAAK,qBACLT,MAAO,SAAS4D,IACd,IAAIH,EAASL,KAAKC,QAElB,UAAWI,EAAOqE,yBAA2B,WAAY,CACvD,OAAOrE,EAAOqE,wBACtB,CAEM,OAAO1E,KAAKuB,SAASlB,EAAOuC,WAAa,aAAe,YAC9D,GACK,CACDvF,IAAK,eACLT,MAAO,SAASoE,EAAa2D,GAC3B,IAAItE,EAASL,KAAKC,QAClB,IAAIzB,EAAUwB,KAAKuB,SACnB,IAAIhB,EAAYP,KAAKQ,qBACrB,IAAIqB,EAAQxB,EAAOwB,MAEnB,IAAI+C,EAAOvE,EAAOwE,QAAU7E,KAAK8E,gBAAgBvE,GAAaP,KAAK+E,SAASxE,GAAa,EAEzF,GAAIqE,EAAO,GAAKA,EAAO5E,KAAKgF,gBAAkB,EAAG,CAC/CJ,EAAO,CACf,CAEM,IAAKD,GAAS3E,KAAKiF,YAAcL,EAAM,CACrC,OAAO,KACf,CAEM5E,KAAKiF,UAAYL,EAEjB,IAAIM,EAAKN,EAAO5E,KAAKmF,gBAErB,GAAID,EAAKrD,GAASqD,EAAKlF,KAAKmF,gBAAkBtD,EAAO,CACnDqD,EAAKrD,CACb,CAIM,IAAIuD,EAAW/E,EAAOsB,YAAcrD,SAAS+G,yBAA2B,GAMvE,IAAI7D,EAAWxB,KAAKyB,UAGrB2D,EAAS/E,EAAOsB,YAAc,cAAgB,QAAQH,GAEtD,IAAK,IAAIzF,EAAI6I,EAAM7I,EAAImJ,EAAInJ,IAAK,CAC9B,IAAIuJ,EAAMtF,KAAKsE,QAAQvI,GAEvBqJ,EAAS/E,EAAOsB,YAAc,cAAgB,QAAQ2D,EAC9D,CAEM,GAAIjF,EAAOkF,WAAY,CACrB,OAAOlF,EAAOkF,WAAW/G,EAAS4G,EAC1C,CAEM5G,EAAQgH,UAAY,GACpBhH,EAAQkB,YAAY0F,EAC1B,GACK,CACD/H,IAAK,oBACLT,MAAO,SAASyH,IACd,IAAIO,EAAOa,UAAUjJ,OAAS,GAAKiJ,UAAU,KAAOjB,UAAYiB,UAAU,GAAK,EAE/E,IAAIpF,EAASL,KAAKC,QAClB,IAAI4B,EAAQxB,EAAOwB,MACnB,IAAIgD,EAAUxE,EAAOwE,QAErB,GAAID,EAAO,IAAMC,EAAS,CACxBD,EAAO,CACf,CAEM,IAAK,IAAI7I,EAAI6I,EAAM7I,EAAI8F,EAAO9F,IAAK,CACjC,GAAI8I,EAAS,CACX,GAAI9I,IAAM,EAAG,CACXiE,KAAKoE,eAAe,GAAKpE,KAAKkE,cAAgBlE,KAAKkC,aAAa,EAC5E,KAAiB,CACLlC,KAAKoE,eAAerI,GAAKiE,KAAKoE,eAAerI,EAAI,GAAKiE,KAAKkC,aAAanG,EACpF,CACA,KAAe,CACLiE,KAAKoE,eAAerI,GAAKiE,KAAKkC,aAAanG,EAAI,GAAKiE,KAAKoE,eAAerI,EAAI,EACtF,CACA,CACA,GACK,CACDsB,IAAK,uBACLT,MAAO,SAASuH,IACd,IAAIuB,EACAC,EAAS3F,KAEb,IAAIK,EAASL,KAAKC,QAClB,IAAIyC,EAAUC,QAAQtC,EAAOuC,YAC7B,IAAIf,EAAQxB,EAAOwB,MACnB,IAAI+D,EAAe5F,KAAKkC,aAAa2D,QAAO,SAAU1J,EAAG2J,GACvD,OAAO3J,EAAI2J,CACnB,GAAS,GAAK9F,KAAK8D,qBAAuB9D,KAAKgE,kBAEzCjF,EAAUG,WAAWc,KAAKyB,WAAYiE,EAAyB,CAC7DjG,QAAS,EACTD,SAAU,WACVyE,IAAK,OACJvG,EAAgBgI,EAAwBhD,EAAU,SAAW,QAAS,OAAQhF,EAAgBgI,EAAwBhD,EAAU,QAAU,SAAUkD,EAAe,MAAOF,IAG7K,IAAIK,EAAoB/F,KAAKkC,aAAaY,MAAM,GAAGkD,MAAK,SAAU7J,EAAG2J,GACnE,OAAO3J,EAAI2J,CACnB,IACM,IAAIG,EAASC,KAAKC,MAAMtE,EAAQ,GAChC,IAAIuE,EAAgBvE,EAAQ,IAAM,GAAKkE,EAAkBE,GAAUF,EAAkBE,EAAS,IAAM,EAAIF,EAAkBE,GAE1H,IAAII,EAAa3D,EAAU,cAAgB,eAC3C,IAAIlE,EAAU6B,EAAO+C,gBAAkB/C,EAAO+C,gBAAkBpD,KAAKuB,SACrE,IAAI+E,EAAkB9H,EAAQ6H,GAAc7H,EAAQ6H,GAAcrG,KAAKmD,eACvEnD,KAAKgF,gBAAkBkB,KAAKK,KAAKD,EAAkBF,GACnDpG,KAAKmD,eAAiBmD,EAGtBtG,KAAKmF,gBAAkBe,KAAKM,IAAIxG,KAAKmF,iBAAmB,EAAGnF,KAAKgF,gBAAkB,GAClFhF,KAAKc,eAAiBsF,EAEtB,GAAI/F,EAAOwE,QAAS,CAClBlE,OAAOC,uBAAsB,WAC3B,GAAI8B,EAAS,CACXiD,EAAOpE,SAASkF,WAAab,CACzC,KAAiB,CACLD,EAAOpE,SAAShB,UAAYqF,CACxC,CACA,GACA,CAEM,OAAOA,CACb,GACK,CACDvI,IAAK,wBACLT,MAAO,SAASiH,IACd,IAAIxD,EAASL,KAAKC,QAClB,IAAIyC,EAAUC,QAAQtC,EAAOuC,YAC7B,IAAI8D,EAAYrG,EAAOwE,QACvB,IAAI8B,EAAShG,OAAOiG,iBAAiB5G,KAAKuB,UAE1C,IAAIqC,EAAU,SAASA,EAAQiD,GAC7B,IAAIC,EAAWH,EAAOI,iBAAiB,WAAaF,GACpD,OAAO7D,SAAS8D,EAAU,KAAO,CACzC,EAEM,GAAIpE,GAAWgE,EAAW,CACxB,MAAO,CACL3C,OAAQH,EAAQ,QAChBK,IAAKL,EAAQ,SAEvB,MAAa,GAAIlB,EAAS,CAClB,MAAO,CACLqB,OAAQH,EAAQ,SAChBK,IAAKL,EAAQ,QAEvB,MAAa,GAAI8C,EAAW,CACpB,MAAO,CACL3C,OAAQH,EAAQ,OAChBK,IAAKL,EAAQ,UAEvB,KAAa,CACL,MAAO,CACLG,OAAQH,EAAQ,UAChBK,IAAKL,EAAQ,OAEvB,CACA,GACK,CACDvG,IAAK,WACLT,MAAO,SAASmI,EAASxE,GACvB,IAAIxE,EAAI,EAER,MAAOiE,KAAKoE,eAAerI,GAAKwE,EAAW,CACzCxE,GACR,CAEM,OAAOA,CACb,GACK,CACDsB,IAAK,kBACLT,MAAO,SAASkI,EAAgBvE,GAC9B,IAAIxE,EAAIiE,KAAKC,QAAQ4B,MAAQ,EAE7B,MAAO9F,EAAI,GAAKiE,KAAKoE,eAAerI,GAAKwE,EAAYP,KAAKmD,eAAgB,CACxEpH,GACR,CAEM,OAAOA,CACb,KAGE,OAAOgD,CACT,CAtcgB,GAwchBtD,EAAQuL,QAAUjI,EAClBvD,EAAOC,QAAUA,EAAQ,UAEzB,EAAE,KAAK,GAAG,CAAC,GAhfsW,CAgflW,EACf,G,2BCjfA,MAAMwL,EAAU,uBAChB,MAAAC,EAAeD,E,MCmCFE,EAAI,M,iMAqDPnH,KAAAoH,eAAiB,IAAIC,IACrBrH,KAAAsH,kBAAoB,IAAID,IACxBrH,KAAAuH,QAAU,IAAIF,IAEdrH,KAAAwH,eAAiB,M,+BA9CO,G,uCAgBgB,E,CAgCxC,aAAAC,CAAcjJ,EAAsB+F,GAC1C/F,EAAQW,MAAMuI,YAAcnD,EAAKoD,MAAQ,K,CAGnC,qBAAAC,GACN,MAAMC,EAAO7H,KAAK8H,cAAc9H,KAAK+H,MAAM/H,KAAKgI,OAEhD,IAAIC,EAAoB,CACtB1D,EACA2D,EACAC,KAEA,GAAI5D,EAAK6D,cAAgBpI,KAAKoH,eAAeiB,IAAIH,GAAK,CACpD,MAAMI,EAAkB3M,IACtBA,EAAE4M,iBACF5M,EAAE6M,kBACF,MAAMC,EAAUzI,KAAK0I,WAAWb,EAAKM,GAAOQ,IAC5CF,EAAQG,YAAcH,EAAQG,WAC9B5I,KAAK6I,YAAYC,KAAK,CAAEH,GAAIpE,EAAKoE,GAAII,UAAWN,EAAQG,aACxD5I,KAAKgJ,WAAWzE,EAAKoE,GAAIF,EAAQ,EAEnCP,EAAGe,iBAAiB,SAAUX,GAC9BtI,KAAKoH,eAAe8B,IAAIhB,EAAII,E,GAIhC,MAAO,CACLtG,WAAY,GACZH,MAAOgG,EAAKrL,OACZoF,SAAWuG,IACT,MAAM5D,EAAOsD,EAAKM,GAElB,MAAMgB,EAAmBnJ,KAAKoJ,YAAYC,cACxC,uBAAuB9E,EAAKoE,QAG9B,MAAMF,EAAUzI,KAAK0I,WAAWnE,EAAKoE,IAErC,GAAIQ,EAAkB,CACpBA,EAAiBf,YAAc7D,EAAK6D,YACpCe,EAAiBV,QAAO/L,OAAA2E,OAAA,GAAQoH,GAEhCR,EAAkB1D,EAAM4E,EAAkBhB,GAE1C,GAAInI,KAAKuH,QAAQc,IAAI9D,EAAKoE,IAAK,CAC7B,MAAMW,EAAWtJ,KAAKuH,QAAQgC,IAAIhF,EAAKoE,IAEvC,GAAIW,EAAU,CACZA,EAAS/E,EAAI7H,OAAA2E,OAAA,GAAOrB,KAAKyI,S,EAI7BzI,KAAKyH,cAAc0B,EAAkB5E,GACrC,OAAO4E,C,CAGT,MAAMK,EAAUC,IACdzJ,KAAKuH,QAAQ2B,IAAI3E,EAAKoE,GAAIc,EAAS,EAGrC,IAAIC,EAAmC,KACvC,GAAI1J,KAAK2J,WAAY,CACnBD,EAAe1J,KAAK2J,WAClBxB,EACA5D,EACAsD,EAAInL,OAAA2E,OAAA,GACCrB,KAAKyI,SACVe,E,CAIJ,GAAIE,IAAiB,KAAM,CACzBA,EAAeE,EAAkBrF,EAAMkE,EAASe,E,CAGlD,MAAMtB,EAAKwB,EACXxB,EAAGpJ,aAAa,oBAAqByF,EAAKoE,IAC1CT,EAAG/I,MAAM0K,aAAe,OACxB7J,KAAKyH,cAAcS,EAAI3D,GAEvB,IAAKvE,KAAKsH,kBAAkBe,IAAIH,GAAK,CACnC,MAAM4B,EAAqBC,IACzB,MAAMC,EAAOD,EAAME,eACnB,MAAMC,EAAYF,EAAKG,QAAQnK,KAAKoJ,aACpC,MAAMgB,EAAWJ,EAAKlH,MAAM,EAAGoH,GAC/B,MAAMG,EAAaC,EAAmBC,oBAAoBH,GAE1D,GAAIL,EAAMS,iBAAkB,CAC1B,M,CAGF,GAAIH,EAAY,CACd,M,CAGF3N,OAAO+N,OAAOzK,KAAKyI,SAASlG,SAASvG,GAAOA,EAAE0O,WAAa,QAC3D,MAAMjC,EAAUzI,KAAK0I,WAAWnE,EAAKoE,IACrCF,EAAQiC,WAAa,KACrB1K,KAAKgJ,WAAWzE,EAAKoE,GAAIF,GACzBzI,KAAK2K,YAAY7B,KAAKvE,EAAKoE,GAAG,EAEhCT,EAAGe,iBAAiB,UAAWc,IAC7BA,EAAMxB,gBAAgB,IAExBL,EAAGe,iBAAiB,QAASa,GAC7B9J,KAAKsH,kBAAkB4B,IAAIhB,EAAI4B,E,CAGjC7B,EAAkB1D,EAAM2D,EAAIC,GAE5B,OAAOD,CAAE,E,CAKP,UAAAc,CAAWL,EAAYF,GAC7BzI,KAAKyI,QAAO/L,OAAA2E,OAAA3E,OAAA2E,OAAA,GACPrB,KAAKyI,SAAO,CACfE,CAACA,GAAKF,IAGRzI,KAAK4K,cAAc9B,KAAK9I,KAAKyI,Q,CAGvB,UAAAC,CAAWC,GACjB,IAAK3I,KAAKyI,QAAS,CACjB,MAAO,CACLG,WAAY,MACZ8B,WAAY,M,CAGhB,IAAK1K,KAAKyI,QAAQE,GAAK,CACrB3I,KAAKyI,QAAQE,GAAM,CACjBC,WAAY,MACZ8B,WAAY,M,CAGhB,OAAO1K,KAAKyI,QAAQE,E,CAGd,aAAAb,CACNE,EACAL,EAAgB,GAEhB,MAAMkD,EAAkC,GAExC,GAAI7C,IAAI,MAAJA,SAAI,SAAJA,EAAMI,YAAa,CACrB,MAAM0C,EAAWnD,EAAQ,EACzBK,EAAK+C,SAASxI,SAASoG,IACrB,MAAMpE,EAAOvE,KAAK+H,MAAMY,GACxB,MAAMF,EAAUzI,KAAK0I,WAAWC,GAChCkC,EAASG,KAAItO,OAAA2E,OAAA3E,OAAA2E,OAAA,GAAMkD,GAAI,CAAEoD,WACzB,GAAIpD,EAAK6D,aAAeK,EAAQG,WAAY,CAC1CiC,EAASG,QAAQhL,KAAK8H,cAAcvD,EAAMuG,G,KAKhD,OAAOD,C,CAGT,gBAAAI,GACEjL,KAAKkL,WAELlL,KAAKmL,SAAW,IAAIC,kBAAkBC,IACpC,IAAIC,EAAqB,GAEzBD,EAAQ9I,SAASgJ,IACfD,EAAU,IAAIA,KAAYxJ,MAAM8C,KAAK2G,EAAOC,eAE5CD,EAAOE,WAAWlJ,SAASmJ,IACzB,MAAMvD,EAAQmD,EAAQnB,QAAQuB,GAC9B,GAAIvD,GAAS,EAAG,CACdmD,EAAQK,OAAOxD,EAAO,E,IAExB,IAGJnI,KAAK4L,YAAY9C,KAAKwC,EAAQ,IAGhCtL,KAAKmL,SAASU,QAAQ7L,KAAKoJ,YAAa,CACtC0C,UAAW,M,CAIf,mBAAAC,GACE/L,KAAKwH,eAAiB,KAEtB,GAAIxH,KAAKgM,oBAAqB,CAC5BhM,KAAKiM,a,KACA,CACLjM,KAAKkL,U,EAIT,oBAAAgB,G,SACEC,EAAAnM,KAAKoM,aAAS,MAAAD,SAAA,SAAAA,EAAEjL,WAChBmL,EAAArM,KAAKmL,YAAQ,MAAAkB,SAAA,SAAAA,EAAEC,Y,CAIjB,WAAAC,GACE,GAAIvM,KAAKwH,iBAAmBxH,KAAKgM,oBAAqB,CACpDhM,KAAKkL,U,EAID,iBAAAc,G,MACN,MAAMQ,GAAgBL,EAAAnM,KAAKoM,aAAS,MAAAD,SAAA,SAAAA,EAAE/H,eAEtC,OACEoI,IAAkBhI,WAClBgI,EAAchQ,UACbgQ,IAAa,MAAbA,SAAa,SAAbA,EAAeC,MACblI,GAAiBA,IAASC,WAAapG,OAAOsO,MAAMnI,K,CAKnD,WAAA0H,GACN,GAAIjM,KAAKoM,UAAW,CAClBpM,KAAKoM,UAAUhM,QAAQJ,KAAKoJ,YAAapJ,KAAK4H,wB,EAI1C,QAAAsD,G,MACN,IAAKlL,KAAK+H,MAAO,CACf,M,EAGFoE,EAAAnM,KAAKoM,aAAS,MAAAD,SAAA,SAAAA,EAAEjL,UAChB,MAAMb,EAASL,KAAK4H,wBACpB5H,KAAKoM,UAAY,IAAIO,EAAU3M,KAAKoJ,YAAa/I,E,CAGnD,MAAAC,GACE,OACEsM,EAACC,EAAI,CAAAxP,IAAA,4CACHuP,EAAA,QAAAvP,IAAA,6C"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as o}from"./p-5806df2b.js";import{A as r}from"./p-3c668c0e.js";import{O as n}from"./p-9d5d4948.js";import{c as h}from"./p-e898862b.js";import{H as l}from"./p-f97a15c4.js";import{m as a}from"./p-ce563a48.js";import{a as d}from"./p-5fe87e71.js";import"./p-178ce002.js";const c=":host{display:inline-block;position:relative;min-height:2rem;height:auto;border-radius:var(--theme-input--border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .d-none{display:none}:host .select{position:relative;display:flex;align-items:center;width:100%;background-color:var(--theme-input--background);border:var(--theme-input--border-thickness) solid var(--theme-input--border-color);border-radius:var(--theme-input--border-radius);padding:0 0 0 0.5rem;box-shadow:var(--theme-inset-shadow-1) !important}:host .select:not(.disabled):not(:disabled){cursor:pointer}:host .select:not(.disabled):not(:disabled):hover{background-color:var(--theme-input--background--hover);border-color:var(--theme-input--border-color--hover)}:host .select:focus-within{background-color:var(--theme-input--background--focus);border-color:var(--theme-input--border-color--focus);outline:1px solid #119fff;outline-offset:var(--theme-input--focus--outline-offset)}:host .select.readonly,:host .select.disabled{box-shadow:none !important;border:none;border-radius:0;cursor:pointer}:host .select.readonly,:host .select.readonly:hover,:host .select.readonly:active,:host .select.disabled,:host .select.disabled:hover,:host .select.disabled:active{background-color:transparent !important}:host .select.readonly:focus,:host .select.readonly:focus-within,:host .select.readonly:focus-visible,:host .select.disabled:focus,:host .select.disabled:focus-within,:host .select.disabled:focus-visible{outline:none}:host .select.readonly input:focus,:host .select.readonly input:focus-visible,:host .select.disabled input:focus,:host .select.disabled input:focus-visible{outline:none}:host .select.disabled{border-bottom:var(--theme-input--border-thickness) solid var(--theme-color-weak-bdr)}:host .select.disabled input{color:var(--theme-color-weak-text)}:host .select.readonly{border-bottom:var(--theme-input--border-thickness) solid var(--theme-color-soft-bdr)}:host .select.readonly input{color:var(--theme-color-std-text)}:host .hidden{display:none !important}:host .trigger{display:flex;align-items:center;flex-grow:1;height:100%}:host .input-container{display:flex;position:relative;align-items:flex-start;width:100%;height:100%}:host .input-container .chips{position:relative;display:flex;align-items:center;flex-wrap:wrap;height:100%;max-height:3.5rem;flex-grow:1;overflow-y:auto}:host .input-container .chips>ix-filter-chip{margin:0.1rem}:host .input-container ix-icon-button{height:1.875rem;width:1.875rem;min-height:1.875rem;min-width:1.875rem}:host .input-container input{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text);background:transparent;height:1.75rem;width:100%}:host .input-container input,:host .input-container input:hover,:host .input-container input:focus-visible{border:none;outline:none}:host .input-container input::-moz-placeholder{color:var(--theme-input-select-icon--color)}:host .input-container input::placeholder{color:var(--theme-input-select-icon--color)}:host .input-container input.hide-placeholder::-moz-placeholder{opacity:0}:host .input-container input.hide-placeholder::placeholder{opacity:0}:host .dropdown-visible{--ix-icon-button-color:var(--theme-color-dynamic--hover)}:host .add-item{display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%}:host .select-list-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;height:2rem;color:var(--theme-select-list-item-hint--color);margin:0 0.5rem 0 1rem}:host(.ix-info:not(.disabled):not(:disabled):not([disabled])) .select{border-color:var(--theme-input--border-color--info)}:host(.ix-info:not(.disabled):not(:disabled):not([disabled])) .select:hover{border-color:var(--theme-input--border-color--info--hover) !important}:host(.ix-info:not(.disabled):not(:disabled):not([disabled])) .select:active{border-color:var(--theme-input--border-color--info--active) !important}:host(.ix-warning:not(.disabled):not(:disabled):not([disabled])) .select{border-color:var(--theme-input--border-color--warning)}:host(.ix-warning:not(.disabled):not(:disabled):not([disabled])) .select:hover{border-color:var(--theme-input--border-color--warning--hover) !important}:host(.ix-warning:not(.disabled):not(:disabled):not([disabled])) .select:active{border-color:var(--theme-input--border-color--warning--active) !important}:host([class*=ix-invalid]:not(.disabled):not(:disabled):not([disabled])) .select,:host(.ix-invalid--required:not(.disabled):not(:disabled):not([disabled])) .select{border-color:var(--theme-input--border-color--invalid);background-color:var(--theme-input--background--invalid);box-shadow:none}:host([class*=ix-invalid]:not(.disabled):not(:disabled):not([disabled])) .select:hover,:host(.ix-invalid--required:not(.disabled):not(:disabled):not([disabled])) .select:hover{border-color:var(--theme-input--border-color--invalid--hover) !important}:host([class*=ix-invalid]:not(.disabled):not(:disabled):not([disabled])) .select:active,:host(.ix-invalid--required:not(.disabled):not(:disabled):not([disabled])) .select:active{border-color:var(--theme-input--border-color--invalid--active) !important}";const u=c;var f=undefined&&undefined.__decorate||function(t,i,e,s){var o=arguments.length,r=o<3?i:s===null?s=Object.getOwnPropertyDescriptor(i,e):s,n;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)if(n=t[h])r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r;return o>3&&r&&Object.defineProperty(i,e,r),r};const b=class{constructor(e){t(this,e);this.valueChange=i(this,"valueChange",7);this.itemSelectionChange=i(this,"itemSelectionChange",7);this.inputChange=i(this,"inputChange",7);this.addItem=i(this,"addItem",7);this.ixBlur=i(this,"ixBlur",7);if(e.$hostElement$["s-ei"]){this.formInternals=e.$hostElement$["s-ei"]}else{this.formInternals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.formInternals}this.dropdownWrapperRef=a();this.dropdownAnchor=a();this.itemObserver=h((()=>{if(!this.arrowFocusController){return}this.arrowFocusController.items=this.visibleNonShadowItems}));this.focusControllerCallbackBind=this.focusDropdownItem.bind(this);this.name=undefined;this.required=false;this.label=undefined;this.warningText=undefined;this.infoText=undefined;this.invalidText=undefined;this.validText=undefined;this.helperText=undefined;this.showTextAsTooltip=undefined;this.selectedIndices=undefined;this.value=[];this.allowClear=false;this.mode="single";this.editable=false;this.disabled=false;this.readonly=false;this.i18nPlaceholder="Select an option";this.i18nPlaceholderEditable="Type of select option";this.i18nSelectListHeader="Select an option";this.i18nNoMatches="No matches";this.hideListHeader=false;this.dropdownShow=false;this.selectedLabels=[];this.isDropdownEmpty=false;this.navigationItem=undefined;this.inputFilterText="";this.inputValue="";this.isInvalid=false;this.isValid=false;this.isInfo=false;this.isWarning=false}get nonShadowItems(){return Array.from(this.hostElement.querySelectorAll("ix-select-item"))}get visibleNonShadowItems(){return this.nonShadowItems.filter((t=>!t.classList.contains("d-none")))}get shadowItems(){return Array.from(this.hostElement.shadowRoot.querySelectorAll("ix-select-item"))}get visibleShadowItems(){return this.shadowItems.filter((t=>!t.classList.contains("d-none")))}get items(){return[...this.nonShadowItems,...this.shadowItems]}get visibleItems(){return this.items.filter((t=>!t.classList.contains("d-none")))}get selectedItems(){return this.items.filter((t=>t.selected))}get addItemButton(){return this.hostElement.shadowRoot.querySelector(".add-item")}get isSingleMode(){return this.mode==="single"}get isMultipleMode(){return this.mode==="multiple"}get isEveryDropdownItemHidden(){return this.items.every((t=>t.classList.contains("d-none")))}watchSelectedIndices(t){this.value=t;this.updateSelection()}watchValue(t){this.selectedIndices=t;this.updateSelection()}watchDropdownShow(t){if(t){this.arrowFocusController=new r(this.visibleNonShadowItems,this.dropdownRef,this.focusControllerCallbackBind);this.arrowFocusController.wrap=!this.editable;this.itemObserver.observe(this.dropdownRef,{childList:true,subtree:true})}else{this.cleanupResources()}}cleanupResources(){var t,i;(t=this.arrowFocusController)===null||t===void 0?void 0:t.disconnect();this.arrowFocusController=undefined;(i=this.itemObserver)===null||i===void 0?void 0:i.disconnect()}onItemClicked(t){const i=t.detail;this.itemClick(i)}async updateFormInternalValue(t){if(Array.isArray(t)){this.formInternals.setFormValue(t.join(","));return}this.formInternals.setFormValue(t)}async hasValidValue(){return this.required&&!!this.hasValue()}hasValue(){if(Array.isArray(this.value)){return!!this.value.length}return!!this.value}focusDropdownItem(t){var i,e;this.navigationItem=null;if(t<this.visibleNonShadowItems.length){const s=(e=(i=this.visibleNonShadowItems[t])===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.querySelector("ix-dropdown-item");if(!s){return}requestAnimationFrame((()=>{var t,i;(i=(t=s===null||s===void 0?void 0:s.shadowRoot)===null||t===void 0?void 0:t.querySelector("button"))===null||i===void 0?void 0:i.focus()}))}}itemClick(t){const i=this.value;const e=this.toggleValue(t);this.value=e;const s=this.emitValueChange(e);if(s){this.value=i;return}this.updateSelection()}emitAddItem(t){if(t===undefined||t.trim()===""){return false}const{defaultPrevented:i}=this.addItem.emit(t);if(i){return true}const e=document.createElement("ix-select-item");e.value=t;e.label=t;this.customItemsContainerRef.appendChild(e);this.clearInput();this.itemClick(t);return false}toggleValue(t){if(!this.isMultipleMode){return t}if(!this.value){return[t]}let i=this.value;if(!Array.isArray(i)){i=[i]}if(i.includes(t)){return i.filter((i=>i!==t))}else{return[...i,t]}}updateSelection(){var t;let i=[];if(this.value){i=Array.isArray(this.value)?[...this.value]:[this.value]}this.items.forEach((t=>{t.selected=i.some((i=>{if(typeof i!==typeof t.value){return i.toString()===t.value.toString()}else{return i===t.value}}))}));this.selectedLabels=this.selectedItems.map((t=>t.label));if(((t=this.selectedLabels)===null||t===void 0?void 0:t.length)&&this.isSingleMode){this.inputValue=this.selectedLabels[0]}else{this.inputValue=""}this.inputRef&&(this.inputRef.value=this.inputValue)}emitValueChange(t){const{defaultPrevented:i}=this.valueChange.emit(t);if(i){return true}if(!t){this.itemSelectionChange.emit(null)}else{this.itemSelectionChange.emit(Array.isArray(t)?t:[t])}this.updateFormInternalValue(t);return false}componentDidLoad(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.addEventListener("input",(()=>{var t;this.dropdownShow=true;this.inputChange.emit((t=this.inputRef)===null||t===void 0?void 0:t.value)}))}componentWillLoad(){if(this.selectedIndices&&!this.value){this.value=this.selectedIndices}this.updateSelection();this.updateFormInternalValue(this.value)}onLabelChange(t){t.preventDefault();t.stopImmediatePropagation();this.updateSelection()}disconnectedCallback(){this.cleanupResources()}itemExists(t){return this.items.find((i=>i.label===t))}dropdownVisibilityChanged(t){var i,e;this.dropdownShow=t.detail;if(t.detail){(i=this.inputRef)===null||i===void 0?void 0:i.focus();(e=this.inputRef)===null||e===void 0?void 0:e.select();this.removeHiddenFromItems();this.isDropdownEmpty=this.isEveryDropdownItemHidden}else{this.navigationItem=null;this.updateSelection();this.inputFilterText=""}}async onKeyDown(t){if(t.code==="ArrowDown"||t.code==="ArrowUp"){await this.onArrowNavigation(t,t.code)}if(!this.dropdownShow){return}if(t.code==="Enter"||t.code==="NumpadEnter"){await this.onEnterNavigation(t.target)}if(t.code==="Escape"){this.dropdownShow=false}}async onEnterNavigation(t){if(this.isMultipleMode){return}if(!this.itemExists(this.inputFilterText.trim())&&!this.itemExists(t===null||t===void 0?void 0:t.label)){if(this.editable){const t=this.emitAddItem(this.inputFilterText.trim());if(t){return}}}this.dropdownShow=false;this.updateSelection()}async onArrowNavigation(t,i){if(t.defaultPrevented){return}t.preventDefault();t.stopPropagation();this.dropdownShow=true;if(!this.navigationItem&&document.activeElement===this.hostElement){if(this.visibleItems.length){this.applyFocusTo(this.visibleItems.shift())}else if(this.isAddItemVisible()){this.focusAddItemButton()}return}const e=i==="ArrowUp";const s=document.activeElement?this.visibleNonShadowItems.indexOf(document.activeElement):-1;if(s===0){if(!this.visibleShadowItems.length&&this.isAddItemVisible()){this.focusAddItemButton()}else{this.applyFocusTo(this.visibleShadowItems.pop())}return}else if(s!==-1&&s===this.visibleNonShadowItems.length-1){if(this.visibleShadowItems.length){this.applyFocusTo(this.visibleShadowItems.shift())}else if(this.isAddItemVisible()){this.focusAddItemButton()}return}if(!this.navigationItem){return}if(this.isAddItemVisible()&&this.addItemRef.contains(await this.navigationItem.getDropdownItemElement())){if(e){this.applyFocusTo(this.visibleItems.pop())}else{if(this.visibleItems.length){this.applyFocusTo(this.visibleItems.shift())}}return}const o=this.visibleShadowItems.indexOf(this.navigationItem);if(e){if(o===0){if(this.visibleNonShadowItems.length){this.applyFocusTo(this.visibleNonShadowItems.pop())}else if(this.isAddItemVisible()){this.focusAddItemButton()}}else{this.applyFocusTo(this.visibleShadowItems[o-1])}}else{if(o===this.visibleShadowItems.length-1){if(this.isAddItemVisible()){this.focusAddItemButton()}else{this.applyFocusTo(this.visibleItems.shift())}}else{this.applyFocusTo(this.visibleShadowItems[o+1])}}}applyFocusTo(t){if(!t){return}this.navigationItem=t;setTimeout((()=>{var i,e,s,o;(o=(s=(e=(i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector("ix-dropdown-item"))===null||e===void 0?void 0:e.shadowRoot)===null||s===void 0?void 0:s.querySelector("button"))===null||o===void 0?void 0:o.focus()}))}focusAddItemButton(){var t,i;if(this.addItemButton){(i=(t=this.addItemButton.shadowRoot)===null||t===void 0?void 0:t.querySelector("button"))===null||i===void 0?void 0:i.focus();this.navigationItem=this.addItemRef}}filterItemsWithTypeahead(){var t;this.inputFilterText=((t=this.inputRef)===null||t===void 0?void 0:t.value)||"";if(this.isSingleMode&&this.inputFilterText===this.selectedLabels[0]){return}if(this.inputFilterText){this.items.forEach((t=>{t.classList.remove("d-none");if(!t.label.toLowerCase().includes(this.inputFilterText.toLowerCase())){t.classList.add("d-none")}}))}else{this.removeHiddenFromItems()}if(this.arrowFocusController){this.arrowFocusController.items=this.visibleNonShadowItems}this.isDropdownEmpty=this.isEveryDropdownItemHidden}removeHiddenFromItems(){this.items.forEach((t=>{t.classList.remove("d-none")}))}clearInput(){if(this.inputRef){this.inputRef.value=""}this.inputFilterText=""}clear(){this.clearInput();this.selectedLabels=[];this.value=[];this.emitValueChange([]);this.dropdownShow=false}onInputBlur(t){this.ixBlur.emit();if(this.editable){return}if(this.isSingleMode){return}const i=t.target;if(!this.dropdownShow&&this.mode!=="multiple"){i.value=this.selectedLabels.toString()}}placeholderValue(){if(this.disabled){return""}if(this.readonly){return""}if(this.editable){return this.i18nPlaceholderEditable}return this.i18nPlaceholder}isAddItemVisible(){return!this.itemExists(this.inputFilterText)&&this.editable&&this.inputFilterText}onValidationChange({isInvalid:t,isInvalidByRequired:i,isValid:e,isInfo:s,isWarning:o}){this.isInvalid=t||i;this.isValid=e;this.isWarning=o;this.isInfo=s}async getAssociatedFormElement(){return this.formInternals.form}getNativeInputElement(){return Promise.resolve(this.inputRef)}async focusInput(){return(await this.getNativeInputElement()).focus()}render(){var t,i,o,r;return e(s,{key:"99abe58329d0fcd9911caacef49b66274489814f","aria-disabled":d(this.disabled),class:{disabled:this.disabled}},e("ix-field-wrapper",{key:"89c8de8e9f35f0c5183be8dcd8e6b891016f6ef3",required:this.required,label:this.label,helperText:this.helperText,invalidText:this.invalidText,infoText:this.infoText,warningText:this.warningText,validText:this.validText,showTextAsTooltip:this.showTextAsTooltip,isInvalid:this.isInvalid,isValid:this.isValid,isInfo:this.isInfo,isWarning:this.isWarning,controlRef:this.inputRef},e("div",{key:"e103c45c3df1dbf9f4dd23e2d062a39b39d6b995",class:{select:true,disabled:this.disabled,readonly:this.readonly},ref:t=>{this.dropdownAnchor(t);if(!this.editable)this.dropdownWrapperRef(t)}},e("div",{key:"2bafbbf9195ac7303c2e1fb2331481cf3af078ee",class:"input-container"},e("div",{key:"c69296e322974fd1659d9794bc4469c7faab6ba0",class:"chips"},this.isMultipleMode?(t=this.selectedItems)===null||t===void 0?void 0:t.map((t=>e("ix-filter-chip",{disabled:this.disabled||this.readonly,key:t.value,onCloseClick:i=>{i.preventDefault();i.stopPropagation();this.itemClick(t.value)}},t.label))):"",e("div",{key:"49b13da2a7e8230b41b8365394694d6f9991b367",class:"trigger"},e("input",{key:"fbafa635a105fec9f43756e0e767d4567355d224",autocomplete:"off","data-testid":"input",disabled:this.disabled,readOnly:this.readonly,required:this.required,type:"text",class:{"allow-clear":this.allowClear&&!!((i=this.selectedLabels)===null||i===void 0?void 0:i.length)},placeholder:this.placeholderValue(),value:(o=this.inputValue)!==null&&o!==void 0?o:"",ref:t=>this.inputRef=t,onBlur:t=>this.onInputBlur(t),onFocus:()=>{this.navigationItem=null},onInput:()=>this.filterItemsWithTypeahead(),onKeyDown:t=>this.onKeyDown(t)}),this.allowClear&&(((r=this.selectedLabels)===null||r===void 0?void 0:r.length)||this.inputFilterText)?e("ix-icon-button",{class:"clear",icon:"clear",ghost:true,oval:true,size:"16",onClick:t=>{t.preventDefault();t.stopPropagation();this.clear()}}):null,this.disabled||this.readonly?null:e("ix-icon-button",{"data-select-dropdown":true,class:{"dropdown-visible":this.dropdownShow},icon:"chevron-down-small",ghost:true,ref:t=>{if(this.editable)this.dropdownWrapperRef(t)}})))))),e("ix-dropdown",{key:"1ce2a1c9e706231b16729de9ab6860a3040cf6b8",ref:t=>this.dropdownRef=t,show:this.dropdownShow,closeBehavior:this.isMultipleMode?"outside":"both",class:{"d-none":this.disabled||this.readonly},anchor:this.dropdownAnchor.waitForCurrent(),trigger:this.dropdownWrapperRef.waitForCurrent(),onShowChanged:t=>this.dropdownVisibilityChanged(t),placement:"bottom-start",overwriteDropdownStyle:async()=>{var t,i;const e=(i=(t=this.hostElement.shadowRoot)===null||t===void 0?void 0:t.querySelector(".select"))===null||i===void 0?void 0:i.getBoundingClientRect().width;return{minWidth:`${e}px`}}},e("div",{key:"9a60476d90a72bb423434438d947ed5acd237a0b",class:{"select-list-header":true,hidden:this.hideListHeader||this.isDropdownEmpty},title:this.i18nSelectListHeader,onClick:t=>t.preventDefault()},this.i18nSelectListHeader),e("slot",{key:"375d3631327065cfed363398941c79550a34e4bd",onSlotchange:()=>{this.updateSelection()}}),e("div",{key:"86946fcba90f1d30760539b778449c53c99caa18",ref:t=>this.customItemsContainerRef=t,class:"d-contents"}),this.isAddItemVisible()?e("ix-dropdown-item",{"data-testid":"add-item",icon:"plus",class:{"add-item":true},label:this.inputFilterText,onItemClick:t=>{t.preventDefault();t.stopPropagation();this.emitAddItem(this.inputFilterText)},onFocus:()=>this.navigationItem=this.addItemRef,ref:t=>{this.addItemRef=t}}):null,this.isDropdownEmpty&&!this.editable?e("div",{class:"select-list-header"},this.i18nNoMatches):""))}static get formAssociated(){return true}get hostElement(){return o(this)}static get watchers(){return{selectedIndices:["watchSelectedIndices"],value:["watchValue"],dropdownShow:["watchDropdownShow"]}}};f([n("keydown",(t=>t.dropdownShow))],b.prototype,"onKeyDown",null);f([l()],b.prototype,"onValidationChange",null);b.style=u;export{b as ix_select};
2
- //# sourceMappingURL=p-f7618d1d.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["selectCss","IxSelectStyle0","Select","this","dropdownWrapperRef","makeRef","dropdownAnchor","itemObserver","createMutationObserver","arrowFocusController","items","visibleNonShadowItems","focusControllerCallbackBind","focusDropdownItem","bind","nonShadowItems","Array","from","hostElement","querySelectorAll","filter","item","classList","contains","shadowItems","shadowRoot","visibleShadowItems","visibleItems","selectedItems","selected","addItemButton","querySelector","isSingleMode","mode","isMultipleMode","isEveryDropdownItemHidden","every","watchSelectedIndices","value","updateSelection","watchValue","selectedIndices","watchDropdownShow","show","ArrowFocusController","dropdownRef","wrap","editable","observe","childList","subtree","cleanupResources","_a","disconnect","undefined","_b","onItemClicked","event","newId","detail","itemClick","updateFormInternalValue","isArray","formInternals","setFormValue","join","hasValidValue","required","hasValue","length","index","navigationItem","nestedDropdownItem","requestAnimationFrame","focus","oldValue","toggleValue","defaultPrevented","emitValueChange","emitAddItem","trim","addItem","emit","newItem","document","createElement","label","customItemsContainerRef","appendChild","clearInput","itemValue","includes","ids","forEach","some","i","toString","selectedLabels","map","inputValue","inputRef","valueChange","itemSelectionChange","componentDidLoad","addEventListener","dropdownShow","inputChange","componentWillLoad","onLabelChange","preventDefault","stopImmediatePropagation","disconnectedCallback","itemExists","find","dropdownVisibilityChanged","select","removeHiddenFromItems","isDropdownEmpty","inputFilterText","onKeyDown","code","onArrowNavigation","onEnterNavigation","target","el","key","stopPropagation","activeElement","applyFocusTo","shift","isAddItemVisible","focusAddItemButton","moveUp","indexNonShadow","indexOf","pop","addItemRef","getDropdownItemElement","indexShadow","element","setTimeout","_d","_c","filterItemsWithTypeahead","remove","toLowerCase","add","clear","onInputBlur","ixBlur","placeholderValue","disabled","readonly","i18nPlaceholderEditable","i18nPlaceholder","onValidationChange","isInvalid","isInvalidByRequired","isValid","isInfo","isWarning","getAssociatedFormElement","form","getNativeInputElement","Promise","resolve","focusInput","render","h","Host","a11yBoolean","class","helperText","invalidText","infoText","warningText","validText","showTextAsTooltip","controlRef","ref","onCloseClick","e","autocomplete","readOnly","type","allowClear","placeholder","onBlur","onFocus","onInput","icon","ghost","oval","size","onClick","closeBehavior","anchor","waitForCurrent","trigger","onShowChanged","placement","overwriteDropdownStyle","async","minWidth","getBoundingClientRect","width","hidden","hideListHeader","title","i18nSelectListHeader","onSlotchange","onItemClick","i18nNoMatches","__decorate","OnListener","self","HookValidationLifecycle"],"sources":["src/components/select/select.scss?tag=ix-select&encapsulation=shadow","src/components/select/select.tsx"],"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\n@import 'common-variables';\n@import 'legacy/mixins/fonts';\n@import 'mixins/hover';\n@import 'mixins/text-truncation';\n@import 'mixins/shadow-dom/component';\n@import 'mixins/field';\n@import 'mixins/validation/form-component';\n\n:host {\n @include ix-component;\n\n display: inline-block;\n position: relative;\n min-height: 2rem;\n height: auto;\n border-radius: var(--theme-input--border-radius);\n\n .d-none {\n display: none;\n }\n\n .select {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n background-color: var(--theme-input--background);\n border: var(--theme-input--border-thickness) solid\n var(--theme-input--border-color);\n border-radius: var(--theme-input--border-radius);\n padding: 0 0 0 $small-space;\n box-shadow: var(--theme-inset-shadow-1) !important;\n\n @include hover {\n background-color: var(--theme-input--background--hover);\n border-color: var(--theme-input--border-color--hover);\n }\n\n &:focus-within {\n background-color: var(--theme-input--background--focus);\n border-color: var(--theme-input--border-color--focus);\n outline: 1px solid #119fff;\n outline-offset: var(--theme-input--focus--outline-offset);\n }\n }\n\n .select.readonly,\n .select.disabled {\n box-shadow: none !important;\n border: none;\n border-radius: 0;\n cursor: pointer;\n\n &,\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n\n &:focus,\n &:focus-within,\n &:focus-visible {\n outline: none;\n }\n\n input:focus,\n input:focus-visible {\n outline: none;\n }\n }\n\n .select.disabled {\n border-bottom: var(--theme-input--border-thickness) solid\n var(--theme-color-weak-bdr);\n\n input {\n color: var(--theme-color-weak-text);\n }\n }\n\n .select.readonly {\n border-bottom: var(--theme-input--border-thickness) solid\n var(--theme-color-soft-bdr);\n\n input {\n color: var(--theme-color-std-text);\n }\n }\n\n .hidden {\n display: none !important;\n }\n\n .trigger {\n display: flex;\n align-items: center;\n flex-grow: 1;\n height: 100%;\n }\n\n .input-container {\n display: flex;\n position: relative;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n\n .chips {\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n height: 100%;\n max-height: 3.5rem;\n flex-grow: 1;\n overflow-y: auto;\n\n > ix-filter-chip {\n margin: 0.1rem;\n }\n }\n\n ix-icon-button {\n height: 1.875rem;\n width: 1.875rem;\n min-height: 1.875rem;\n min-width: 1.875rem;\n }\n\n input {\n @include ellipsis;\n @include text-default;\n background: transparent;\n height: 1.75rem;\n width: 100%;\n\n &,\n &:hover,\n &:focus-visible {\n border: none;\n outline: none;\n }\n\n &::placeholder {\n color: var(--theme-input-select-icon--color);\n }\n\n &.hide-placeholder::placeholder {\n opacity: 0;\n }\n }\n }\n\n .dropdown-visible {\n --ix-icon-button-color: var(--theme-color-dynamic--hover);\n }\n\n .add-item {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n width: 100%;\n }\n\n .select-list-header {\n @include ellipsis;\n display: flex;\n align-items: center;\n height: $default-control-height;\n color: var(--theme-select-list-item-hint--color);\n margin: 0 $small-space 0 1rem;\n }\n}\n\n\n\n@include host-valid;\n\n@include host-info {\n .select {\n border-color: var(--theme-input--border-color--info);\n }\n\n .select:hover {\n border-color: var(--theme-input--border-color--info--hover) !important;\n }\n\n .select:active {\n border-color: var(--theme-input--border-color--info--active) !important;\n }\n}\n\n@include host-warning {\n .select {\n border-color: var(--theme-input--border-color--warning);\n }\n\n .select:hover {\n border-color: var(--theme-input--border-color--warning--hover) !important;\n }\n\n .select:active {\n border-color: var(--theme-input--border-color--warning--active) !important;\n }\n}\n\n@include host-invalid {\n .select {\n border-color: var(--theme-input--border-color--invalid);\n background-color: var(--theme-input--background--invalid);\n box-shadow: none;\n }\n\n .select:hover {\n border-color: var(--theme-input--border-color--invalid--hover) !important;\n }\n\n .select:active {\n border-color: var(--theme-input--border-color--invalid--active) !important;\n }\n}\n","/*\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 AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\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';\nimport {\n HookValidationLifecycle,\n ValidationResults,\n IxInputFieldComponent,\n} from '../utils/input';\nimport { MakeRef, makeRef } from '../utils/make-ref';\nimport { a11yBoolean } from '../utils/a11y';\n\n/**\n * @form-ready 2.6.0\n */\n@Component({\n tag: 'ix-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select implements IxInputFieldComponent<string | string[]> {\n @Element() hostElement!: HTMLIxSelectElement;\n @AttachInternals() formInternals!: ElementInternals;\n\n /**\n * A string that represents the element's name attribute,\n * containing a name that identifies the element when submitting the form.\n *\n * @since 2.6.0\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * A Boolean attribute indicating that an option with a non-empty string value must be selected\n *\n * @since 2.6.0\n */\n @Prop({ reflect: true }) required: boolean = false;\n\n /**\n * Label for the select component\n *\n * @since 2.6.0\n */\n @Prop() label?: string;\n\n /**\n * Warning text for the select component\n *\n * @since 2.6.0\n **/\n @Prop() warningText?: string;\n\n /**\n * Info text for the select component\n *\n * @since 2.6.0\n **/\n @Prop() infoText?: string;\n\n /**\n * Error text for the select component\n *\n * @since 2.6.0\n **/\n @Prop() invalidText?: string;\n\n /**\n * Valid text for the select component\n *\n * @since 2.6.0\n **/\n @Prop() validText?: string;\n\n /**\n * Helper text for the select component\n *\n * @since 2.6.0\n **/\n @Prop() helperText?: string;\n\n /**\n * Show helper, error, info, warning text as tooltip\n *\n * @since 2.6.0\n */\n @Prop() showTextAsTooltip?: boolean;\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 = 'Select an option';\n\n /**\n * Information 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 /**\n * Blur input\n */\n @Event() ixBlur!: EventEmitter<void>;\n\n @State() dropdownShow = false;\n @State() selectedLabels: string[] = [];\n @State() isDropdownEmpty = false;\n @State() navigationItem?: DropdownItemWrapper;\n @State() inputFilterText = '';\n @State() inputValue = '';\n\n @State() isInvalid = false;\n @State() isValid = false;\n @State() isInfo = false;\n @State() isWarning = false;\n\n private readonly dropdownWrapperRef = makeRef<HTMLElement>();\n private readonly dropdownAnchor = makeRef<HTMLElement>();\n\n private inputRef?: HTMLInputElement;\n private dropdownRef?: HTMLIxDropdownElement;\n private customItemsContainerRef?: HTMLDivElement;\n private addItemRef?: HTMLIxDropdownItemElement;\n private arrowFocusController?: ArrowFocusController;\n\n private readonly itemObserver = createMutationObserver(() => {\n if (!this.arrowFocusController) {\n return;\n }\n this.arrowFocusController.items = this.visibleNonShadowItems;\n });\n private readonly focusControllerCallbackBind =\n this.focusDropdownItem.bind(this);\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.cleanupResources();\n }\n }\n\n private cleanupResources() {\n this.arrowFocusController?.disconnect();\n this.arrowFocusController = undefined;\n this.itemObserver?.disconnect();\n }\n\n @Listen('itemClick')\n onItemClicked(event: CustomEvent<string>) {\n const newId = event.detail;\n this.itemClick(newId);\n }\n\n async updateFormInternalValue(value: string | string[]) {\n if (Array.isArray(value)) {\n this.formInternals.setFormValue(value.join(','));\n return;\n }\n\n this.formInternals.setFormValue(value);\n }\n\n /** @internal */\n @Method()\n async hasValidValue(): Promise<boolean> {\n return this.required && !!this.hasValue();\n }\n\n private hasValue() {\n if (Array.isArray(this.value)) {\n return !!this.value.length;\n }\n\n return !!this.value;\n }\n\n private focusDropdownItem(index: number) {\n this.navigationItem = null;\n\n if (index < this.visibleNonShadowItems.length) {\n const nestedDropdownItem =\n this.visibleNonShadowItems[index]?.shadowRoot?.querySelector(\n 'ix-dropdown-item'\n );\n\n if (!nestedDropdownItem) {\n return;\n }\n\n requestAnimationFrame(() => {\n nestedDropdownItem?.shadowRoot?.querySelector('button')?.focus();\n });\n }\n }\n\n private itemClick(newId: string) {\n const oldValue = this.value;\n const value = this.toggleValue(newId);\n this.value = value;\n const defaultPrevented = this.emitValueChange(value);\n\n if (defaultPrevented) {\n this.value = oldValue;\n return;\n }\n\n this.updateSelection();\n }\n\n private emitAddItem(value: string) {\n if (value === undefined || value.trim() === '') {\n return false;\n }\n\n const { defaultPrevented } = this.addItem.emit(value);\n if (defaultPrevented) {\n return true;\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\n return false;\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: string[] = [];\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((i) => {\n if (typeof i !== typeof item.value) {\n return i.toString() === item.value.toString();\n } else {\n return i === item.value;\n }\n });\n });\n\n this.selectedLabels = this.selectedItems.map((item) => item.label);\n\n if (this.selectedLabels?.length && this.isSingleMode) {\n this.inputValue = this.selectedLabels[0];\n } else {\n this.inputValue = '';\n }\n\n this.inputRef && (this.inputRef.value = this.inputValue);\n }\n\n private emitValueChange(value: string | string[]) {\n const { defaultPrevented } = this.valueChange.emit(value);\n\n if (defaultPrevented) {\n return true;\n }\n\n if (!value) {\n this.itemSelectionChange.emit(null);\n } else {\n this.itemSelectionChange.emit(Array.isArray(value) ? value : [value]);\n }\n\n this.updateFormInternalValue(value);\n return false;\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 this.updateFormInternalValue(this.value);\n }\n\n @Listen('ix-select-item:valueChange')\n @Listen('ix-select-item:labelChange')\n onLabelChange(event: IxSelectItemLabelChangeEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.updateSelection();\n }\n\n disconnectedCallback() {\n this.cleanupResources();\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 = null;\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(event.target as HTMLIxSelectItemElement);\n }\n\n if (event.code === 'Escape') {\n this.dropdownShow = false;\n }\n }\n\n private async onEnterNavigation(\n el: HTMLIxSelectItemElement | HTMLInputElement\n ) {\n if (this.isMultipleMode) {\n return;\n }\n\n if (\n !this.itemExists(this.inputFilterText.trim()) &&\n !this.itemExists((el as HTMLIxSelectItemElement)?.label)\n ) {\n if (this.editable) {\n const defaultPrevented = this.emitAddItem(this.inputFilterText.trim());\n if (defaultPrevented) {\n return;\n }\n }\n }\n\n this.dropdownShow = false;\n this.updateSelection();\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 = document.activeElement\n ? this.visibleNonShadowItems.indexOf(\n document.activeElement as HTMLIxSelectItemElement\n )\n : -1;\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 (!this.navigationItem) {\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 HTMLIxSelectItemElement\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 if (this.inputRef) {\n this.inputRef.value = '';\n }\n this.inputFilterText = '';\n }\n\n private clear() {\n this.clearInput();\n this.selectedLabels = [];\n this.value = [];\n this.emitValueChange([]);\n this.dropdownShow = false;\n }\n\n private onInputBlur(event: Event) {\n this.ixBlur.emit();\n\n if (this.editable) {\n return;\n }\n\n if (this.isSingleMode) {\n return;\n }\n\n const target = event.target as HTMLInputElement;\n\n if (!this.dropdownShow && this.mode !== 'multiple') {\n target.value = this.selectedLabels.toString();\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 @HookValidationLifecycle()\n onValidationChange({\n isInvalid,\n isInvalidByRequired,\n isValid,\n isInfo,\n isWarning,\n }: ValidationResults) {\n this.isInvalid = isInvalid || isInvalidByRequired;\n this.isValid = isValid;\n this.isWarning = isWarning;\n this.isInfo = isInfo;\n }\n\n /** @internal */\n @Method()\n async getAssociatedFormElement(): Promise<HTMLFormElement | null> {\n return this.formInternals.form;\n }\n\n /**\n * Returns the native input element used in the component.\n */\n @Method()\n getNativeInputElement(): Promise<HTMLInputElement> {\n return Promise.resolve(this.inputRef);\n }\n\n /**\n * Focuses the input field\n */\n @Method()\n async focusInput(): Promise<void> {\n return (await this.getNativeInputElement()).focus();\n }\n\n render() {\n return (\n <Host\n aria-disabled={a11yBoolean(this.disabled)}\n class={{\n disabled: this.disabled,\n }}\n >\n <ix-field-wrapper\n required={this.required}\n label={this.label}\n helperText={this.helperText}\n invalidText={this.invalidText}\n infoText={this.infoText}\n warningText={this.warningText}\n validText={this.validText}\n showTextAsTooltip={this.showTextAsTooltip}\n isInvalid={this.isInvalid}\n isValid={this.isValid}\n isInfo={this.isInfo}\n isWarning={this.isWarning}\n controlRef={this.inputRef as unknown as MakeRef<HTMLElement>}\n >\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 required={this.required}\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 = null;\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-field-wrapper>\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.waitForCurrent()}\n trigger={this.dropdownWrapperRef.waitForCurrent()}\n onShowChanged={(e) => this.dropdownVisibilityChanged(e)}\n placement=\"bottom-start\"\n overwriteDropdownStyle={async () => {\n const minWidth = this.hostElement.shadowRoot\n ?.querySelector('.select')\n ?.getBoundingClientRect().width;\n\n return {\n minWidth: `${minWidth}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 onClick={(e) => e.preventDefault()}\n >\n {this.i18nSelectListHeader}\n </div>\n <slot\n onSlotchange={() => {\n this.updateSelection();\n }}\n ></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"],"mappings":"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"}