@siemens/ix 1.5.0-beta.0 → 1.5.0-beta.2

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 (396) hide show
  1. package/dist/cjs/index-478a4b66.js +8 -0
  2. package/dist/cjs/index-478a4b66.js.map +1 -1
  3. package/dist/cjs/index.cjs.js +12 -0
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/ix-blind.cjs.entry.js +27 -6
  6. package/dist/cjs/ix-blind.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js +1 -1
  8. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ix-category-filter.cjs.entry.js +19 -5
  10. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ix-chip.cjs.entry.js +6 -1
  12. package/dist/cjs/ix-chip.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ix-date-picker_2.cjs.entry.js +62 -43
  14. package/dist/cjs/ix-date-picker_2.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ix-datetime-picker.cjs.entry.js +2 -2
  16. package/dist/cjs/ix-datetime-picker.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ix-dropdown_2.cjs.entry.js +5 -4
  18. package/dist/cjs/ix-dropdown_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ix-filter-chip.cjs.entry.js +2 -2
  20. package/dist/cjs/ix-filter-chip.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ix-flip-tile_2.cjs.entry.js +11 -2
  22. package/dist/cjs/ix-flip-tile_2.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ix-group_3.cjs.entry.js +33 -11
  24. package/dist/cjs/ix-group_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ix-index-button.cjs.entry.js +28 -0
  26. package/dist/cjs/ix-index-button.cjs.entry.js.map +1 -0
  27. package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ix-input-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ix-menu_9.cjs.entry.js +1 -1
  30. package/dist/cjs/ix-menu_9.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ix-modal_2.cjs.entry.js +17 -5
  32. package/dist/cjs/ix-modal_2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ix-pagination.cjs.entry.js +123 -0
  34. package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -0
  35. package/dist/cjs/ix-select_2.cjs.entry.js +56 -37
  36. package/dist/cjs/ix-select_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ix-toast_2.cjs.entry.js +10 -1
  38. package/dist/cjs/ix-toast_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
  40. package/dist/cjs/ix-toggle.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ix-tooltip.cjs.entry.js +55 -27
  42. package/dist/cjs/ix-tooltip.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ix-tree_2.cjs.entry.js +4 -0
  44. package/dist/cjs/ix-tree_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ix-upload.cjs.entry.js +8 -23
  46. package/dist/cjs/ix-upload.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ix-workflow-step_2.cjs.entry.js +51 -36
  48. package/dist/cjs/ix-workflow-step_2.cjs.entry.js.map +1 -1
  49. package/dist/cjs/loader.cjs.js +2 -2
  50. package/dist/cjs/loader.cjs.js.map +1 -1
  51. package/dist/cjs/siemens-ix.cjs.js +2 -2
  52. package/dist/cjs/siemens-ix.cjs.js.map +1 -1
  53. package/dist/cjs/upload-file-state-a79acf2b.js +19 -0
  54. package/dist/cjs/upload-file-state-a79acf2b.js.map +1 -0
  55. package/dist/collection/collection-manifest.json +3 -1
  56. package/dist/collection/components/blind/blind.css +22 -8
  57. package/dist/collection/components/blind/blind.js +35 -5
  58. package/dist/collection/components/blind/blind.js.map +1 -1
  59. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -2
  60. package/dist/collection/components/category-filter/category-filter.js +19 -5
  61. package/dist/collection/components/category-filter/category-filter.js.map +1 -1
  62. package/dist/collection/components/chip/chip.js +27 -2
  63. package/dist/collection/components/chip/chip.js.map +1 -1
  64. package/dist/collection/components/date-picker/date-picker.css +3 -0
  65. package/dist/collection/components/date-picker/date-picker.js +64 -45
  66. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  67. package/dist/collection/components/datetime-picker/datetime-picker.css +6 -5
  68. package/dist/collection/components/datetime-picker/datetime-picker.js +1 -1
  69. package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
  70. package/dist/collection/components/dropdown/dropdown.js +2 -1
  71. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  72. package/dist/collection/components/dropdown-item/dropdown-item.css +0 -1
  73. package/dist/collection/components/dropdown-item/dropdown-item.js +2 -2
  74. package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
  75. package/dist/collection/components/filter-chip/filter-chip.css +14 -7
  76. package/dist/collection/components/filter-chip/filter-chip.js +1 -1
  77. package/dist/collection/components/filter-chip/filter-chip.js.map +1 -1
  78. package/dist/collection/components/flip-tile/flip-tile.css +0 -4
  79. package/dist/collection/components/flip-tile/flip-tile.js +56 -2
  80. package/dist/collection/components/flip-tile/flip-tile.js.map +1 -1
  81. package/dist/collection/components/group/group.css +21 -12
  82. package/dist/collection/components/group/group.js +34 -10
  83. package/dist/collection/components/group/group.js.map +1 -1
  84. package/dist/collection/components/group-item/group-item.css +8 -4
  85. package/dist/collection/components/index-button/index-button.css +31 -0
  86. package/dist/collection/components/index-button/index-button.js +83 -0
  87. package/dist/collection/components/index-button/index-button.js.map +1 -0
  88. package/dist/collection/components/input-group/input-group.css +3 -0
  89. package/dist/collection/components/menu-item/menu-item.css +15 -10
  90. package/dist/collection/components/modal/modal.js +6 -1
  91. package/dist/collection/components/modal/modal.js.map +1 -1
  92. package/dist/collection/components/modal-container/modal-container.js +11 -4
  93. package/dist/collection/components/modal-container/modal-container.js.map +1 -1
  94. package/dist/collection/components/pagination/pagination.css +58 -0
  95. package/dist/collection/components/pagination/pagination.js +311 -0
  96. package/dist/collection/components/pagination/pagination.js.map +1 -0
  97. package/dist/collection/components/select/select.css +4 -1
  98. package/dist/collection/components/select/select.js +98 -36
  99. package/dist/collection/components/select/select.js.map +1 -1
  100. package/dist/collection/components/select-item/select-item.css +0 -3
  101. package/dist/collection/components/select-item/select-item.js +1 -1
  102. package/dist/collection/components/select-item/select-item.js.map +1 -1
  103. package/dist/collection/components/toast/toast-container.js +16 -4
  104. package/dist/collection/components/toast/toast-container.js.map +1 -1
  105. package/dist/collection/components/toast/toast-utils.js +4 -1
  106. package/dist/collection/components/toast/toast-utils.js.map +1 -1
  107. package/dist/collection/components/toggle/toggle.css +7 -4
  108. package/dist/collection/components/tooltip/tooltip.css +8 -7
  109. package/dist/collection/components/tooltip/tooltip.js +76 -27
  110. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  111. package/dist/collection/components/tree/tree.js +38 -0
  112. package/dist/collection/components/tree/tree.js.map +1 -1
  113. package/dist/collection/components/utils/a11y.js +10 -0
  114. package/dist/collection/components/utils/a11y.js.map +1 -0
  115. package/dist/collection/components/workflow-step/workflow-step.css +7 -3
  116. package/dist/collection/components/workflow-step/workflow-step.js +45 -6
  117. package/dist/collection/components/workflow-step/workflow-step.js.map +1 -1
  118. package/dist/collection/components/workflow-steps/workflow-steps.css +0 -3
  119. package/dist/collection/components/workflow-steps/workflow-steps.js +48 -39
  120. package/dist/collection/components/workflow-steps/workflow-steps.js.map +1 -1
  121. package/dist/collection/index.js +1 -0
  122. package/dist/collection/index.js.map +1 -1
  123. package/dist/collection/tests/utils/test/page.js +29 -1
  124. package/dist/collection/tests/utils/test/page.js.map +1 -1
  125. package/dist/components/application-header.js +1 -1
  126. package/dist/components/burger-menu.js +1 -1
  127. package/dist/components/button.js +1 -1
  128. package/dist/components/date-picker.js +63 -44
  129. package/dist/components/date-picker.js.map +1 -1
  130. package/dist/components/date-time-card.js +1 -1
  131. package/dist/components/dropdown-item.js +4 -4
  132. package/dist/components/dropdown-item.js.map +1 -1
  133. package/dist/components/dropdown.js +3 -2
  134. package/dist/components/dropdown.js.map +1 -1
  135. package/dist/components/filter-chip.js +3 -3
  136. package/dist/components/filter-chip.js.map +1 -1
  137. package/dist/components/group-context-menu.js +1 -1
  138. package/dist/components/group-item.js +2 -2
  139. package/dist/components/group-item.js.map +1 -1
  140. package/dist/components/icon-button.js +1 -1
  141. package/dist/components/icon.js +1 -1
  142. package/dist/components/index-button.js +41 -0
  143. package/dist/components/index-button.js.map +1 -0
  144. package/dist/components/index.js +5 -1
  145. package/dist/components/index.js.map +1 -1
  146. package/dist/components/ix-animated-tab.js +1 -1
  147. package/dist/components/ix-animated-tabs.js +1 -1
  148. package/dist/components/ix-basic-navigation.js +1 -1
  149. package/dist/components/ix-blind.js +38 -9
  150. package/dist/components/ix-blind.js.map +1 -1
  151. package/dist/components/ix-breadcrumb-item.js +1 -1
  152. package/dist/components/ix-breadcrumb.js +2 -2
  153. package/dist/components/ix-breadcrumb.js.map +1 -1
  154. package/dist/components/ix-category-filter.js +20 -6
  155. package/dist/components/ix-category-filter.js.map +1 -1
  156. package/dist/components/ix-chip.js +7 -2
  157. package/dist/components/ix-chip.js.map +1 -1
  158. package/dist/components/ix-counter-pill.js +1 -1
  159. package/dist/components/ix-datetime-picker.js +3 -3
  160. package/dist/components/ix-datetime-picker.js.map +1 -1
  161. package/dist/components/ix-divider.js +1 -1
  162. package/dist/components/ix-drawer.js +1 -1
  163. package/dist/components/ix-dropdown-button.js +1 -1
  164. package/dist/components/ix-dropdown-quick-actions.js +1 -1
  165. package/dist/components/ix-event-list-item.js +1 -1
  166. package/dist/components/ix-event-list.js +1 -1
  167. package/dist/components/ix-expanding-search.js +1 -1
  168. package/dist/components/ix-flip-tile-content.js +1 -1
  169. package/dist/components/ix-flip-tile.js +14 -3
  170. package/dist/components/ix-flip-tile.js.map +1 -1
  171. package/dist/components/ix-group-dropdown-item.js +1 -1
  172. package/dist/components/ix-group.js +36 -12
  173. package/dist/components/ix-group.js.map +1 -1
  174. package/dist/components/ix-index-button.d.ts +11 -0
  175. package/dist/components/ix-index-button.js +8 -0
  176. package/dist/components/ix-index-button.js.map +1 -0
  177. package/dist/components/ix-input-group.js +2 -2
  178. package/dist/components/ix-input-group.js.map +1 -1
  179. package/dist/components/ix-kpi.js +1 -1
  180. package/dist/components/ix-map-navigation.js +1 -1
  181. package/dist/components/ix-menu-about-item.js +1 -1
  182. package/dist/components/ix-menu-about-news.js +1 -1
  183. package/dist/components/ix-menu-about.js +1 -1
  184. package/dist/components/ix-menu-avatar.js +1 -1
  185. package/dist/components/ix-menu-settings-item.js +1 -1
  186. package/dist/components/ix-menu-settings.js +1 -1
  187. package/dist/components/ix-menu.js +1 -1
  188. package/dist/components/ix-message-bar.js +1 -1
  189. package/dist/components/ix-modal-example.js +1 -1
  190. package/dist/components/ix-pagination.d.ts +11 -0
  191. package/dist/components/ix-pagination.js +193 -0
  192. package/dist/components/ix-pagination.js.map +1 -0
  193. package/dist/components/ix-pill.js +1 -1
  194. package/dist/components/ix-select.js +1 -341
  195. package/dist/components/ix-select.js.map +1 -1
  196. package/dist/components/ix-split-button-item.js +1 -1
  197. package/dist/components/ix-split-button.js +1 -1
  198. package/dist/components/ix-tile.js +1 -1
  199. package/dist/components/ix-toast-container.js +11 -2
  200. package/dist/components/ix-toast-container.js.map +1 -1
  201. package/dist/components/ix-toggle.js +2 -2
  202. package/dist/components/ix-toggle.js.map +1 -1
  203. package/dist/components/ix-tooltip.js +58 -29
  204. package/dist/components/ix-tooltip.js.map +1 -1
  205. package/dist/components/ix-tree.js +5 -1
  206. package/dist/components/ix-tree.js.map +1 -1
  207. package/dist/components/ix-upload.js +2 -17
  208. package/dist/components/ix-upload.js.map +1 -1
  209. package/dist/components/ix-validation-tooltip.js +1 -1
  210. package/dist/components/ix-workflow-step.js +10 -4
  211. package/dist/components/ix-workflow-step.js.map +1 -1
  212. package/dist/components/ix-workflow-steps.js +45 -36
  213. package/dist/components/ix-workflow-steps.js.map +1 -1
  214. package/dist/components/map-navigation-overlay.js +1 -1
  215. package/dist/components/menu-avatar-item.js +1 -1
  216. package/dist/components/menu-item.js +2 -2
  217. package/dist/components/menu-item.js.map +1 -1
  218. package/dist/components/modal-container.js +12 -5
  219. package/dist/components/modal-container.js.map +1 -1
  220. package/dist/components/modal.js +7 -2
  221. package/dist/components/modal.js.map +1 -1
  222. package/dist/components/my-component.js +1 -1
  223. package/dist/components/select-item.js +3 -3
  224. package/dist/components/select-item.js.map +1 -1
  225. package/dist/components/select.js +366 -0
  226. package/dist/components/select.js.map +1 -0
  227. package/dist/components/spinner.js +1 -1
  228. package/dist/components/tab-item.js +1 -1
  229. package/dist/components/tabs.js +1 -1
  230. package/dist/components/time-picker.js +1 -1
  231. package/dist/components/toast.js +1 -1
  232. package/dist/components/tree-item.js +1 -1
  233. package/dist/components/typography.js +1 -1
  234. package/dist/components/upload-file-state.js +19 -0
  235. package/dist/components/upload-file-state.js.map +1 -0
  236. package/dist/esm/index-3d163acd.js +8 -0
  237. package/dist/esm/index-3d163acd.js.map +1 -1
  238. package/dist/esm/index.js +5 -1
  239. package/dist/esm/index.js.map +1 -1
  240. package/dist/esm/ix-blind.entry.js +27 -6
  241. package/dist/esm/ix-blind.entry.js.map +1 -1
  242. package/dist/esm/ix-breadcrumb_2.entry.js +1 -1
  243. package/dist/esm/ix-breadcrumb_2.entry.js.map +1 -1
  244. package/dist/esm/ix-category-filter.entry.js +19 -5
  245. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  246. package/dist/esm/ix-chip.entry.js +6 -1
  247. package/dist/esm/ix-chip.entry.js.map +1 -1
  248. package/dist/esm/ix-date-picker_2.entry.js +62 -43
  249. package/dist/esm/ix-date-picker_2.entry.js.map +1 -1
  250. package/dist/esm/ix-datetime-picker.entry.js +2 -2
  251. package/dist/esm/ix-datetime-picker.entry.js.map +1 -1
  252. package/dist/esm/ix-dropdown_2.entry.js +5 -4
  253. package/dist/esm/ix-dropdown_2.entry.js.map +1 -1
  254. package/dist/esm/ix-filter-chip.entry.js +2 -2
  255. package/dist/esm/ix-filter-chip.entry.js.map +1 -1
  256. package/dist/esm/ix-flip-tile_2.entry.js +11 -2
  257. package/dist/esm/ix-flip-tile_2.entry.js.map +1 -1
  258. package/dist/esm/ix-group_3.entry.js +33 -11
  259. package/dist/esm/ix-group_3.entry.js.map +1 -1
  260. package/dist/esm/ix-index-button.entry.js +24 -0
  261. package/dist/esm/ix-index-button.entry.js.map +1 -0
  262. package/dist/esm/ix-input-group.entry.js +1 -1
  263. package/dist/esm/ix-input-group.entry.js.map +1 -1
  264. package/dist/esm/ix-menu_9.entry.js +1 -1
  265. package/dist/esm/ix-menu_9.entry.js.map +1 -1
  266. package/dist/esm/ix-modal_2.entry.js +17 -5
  267. package/dist/esm/ix-modal_2.entry.js.map +1 -1
  268. package/dist/esm/ix-pagination.entry.js +119 -0
  269. package/dist/esm/ix-pagination.entry.js.map +1 -0
  270. package/dist/esm/ix-select_2.entry.js +56 -37
  271. package/dist/esm/ix-select_2.entry.js.map +1 -1
  272. package/dist/esm/ix-toast_2.entry.js +10 -1
  273. package/dist/esm/ix-toast_2.entry.js.map +1 -1
  274. package/dist/esm/ix-toggle.entry.js +1 -1
  275. package/dist/esm/ix-toggle.entry.js.map +1 -1
  276. package/dist/esm/ix-tooltip.entry.js +56 -28
  277. package/dist/esm/ix-tooltip.entry.js.map +1 -1
  278. package/dist/esm/ix-tree_2.entry.js +4 -0
  279. package/dist/esm/ix-tree_2.entry.js.map +1 -1
  280. package/dist/esm/ix-upload.entry.js +1 -16
  281. package/dist/esm/ix-upload.entry.js.map +1 -1
  282. package/dist/esm/ix-workflow-step_2.entry.js +52 -37
  283. package/dist/esm/ix-workflow-step_2.entry.js.map +1 -1
  284. package/dist/esm/loader.js +2 -2
  285. package/dist/esm/loader.js.map +1 -1
  286. package/dist/esm/siemens-ix.js +2 -2
  287. package/dist/esm/siemens-ix.js.map +1 -1
  288. package/dist/esm/upload-file-state-532a36d3.js +19 -0
  289. package/dist/esm/upload-file-state-532a36d3.js.map +1 -0
  290. package/dist/siemens-ix/index.esm.js +1 -1
  291. package/dist/siemens-ix/index.esm.js.map +1 -1
  292. package/dist/siemens-ix/p-076c29d1.js +2 -0
  293. package/dist/siemens-ix/p-076c29d1.js.map +1 -0
  294. package/dist/siemens-ix/p-0f864265.entry.js +2 -0
  295. package/dist/siemens-ix/p-0f864265.entry.js.map +1 -0
  296. package/dist/siemens-ix/p-16ec6f50.entry.js +2 -0
  297. package/dist/siemens-ix/p-16ec6f50.entry.js.map +1 -0
  298. package/dist/siemens-ix/p-1701b127.entry.js +2 -0
  299. package/dist/siemens-ix/p-1701b127.entry.js.map +1 -0
  300. package/dist/siemens-ix/{p-41f0a2b2.entry.js → p-2ea2fc07.entry.js} +2 -2
  301. package/dist/siemens-ix/{p-41f0a2b2.entry.js.map → p-2ea2fc07.entry.js.map} +1 -1
  302. package/dist/siemens-ix/p-33160fe4.entry.js +2 -0
  303. package/dist/siemens-ix/p-33160fe4.entry.js.map +1 -0
  304. package/dist/siemens-ix/{p-6790d123.entry.js → p-34e3a10e.entry.js} +2 -2
  305. package/dist/siemens-ix/{p-6790d123.entry.js.map → p-34e3a10e.entry.js.map} +1 -1
  306. package/dist/siemens-ix/p-4c8d5207.entry.js +2 -0
  307. package/dist/siemens-ix/p-4c8d5207.entry.js.map +1 -0
  308. package/dist/siemens-ix/p-53c69375.entry.js +2 -0
  309. package/dist/siemens-ix/p-53c69375.entry.js.map +1 -0
  310. package/dist/siemens-ix/p-55d0fabf.entry.js +2 -0
  311. package/dist/siemens-ix/p-55d0fabf.entry.js.map +1 -0
  312. package/dist/siemens-ix/p-626b3af5.entry.js +2 -0
  313. package/dist/siemens-ix/p-626b3af5.entry.js.map +1 -0
  314. package/dist/siemens-ix/{p-aafd18a8.entry.js → p-62b4d696.entry.js} +2 -2
  315. package/dist/siemens-ix/p-62b4d696.entry.js.map +1 -0
  316. package/dist/siemens-ix/p-663724a8.entry.js +2 -0
  317. package/dist/siemens-ix/p-663724a8.entry.js.map +1 -0
  318. package/dist/siemens-ix/p-7fb5fa79.entry.js +2 -0
  319. package/dist/siemens-ix/p-7fb5fa79.entry.js.map +1 -0
  320. package/dist/siemens-ix/{p-1811d669.entry.js → p-88a47c9b.entry.js} +2 -2
  321. package/dist/siemens-ix/p-88a47c9b.entry.js.map +1 -0
  322. package/dist/siemens-ix/p-8fcd6f85.js.map +1 -1
  323. package/dist/siemens-ix/p-9546cbdd.entry.js +2 -0
  324. package/dist/siemens-ix/p-9546cbdd.entry.js.map +1 -0
  325. package/dist/siemens-ix/{p-5ce07b8b.entry.js → p-afd1f351.entry.js} +2 -2
  326. package/dist/siemens-ix/p-afd1f351.entry.js.map +1 -0
  327. package/dist/siemens-ix/p-b998abe4.entry.js +2 -0
  328. package/dist/siemens-ix/p-b998abe4.entry.js.map +1 -0
  329. package/dist/siemens-ix/p-b9fbd029.entry.js +2 -0
  330. package/dist/siemens-ix/p-b9fbd029.entry.js.map +1 -0
  331. package/dist/siemens-ix/p-c9c9f2b5.entry.js +2 -0
  332. package/dist/siemens-ix/p-c9c9f2b5.entry.js.map +1 -0
  333. package/dist/siemens-ix/p-caae2fa5.entry.js +2 -0
  334. package/dist/siemens-ix/p-caae2fa5.entry.js.map +1 -0
  335. package/dist/siemens-ix/{p-01f9f803.entry.js → p-cdb54f7c.entry.js} +2 -2
  336. package/dist/siemens-ix/p-cdb54f7c.entry.js.map +1 -0
  337. package/dist/siemens-ix/{p-11af475f.entry.js → p-eb799bdd.entry.js} +2 -2
  338. package/dist/siemens-ix/p-eb799bdd.entry.js.map +1 -0
  339. package/dist/siemens-ix/siemens-ix.css +21 -0
  340. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  341. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  342. package/dist/types/components/blind/blind.d.ts +6 -0
  343. package/dist/types/components/category-filter/category-filter.d.ts +1 -0
  344. package/dist/types/components/chip/chip.d.ts +8 -0
  345. package/dist/types/components/date-picker/date-picker.d.ts +4 -3
  346. package/dist/types/components/flip-tile/flip-tile.d.ts +11 -0
  347. package/dist/types/components/group/group.d.ts +4 -0
  348. package/dist/types/components/index-button/index-button.d.ts +16 -0
  349. package/dist/types/components/modal/modal.d.ts +1 -0
  350. package/dist/types/components/modal-container/modal-container.d.ts +1 -0
  351. package/dist/types/components/pagination/pagination.d.ts +57 -0
  352. package/dist/types/components/select/select.d.ts +17 -1
  353. package/dist/types/components/toast/toast-container.d.ts +3 -1
  354. package/dist/types/components/toast/toast-utils.d.ts +3 -0
  355. package/dist/types/components/tooltip/tooltip.d.ts +8 -0
  356. package/dist/types/components/tree/tree.d.ts +13 -0
  357. package/dist/types/components/utils/a11y.d.ts +1 -0
  358. package/dist/types/components/workflow-step/workflow-step.d.ts +9 -1
  359. package/dist/types/components/workflow-steps/workflow-steps.d.ts +6 -2
  360. package/dist/types/components.d.ts +231 -11
  361. package/dist/types/index.d.ts +1 -0
  362. package/dist/types/tests/utils/test/page.d.ts +5 -0
  363. package/loader/index.d.ts +1 -1
  364. package/package.json +7 -6
  365. package/scss/components/_forms.scss +7 -1
  366. package/dist/siemens-ix/p-01f9f803.entry.js.map +0 -1
  367. package/dist/siemens-ix/p-0d15aa1a.entry.js +0 -2
  368. package/dist/siemens-ix/p-0d15aa1a.entry.js.map +0 -1
  369. package/dist/siemens-ix/p-11af475f.entry.js.map +0 -1
  370. package/dist/siemens-ix/p-1259ea24.entry.js +0 -2
  371. package/dist/siemens-ix/p-1259ea24.entry.js.map +0 -1
  372. package/dist/siemens-ix/p-1811d669.entry.js.map +0 -1
  373. package/dist/siemens-ix/p-29bd1814.entry.js +0 -2
  374. package/dist/siemens-ix/p-29bd1814.entry.js.map +0 -1
  375. package/dist/siemens-ix/p-5845a03c.entry.js +0 -2
  376. package/dist/siemens-ix/p-5845a03c.entry.js.map +0 -1
  377. package/dist/siemens-ix/p-5ce07b8b.entry.js.map +0 -1
  378. package/dist/siemens-ix/p-7ce0c0e2.entry.js +0 -2
  379. package/dist/siemens-ix/p-7ce0c0e2.entry.js.map +0 -1
  380. package/dist/siemens-ix/p-967f7d5d.entry.js +0 -2
  381. package/dist/siemens-ix/p-967f7d5d.entry.js.map +0 -1
  382. package/dist/siemens-ix/p-9f55716d.entry.js +0 -2
  383. package/dist/siemens-ix/p-9f55716d.entry.js.map +0 -1
  384. package/dist/siemens-ix/p-a4178e26.entry.js +0 -2
  385. package/dist/siemens-ix/p-a4178e26.entry.js.map +0 -1
  386. package/dist/siemens-ix/p-a92126b5.entry.js +0 -2
  387. package/dist/siemens-ix/p-a92126b5.entry.js.map +0 -1
  388. package/dist/siemens-ix/p-aafd18a8.entry.js.map +0 -1
  389. package/dist/siemens-ix/p-b64e82ce.entry.js +0 -2
  390. package/dist/siemens-ix/p-b64e82ce.entry.js.map +0 -1
  391. package/dist/siemens-ix/p-d7def96c.entry.js +0 -2
  392. package/dist/siemens-ix/p-d7def96c.entry.js.map +0 -1
  393. package/dist/siemens-ix/p-f961c22a.entry.js +0 -2
  394. package/dist/siemens-ix/p-f961c22a.entry.js.map +0 -1
  395. package/dist/siemens-ix/p-fe690347.entry.js +0 -2
  396. package/dist/siemens-ix/p-fe690347.entry.js.map +0 -1
@@ -5,11 +5,16 @@ import { T as TypedEvent } from './typed-event-a230184a.js';
5
5
 
6
6
  const modalCss = ".sc-ix-modal-h{position:relative;width:100vw;height:100vh}.sc-ix-modal-h .modal.sc-ix-modal{display:flex}.sc-ix-modal-h .modal.animation.sc-ix-modal{animation:modal-fade 300ms ease-in-out}.sc-ix-modal-h .modal.backdrop.sc-ix-modal{background-color:var(--theme-color-lightbox);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:none}.sc-ix-modal-h .modal.backdrop.animation.sc-ix-modal{transition:-webkit-backdrop-filter 0ms ease-in-out;transition:backdrop-filter 0ms ease-in-out;transition:backdrop-filter 0ms ease-in-out, -webkit-backdrop-filter 0ms ease-in-out}.sc-ix-modal-h .modal.sc-ix-modal .modal-dialog.sc-ix-modal{flex-grow:1}.sc-ix-modal-h .modal.scrollable.sc-ix-modal .modal-content.sc-ix-modal{max-height:100%}.sc-ix-modal-h .modal.scrollable.sc-ix-modal .modal-content.sc-ix-modal .modal-body.sc-ix-modal{overflow-y:auto}.sc-ix-modal-h .modal.sc-ix-modal .modal-content.sc-ix-modal{box-shadow:var(--theme-modal--box-shadow);flex-direction:row;background-color:var(--theme-modal--background);border:var(--modal--border-thickness) solid var(--theme-modal--border-color);padding:1.5rem;max-height:100vh}.sc-ix-modal-h .modal.sc-ix-modal .modal-content.sc-ix-modal .state-icon-container.sc-ix-modal{-webkit-margin-end:1rem;margin-inline-end:1rem}.sc-ix-modal-h .modal.sc-ix-modal .modal-content.sc-ix-modal .slot-container.sc-ix-modal{flex-grow:1}@media (min-width: 576px){.sc-ix-modal-h .modal.sc-ix-modal .modal-dialog.sc-ix-modal:not(.modal-dialog-centered){margin:2.5rem auto}}@media (max-width: 575.98px){.sc-ix-modal-h .modal.sc-ix-modal .modal-dialog.sc-ix-modal{height:100%;margin:0}.sc-ix-modal-h .modal.sc-ix-modal .modal-dialog.sc-ix-modal .modal-content.sc-ix-modal{height:100%;border-radius:0}}@keyframes modal-fade{from{opacity:0%}to{opacity:100%}}@keyframes slide-down{from{top:-100%}to{top:32px}}";
7
7
 
8
+ let modalInstanceId = 0;
9
+ function getNextModalInstanceId() {
10
+ return `ix-modal-instance-${++modalInstanceId}`;
11
+ }
8
12
  const Modal = class {
9
13
  constructor(hostRef) {
10
14
  registerInstance(this, hostRef);
11
15
  this.closed = createEvent(this, "closed", 7);
12
16
  this.dismissed = createEvent(this, "dismissed", 7);
17
+ this.modalId = getNextModalInstanceId();
13
18
  this.onKeydown = this.handleKeydown.bind(this);
14
19
  this.animation = true;
15
20
  this.ariaDescribedBy = undefined;
@@ -120,7 +125,7 @@ const Modal = class {
120
125
  this.slideUp(this.modalContent, () => this.closed.emit(result));
121
126
  }
122
127
  render() {
123
- return (h(Host, null, h("div", { class: {
128
+ return (h(Host, { id: this.modalId }, h("div", { class: {
124
129
  animation: this.animation,
125
130
  modal: true,
126
131
  backdrop: this.backdrop === 'static' || this.backdrop,
@@ -163,6 +168,9 @@ const ModalContainer = class {
163
168
  constructor(hostRef) {
164
169
  registerInstance(this, hostRef);
165
170
  }
171
+ get modalStack() {
172
+ return this.hostElement.querySelector(':scope > div.modal-stack');
173
+ }
166
174
  /**
167
175
  * Display modal dialog
168
176
  *
@@ -183,13 +191,17 @@ const ModalContainer = class {
183
191
  else {
184
192
  modal.appendChild(content);
185
193
  }
186
- this.hostElement.appendChild(modal);
194
+ this.modalStack.appendChild(modal);
187
195
  modal.addEventListener('closed', (event) => {
188
- this.hostElement.removeChild(modal);
196
+ event.preventDefault();
197
+ event.stopImmediatePropagation();
198
+ this.modalStack.removeChild(modal);
189
199
  onClose.emit(event.detail);
190
200
  });
191
201
  modal.addEventListener('dismissed', (event) => {
192
- this.hostElement.removeChild(modal);
202
+ event.preventDefault();
203
+ event.stopImmediatePropagation();
204
+ this.modalStack.removeChild(modal);
193
205
  onDismiss.emit(event.detail);
194
206
  });
195
207
  return {
@@ -199,7 +211,7 @@ const ModalContainer = class {
199
211
  };
200
212
  }
201
213
  render() {
202
- return h(Host, null);
214
+ return (h(Host, null, h("div", { class: "modal-stack" })));
203
215
  }
204
216
  get hostElement() { return getElement(this); }
205
217
  };
@@ -1 +1 @@
1
- {"file":"ix-modal.ix-modal-container.entry.js","mappings":"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","names":[],"sources":["./src/components/modal/modal.scss?tag=ix-modal&encapsulation=scoped","./src/components/modal/modal.tsx","./src/components/modal-container/modal-container.scss?tag=ix-modal-container&encapsulation=scoped","./src/components/modal-container/modal-container.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 '~bootstrap/scss/_functions';\n@import '~bootstrap/scss/mixins/_breakpoints.scss';\n@import '~bootstrap/scss/_variables.scss';\n\n@import 'common-variables';\n\n:host {\n position: relative;\n width: 100vw;\n height: 100vh;\n\n .modal {\n display: flex;\n\n &.animation {\n animation: modal-fade $medium-time ease-in-out;\n }\n\n &.backdrop {\n background-color: var(--theme-color-lightbox);\n backdrop-filter: blur(4px);\n transition: none;\n\n &.animation {\n transition: backdrop-filter $short-time ease-in-out;\n }\n }\n\n .modal-dialog {\n flex-grow: 1;\n }\n\n &.scrollable {\n .modal-content {\n max-height: 100%;\n .modal-body {\n overflow-y: auto;\n }\n }\n }\n\n .modal-content {\n box-shadow: var(--theme-modal--box-shadow);\n flex-direction: row;\n background-color: var(--theme-modal--background);\n border: var(--modal--border-thickness) solid\n var(--theme-modal--border-color);\n padding: $large-space;\n max-height: 100vh;\n\n .state-icon-container {\n margin-inline-end: $default-space;\n }\n\n .slot-container {\n flex-grow: 1;\n }\n }\n\n @include media-breakpoint-up(sm) {\n .modal-dialog:not(.modal-dialog-centered) {\n margin: 2.5rem auto;\n }\n }\n\n @include media-breakpoint-down(sm) {\n .modal-dialog {\n height: 100%;\n margin: 0;\n\n .modal-content {\n height: 100%;\n border-radius: 0;\n }\n }\n }\n\n @keyframes modal-fade {\n from {\n opacity: 0%;\n }\n to {\n opacity: 100%;\n }\n }\n\n @keyframes slide-down {\n from {\n top: -100%;\n }\n to {\n top: 32px;\n }\n }\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 Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n} from '@stencil/core';\nimport anime from 'animejs';\nimport Animation from '../utils/animation';\nimport { NotificationColor } from '../utils/notification-color';\n\n@Component({\n tag: 'ix-modal',\n styleUrl: 'modal.scss',\n scoped: true,\n})\nexport class Modal {\n @Element() hostElement: HTMLIxModalElement;\n\n /**\n * Should the modal be animtated\n */\n @Prop() animation = true;\n\n /**\n *\n */\n @Prop() ariaDescribedBy: string;\n\n /**\n *\n */\n @Prop() ariaLabelledBy = 'modal-title';\n\n /**\n * Adds a dimming layer to the modal.\n * This should only be used when it it necessary to focus the user's attention to the dialog content (e.g. errors, warnings, complex tasks).\n */\n @Prop() backdrop: boolean | 'static' = true;\n\n /**\n * Backdrop class\n */\n @Prop() backdropClass: string;\n\n /**\n * BeforeDismiss callback\n */\n @Prop() beforeDismiss: (reason?: any) => boolean | Promise<boolean>;\n\n /**\n * Centered modal\n */\n @Prop() centered = false;\n\n /**\n * Content of modal\n */\n @Prop() content: HTMLElement | string;\n\n /**\n * ESC close modal dialog\n */\n @Prop() keyboard = true;\n\n /**\n * Optional icon displayed next to the title\n */\n @Prop() icon: string;\n\n /**\n * Color of the header {@see ix-icon}\n */\n @Prop() iconColor: NotificationColor = 'color-std-text';\n\n /**\n * Modal dialog class\n */\n @Prop() modalDialogClass: string;\n\n /**\n * Modal scollable\n */\n @Prop() scrollable = true;\n\n /**\n * Modal size\n */\n @Prop() size: 'sm' | 'lg' | 'xl' = 'sm';\n\n /**\n * Header title\n */\n @Prop() headerTitle: string;\n\n /**\n * Window class\n */\n @Prop() windowClass: string;\n\n /**\n * Modal closed\n */\n @Event() closed: EventEmitter;\n\n /**\n * Modal dismissed\n */\n @Event() dismissed: EventEmitter;\n\n private readonly onKeydown = this.handleKeydown.bind(this);\n\n get modal() {\n return this.hostElement.querySelector('.modal');\n }\n\n get modalDialog() {\n return this.modal.querySelector('.modal-dialog');\n }\n\n get modalContent() {\n return this.modalDialog.querySelector('.modal-content');\n }\n\n get modalBackdrop() {\n return this.hostElement.querySelector('.backdrop');\n }\n\n private slideDown(modal: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [0, 1],\n translateY: ['-100%', 0],\n easing: 'easeOutSine',\n });\n }\n\n private slideUp(modal: any, completeCallback?: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [1, 0],\n translateY: [0, '-100%'],\n easing: 'easeInSine',\n complete: () => {\n if (completeCallback) {\n completeCallback();\n }\n },\n });\n }\n\n private onBackdropClick(event: Event) {\n const target = event.target as Element;\n if (target.classList.contains('backdrop')) {\n this.dismiss(event);\n }\n }\n\n componentDidLoad() {\n if (this.backdrop === 'static') {\n this.modalBackdrop.addEventListener('click', (event) =>\n this.onBackdropClick(event)\n );\n }\n\n if (this.backdropClass) {\n this.modalBackdrop.classList.add(this.backdropClass);\n }\n\n if (this.modalDialogClass) {\n this.modalDialog.classList.add(this.modalDialogClass);\n }\n\n if (this.windowClass) {\n this.modal.classList.add(this.windowClass);\n }\n\n if (this.keyboard) {\n window.addEventListener('keydown', this.onKeydown);\n }\n\n this.slideDown(this.modalContent);\n }\n\n private handleKeydown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n this.dismiss(ev.key);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.onKeydown);\n }\n\n /**\n * Dismiss modal instance\n * @param reason\n */\n @Method()\n async dismiss<T = any>(reason?: T) {\n if (this.beforeDismiss) {\n const result = await this.beforeDismiss(reason);\n if (result !== false) {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n } else {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n }\n\n /**\n * Close modal\n * @param result\n */\n @Method()\n async close<T = any>(result: T) {\n this.slideUp(this.modalContent, () => this.closed.emit(result));\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n animation: this.animation,\n modal: true,\n backdrop: this.backdrop === 'static' || this.backdrop,\n 'align-items-center': this.centered,\n scrollable: this.scrollable,\n }}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.ariaLabelledBy}\n >\n <div\n class={{\n 'modal-dialog': true,\n 'modal-sm': this.size === 'sm',\n 'modal-lg': this.size === 'lg',\n 'modal-xl': this.size === 'xl',\n }}\n >\n <div class=\"modal-content\">\n {this.icon === undefined || this.icon === '' ? (\n ''\n ) : (\n <div class=\"state-icon-container\">\n <ix-icon\n name={this.icon}\n size=\"32\"\n color={this.iconColor}\n ></ix-icon>\n </div>\n )}\n <div class=\"slot-container\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\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\n:host {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\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 { Component, Element, h, Host, Method } from '@stencil/core';\nimport { ModalConfig, ModalInstance } from '../modal/modal-utils';\nimport { TypedEvent } from '../utils/typed-event';\n\n@Component({\n tag: 'ix-modal-container',\n styleUrl: 'modal-container.scss',\n scoped: true,\n})\nexport class ModalContainer {\n @Element() hostElement: HTMLIxModalContainerElement;\n\n /**\n * Display modal dialog\n *\n * @param config\n */\n @Method()\n async showModal<T = any>(config: ModalConfig<T>): Promise<ModalInstance<T>> {\n const onClose = new TypedEvent<T>();\n const onDismiss = new TypedEvent<T>();\n\n const modal = document.createElement('ix-modal');\n let { title, content, ...modifiedConfig } = config;\n Object.assign(modal, { headerTitle: title, ...modifiedConfig });\n\n if (typeof content === 'string') {\n const template = document.createElement('template');\n content = content.trim();\n template.innerHTML = content;\n modal.appendChild(template.content.firstChild);\n } else {\n modal.appendChild(content);\n }\n\n this.hostElement.appendChild(modal);\n\n modal.addEventListener('closed', (event: CustomEvent<T>) => {\n this.hostElement.removeChild(modal);\n onClose.emit(event.detail);\n });\n modal.addEventListener('dismissed', (event: CustomEvent<T>) => {\n this.hostElement.removeChild(modal);\n onDismiss.emit(event.detail);\n });\n\n return {\n htmlElement: modal,\n onClose,\n onDismiss,\n };\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"version":3}
1
+ {"file":"ix-modal.ix-modal-container.entry.js","mappings":";;;;;AAAA,MAAM,QAAQ,GAAG,ozDAAozD;;ACuBr0D,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,SAAS,sBAAsB;EAC7B,OAAO,qBAAqB,EAAE,eAAe,EAAE,CAAC;AAClD,CAAC;MAOY,KAAK;;;;;IA8FR,YAAO,GAAG,sBAAsB,EAAE,CAAC;IAC1B,cAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAzFvC,IAAI;;0BAUC,aAAa;oBAMC,IAAI;;;oBAexB,KAAK;;oBAUL,IAAI;;qBAUgB,gBAAgB;;sBAUlC,IAAI;gBAKU,IAAI;;;;EAyBvC,IAAI,KAAK;IACP,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;GACjD;EAED,IAAI,WAAW;IACb,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;GAClD;EAED,IAAI,YAAY;IACd,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;GACzD;EAED,IAAI,aAAa;IACf,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;GACpD;EAEO,SAAS,CAAC,KAAU;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;IAE3D,KAAK,CAAC;MACJ,OAAO,EAAE,KAAK;MACd,QAAQ;MACR,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACf,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;MACxB,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;GACJ;EAEO,OAAO,CAAC,KAAU,EAAE,gBAAsB;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;IAE3D,KAAK,CAAC;MACJ,OAAO,EAAE,KAAK;MACd,QAAQ;MACR,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACf,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;MACxB,MAAM,EAAE,YAAY;MACpB,QAAQ,EAAE;QACR,IAAI,gBAAgB,EAAE;UACpB,gBAAgB,EAAE,CAAC;SACpB;OACF;KACF,CAAC,CAAC;GACJ;EAEO,eAAe,CAAC,KAAY;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;IACvC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;MACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB;GACF;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;MAC9B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,KACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAC5B,CAAC;KACH;IAED,IAAI,IAAI,CAAC,aAAa,EAAE;MACtB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtD;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;MACzB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACvD;IAED,IAAI,IAAI,CAAC,WAAW,EAAE;MACpB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC5C;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACpD;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GACnC;EAEO,aAAa,CAAC,EAAiB;IACrC,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE;MACvB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACtB;GACF;EAED,oBAAoB;IAClB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;GACvD;;;;;EAOD,MAAM,OAAO,CAAU,MAAU;IAC/B,IAAI,IAAI,CAAC,aAAa,EAAE;MACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;MAChD,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;OACpE;KACF;SAAM;MACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACpE;GACF;;;;;EAOD,MAAM,KAAK,CAAU,MAAS;IAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACjE;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,EAAE,EAAE,IAAI,CAAC,OAAO,IACpB,WACE,KAAK,EAAE;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ;QACrD,oBAAoB,EAAE,IAAI,CAAC,QAAQ;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;OAC5B,sBACiB,IAAI,CAAC,eAAe,qBACrB,IAAI,CAAC,cAAc,IAEpC,WACE,KAAK,EAAE;QACL,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QAC9B,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QAC9B,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;OAC/B,IAED,WAAK,KAAK,EAAC,eAAe,IACvB,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,IAC1C,EAAE,KAEF,WAAK,KAAK,EAAC,sBAAsB,IAC/B,eACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GACZ,CACP,CACP,EACD,WAAK,KAAK,EAAC,gBAAgB,IACzB,eAAa,CACT,CACF,CACF,CACF,CACD,EACP;GACH;;;;;AC9RH,MAAM,iBAAiB,GAAG,uEAAuE;;ACAjG;;;;;;;;;;;;;;;;;;;;MAkBa,cAAc;;;;EAGzB,IAAI,UAAU;IACZ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;GACnE;;;;;;EAQD,MAAM,SAAS,CAAU,MAAsB;IAC7C,MAAM,OAAO,GAAG,IAAI,UAAU,EAAK,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,UAAU,EAAK,CAAC;IAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,KAAK,EAAE,OAAO,KAAwB,MAAM,EAAzB,cAAc,UAAK,MAAM,EAA9C,oBAAqC,CAAS,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAI,WAAW,EAAE,KAAK,IAAK,cAAc,EAAG,CAAC;IAEhE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;MAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;MACpD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;MACzB,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;MAC7B,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAChD;SAAM;MACL,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAqB;MACrD,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;MACjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5B,CAAC,CAAC;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAqB;MACxD,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;MACjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACnC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC9B,CAAC,CAAC;IAEH,OAAO;MACL,WAAW,EAAE,KAAK;MAClB,OAAO;MACP,SAAS;KACV,CAAC;GACH;EAED,MAAM;IACJ,QACE,EAAC,IAAI,QACH,WAAK,KAAK,EAAC,aAAa,GAAO,CAC1B,EACP;GACH;;;;;;;","names":[],"sources":["./src/components/modal/modal.scss?tag=ix-modal&encapsulation=scoped","./src/components/modal/modal.tsx","./src/components/modal-container/modal-container.scss?tag=ix-modal-container&encapsulation=scoped","./src/components/modal-container/modal-container.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 '~bootstrap/scss/_functions';\n@import '~bootstrap/scss/mixins/_breakpoints.scss';\n@import '~bootstrap/scss/_variables.scss';\n\n@import 'common-variables';\n\n:host {\n position: relative;\n width: 100vw;\n height: 100vh;\n\n .modal {\n display: flex;\n\n &.animation {\n animation: modal-fade $medium-time ease-in-out;\n }\n\n &.backdrop {\n background-color: var(--theme-color-lightbox);\n backdrop-filter: blur(4px);\n transition: none;\n\n &.animation {\n transition: backdrop-filter $short-time ease-in-out;\n }\n }\n\n .modal-dialog {\n flex-grow: 1;\n }\n\n &.scrollable {\n .modal-content {\n max-height: 100%;\n .modal-body {\n overflow-y: auto;\n }\n }\n }\n\n .modal-content {\n box-shadow: var(--theme-modal--box-shadow);\n flex-direction: row;\n background-color: var(--theme-modal--background);\n border: var(--modal--border-thickness) solid\n var(--theme-modal--border-color);\n padding: $large-space;\n max-height: 100vh;\n\n .state-icon-container {\n margin-inline-end: $default-space;\n }\n\n .slot-container {\n flex-grow: 1;\n }\n }\n\n @include media-breakpoint-up(sm) {\n .modal-dialog:not(.modal-dialog-centered) {\n margin: 2.5rem auto;\n }\n }\n\n @include media-breakpoint-down(sm) {\n .modal-dialog {\n height: 100%;\n margin: 0;\n\n .modal-content {\n height: 100%;\n border-radius: 0;\n }\n }\n }\n\n @keyframes modal-fade {\n from {\n opacity: 0%;\n }\n to {\n opacity: 100%;\n }\n }\n\n @keyframes slide-down {\n from {\n top: -100%;\n }\n to {\n top: 32px;\n }\n }\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 Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n} from '@stencil/core';\nimport anime from 'animejs';\nimport Animation from '../utils/animation';\nimport { NotificationColor } from '../utils/notification-color';\n\nlet modalInstanceId = 0;\n\nfunction getNextModalInstanceId() {\n return `ix-modal-instance-${++modalInstanceId}`;\n}\n\n@Component({\n tag: 'ix-modal',\n styleUrl: 'modal.scss',\n scoped: true,\n})\nexport class Modal {\n @Element() hostElement: HTMLIxModalElement;\n\n /**\n * Should the modal be animtated\n */\n @Prop() animation = true;\n\n /**\n *\n */\n @Prop() ariaDescribedBy: string;\n\n /**\n *\n */\n @Prop() ariaLabelledBy = 'modal-title';\n\n /**\n * Adds a dimming layer to the modal.\n * This should only be used when it it necessary to focus the user's attention to the dialog content (e.g. errors, warnings, complex tasks).\n */\n @Prop() backdrop: boolean | 'static' = true;\n\n /**\n * Backdrop class\n */\n @Prop() backdropClass: string;\n\n /**\n * BeforeDismiss callback\n */\n @Prop() beforeDismiss: (reason?: any) => boolean | Promise<boolean>;\n\n /**\n * Centered modal\n */\n @Prop() centered = false;\n\n /**\n * Content of modal\n */\n @Prop() content: HTMLElement | string;\n\n /**\n * ESC close modal dialog\n */\n @Prop() keyboard = true;\n\n /**\n * Optional icon displayed next to the title\n */\n @Prop() icon: string;\n\n /**\n * Color of the header {@see ix-icon}\n */\n @Prop() iconColor: NotificationColor = 'color-std-text';\n\n /**\n * Modal dialog class\n */\n @Prop() modalDialogClass: string;\n\n /**\n * Modal scollable\n */\n @Prop() scrollable = true;\n\n /**\n * Modal size\n */\n @Prop() size: 'sm' | 'lg' | 'xl' = 'sm';\n\n /**\n * Header title\n */\n @Prop() headerTitle: string;\n\n /**\n * Window class\n */\n @Prop() windowClass: string;\n\n /**\n * Modal closed\n */\n @Event() closed: EventEmitter;\n\n /**\n * Modal dismissed\n */\n @Event() dismissed: EventEmitter;\n\n private modalId = getNextModalInstanceId();\n private readonly onKeydown = this.handleKeydown.bind(this);\n\n get modal() {\n return this.hostElement.querySelector('.modal');\n }\n\n get modalDialog() {\n return this.modal.querySelector('.modal-dialog');\n }\n\n get modalContent() {\n return this.modalDialog.querySelector('.modal-content');\n }\n\n get modalBackdrop() {\n return this.hostElement.querySelector('.backdrop');\n }\n\n private slideDown(modal: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [0, 1],\n translateY: ['-100%', 0],\n easing: 'easeOutSine',\n });\n }\n\n private slideUp(modal: any, completeCallback?: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [1, 0],\n translateY: [0, '-100%'],\n easing: 'easeInSine',\n complete: () => {\n if (completeCallback) {\n completeCallback();\n }\n },\n });\n }\n\n private onBackdropClick(event: Event) {\n const target = event.target as Element;\n if (target.classList.contains('backdrop')) {\n this.dismiss(event);\n }\n }\n\n componentDidLoad() {\n if (this.backdrop === 'static') {\n this.modalBackdrop.addEventListener('click', (event) =>\n this.onBackdropClick(event)\n );\n }\n\n if (this.backdropClass) {\n this.modalBackdrop.classList.add(this.backdropClass);\n }\n\n if (this.modalDialogClass) {\n this.modalDialog.classList.add(this.modalDialogClass);\n }\n\n if (this.windowClass) {\n this.modal.classList.add(this.windowClass);\n }\n\n if (this.keyboard) {\n window.addEventListener('keydown', this.onKeydown);\n }\n\n this.slideDown(this.modalContent);\n }\n\n private handleKeydown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n this.dismiss(ev.key);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.onKeydown);\n }\n\n /**\n * Dismiss modal instance\n * @param reason\n */\n @Method()\n async dismiss<T = any>(reason?: T) {\n if (this.beforeDismiss) {\n const result = await this.beforeDismiss(reason);\n if (result !== false) {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n } else {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n }\n\n /**\n * Close modal\n * @param result\n */\n @Method()\n async close<T = any>(result: T) {\n this.slideUp(this.modalContent, () => this.closed.emit(result));\n }\n\n render() {\n return (\n <Host id={this.modalId}>\n <div\n class={{\n animation: this.animation,\n modal: true,\n backdrop: this.backdrop === 'static' || this.backdrop,\n 'align-items-center': this.centered,\n scrollable: this.scrollable,\n }}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.ariaLabelledBy}\n >\n <div\n class={{\n 'modal-dialog': true,\n 'modal-sm': this.size === 'sm',\n 'modal-lg': this.size === 'lg',\n 'modal-xl': this.size === 'xl',\n }}\n >\n <div class=\"modal-content\">\n {this.icon === undefined || this.icon === '' ? (\n ''\n ) : (\n <div class=\"state-icon-container\">\n <ix-icon\n name={this.icon}\n size=\"32\"\n color={this.iconColor}\n ></ix-icon>\n </div>\n )}\n <div class=\"slot-container\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\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\n:host {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\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 { Component, Element, h, Host, Method } from '@stencil/core';\nimport { ModalConfig, ModalInstance } from '../modal/modal-utils';\nimport { TypedEvent } from '../utils/typed-event';\n\n@Component({\n tag: 'ix-modal-container',\n styleUrl: 'modal-container.scss',\n scoped: true,\n})\nexport class ModalContainer {\n @Element() hostElement: HTMLIxModalContainerElement;\n\n get modalStack() {\n return this.hostElement.querySelector(':scope > div.modal-stack');\n }\n\n /**\n * Display modal dialog\n *\n * @param config\n */\n @Method()\n async showModal<T = any>(config: ModalConfig<T>): Promise<ModalInstance<T>> {\n const onClose = new TypedEvent<T>();\n const onDismiss = new TypedEvent<T>();\n\n const modal = document.createElement('ix-modal');\n let { title, content, ...modifiedConfig } = config;\n Object.assign(modal, { headerTitle: title, ...modifiedConfig });\n\n if (typeof content === 'string') {\n const template = document.createElement('template');\n content = content.trim();\n template.innerHTML = content;\n modal.appendChild(template.content.firstChild);\n } else {\n modal.appendChild(content);\n }\n this.modalStack.appendChild(modal);\n\n modal.addEventListener('closed', (event: CustomEvent<T>) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.modalStack.removeChild(modal);\n onClose.emit(event.detail);\n });\n modal.addEventListener('dismissed', (event: CustomEvent<T>) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.modalStack.removeChild(modal);\n onDismiss.emit(event.detail);\n });\n\n return {\n htmlElement: modal,\n onClose,\n onDismiss,\n };\n }\n\n render() {\n return (\n <Host>\n <div class=\"modal-stack\"></div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,119 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-3d163acd.js';
2
+
3
+ const paginationCss = ".sc-ix-pagination-h,.sc-ix-pagination-h .advanced-pagination.sc-ix-pagination,.sc-ix-pagination-h .item-count.sc-ix-pagination{display:inline-flex;align-items:center}.sc-ix-pagination-h .basic-pagination.sc-ix-pagination{padding:0 0.125rem}.sc-ix-pagination-h .advanced-pagination.sc-ix-pagination{padding:0 0.75rem}.sc-ix-pagination-h input.sc-ix-pagination{width:4.125rem;text-align:center;margin:0 0.5rem}.sc-ix-pagination-h .page-buttons.sc-ix-pagination{white-space:nowrap}.sc-ix-pagination-h .total-count.sc-ix-pagination{white-space:nowrap}.sc-ix-pagination-h .item-count.sc-ix-pagination{flex-grow:1;justify-content:flex-end;-webkit-margin-start:1.5rem;margin-inline-start:1.5rem}.sc-ix-pagination-h .item-count.sc-ix-pagination ix-select.sc-ix-pagination{width:4.5rem;-webkit-margin-start:1.5rem;margin-inline-start:1.5rem}.sc-ix-pagination-h ix-index-button.sc-ix-pagination+ix-index-button.sc-ix-pagination{-webkit-margin-start:0.125rem;margin-inline-start:0.125rem}";
4
+
5
+ const Pagination = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.pageSelected = createEvent(this, "pageSelected", 7);
9
+ this.itemCountChanged = createEvent(this, "itemCountChanged", 7);
10
+ this.maxCountPages = 7;
11
+ this.advanced = undefined;
12
+ this.itemCount = 15;
13
+ this.showItemCount = true;
14
+ this.count = undefined;
15
+ this.selectedPage = 0;
16
+ this.i18nPage = 'Page';
17
+ this.i18nOf = 'of';
18
+ this.i18nItems = 'Items';
19
+ }
20
+ get pageInput() {
21
+ return this.hostElement.querySelector('.advanced-pagination input.form-control');
22
+ }
23
+ selectPage(index) {
24
+ if (index < 0) {
25
+ this.selectedPage = 0;
26
+ }
27
+ else if (index > this.count - 1) {
28
+ this.selectedPage = this.count - 1;
29
+ }
30
+ else {
31
+ this.selectedPage = index;
32
+ }
33
+ this.pageSelected.emit(this.selectedPage);
34
+ }
35
+ increase() {
36
+ if (this.selectedPage === this.count - 1) {
37
+ return;
38
+ }
39
+ this.selectPage(this.selectedPage + 1);
40
+ }
41
+ decrease() {
42
+ if (this.selectedPage === 0) {
43
+ return;
44
+ }
45
+ this.selectPage(this.selectedPage - 1);
46
+ }
47
+ getPageButton(index) {
48
+ return (h("ix-index-button", { variant: "Primary", onClick: () => {
49
+ this.selectPage(index);
50
+ }, selected: this.selectedPage === index }, index + 1));
51
+ }
52
+ renderPageButtons() {
53
+ const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);
54
+ const hasOverflow = this.count > this.maxCountPages;
55
+ const hasOverflowStart = hasOverflow && this.selectedPage > pagesBeforeOverflow;
56
+ const hasOverflowEnd = hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;
57
+ const pageButtons = [];
58
+ let start = 0;
59
+ let end = Math.min(this.count, this.maxCountPages);
60
+ let pageCount = Math.floor((this.maxCountPages - 4) / 2);
61
+ if (hasOverflowStart) {
62
+ pageButtons.push(this.getPageButton(0));
63
+ pageButtons.push(h("ix-index-button", { variant: "Secondary", onClick: () => {
64
+ if (hasOverflowEnd) {
65
+ this.selectPage(this.selectedPage - Math.max(0, 2 * pageCount + 1));
66
+ }
67
+ else {
68
+ this.selectPage(this.count - this.maxCountPages);
69
+ }
70
+ } }, "..."));
71
+ if (hasOverflowEnd) {
72
+ start = this.count - this.maxCountPages + 2;
73
+ }
74
+ else {
75
+ start = this.count - this.maxCountPages + 2;
76
+ end = this.count;
77
+ }
78
+ }
79
+ if (hasOverflowEnd) {
80
+ if (hasOverflowStart) {
81
+ start = this.selectedPage - pageCount;
82
+ end = this.selectedPage + pageCount + 1;
83
+ }
84
+ else {
85
+ end = this.maxCountPages - 2;
86
+ }
87
+ }
88
+ for (let i = start; i < end; i++) {
89
+ pageButtons.push(this.getPageButton(i));
90
+ }
91
+ if (hasOverflowEnd) {
92
+ pageButtons.push(h("ix-index-button", { variant: "Secondary", onClick: () => {
93
+ if (hasOverflowStart) {
94
+ this.selectPage(this.selectedPage + Math.max(0, 2 * pageCount + 1));
95
+ }
96
+ else {
97
+ this.selectPage(this.maxCountPages - 1);
98
+ }
99
+ } }, "..."));
100
+ pageButtons.push(this.getPageButton(this.count - 1));
101
+ }
102
+ return h("span", { class: "page-buttons" }, pageButtons);
103
+ }
104
+ render() {
105
+ return (h(Host, null, h("ix-icon-button", { disabled: this.selectedPage === 0, ghost: true, icon: "chevron-left-small", onClick: () => this.decrease() }), this.advanced ? (h("div", { class: "advanced-pagination" }, this.i18nPage, h("input", { class: "form-control", type: "number", min: "1", max: this.count, value: this.selectedPage + 1, onChange: (e) => {
106
+ const index = Number.parseInt(e.target['value']);
107
+ this.selectPage(index - 1);
108
+ } }), h("span", { class: "total-count" }, this.i18nOf, " ", this.count))) : (h("span", { class: "basic-pagination" }, this.renderPageButtons(), " ")), h("ix-icon-button", { disabled: this.selectedPage === this.count - 1, ghost: true, icon: "chevron-right-small", onClick: () => this.increase() }), this.advanced && this.showItemCount ? (h("span", { class: "item-count" }, this.i18nItems, h("ix-select", { hideListHeader: true, i18nPlaceholder: "", i18nSelectListHeader: "", "selected-indices": this.itemCount, onItemSelectionChange: (e) => {
109
+ const count = Number.parseInt(e.detail[0]);
110
+ this.itemCountChanged.emit(count);
111
+ } }, h("ix-select-item", { label: "10", value: "10" }), h("ix-select-item", { label: "15", value: "15" }), h("ix-select-item", { label: "20", value: "20" }), h("ix-select-item", { label: "40", value: "40" }), h("ix-select-item", { label: "100", value: "100" })))) : ('')));
112
+ }
113
+ get hostElement() { return getElement(this); }
114
+ };
115
+ Pagination.style = paginationCss;
116
+
117
+ export { Pagination as ix_pagination };
118
+
119
+ //# sourceMappingURL=ix-pagination.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"ix-pagination.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,m9BAAm9B;;MC2B59B,UAAU;;;;;IACJ,kBAAa,GAAG,CAAC,CAAC;;qBAaf,EAAE;yBAKE,IAAI;;wBAUY,CAAC;oBAKtB,MAAM;kBAKR,IAAI;qBAMD,OAAO;;EAY3B,IAAI,SAAS;IACX,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CACnC,yCAAyC,CAC1C,CAAC;GACH;EAEO,UAAU,CAAC,KAAa;IAC9B,IAAI,KAAK,GAAG,CAAC,EAAE;MACb,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;SAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;MACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KACpC;SAAM;MACL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GAC3C;EAEO,QAAQ;IACd,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;MACxC,OAAO;KACR;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;GACxC;EAEO,QAAQ;IACd,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;MAC3B,OAAO;KACR;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;GACxC;EAEO,aAAa,CAAC,KAAa;IACjC,QACE,uBACE,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE;QACP,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;OACxB,EACD,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,IAEpC,KAAK,GAAG,CAAC,CACM,EAClB;GACH;EAEO,iBAAiB;IACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACpD,MAAM,gBAAgB,GACpB,WAAW,IAAI,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;IACzD,MAAM,cAAc,GAClB,WAAW,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,mBAAmB,GAAG,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAI,gBAAgB,EAAE;MACpB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;MACxC,WAAW,CAAC,IAAI,CACd,uBACE,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE;UACP,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CACnD,CAAC;WACH;eAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;WAClD;SACF,UAGe,CACnB,CAAC;MAEF,IAAI,cAAc,EAAE;QAClB,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;OAC7C;WAAM;QACL,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;OAClB;KACF;IAED,IAAI,cAAc,EAAE;MAClB,IAAI,gBAAgB,EAAE;QACpB,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;OACzC;WAAM;QACL,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;OAC9B;KACF;IAED,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;MAChC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED,IAAI,cAAc,EAAE;MAClB,WAAW,CAAC,IAAI,CACd,uBACE,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE;UACP,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CACnD,CAAC;WACH;eAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;WACzC;SACF,UAGe,CACnB,CAAC;MACF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,YAAM,KAAK,EAAC,cAAc,IAAE,WAAW,CAAQ,CAAC;GACxD;EAED,MAAM;IACJ,QACE,EAAC,IAAI,QACH,sBACE,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,CAAC,EACjC,KAAK,QACL,IAAI,EAAC,oBAAoB,EACzB,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,GACd,EAEjB,IAAI,CAAC,QAAQ,IACZ,WAAK,KAAK,EAAC,qBAAqB,IAC7B,IAAI,CAAC,QAAQ,EACd,aACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,GAAG,EACP,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,EAC5B,QAAQ,EAAE,CAAC,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;OAC5B,GACD,EACF,YAAM,KAAK,EAAC,aAAa,IACtB,IAAI,CAAC,MAAM,OAAG,IAAI,CAAC,KAAK,CACpB,CACH,KAEN,YAAM,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,iBAAiB,EAAE,MAAS,CAClE,EAED,sBACE,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,EAC9C,KAAK,QACL,IAAI,EAAC,qBAAqB,EAC1B,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,GACd,EAEjB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,IAClC,YAAM,KAAK,EAAC,YAAY,IACrB,IAAI,CAAC,SAAS,EACf,iBACE,cAAc,QACd,eAAe,EAAC,EAAE,EAClB,oBAAoB,EAAC,EAAE,sBACL,IAAI,CAAC,SAAS,EAChC,qBAAqB,EAAE,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OACnC,IAED,sBAAgB,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAkB,EACvD,sBAAgB,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAkB,EACvD,sBAAgB,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAkB,EACvD,sBAAgB,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAkB,EACvD,sBAAgB,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,GAAkB,CAC/C,CACP,KAEP,EAAE,CACH,CACI,EACP;GACH;;;;;;;","names":[],"sources":["./src/components/pagination/pagination.scss?tag=ix-pagination&encapsulation=scoped","./src/components/pagination/pagination.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 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\n:host {\n &,\n .advanced-pagination,\n .item-count {\n display: inline-flex;\n align-items: center;\n }\n\n .basic-pagination {\n padding: 0 0.125rem;\n }\n\n .advanced-pagination {\n padding: 0 $medium-space;\n }\n\n input {\n width: 4.125rem;\n text-align: center;\n margin: 0 $small-space;\n }\n\n .page-buttons {\n white-space: nowrap;\n }\n\n .total-count {\n white-space: nowrap;\n }\n\n .item-count {\n flex-grow: 1;\n justify-content: flex-end;\n margin-inline-start: $large-space;\n\n ix-select {\n width: 4.5rem;\n margin-inline-start: $large-space;\n }\n }\n\n ix-index-button + ix-index-button {\n margin-inline-start: 0.125rem;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2022 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} from '@stencil/core';\n\n/**\n * @since 1.5.0\n */\n@Component({\n tag: 'ix-pagination',\n styleUrl: 'pagination.scss',\n scoped: true,\n})\nexport class Pagination {\n private readonly maxCountPages = 7;\n\n @Element() hostElement!: HTMLIxPaginationElement;\n\n /**\n * Advanced mode\n */\n @Prop() advanced: boolean;\n\n /**\n * Number of items shown at once.\n * Can only be changed in advaced mode.\n */\n @Prop() itemCount = 15;\n\n /**\n * Show item count in advanced mode\n */\n @Prop() showItemCount = true;\n\n /**\n * Total number of pages\n */\n @Prop() count: number;\n\n /**\n * Zero based index of currently selected page\n */\n @Prop({ mutable: true }) selectedPage = 0;\n\n /**\n * i18n\n */\n @Prop() i18nPage = 'Page';\n\n /**\n * i18n\n */\n @Prop() i18nOf = 'of';\n\n /**\n /**\n * i18n\n */\n @Prop() i18nItems = 'Items';\n\n /**\n * Page selection event\n */\n @Event() pageSelected: EventEmitter<number>;\n\n /**\n * Item count change event\n */\n @Event() itemCountChanged: EventEmitter<number>;\n\n get pageInput() {\n return this.hostElement.querySelector(\n '.advanced-pagination input.form-control'\n );\n }\n\n private selectPage(index: number) {\n if (index < 0) {\n this.selectedPage = 0;\n } else if (index > this.count - 1) {\n this.selectedPage = this.count - 1;\n } else {\n this.selectedPage = index;\n }\n\n this.pageSelected.emit(this.selectedPage);\n }\n\n private increase() {\n if (this.selectedPage === this.count - 1) {\n return;\n }\n\n this.selectPage(this.selectedPage + 1);\n }\n\n private decrease() {\n if (this.selectedPage === 0) {\n return;\n }\n\n this.selectPage(this.selectedPage - 1);\n }\n\n private getPageButton(index: number) {\n return (\n <ix-index-button\n variant=\"Primary\"\n onClick={() => {\n this.selectPage(index);\n }}\n selected={this.selectedPage === index}\n >\n {index + 1}\n </ix-index-button>\n );\n }\n\n private renderPageButtons() {\n const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);\n const hasOverflow = this.count > this.maxCountPages;\n const hasOverflowStart =\n hasOverflow && this.selectedPage > pagesBeforeOverflow;\n const hasOverflowEnd =\n hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;\n const pageButtons = [];\n\n let start = 0;\n let end = Math.min(this.count, this.maxCountPages);\n let pageCount = Math.floor((this.maxCountPages - 4) / 2);\n\n if (hasOverflowStart) {\n pageButtons.push(this.getPageButton(0));\n pageButtons.push(\n <ix-index-button\n variant=\"Secondary\"\n onClick={() => {\n if (hasOverflowEnd) {\n this.selectPage(\n this.selectedPage - Math.max(0, 2 * pageCount + 1)\n );\n } else {\n this.selectPage(this.count - this.maxCountPages);\n }\n }}\n >\n ...\n </ix-index-button>\n );\n\n if (hasOverflowEnd) {\n start = this.count - this.maxCountPages + 2;\n } else {\n start = this.count - this.maxCountPages + 2;\n end = this.count;\n }\n }\n\n if (hasOverflowEnd) {\n if (hasOverflowStart) {\n start = this.selectedPage - pageCount;\n end = this.selectedPage + pageCount + 1;\n } else {\n end = this.maxCountPages - 2;\n }\n }\n\n for (let i = start; i < end; i++) {\n pageButtons.push(this.getPageButton(i));\n }\n\n if (hasOverflowEnd) {\n pageButtons.push(\n <ix-index-button\n variant=\"Secondary\"\n onClick={() => {\n if (hasOverflowStart) {\n this.selectPage(\n this.selectedPage + Math.max(0, 2 * pageCount + 1)\n );\n } else {\n this.selectPage(this.maxCountPages - 1);\n }\n }}\n >\n ...\n </ix-index-button>\n );\n pageButtons.push(this.getPageButton(this.count - 1));\n }\n\n return <span class=\"page-buttons\">{pageButtons}</span>;\n }\n\n render() {\n return (\n <Host>\n <ix-icon-button\n disabled={this.selectedPage === 0}\n ghost\n icon=\"chevron-left-small\"\n onClick={() => this.decrease()}\n ></ix-icon-button>\n\n {this.advanced ? (\n <div class=\"advanced-pagination\">\n {this.i18nPage}\n <input\n class=\"form-control\"\n type=\"number\"\n min=\"1\"\n max={this.count}\n value={this.selectedPage + 1}\n onChange={(e) => {\n const index = Number.parseInt(e.target['value']);\n this.selectPage(index - 1);\n }}\n />\n <span class=\"total-count\">\n {this.i18nOf} {this.count}\n </span>\n </div>\n ) : (\n <span class=\"basic-pagination\">{this.renderPageButtons()} </span>\n )}\n\n <ix-icon-button\n disabled={this.selectedPage === this.count - 1}\n ghost\n icon=\"chevron-right-small\"\n onClick={() => this.increase()}\n ></ix-icon-button>\n\n {this.advanced && this.showItemCount ? (\n <span class=\"item-count\">\n {this.i18nItems}\n <ix-select\n hideListHeader\n i18nPlaceholder=\"\"\n i18nSelectListHeader=\"\"\n selected-indices={this.itemCount}\n onItemSelectionChange={(e) => {\n const count = Number.parseInt(e.detail[0]);\n this.itemCountChanged.emit(count);\n }}\n >\n <ix-select-item label=\"10\" value=\"10\"></ix-select-item>\n <ix-select-item label=\"15\" value=\"15\"></ix-select-item>\n <ix-select-item label=\"20\" value=\"20\"></ix-select-item>\n <ix-select-item label=\"40\" value=\"40\"></ix-select-item>\n <ix-select-item label=\"100\" value=\"100\"></ix-select-item>\n </ix-select>\n </span>\n ) : (\n ''\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-3d163acd.js';
2
2
 
3
- const selectCss = ".sc-ix-select-h{display:inline-block;position:relative;height:auto;width:100%}.sc-ix-select-h .select.sc-ix-select{position:relative;display:flex;align-items:center;height:auto;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}.sc-ix-select-h .select.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .select.sc-ix-select:not(.disabled):not(:disabled):hover{background-color:var(--theme-input--background--hover);border-color:var(--theme-input--border-color--hover)}.sc-ix-select-h .select.sc-ix-select:focus-within{background-color:var(--theme-input--background--focus);border-color:var(--theme-input--border-color--focus);outline:1px solid #119fff !important;outline-offset:var(--theme-input--focus--outline-offset)}.sc-ix-select-h .trigger.sc-ix-select{display:flex;align-items:center;flex-grow:1;height:100%}.sc-ix-select-h .input-container.sc-ix-select{display:flex;position:relative;align-items:flex-start;width:100%}.sc-ix-select-h .input-container.sc-ix-select .chips.sc-ix-select{position:relative;display:flex;align-items:center;flex-wrap:wrap;height:100%;max-height:3.5rem;flex-grow:1;overflow-y:auto}.sc-ix-select-h .input-container.sc-ix-select .chips.sc-ix-select>ix-filter-chip.sc-ix-select{margin:0 0.1rem}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select{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%}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select,.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select:hover,.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select:focus-visible{border:none;outline:none}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select::-moz-placeholder{color:var(--theme-input-select-icon--color)}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select::placeholder{color:var(--theme-input-select-icon--color)}.sc-ix-select-h .input-container.sc-ix-select input.hide-placeholder.sc-ix-select::-moz-placeholder{opacity:0}.sc-ix-select-h .input-container.sc-ix-select input.hide-placeholder.sc-ix-select::placeholder{opacity:0}.sc-ix-select-h .chevron-down-container.sc-ix-select{display:flex;align-items:center;justify-content:center;width:2rem;min-width:2rem;height:100%}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled):hover{background-color:var(--theme-btn-invisible-secondary--background--hover)}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled):active{background-color:var(--theme-btn-invisible-secondary--background--active)}.sc-ix-select-h .add-item.sc-ix-select{display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%}.sc-ix-select-h .select-list-header.sc-ix-select{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 2rem}";
3
+ const selectCss = ".sc-ix-select-h{display:inline-block;position:relative;height:auto;width:100%}.sc-ix-select-h .select.sc-ix-select{position:relative;display:flex;align-items:center;height:auto;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}.sc-ix-select-h .select.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .select.sc-ix-select:not(.disabled):not(:disabled):hover{background-color:var(--theme-input--background--hover);border-color:var(--theme-input--border-color--hover)}.sc-ix-select-h .select.sc-ix-select:focus-within{background-color:var(--theme-input--background--focus);border-color:var(--theme-input--border-color--focus);outline:1px solid #119fff !important;outline-offset:var(--theme-input--focus--outline-offset)}.sc-ix-select-h .hidden.sc-ix-select{display:none !important}.sc-ix-select-h .trigger.sc-ix-select{display:flex;align-items:center;flex-grow:1;height:100%}.sc-ix-select-h .input-container.sc-ix-select{display:flex;position:relative;align-items:flex-start;width:100%}.sc-ix-select-h .input-container.sc-ix-select .chips.sc-ix-select{position:relative;display:flex;align-items:center;flex-wrap:wrap;height:100%;max-height:3.5rem;flex-grow:1;overflow-y:auto}.sc-ix-select-h .input-container.sc-ix-select .chips.sc-ix-select>ix-filter-chip.sc-ix-select{margin:0.1rem}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select{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%}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select,.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select:hover,.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select:focus-visible{border:none;outline:none}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select::-moz-placeholder{color:var(--theme-input-select-icon--color)}.sc-ix-select-h .input-container.sc-ix-select input.sc-ix-select::placeholder{color:var(--theme-input-select-icon--color)}.sc-ix-select-h .input-container.sc-ix-select input.hide-placeholder.sc-ix-select::-moz-placeholder{opacity:0}.sc-ix-select-h .input-container.sc-ix-select input.hide-placeholder.sc-ix-select::placeholder{opacity:0}.sc-ix-select-h .chevron-down-container.sc-ix-select{display:flex;align-items:center;justify-content:center;width:2rem;min-width:2rem;height:100%}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled):hover{background-color:var(--theme-btn-invisible-secondary--background--hover)}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-select-h .editable.sc-ix-select .chevron-down-container.sc-ix-select:not(.disabled):not(:disabled):active{background-color:var(--theme-btn-invisible-secondary--background--active)}.sc-ix-select-h .add-item.sc-ix-select{display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%}.sc-ix-select-h .select-list-header.sc-ix-select{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 2rem}";
4
4
 
5
5
  const Select = class {
6
6
  constructor(hostRef) {
@@ -16,6 +16,8 @@ const Select = class {
16
16
  this.i18nPlaceholder = 'Select an option';
17
17
  this.i18nPlaceholderEditable = 'Type of select option';
18
18
  this.i18nSelectListHeader = 'Please select an option';
19
+ this.i18nNoMatches = 'No matches';
20
+ this.hideListHeader = false;
19
21
  this.dropdownShow = false;
20
22
  this.value = undefined;
21
23
  this.dropdownWrapperRef = undefined;
@@ -41,6 +43,9 @@ const Select = class {
41
43
  get isMultipleMode() {
42
44
  return this.mode === 'multiple';
43
45
  }
46
+ get isEveryDropdownItemHidden() {
47
+ return this.items.every((item) => item.classList.contains('d-none'));
48
+ }
44
49
  watchSelectedIndices(newId) {
45
50
  if (!newId) {
46
51
  this.selectValue([]);
@@ -56,14 +61,6 @@ const Select = class {
56
61
  const newId = event.detail;
57
62
  this.emitItemClick(newId);
58
63
  }
59
- watchInputText(newValue) {
60
- if (!this.editable) {
61
- return;
62
- }
63
- if (this.itemExists(newValue)) {
64
- return;
65
- }
66
- }
67
64
  emitItemClick(newId) {
68
65
  if (this.isMultipleMode && Array.isArray(this.selectedIndices)) {
69
66
  if (this.selectedIndices.includes(newId)) {
@@ -83,10 +80,10 @@ const Select = class {
83
80
  if (value.trim() === '') {
84
81
  return;
85
82
  }
86
- const test = document.createElement('ix-select-item');
87
- test.value = value;
88
- test.label = value;
89
- this.addItemRef.appendChild(test);
83
+ const newItem = document.createElement('ix-select-item');
84
+ newItem.value = value;
85
+ newItem.label = value;
86
+ this.addItemRef.appendChild(newItem);
90
87
  this.clearInput();
91
88
  this.emitItemClick(value);
92
89
  this.addItem.emit(value);
@@ -127,14 +124,16 @@ const Select = class {
127
124
  }
128
125
  dropdownVisibilityChanged(event) {
129
126
  this.dropdownShow = event.detail;
127
+ this.hasFocus = event.detail;
130
128
  if (event.detail) {
131
129
  this.inputRef.focus();
132
130
  this.inputRef.select();
133
- this.navigationItem = this.items[0];
134
- this.setHoverEffectForNavigatedSelectItem();
135
131
  this.removeHiddenFromItems();
132
+ this.isDropdownEmpty = this.isEveryDropdownItemHidden;
133
+ }
134
+ else {
135
+ this.navigationItem = undefined;
136
136
  }
137
- this.hasFocus = event.detail;
138
137
  }
139
138
  async onKeyDown(event) {
140
139
  if (!this.dropdownShow) {
@@ -168,6 +167,8 @@ const Select = class {
168
167
  onArrowNavigation(event) {
169
168
  event.stopPropagation();
170
169
  event.preventDefault();
170
+ const focusItem = this.items.find((item) => document.activeElement === item.querySelector('button'));
171
+ this.navigationItem = focusItem;
171
172
  const selectItems = this.items.filter((i) => !i.classList.contains('d-none'));
172
173
  const index = selectItems.indexOf(this.navigationItem);
173
174
  if (event.code === 'ArrowDown' && index < selectItems.length - 1) {
@@ -179,9 +180,8 @@ const Select = class {
179
180
  this.setHoverEffectForNavigatedSelectItem();
180
181
  }
181
182
  setHoverEffectForNavigatedSelectItem() {
182
- this.items.forEach((item) => {
183
- item.hover = item === this.navigationItem;
184
- });
183
+ var _a;
184
+ (_a = this.navigationItem) === null || _a === void 0 ? void 0 : _a.querySelector('button').focus();
185
185
  }
186
186
  filterItemsWithTypeahead() {
187
187
  this.inputFilterText = this.inputRef.value;
@@ -196,7 +196,7 @@ const Select = class {
196
196
  else {
197
197
  this.removeHiddenFromItems();
198
198
  }
199
- this.isDropdownEmpty = this.items.every((item) => item.classList.contains('d-none'));
199
+ this.isDropdownEmpty = this.isEveryDropdownItemHidden;
200
200
  }
201
201
  removeHiddenFromItems() {
202
202
  this.items.forEach((item) => {
@@ -214,6 +214,28 @@ const Select = class {
214
214
  this.itemSelectionChange.emit(null);
215
215
  this.dropdownShow = false;
216
216
  }
217
+ onInputBlur(e) {
218
+ if (this.editable) {
219
+ return;
220
+ }
221
+ if (this.isSingleMode) {
222
+ if (this.dropdownShow && this.isDropdownEmpty) {
223
+ this.dropdownShow = false;
224
+ }
225
+ }
226
+ if (!this.dropdownShow && this.mode !== 'multiple') {
227
+ e.target['value'] = this.value;
228
+ }
229
+ }
230
+ placeholderValue() {
231
+ if (this.editable) {
232
+ return this.i18nPlaceholderEditable;
233
+ }
234
+ if (this.readonly) {
235
+ return '';
236
+ }
237
+ return this.i18nPlaceholder;
238
+ }
217
239
  render() {
218
240
  var _a, _b, _c;
219
241
  return (h(Host, null, h("div", { class: {
@@ -228,18 +250,15 @@ const Select = class {
228
250
  if (!this.editable)
229
251
  this.dropdownWrapperRef = ref;
230
252
  } }, h("div", { class: "input-container" }, h("div", { class: "chips" }, this.isMultipleMode
231
- ? (_a = this.selectedItems) === null || _a === void 0 ? void 0 : _a.map((item) => (h("ix-filter-chip", { disabled: this.disabled || this.readonly, onCloseClick: (e) => {
253
+ ? (_a = this.selectedItems) === null || _a === void 0 ? void 0 : _a.map((item) => (h("ix-filter-chip", { disabled: this.disabled || this.readonly, key: item.value, onCloseClick: (e) => {
232
254
  e.preventDefault();
233
255
  e.stopPropagation();
234
256
  this.emitItemClick(item.value);
235
257
  } }, item.label)))
236
258
  : '', h("div", { class: "trigger" }, h("input", { "data-testid": "input", disabled: this.disabled, readOnly: this.readonly, type: "text", class: {
237
259
  'allow-clear': this.allowClear && !!((_b = this.value) === null || _b === void 0 ? void 0 : _b.length),
238
- }, placeholder: this.editable
239
- ? this.i18nPlaceholderEditable
240
- : this.i18nPlaceholder, value: this.inputValue, ref: (ref) => (this.inputRef = ref), onInput: () => this.filterItemsWithTypeahead() }), this.isMultipleMode &&
241
- this.allowClear &&
242
- (((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) || this.inputFilterText) ? (h("ix-icon-button", { class: "clear", icon: "clear", ghost: true, oval: true, size: "24", onClick: (e) => {
260
+ }, placeholder: this.placeholderValue(), value: this.inputValue, ref: (ref) => (this.inputRef = ref), onBlur: (e) => this.onInputBlur(e), onInput: () => this.filterItemsWithTypeahead() }), this.allowClear &&
261
+ (((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) || this.inputFilterText) ? (h("ix-icon-button", { class: "clear", icon: "clear", ghost: true, oval: true, size: "16", onClick: (e) => {
243
262
  e.preventDefault();
244
263
  e.stopPropagation();
245
264
  this.clear();
@@ -247,26 +266,26 @@ const Select = class {
247
266
  if (this.editable)
248
267
  this.dropdownWrapperRef = ref;
249
268
  } }, h("ix-icon", { class: "chevron", name: "chevron-down-small" }))))))), h("ix-dropdown", { ref: (ref) => (this.dropdownRef = ref), show: this.dropdownShow, class: {
250
- 'd-none': this.disabled ||
251
- this.readonly ||
252
- (this.isDropdownEmpty && !this.editable),
253
- }, anchor: this.dropdownAnchor, trigger: this.dropdownWrapperRef, onShowChanged: (e) => this.dropdownVisibilityChanged(e), placement: "auto-start", overwriteDropdownStyle: async (delegateConfig) => {
269
+ 'd-none': this.disabled || this.readonly,
270
+ }, anchor: this.dropdownAnchor, trigger: this.dropdownWrapperRef, onShowChanged: (e) => this.dropdownVisibilityChanged(e), placement: "auto-start", overwriteDropdownStyle: async () => {
254
271
  return {
255
- width: `${delegateConfig.triggerRef.clientWidth}px`,
272
+ minWidth: `${this.hostElement.clientWidth}px`,
256
273
  };
257
- } }, h("div", { class: "select-list-header", title: this.i18nSelectListHeader }, this.i18nSelectListHeader), h("slot", null), h("div", { ref: (ref) => (this.addItemRef = ref), class: "d-contents" }), this.itemExists(this.inputFilterText) ? ('') : (h("ix-dropdown-item", { "data-testid": "add-item", icon: "plus", class: {
274
+ } }, h("div", { class: {
275
+ 'select-list-header': true,
276
+ hidden: this.hideListHeader || this.isDropdownEmpty,
277
+ }, title: this.i18nSelectListHeader }, this.i18nSelectListHeader), h("slot", null), h("div", { ref: (ref) => (this.addItemRef = ref), class: "d-contents" }), this.itemExists(this.inputFilterText) ? ('') : (h("ix-dropdown-item", { "data-testid": "add-item", icon: "plus", class: {
258
278
  'add-item': true,
259
279
  'd-none': !(this.editable && this.inputFilterText),
260
280
  }, label: this.inputFilterText, onItemClick: (e) => {
261
281
  e.preventDefault();
262
282
  e.stopPropagation();
263
283
  this.emitAddItem(this.inputFilterText);
264
- } })))));
284
+ } })), this.isDropdownEmpty && !this.editable ? (h("div", { class: "select-list-header" }, this.i18nNoMatches)) : (''))));
265
285
  }
266
286
  get hostElement() { return getElement(this); }
267
287
  static get watchers() { return {
268
- "selectedIndices": ["watchSelectedIndices"],
269
- "inputFilterText": ["watchInputText"]
288
+ "selectedIndices": ["watchSelectedIndices"]
270
289
  }; }
271
290
  };
272
291
  Select.style = selectCss;
@@ -288,7 +307,7 @@ class IxSelectItemLabelChangeEvent extends CustomEvent {
288
307
  }
289
308
  }
290
309
 
291
- const selectItemCss = ".sc-ix-select-item-h{display:block}.sc-ix-select-item-h ix-dropdown-item.sc-ix-select-item button.sc-ix-select-item{margin-left:1rem}";
310
+ const selectItemCss = ".sc-ix-select-item-h{display:block}";
292
311
 
293
312
  const SelectItem = class {
294
313
  constructor(hostRef) {
@@ -320,7 +339,7 @@ const SelectItem = class {
320
339
  }));
321
340
  }
322
341
  render() {
323
- return (h(Host, null, h("ix-dropdown-item", { checked: this.selected, hover: this.hover, label: this.label ? this.label : this.value, onItemClick: (e) => this.onItemClick(e) })));
342
+ return (h(Host, null, h("ix-dropdown-item", { checked: this.selected, label: this.label ? this.label : this.value, onItemClick: (e) => this.onItemClick(e) })));
324
343
  }
325
344
  get hostElement() { return getElement(this); }
326
345
  static get watchers() { return {