@siemens/ix 1.5.0-beta.0 → 1.5.0-beta.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 (241) hide show
  1. package/dist/cjs/index-478a4b66.js +8 -0
  2. package/dist/cjs/index.cjs.js +12 -0
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/ix-blind.cjs.entry.js +6 -3
  5. package/dist/cjs/ix-blind.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js +1 -1
  7. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ix-category-filter.cjs.entry.js +2 -2
  9. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ix-chip.cjs.entry.js +6 -1
  11. package/dist/cjs/ix-chip.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ix-dropdown_2.cjs.entry.js +1 -1
  13. package/dist/cjs/ix-dropdown_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ix-filter-chip.cjs.entry.js +2 -2
  15. package/dist/cjs/ix-filter-chip.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ix-flip-tile_2.cjs.entry.js +11 -2
  17. package/dist/cjs/ix-flip-tile_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ix-index-button.cjs.entry.js +28 -0
  19. package/dist/cjs/ix-index-button.cjs.entry.js.map +1 -0
  20. package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ix-input-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ix-menu_9.cjs.entry.js +1 -1
  23. package/dist/cjs/ix-menu_9.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ix-pagination.cjs.entry.js +115 -0
  25. package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ix-select_2.cjs.entry.js +3 -3
  27. package/dist/cjs/ix-select_2.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ix-toast_2.cjs.entry.js +10 -1
  29. package/dist/cjs/ix-toast_2.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ix-tooltip.cjs.entry.js +31 -27
  31. package/dist/cjs/ix-tooltip.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ix-tree_2.cjs.entry.js +4 -0
  33. package/dist/cjs/ix-tree_2.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ix-upload.cjs.entry.js +8 -23
  35. package/dist/cjs/ix-upload.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ix-workflow-step_2.cjs.entry.js +1 -1
  37. package/dist/cjs/ix-workflow-step_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/loader.cjs.js +1 -1
  39. package/dist/cjs/siemens-ix.cjs.js +1 -1
  40. package/dist/cjs/upload-file-state-a79acf2b.js +19 -0
  41. package/dist/cjs/upload-file-state-a79acf2b.js.map +1 -0
  42. package/dist/collection/collection-manifest.json +2 -0
  43. package/dist/collection/components/blind/blind.css +12 -6
  44. package/dist/collection/components/blind/blind.js +25 -2
  45. package/dist/collection/components/blind/blind.js.map +1 -1
  46. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -2
  47. package/dist/collection/components/category-filter/category-filter.js +2 -2
  48. package/dist/collection/components/category-filter/category-filter.js.map +1 -1
  49. package/dist/collection/components/chip/chip.js +27 -2
  50. package/dist/collection/components/chip/chip.js.map +1 -1
  51. package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
  52. package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
  53. package/dist/collection/components/filter-chip/filter-chip.css +14 -7
  54. package/dist/collection/components/filter-chip/filter-chip.js +1 -1
  55. package/dist/collection/components/filter-chip/filter-chip.js.map +1 -1
  56. package/dist/collection/components/flip-tile/flip-tile.css +0 -4
  57. package/dist/collection/components/flip-tile/flip-tile.js +56 -2
  58. package/dist/collection/components/flip-tile/flip-tile.js.map +1 -1
  59. package/dist/collection/components/index-button/index-button.css +31 -0
  60. package/dist/collection/components/index-button/index-button.js +83 -0
  61. package/dist/collection/components/index-button/index-button.js.map +1 -0
  62. package/dist/collection/components/input-group/input-group.css +3 -0
  63. package/dist/collection/components/menu-item/menu-item.css +15 -10
  64. package/dist/collection/components/pagination/pagination.css +58 -0
  65. package/dist/collection/components/pagination/pagination.js +303 -0
  66. package/dist/collection/components/pagination/pagination.js.map +1 -0
  67. package/dist/collection/components/select/select.js +3 -3
  68. package/dist/collection/components/select/select.js.map +1 -1
  69. package/dist/collection/components/toast/toast-container.js +16 -4
  70. package/dist/collection/components/toast/toast-container.js.map +1 -1
  71. package/dist/collection/components/toast/toast-utils.js +4 -1
  72. package/dist/collection/components/toast/toast-utils.js.map +1 -1
  73. package/dist/collection/components/tooltip/tooltip.css +8 -7
  74. package/dist/collection/components/tooltip/tooltip.js +31 -27
  75. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  76. package/dist/collection/components/tree/tree.js +38 -0
  77. package/dist/collection/components/tree/tree.js.map +1 -1
  78. package/dist/collection/components/workflow-step/workflow-step.css +1 -0
  79. package/dist/collection/index.js +1 -0
  80. package/dist/collection/index.js.map +1 -1
  81. package/dist/components/dropdown-item.js +1 -1
  82. package/dist/components/dropdown-item.js.map +1 -1
  83. package/dist/components/filter-chip.js +2 -2
  84. package/dist/components/filter-chip.js.map +1 -1
  85. package/dist/components/index-button.js +41 -0
  86. package/dist/components/index-button.js.map +1 -0
  87. package/dist/components/index.js +5 -1
  88. package/dist/components/index.js.map +1 -1
  89. package/dist/components/ix-blind.js +15 -5
  90. package/dist/components/ix-blind.js.map +1 -1
  91. package/dist/components/ix-breadcrumb.js +1 -1
  92. package/dist/components/ix-breadcrumb.js.map +1 -1
  93. package/dist/components/ix-category-filter.js +2 -2
  94. package/dist/components/ix-category-filter.js.map +1 -1
  95. package/dist/components/ix-chip.js +6 -1
  96. package/dist/components/ix-chip.js.map +1 -1
  97. package/dist/components/ix-flip-tile.js +13 -2
  98. package/dist/components/ix-flip-tile.js.map +1 -1
  99. package/dist/components/ix-index-button.d.ts +11 -0
  100. package/dist/components/ix-index-button.js +8 -0
  101. package/dist/components/ix-index-button.js.map +1 -0
  102. package/dist/components/ix-input-group.js +1 -1
  103. package/dist/components/ix-input-group.js.map +1 -1
  104. package/dist/components/ix-pagination.d.ts +11 -0
  105. package/dist/components/ix-pagination.js +185 -0
  106. package/dist/components/ix-pagination.js.map +1 -0
  107. package/dist/components/ix-select.js +1 -341
  108. package/dist/components/ix-select.js.map +1 -1
  109. package/dist/components/ix-toast-container.js +10 -1
  110. package/dist/components/ix-toast-container.js.map +1 -1
  111. package/dist/components/ix-tooltip.js +32 -28
  112. package/dist/components/ix-tooltip.js.map +1 -1
  113. package/dist/components/ix-tree.js +4 -0
  114. package/dist/components/ix-tree.js.map +1 -1
  115. package/dist/components/ix-upload.js +1 -16
  116. package/dist/components/ix-upload.js.map +1 -1
  117. package/dist/components/ix-workflow-step.js +1 -1
  118. package/dist/components/ix-workflow-step.js.map +1 -1
  119. package/dist/components/menu-item.js +1 -1
  120. package/dist/components/menu-item.js.map +1 -1
  121. package/dist/components/select.js +345 -0
  122. package/dist/components/select.js.map +1 -0
  123. package/dist/components/upload-file-state.js +19 -0
  124. package/dist/components/upload-file-state.js.map +1 -0
  125. package/dist/esm/index-3d163acd.js +8 -0
  126. package/dist/esm/index.js +5 -1
  127. package/dist/esm/index.js.map +1 -1
  128. package/dist/esm/ix-blind.entry.js +6 -3
  129. package/dist/esm/ix-blind.entry.js.map +1 -1
  130. package/dist/esm/ix-breadcrumb_2.entry.js +1 -1
  131. package/dist/esm/ix-breadcrumb_2.entry.js.map +1 -1
  132. package/dist/esm/ix-category-filter.entry.js +2 -2
  133. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  134. package/dist/esm/ix-chip.entry.js +6 -1
  135. package/dist/esm/ix-chip.entry.js.map +1 -1
  136. package/dist/esm/ix-dropdown_2.entry.js +1 -1
  137. package/dist/esm/ix-dropdown_2.entry.js.map +1 -1
  138. package/dist/esm/ix-filter-chip.entry.js +2 -2
  139. package/dist/esm/ix-filter-chip.entry.js.map +1 -1
  140. package/dist/esm/ix-flip-tile_2.entry.js +11 -2
  141. package/dist/esm/ix-flip-tile_2.entry.js.map +1 -1
  142. package/dist/esm/ix-index-button.entry.js +24 -0
  143. package/dist/esm/ix-index-button.entry.js.map +1 -0
  144. package/dist/esm/ix-input-group.entry.js +1 -1
  145. package/dist/esm/ix-input-group.entry.js.map +1 -1
  146. package/dist/esm/ix-menu_9.entry.js +1 -1
  147. package/dist/esm/ix-menu_9.entry.js.map +1 -1
  148. package/dist/esm/ix-pagination.entry.js +111 -0
  149. package/dist/esm/ix-pagination.entry.js.map +1 -0
  150. package/dist/esm/ix-select_2.entry.js +3 -3
  151. package/dist/esm/ix-select_2.entry.js.map +1 -1
  152. package/dist/esm/ix-toast_2.entry.js +10 -1
  153. package/dist/esm/ix-toast_2.entry.js.map +1 -1
  154. package/dist/esm/ix-tooltip.entry.js +32 -28
  155. package/dist/esm/ix-tooltip.entry.js.map +1 -1
  156. package/dist/esm/ix-tree_2.entry.js +4 -0
  157. package/dist/esm/ix-tree_2.entry.js.map +1 -1
  158. package/dist/esm/ix-upload.entry.js +1 -16
  159. package/dist/esm/ix-upload.entry.js.map +1 -1
  160. package/dist/esm/ix-workflow-step_2.entry.js +1 -1
  161. package/dist/esm/ix-workflow-step_2.entry.js.map +1 -1
  162. package/dist/esm/loader.js +1 -1
  163. package/dist/esm/siemens-ix.js +1 -1
  164. package/dist/esm/upload-file-state-532a36d3.js +19 -0
  165. package/dist/esm/upload-file-state-532a36d3.js.map +1 -0
  166. package/dist/siemens-ix/index.esm.js +1 -1
  167. package/dist/siemens-ix/index.esm.js.map +1 -1
  168. package/dist/siemens-ix/p-030078b4.entry.js +2 -0
  169. package/dist/siemens-ix/p-030078b4.entry.js.map +1 -0
  170. package/dist/siemens-ix/p-076c29d1.js +2 -0
  171. package/dist/siemens-ix/p-076c29d1.js.map +1 -0
  172. package/dist/siemens-ix/p-0f864265.entry.js +2 -0
  173. package/dist/siemens-ix/p-0f864265.entry.js.map +1 -0
  174. package/dist/siemens-ix/p-16ec6f50.entry.js +2 -0
  175. package/dist/siemens-ix/p-16ec6f50.entry.js.map +1 -0
  176. package/dist/siemens-ix/p-1701b127.entry.js +2 -0
  177. package/dist/siemens-ix/p-1701b127.entry.js.map +1 -0
  178. package/dist/siemens-ix/p-24d2d95e.entry.js +2 -0
  179. package/dist/siemens-ix/p-24d2d95e.entry.js.map +1 -0
  180. package/dist/siemens-ix/{p-11af475f.entry.js → p-28f50519.entry.js} +2 -2
  181. package/dist/siemens-ix/p-28f50519.entry.js.map +1 -0
  182. package/dist/siemens-ix/{p-6790d123.entry.js → p-34e3a10e.entry.js} +2 -2
  183. package/dist/siemens-ix/{p-6790d123.entry.js.map → p-34e3a10e.entry.js.map} +1 -1
  184. package/dist/siemens-ix/p-446a0a3f.entry.js +2 -0
  185. package/dist/siemens-ix/p-446a0a3f.entry.js.map +1 -0
  186. package/dist/siemens-ix/p-55d0fabf.entry.js +2 -0
  187. package/dist/siemens-ix/p-55d0fabf.entry.js.map +1 -0
  188. package/dist/siemens-ix/{p-9f55716d.entry.js → p-58ef1328.entry.js} +2 -2
  189. package/dist/siemens-ix/p-58ef1328.entry.js.map +1 -0
  190. package/dist/siemens-ix/{p-aafd18a8.entry.js → p-62b4d696.entry.js} +2 -2
  191. package/dist/siemens-ix/p-62b4d696.entry.js.map +1 -0
  192. package/dist/siemens-ix/p-6facc3cc.entry.js +2 -0
  193. package/dist/siemens-ix/p-6facc3cc.entry.js.map +1 -0
  194. package/dist/siemens-ix/p-73f7ef87.entry.js +2 -0
  195. package/dist/siemens-ix/p-73f7ef87.entry.js.map +1 -0
  196. package/dist/siemens-ix/{p-1811d669.entry.js → p-88a47c9b.entry.js} +2 -2
  197. package/dist/siemens-ix/p-88a47c9b.entry.js.map +1 -0
  198. package/dist/siemens-ix/p-9546cbdd.entry.js +2 -0
  199. package/dist/siemens-ix/p-9546cbdd.entry.js.map +1 -0
  200. package/dist/siemens-ix/{p-5ce07b8b.entry.js → p-afd1f351.entry.js} +2 -2
  201. package/dist/siemens-ix/p-afd1f351.entry.js.map +1 -0
  202. package/dist/siemens-ix/p-b9fbd029.entry.js +2 -0
  203. package/dist/siemens-ix/p-b9fbd029.entry.js.map +1 -0
  204. package/dist/siemens-ix/siemens-ix.css +6 -0
  205. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  206. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  207. package/dist/types/components/blind/blind.d.ts +5 -0
  208. package/dist/types/components/chip/chip.d.ts +8 -0
  209. package/dist/types/components/flip-tile/flip-tile.d.ts +11 -0
  210. package/dist/types/components/index-button/index-button.d.ts +16 -0
  211. package/dist/types/components/pagination/pagination.d.ts +55 -0
  212. package/dist/types/components/toast/toast-container.d.ts +3 -1
  213. package/dist/types/components/toast/toast-utils.d.ts +3 -0
  214. package/dist/types/components/tree/tree.d.ts +13 -0
  215. package/dist/types/components.d.ts +182 -2
  216. package/dist/types/index.d.ts +1 -0
  217. package/package.json +3 -2
  218. package/scss/components/_forms.scss +1 -1
  219. package/dist/siemens-ix/p-0d15aa1a.entry.js +0 -2
  220. package/dist/siemens-ix/p-0d15aa1a.entry.js.map +0 -1
  221. package/dist/siemens-ix/p-11af475f.entry.js.map +0 -1
  222. package/dist/siemens-ix/p-1259ea24.entry.js +0 -2
  223. package/dist/siemens-ix/p-1259ea24.entry.js.map +0 -1
  224. package/dist/siemens-ix/p-1811d669.entry.js.map +0 -1
  225. package/dist/siemens-ix/p-29bd1814.entry.js +0 -2
  226. package/dist/siemens-ix/p-29bd1814.entry.js.map +0 -1
  227. package/dist/siemens-ix/p-5845a03c.entry.js +0 -2
  228. package/dist/siemens-ix/p-5845a03c.entry.js.map +0 -1
  229. package/dist/siemens-ix/p-5ce07b8b.entry.js.map +0 -1
  230. package/dist/siemens-ix/p-7ce0c0e2.entry.js +0 -2
  231. package/dist/siemens-ix/p-7ce0c0e2.entry.js.map +0 -1
  232. package/dist/siemens-ix/p-967f7d5d.entry.js +0 -2
  233. package/dist/siemens-ix/p-967f7d5d.entry.js.map +0 -1
  234. package/dist/siemens-ix/p-9f55716d.entry.js.map +0 -1
  235. package/dist/siemens-ix/p-aafd18a8.entry.js.map +0 -1
  236. package/dist/siemens-ix/p-d7def96c.entry.js +0 -2
  237. package/dist/siemens-ix/p-d7def96c.entry.js.map +0 -1
  238. package/dist/siemens-ix/p-f961c22a.entry.js +0 -2
  239. package/dist/siemens-ix/p-f961c22a.entry.js.map +0 -1
  240. package/dist/siemens-ix/p-fe690347.entry.js +0 -2
  241. package/dist/siemens-ix/p-fe690347.entry.js.map +0 -1
@@ -17,6 +17,7 @@ import { DropdownTriggerEvent } from "./components/dropdown/dropdown";
17
17
  import { DropdownButtonVariant } from "./components/dropdown-button/dropdown-button";
18
18
  import { FlipTileState } from "./components/flip-tile/flip-tile-state";
19
19
  import { IconButtonVariant } from "./components/icon-button/icon-button";
20
+ import { IndexButtonVariant } from "./components/index-button/index-button";
20
21
  import { NotificationColor } from "./components/utils/notification-color";
21
22
  import { ModalConfig, ModalInstance } from "./components/modal/modal-utils";
22
23
  import { SplitButtonVariant } from "./components/split-button/split-button";
@@ -38,6 +39,7 @@ export { DropdownTriggerEvent } from "./components/dropdown/dropdown";
38
39
  export { DropdownButtonVariant } from "./components/dropdown-button/dropdown-button";
39
40
  export { FlipTileState } from "./components/flip-tile/flip-tile-state";
40
41
  export { IconButtonVariant } from "./components/icon-button/icon-button";
42
+ export { IndexButtonVariant } from "./components/index-button/index-button";
41
43
  export { NotificationColor } from "./components/utils/notification-color";
42
44
  export { ModalConfig, ModalInstance } from "./components/modal/modal-utils";
43
45
  export { SplitButtonVariant } from "./components/split-button/split-button";
@@ -90,6 +92,11 @@ export namespace Components {
90
92
  * Collapsed state
91
93
  */
92
94
  "collapsed": boolean;
95
+ /**
96
+ * Optional icon to be displayed next to the header label
97
+ * @since 1.5.0
98
+ */
99
+ "icon": string;
93
100
  /**
94
101
  * Label of blind
95
102
  */
@@ -635,12 +642,23 @@ export namespace Components {
635
642
  interface IxFlipTile {
636
643
  /**
637
644
  * Tmp property name
645
+ * @deprecated Will be removed in 2.0.0. Setting this property has no effect
638
646
  */
639
647
  "footer": string;
648
+ /**
649
+ * Height interpreted as REM
650
+ * @since 1.5.0
651
+ */
652
+ "height": number | 'auto';
640
653
  /**
641
654
  * Variation of the Flip
642
655
  */
643
656
  "state": FlipTileState;
657
+ /**
658
+ * Width interpreted as REM
659
+ * @since 1.5.0
660
+ */
661
+ "width": number | 'auto';
644
662
  }
645
663
  interface IxFlipTileContent {
646
664
  }
@@ -777,6 +795,16 @@ export namespace Components {
777
795
  */
778
796
  "variant": IconButtonVariant;
779
797
  }
798
+ interface IxIndexButton {
799
+ /**
800
+ * Selection state
801
+ */
802
+ "selected": boolean;
803
+ /**
804
+ * Button variant
805
+ */
806
+ "variant": IndexButtonVariant;
807
+ }
780
808
  interface IxInputGroup {
781
809
  }
782
810
  interface IxKpi {
@@ -1105,6 +1133,43 @@ export namespace Components {
1105
1133
  }
1106
1134
  interface IxModalExample {
1107
1135
  }
1136
+ /**
1137
+ * @since 1.5.0
1138
+ */
1139
+ interface IxPagination {
1140
+ /**
1141
+ * Advanced mode
1142
+ */
1143
+ "advanced": boolean;
1144
+ /**
1145
+ * Total number of pages
1146
+ */
1147
+ "count": number;
1148
+ /**
1149
+ * /** i18n
1150
+ */
1151
+ "i18nItems": string;
1152
+ /**
1153
+ * i18n
1154
+ */
1155
+ "i18nOf": string;
1156
+ /**
1157
+ * i18n
1158
+ */
1159
+ "i18nPage": string;
1160
+ /**
1161
+ * Number of items shown at once. Can only be changed in advaced mode.
1162
+ */
1163
+ "itemCount": number;
1164
+ /**
1165
+ * Zero based index of currently selected page
1166
+ */
1167
+ "selectedPage": number;
1168
+ /**
1169
+ * Show item count in advanced mode
1170
+ */
1171
+ "showItemCount": boolean;
1172
+ }
1108
1173
  interface IxPill {
1109
1174
  /**
1110
1175
  * Align pill content left
@@ -1395,7 +1460,7 @@ export namespace Components {
1395
1460
  interface IxToastContainer {
1396
1461
  "containerClass": string;
1397
1462
  "containerId": string;
1398
- "position": string;
1463
+ "position": 'bottom-right' | 'top-right';
1399
1464
  /**
1400
1465
  * Display a toast message
1401
1466
  * @param config
@@ -1706,6 +1771,10 @@ export interface IxModalCustomEvent<T> extends CustomEvent<T> {
1706
1771
  detail: T;
1707
1772
  target: HTMLIxModalElement;
1708
1773
  }
1774
+ export interface IxPaginationCustomEvent<T> extends CustomEvent<T> {
1775
+ detail: T;
1776
+ target: HTMLIxPaginationElement;
1777
+ }
1709
1778
  export interface IxSelectCustomEvent<T> extends CustomEvent<T> {
1710
1779
  detail: T;
1711
1780
  target: HTMLIxSelectElement;
@@ -1958,6 +2027,12 @@ declare global {
1958
2027
  prototype: HTMLIxIconButtonElement;
1959
2028
  new (): HTMLIxIconButtonElement;
1960
2029
  };
2030
+ interface HTMLIxIndexButtonElement extends Components.IxIndexButton, HTMLStencilElement {
2031
+ }
2032
+ var HTMLIxIndexButtonElement: {
2033
+ prototype: HTMLIxIndexButtonElement;
2034
+ new (): HTMLIxIndexButtonElement;
2035
+ };
1961
2036
  interface HTMLIxInputGroupElement extends Components.IxInputGroup, HTMLStencilElement {
1962
2037
  }
1963
2038
  var HTMLIxInputGroupElement: {
@@ -2060,6 +2135,15 @@ declare global {
2060
2135
  prototype: HTMLIxModalExampleElement;
2061
2136
  new (): HTMLIxModalExampleElement;
2062
2137
  };
2138
+ /**
2139
+ * @since 1.5.0
2140
+ */
2141
+ interface HTMLIxPaginationElement extends Components.IxPagination, HTMLStencilElement {
2142
+ }
2143
+ var HTMLIxPaginationElement: {
2144
+ prototype: HTMLIxPaginationElement;
2145
+ new (): HTMLIxPaginationElement;
2146
+ };
2063
2147
  interface HTMLIxPillElement extends Components.IxPill, HTMLStencilElement {
2064
2148
  }
2065
2149
  var HTMLIxPillElement: {
@@ -2229,6 +2313,7 @@ declare global {
2229
2313
  "ix-group-item": HTMLIxGroupItemElement;
2230
2314
  "ix-icon": HTMLIxIconElement;
2231
2315
  "ix-icon-button": HTMLIxIconButtonElement;
2316
+ "ix-index-button": HTMLIxIndexButtonElement;
2232
2317
  "ix-input-group": HTMLIxInputGroupElement;
2233
2318
  "ix-kpi": HTMLIxKpiElement;
2234
2319
  "ix-map-navigation": HTMLIxMapNavigationElement;
@@ -2246,6 +2331,7 @@ declare global {
2246
2331
  "ix-modal": HTMLIxModalElement;
2247
2332
  "ix-modal-container": HTMLIxModalContainerElement;
2248
2333
  "ix-modal-example": HTMLIxModalExampleElement;
2334
+ "ix-pagination": HTMLIxPaginationElement;
2249
2335
  "ix-pill": HTMLIxPillElement;
2250
2336
  "ix-select": HTMLIxSelectElement;
2251
2337
  "ix-select-item": HTMLIxSelectItemElement;
@@ -2316,6 +2402,11 @@ declare namespace LocalJSX {
2316
2402
  * Collapsed state
2317
2403
  */
2318
2404
  "collapsed"?: boolean;
2405
+ /**
2406
+ * Optional icon to be displayed next to the header label
2407
+ * @since 1.5.0
2408
+ */
2409
+ "icon"?: string;
2319
2410
  /**
2320
2411
  * Label of blind
2321
2412
  */
@@ -2479,8 +2570,14 @@ declare namespace LocalJSX {
2479
2570
  "icon"?: string | undefined;
2480
2571
  /**
2481
2572
  * Fire event if close button is clicked
2573
+ * @deprecated Will be removed in 2.0.0. Use `closeChip`
2482
2574
  */
2483
2575
  "onClose"?: (event: IxChipCustomEvent<any>) => void;
2576
+ /**
2577
+ * Fire event if close button is clicked
2578
+ * @since 1.5.0
2579
+ */
2580
+ "onCloseChip"?: (event: IxChipCustomEvent<any>) => void;
2484
2581
  /**
2485
2582
  * Show chip with outline style
2486
2583
  */
@@ -2918,12 +3015,23 @@ declare namespace LocalJSX {
2918
3015
  interface IxFlipTile {
2919
3016
  /**
2920
3017
  * Tmp property name
3018
+ * @deprecated Will be removed in 2.0.0. Setting this property has no effect
2921
3019
  */
2922
3020
  "footer"?: string;
3021
+ /**
3022
+ * Height interpreted as REM
3023
+ * @since 1.5.0
3024
+ */
3025
+ "height"?: number | 'auto';
2923
3026
  /**
2924
3027
  * Variation of the Flip
2925
3028
  */
2926
3029
  "state"?: FlipTileState;
3030
+ /**
3031
+ * Width interpreted as REM
3032
+ * @since 1.5.0
3033
+ */
3034
+ "width"?: number | 'auto';
2927
3035
  }
2928
3036
  interface IxFlipTileContent {
2929
3037
  }
@@ -3076,6 +3184,16 @@ declare namespace LocalJSX {
3076
3184
  */
3077
3185
  "variant"?: IconButtonVariant;
3078
3186
  }
3187
+ interface IxIndexButton {
3188
+ /**
3189
+ * Selection state
3190
+ */
3191
+ "selected"?: boolean;
3192
+ /**
3193
+ * Button variant
3194
+ */
3195
+ "variant"?: IndexButtonVariant;
3196
+ }
3079
3197
  interface IxInputGroup {
3080
3198
  }
3081
3199
  interface IxKpi {
@@ -3411,6 +3529,51 @@ declare namespace LocalJSX {
3411
3529
  }
3412
3530
  interface IxModalExample {
3413
3531
  }
3532
+ /**
3533
+ * @since 1.5.0
3534
+ */
3535
+ interface IxPagination {
3536
+ /**
3537
+ * Advanced mode
3538
+ */
3539
+ "advanced"?: boolean;
3540
+ /**
3541
+ * Total number of pages
3542
+ */
3543
+ "count"?: number;
3544
+ /**
3545
+ * /** i18n
3546
+ */
3547
+ "i18nItems"?: string;
3548
+ /**
3549
+ * i18n
3550
+ */
3551
+ "i18nOf"?: string;
3552
+ /**
3553
+ * i18n
3554
+ */
3555
+ "i18nPage"?: string;
3556
+ /**
3557
+ * Number of items shown at once. Can only be changed in advaced mode.
3558
+ */
3559
+ "itemCount"?: number;
3560
+ /**
3561
+ * Item count change event
3562
+ */
3563
+ "onItemCountChanged"?: (event: IxPaginationCustomEvent<number>) => void;
3564
+ /**
3565
+ * Page selection event
3566
+ */
3567
+ "onPageSelected"?: (event: IxPaginationCustomEvent<number>) => void;
3568
+ /**
3569
+ * Zero based index of currently selected page
3570
+ */
3571
+ "selectedPage"?: number;
3572
+ /**
3573
+ * Show item count in advanced mode
3574
+ */
3575
+ "showItemCount"?: boolean;
3576
+ }
3414
3577
  interface IxPill {
3415
3578
  /**
3416
3579
  * Align pill content left
@@ -3724,7 +3887,7 @@ declare namespace LocalJSX {
3724
3887
  interface IxToastContainer {
3725
3888
  "containerClass"?: string;
3726
3889
  "containerId"?: string;
3727
- "position"?: string;
3890
+ "position"?: 'bottom-right' | 'top-right';
3728
3891
  }
3729
3892
  interface IxToggle {
3730
3893
  /**
@@ -3795,10 +3958,20 @@ declare namespace LocalJSX {
3795
3958
  * Context changed
3796
3959
  */
3797
3960
  "onContextChange"?: (event: IxTreeCustomEvent<TreeContext>) => void;
3961
+ /**
3962
+ * Node clicked event
3963
+ * @since 1.5.0
3964
+ */
3965
+ "onNodeClicked"?: (event: IxTreeCustomEvent<string>) => void;
3798
3966
  /**
3799
3967
  * Emits removed nodes
3800
3968
  */
3801
3969
  "onNodeRemoved"?: (event: IxTreeCustomEvent<any>) => void;
3970
+ /**
3971
+ * Node toggled event
3972
+ * @since 1.5.0
3973
+ */
3974
+ "onNodeToggled"?: (event: IxTreeCustomEvent<{ id: string; isExpaned: boolean }>) => void;
3802
3975
  /**
3803
3976
  * Render function of tree items
3804
3977
  */
@@ -3986,6 +4159,7 @@ declare namespace LocalJSX {
3986
4159
  "ix-group-item": IxGroupItem;
3987
4160
  "ix-icon": IxIcon;
3988
4161
  "ix-icon-button": IxIconButton;
4162
+ "ix-index-button": IxIndexButton;
3989
4163
  "ix-input-group": IxInputGroup;
3990
4164
  "ix-kpi": IxKpi;
3991
4165
  "ix-map-navigation": IxMapNavigation;
@@ -4003,6 +4177,7 @@ declare namespace LocalJSX {
4003
4177
  "ix-modal": IxModal;
4004
4178
  "ix-modal-container": IxModalContainer;
4005
4179
  "ix-modal-example": IxModalExample;
4180
+ "ix-pagination": IxPagination;
4006
4181
  "ix-pill": IxPill;
4007
4182
  "ix-select": IxSelect;
4008
4183
  "ix-select-item": IxSelectItem;
@@ -4073,6 +4248,7 @@ declare module "@stencil/core" {
4073
4248
  "ix-group-item": LocalJSX.IxGroupItem & JSXBase.HTMLAttributes<HTMLIxGroupItemElement>;
4074
4249
  "ix-icon": LocalJSX.IxIcon & JSXBase.HTMLAttributes<HTMLIxIconElement>;
4075
4250
  "ix-icon-button": LocalJSX.IxIconButton & JSXBase.HTMLAttributes<HTMLIxIconButtonElement>;
4251
+ "ix-index-button": LocalJSX.IxIndexButton & JSXBase.HTMLAttributes<HTMLIxIndexButtonElement>;
4076
4252
  "ix-input-group": LocalJSX.IxInputGroup & JSXBase.HTMLAttributes<HTMLIxInputGroupElement>;
4077
4253
  "ix-kpi": LocalJSX.IxKpi & JSXBase.HTMLAttributes<HTMLIxKpiElement>;
4078
4254
  "ix-map-navigation": LocalJSX.IxMapNavigation & JSXBase.HTMLAttributes<HTMLIxMapNavigationElement>;
@@ -4090,6 +4266,10 @@ declare module "@stencil/core" {
4090
4266
  "ix-modal": LocalJSX.IxModal & JSXBase.HTMLAttributes<HTMLIxModalElement>;
4091
4267
  "ix-modal-container": LocalJSX.IxModalContainer & JSXBase.HTMLAttributes<HTMLIxModalContainerElement>;
4092
4268
  "ix-modal-example": LocalJSX.IxModalExample & JSXBase.HTMLAttributes<HTMLIxModalExampleElement>;
4269
+ /**
4270
+ * @since 1.5.0
4271
+ */
4272
+ "ix-pagination": LocalJSX.IxPagination & JSXBase.HTMLAttributes<HTMLIxPaginationElement>;
4093
4273
  "ix-pill": LocalJSX.IxPill & JSXBase.HTMLAttributes<HTMLIxPillElement>;
4094
4274
  "ix-select": LocalJSX.IxSelect & JSXBase.HTMLAttributes<HTMLIxSelectElement>;
4095
4275
  "ix-select-item": LocalJSX.IxSelectItem & JSXBase.HTMLAttributes<HTMLIxSelectItemElement>;
@@ -7,6 +7,7 @@ export * from './components/modal/modal-utils';
7
7
  export * from './components/toast/toast-utils';
8
8
  export * from './components/tree-item/default-tree-item';
9
9
  export * from './components/tree/tree-model';
10
+ export * from './components/upload/upload-file-state';
10
11
  export { NotificationColor } from './components/utils/notification-color';
11
12
  export { convertToAbbreviationString, convertToRemString, } from './components/utils/rwd.util';
12
13
  export * from './components/utils/theme-switcher';
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/siemens/ix",
8
8
  "directory": "packages/core"
9
9
  },
10
- "version": "1.5.0-beta.0",
10
+ "version": "1.5.0-beta.1",
11
11
  "license": "MIT",
12
12
  "description": "Siemens iX Web Components",
13
13
  "main": "dist/index.cjs.js",
@@ -46,7 +46,8 @@
46
46
  "@stencil/core": "^3.1.0",
47
47
  "animejs": "~3.2.1",
48
48
  "hyperlist": "^1.0.0",
49
- "luxon": "^3.0.1"
49
+ "luxon": "^3.0.1",
50
+ "@types/luxon": "^3.0.0"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@playwright/test": "^1.24.1",
@@ -56,7 +56,7 @@
56
56
  &::-webkit-inner-spin-button {
57
57
  margin-right: -2px;
58
58
  margin-left: 2px;
59
- // display: none;
59
+ display: none;
60
60
  }
61
61
 
62
62
  text-align: right;
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as e,g as s}from"./p-8fcd6f85.js";import{a as o,c as r,s as l,o as a,b as h,d as n}from"./p-f34a16c6.js";const c=':host{display:inline-block;position:absolute;left:0px;top:0px;max-width:18.25rem;opacity:0;visibility:collapse;overflow-wrap:break-word;border-radius:0.25rem;background-color:var(--theme-tootlip--background);padding:0.375rem 0.75rem 0.375rem 0.875rem;box-shadow:var(--theme-shadow-4)}:host .tooltip-title{display:flex;align-items:center}:host .tooltip-title ::slotted(ix-icon){margin-right:0.35rem}:host(.visible){opacity:1;visibility:visible}:host .arrow,:host .arrow::before{position:absolute;width:8px;height:8px;background:inherit}:host .arrow{visibility:hidden}:host .arrow::before{visibility:visible;content:"";transform:rotate(45deg);background-color:var(--theme-tootlip--background)}';const u=class{constructor(i){t(this,i);this.onMouseEnterBind=this.showTooltip.bind(this);this.onMouseLeaveBind=this.hideTooltip.bind(this);this.tooltipCloseTimeInMS=50;this.for=undefined;this.titleContent=undefined;this.interactive=false;this.visible=false}get arrowElement(){return this.hostElement.shadowRoot.querySelector(".arrow")}destroyAutoUpdate(){if(this.disposeAutoUpdate){this.disposeAutoUpdate()}}showTooltip(t){clearTimeout(this.hideTooltipTimeout);this.visible=true;this.computeTooltipPosition(t.target)}hideTooltip(){this.hideTooltipTimeout=setTimeout((()=>{this.visible=false}),this.tooltipCloseTimeInMS);this.destroyAutoUpdate()}async computeTooltipPosition(t){this.disposeAutoUpdate=o(t,this.hostElement,(async()=>{const i=await r(t,this.hostElement,{strategy:"absolute",placement:"top",middleware:[l(),a(8),h({element:this.arrowElement}),n({alignment:"start",allowedPlacements:["top","bottom","right","left"]})]});if(i.middlewareData.arrow){const{x:t,y:e}=i.middlewareData.arrow;Object.assign(this.arrowElement.style,{left:t!=null?`${t}px`:"",top:e!=null?`${e}px`:""})}const{x:e,y:s}=i;Object.assign(this.hostElement.style,{left:e!==null?`${e}px`:"",top:s!==null?`${s}px`:""})}),{ancestorResize:true,ancestorScroll:true,elementResize:true})}queryAnchorElements(){return Array.from(document.querySelectorAll(this.for))}registerTriggerListener(){const t=this.queryAnchorElements();t.forEach((t=>{t.addEventListener("mouseenter",this.onMouseEnterBind);t.addEventListener("mouseleave",this.onMouseLeaveBind)}))}registerTooltipListener(){this.hostElement.addEventListener("mouseenter",(()=>{if(this.interactive){clearTimeout(this.hideTooltipTimeout)}}));this.hostElement.addEventListener("mouseleave",(()=>{this.hideTooltip()}))}componentDidLoad(){if(this.interactive){this.tooltipCloseTimeInMS=150}this.observer=new MutationObserver((()=>{this.registerTriggerListener()}));this.observer.observe(document.body,{attributes:true,attributeFilter:["data-ix-tooltip"],childList:true,subtree:true});this.registerTriggerListener();this.registerTooltipListener()}disconnectedCallback(){this.observer.disconnect();this.destroyAutoUpdate()}render(){const t={"tooltip-content":true};return i(e,{class:{visible:this.visible}},i("div",{class:"tooltip-title"},i("slot",{name:"title-icon"}),i("ix-typography",{variant:"default-title"},this.titleContent,i("slot",{name:"title-content"}))),i("div",{class:t},i("slot",null)),i("div",{class:"arrow"}))}get hostElement(){return s(this)}};u.style=c;export{u as ix_tooltip};
2
- //# sourceMappingURL=p-0d15aa1a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tooltipCss","Tooltip","this","onMouseEnterBind","showTooltip","bind","onMouseLeaveBind","hideTooltip","tooltipCloseTimeInMS","arrowElement","hostElement","shadowRoot","querySelector","destroyAutoUpdate","disposeAutoUpdate","e","clearTimeout","hideTooltipTimeout","visible","computeTooltipPosition","target","setTimeout","async","autoUpdate","computeResponse","computePosition","strategy","placement","middleware","shift","offset","arrow","element","autoPlacement","alignment","allowedPlacements","middlewareData","x","y","Object","assign","style","left","top","ancestorResize","ancestorScroll","elementResize","queryAnchorElements","Array","from","document","querySelectorAll","for","registerTriggerListener","elements","forEach","addEventListener","registerTooltipListener","interactive","componentDidLoad","observer","MutationObserver","observe","body","attributes","attributeFilter","childList","subtree","disconnectedCallback","disconnect","render","tooltipContentClass","h","Host","class","name","variant","titleContent"],"sources":["./src/components/tooltip/tooltip.scss?tag=ix-tooltip&encapsulation=shadow","./src/components/tooltip/tooltip.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: absolute;\n left: 0px;\n top: 0px;\n\n max-width: 18.25rem;\n\n opacity: 0;\n visibility: collapse;\n overflow-wrap: break-word;\n\n border-radius: 0.25rem;\n background-color: var(--theme-tootlip--background);\n padding: 0.375rem 0.75rem 0.375rem 0.875rem;\n\n box-shadow: var(--theme-shadow-4);\n\n .tooltip-title {\n display: flex;\n align-items: center;\n\n ::slotted(ix-icon) {\n margin-right: 0.35rem;\n }\n }\n}\n\n:host(.visible) {\n opacity: 1;\n visibility: visible;\n}\n\n:host {\n .arrow,\n .arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n }\n\n .arrow {\n visibility: hidden;\n }\n\n .arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n background-color: var(--theme-tootlip--background);\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 */\nimport {\n arrow,\n autoPlacement,\n autoUpdate,\n computePosition,\n offset,\n shift,\n} from '@floating-ui/dom';\nimport { Component, Element, h, Host, Prop, State } from '@stencil/core';\n\n/**\n * @slot title-icon - Icon of tooltip title\n * @slot title-content - Content of tooltip title\n *\n * @since 1.4.0\n */\n@Component({\n tag: 'ix-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n})\nexport class Tooltip {\n /**\n * CSS selector for hover trigger element e.g. `for=\"[data-my-custom-select]\"`\n */\n @Prop() for: string;\n\n /**\n * Title of the tooltip\n */\n @Prop() titleContent: string;\n\n /**\n * Define if the user can access the tooltip via mouse.\n */\n @Prop() interactive = false;\n\n @State() visible = false;\n\n @Element() hostElement: HTMLIxTooltipElement;\n\n private observer: MutationObserver;\n private hideTooltipTimeout: NodeJS.Timeout;\n private onMouseEnterBind = this.showTooltip.bind(this);\n private onMouseLeaveBind = this.hideTooltip.bind(this);\n private disposeAutoUpdate?: () => void;\n private tooltipCloseTimeInMS = 50;\n\n private get arrowElement() {\n return this.hostElement.shadowRoot.querySelector('.arrow') as HTMLElement;\n }\n\n private destroyAutoUpdate() {\n if (this.disposeAutoUpdate) {\n this.disposeAutoUpdate();\n }\n }\n\n private showTooltip(e: any) {\n clearTimeout(this.hideTooltipTimeout);\n this.visible = true;\n this.computeTooltipPosition(e.target);\n }\n\n private hideTooltip() {\n this.hideTooltipTimeout = setTimeout(() => {\n this.visible = false;\n }, this.tooltipCloseTimeInMS);\n this.destroyAutoUpdate();\n }\n\n private async computeTooltipPosition(target: HTMLElement) {\n this.disposeAutoUpdate = autoUpdate(\n target,\n this.hostElement,\n async () => {\n const computeResponse = await computePosition(\n target,\n this.hostElement,\n {\n strategy: 'absolute',\n placement: 'top',\n middleware: [\n shift(),\n offset(8),\n arrow({\n element: this.arrowElement,\n }),\n autoPlacement({\n alignment: 'start',\n allowedPlacements: ['top', 'bottom', 'right', 'left'],\n }),\n ],\n }\n );\n\n if (computeResponse.middlewareData.arrow) {\n const { x, y } = computeResponse.middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : '',\n });\n }\n\n const { x, y } = computeResponse;\n Object.assign(this.hostElement.style, {\n left: x !== null ? `${x}px` : '',\n top: y !== null ? `${y}px` : '',\n });\n },\n {\n ancestorResize: true,\n ancestorScroll: true,\n elementResize: true,\n }\n );\n }\n\n private queryAnchorElements() {\n return Array.from(document.querySelectorAll(this.for));\n }\n\n private registerTriggerListener() {\n const elements = this.queryAnchorElements();\n elements.forEach((e) => {\n e.addEventListener('mouseenter', this.onMouseEnterBind);\n e.addEventListener('mouseleave', this.onMouseLeaveBind);\n });\n }\n\n private registerTooltipListener() {\n this.hostElement.addEventListener('mouseenter', () => {\n if (this.interactive) {\n clearTimeout(this.hideTooltipTimeout);\n }\n });\n this.hostElement.addEventListener('mouseleave', () => {\n this.hideTooltip();\n });\n }\n\n componentDidLoad() {\n if (this.interactive) {\n this.tooltipCloseTimeInMS = 150;\n }\n\n this.observer = new MutationObserver(() => {\n this.registerTriggerListener();\n });\n\n this.observer.observe(document.body, {\n attributes: true,\n attributeFilter: ['data-ix-tooltip'],\n childList: true,\n subtree: true,\n });\n\n this.registerTriggerListener();\n this.registerTooltipListener();\n }\n\n disconnectedCallback() {\n this.observer.disconnect();\n this.destroyAutoUpdate();\n }\n\n render() {\n const tooltipContentClass = {\n 'tooltip-content': true,\n };\n\n return (\n <Host\n class={{\n visible: this.visible,\n }}\n >\n <div class={'tooltip-title'}>\n <slot name=\"title-icon\"></slot>\n <ix-typography variant=\"default-title\">\n {this.titleContent}\n <slot name=\"title-content\"></slot>\n </ix-typography>\n </div>\n <div class={tooltipContentClass}>\n <slot></slot>\n </div>\n <div class=\"arrow\"></div>\n </Host>\n );\n }\n}\n"],"mappings":"gIAAA,MAAMA,EAAa,srB,MC6BNC,EAAO,M,yBAsBVC,KAAAC,iBAAmBD,KAAKE,YAAYC,KAAKH,MACzCA,KAAAI,iBAAmBJ,KAAKK,YAAYF,KAAKH,MAEzCA,KAAAM,qBAAuB,G,gEAXT,M,aAEH,K,CAWPC,mBACV,OAAOP,KAAKQ,YAAYC,WAAWC,cAAc,S,CAG3CC,oBACN,GAAIX,KAAKY,kBAAmB,CAC1BZ,KAAKY,mB,EAIDV,YAAYW,GAClBC,aAAad,KAAKe,oBAClBf,KAAKgB,QAAU,KACfhB,KAAKiB,uBAAuBJ,EAAEK,O,CAGxBb,cACNL,KAAKe,mBAAqBI,YAAW,KACnCnB,KAAKgB,QAAU,KAAK,GACnBhB,KAAKM,sBACRN,KAAKW,mB,CAGCS,6BAA6BF,GACnClB,KAAKY,kBAAoBS,EACvBH,EACAlB,KAAKQ,aACLY,UACE,MAAME,QAAwBC,EAC5BL,EACAlB,KAAKQ,YACL,CACEgB,SAAU,WACVC,UAAW,MACXC,WAAY,CACVC,IACAC,EAAO,GACPC,EAAM,CACJC,QAAS9B,KAAKO,eAEhBwB,EAAc,CACZC,UAAW,QACXC,kBAAmB,CAAC,MAAO,SAAU,QAAS,aAMtD,GAAIX,EAAgBY,eAAeL,MAAO,CACxC,MAAMM,EAAEA,EAACC,EAAEA,GAAMd,EAAgBY,eAAeL,MAEhDQ,OAAOC,OAAOtC,KAAKO,aAAagC,MAAO,CACrCC,KAAML,GAAK,KAAO,GAAGA,MAAQ,GAC7BM,IAAKL,GAAK,KAAO,GAAGA,MAAQ,I,CAIhC,MAAMD,EAAEA,EAACC,EAAEA,GAAMd,EACjBe,OAAOC,OAAOtC,KAAKQ,YAAY+B,MAAO,CACpCC,KAAML,IAAM,KAAO,GAAGA,MAAQ,GAC9BM,IAAKL,IAAM,KAAO,GAAGA,MAAQ,IAC7B,GAEJ,CACEM,eAAgB,KAChBC,eAAgB,KAChBC,cAAe,M,CAKbC,sBACN,OAAOC,MAAMC,KAAKC,SAASC,iBAAiBjD,KAAKkD,K,CAG3CC,0BACN,MAAMC,EAAWpD,KAAK6C,sBACtBO,EAASC,SAASxC,IAChBA,EAAEyC,iBAAiB,aAActD,KAAKC,kBACtCY,EAAEyC,iBAAiB,aAActD,KAAKI,iBAAiB,G,CAInDmD,0BACNvD,KAAKQ,YAAY8C,iBAAiB,cAAc,KAC9C,GAAItD,KAAKwD,YAAa,CACpB1C,aAAad,KAAKe,mB,KAGtBf,KAAKQ,YAAY8C,iBAAiB,cAAc,KAC9CtD,KAAKK,aAAa,G,CAItBoD,mBACE,GAAIzD,KAAKwD,YAAa,CACpBxD,KAAKM,qBAAuB,G,CAG9BN,KAAK0D,SAAW,IAAIC,kBAAiB,KACnC3D,KAAKmD,yBAAyB,IAGhCnD,KAAK0D,SAASE,QAAQZ,SAASa,KAAM,CACnCC,WAAY,KACZC,gBAAiB,CAAC,mBAClBC,UAAW,KACXC,QAAS,OAGXjE,KAAKmD,0BACLnD,KAAKuD,yB,CAGPW,uBACElE,KAAK0D,SAASS,aACdnE,KAAKW,mB,CAGPyD,SACE,MAAMC,EAAsB,CAC1B,kBAAmB,MAGrB,OACEC,EAACC,EAAI,CACHC,MAAO,CACLxD,QAAShB,KAAKgB,UAGhBsD,EAAA,OAAKE,MAAO,iBACVF,EAAA,QAAMG,KAAK,eACXH,EAAA,iBAAeI,QAAQ,iBACpB1E,KAAK2E,aACNL,EAAA,QAAMG,KAAK,oBAGfH,EAAA,OAAKE,MAAOH,GACVC,EAAA,cAEFA,EAAA,OAAKE,MAAM,U"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["dropdownCss","Dropdown","constructor","hostRef","this","autoUpdateCleanup","toggleBind","toggle","bind","openBind","open","dropdownItems","Array","from","hostElement","querySelectorAll","addEventListenersFor","triggerEvent","closeBehavior","triggerElement","addEventListener","removeEventListenersFor","removeEventListener","async","element","resolveElement","isArray","forEach","trigger","Promise","resolve","selector","document","querySelector","observer","MutationObserver","disconnect","observe","body","childList","subtree","newShow","anchorElement","anchor","applyDropdownPosition","changedTrigger","newTriggerValue","oldTriggerValue","registerListener","unregisterListener","clickOutside","event","target","show","_a","contains","_b","dropdownRef","close","isNestedDropdown","closest","isAnchorSubmenu","preventDefault","stopPropagation","showChanged","emit","defaultPrevented","isSubmenu","positionConfig","strategy","positioningStrategy","middleware","placement","includes","push","flip","inline","shift","offset","autoUpdate","computeResponse","computePosition","Object","assign","style","top","left","transform","Math","round","x","y","overwriteDropdownStyle","overwriteStyle","triggerRef","ancestorResize","ancestorScroll","elementResize","disconnectedCallback","render","h","Host","ref","class","overflow","margin","minWidth","position","display","header","dropdownItemCss","DropdownItem","itemClick","checked","label","undefined","icon","disabled","hover","onClick","emitItemClick","name","size","glyph"],"sources":["./src/components/dropdown/dropdown.scss?tag=ix-dropdown&encapsulation=shadow","./src/components/dropdown/dropdown.tsx","./src/components/dropdown-item/dropdown-item.scss?tag=ix-dropdown-item&encapsulation=scoped","./src/components/dropdown-item/dropdown-item.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 'common-variables';\n@import '~bootstrap/scss/variables';\n@import '~bootstrap/scss/mixins';\n@import '~bootstrap/scss/dropdown';\n\n@import 'mixins/fonts';\n@import 'mixins/text-truncation';\n@import 'components/dropdown';\n\n:host {\n min-width: 0px;\n}\n\n:host(.overflow) {\n max-height: 50vh;\n overflow-y: auto;\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 autoUpdate,\n computePosition,\n ComputePositionConfig,\n flip,\n inline,\n offset,\n shift,\n} from '@floating-ui/dom';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { BasePlacement, Placement, PlacementWithAlignment } from './placement';\n\n/**\n * @internal\n */\nexport type DropdownTriggerEvent = 'click' | 'hover' | 'focus';\n\n@Component({\n tag: 'ix-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n})\nexport class Dropdown {\n @Element() hostElement!: HTMLIxDropdownElement;\n\n /**\n * Show dropdown\n */\n @Prop({ mutable: true, reflect: true }) show = false;\n\n /**\n * Define an element that triggers the dropdown.\n * A trigger can either be a string that will be interpreted as id attribute or a DOM element.\n */\n @Prop() trigger: string | HTMLElement;\n\n /**\n * Define an anchor element\n */\n @Prop() anchor: string | HTMLElement;\n\n /**\n * Close behavior\n */\n @Prop() closeBehavior: 'inside' | 'outside' | 'both' | boolean = 'both';\n\n /**\n * Placement of the dropdown\n */\n @Prop() placement: Placement = 'bottom-start';\n\n /**\n * Position strategy\n */\n @Prop() positioningStrategy: 'absolute' | 'fixed' = 'fixed';\n\n /**\n * Adjust dropdown width to the parent width\n * @deprecated Will be removed in 2.0.0. Property has a typo use `adjustDropdownWidthToReferenceWidth` instead.\n */\n @Prop() adjustDropdownWidthToReferenceWith = false;\n\n /**\n * Adjust dropdown width to the parent width\n *\n * @deprecated Will be removed. Not used anymore\n */\n @Prop() adjustDropdownWidthToReferenceWidth = false;\n\n /**\n * An optional header shown at the top of the dropdown\n */\n @Prop() header?: string;\n\n /**\n * Move dropdown along main axis of alignment\n *\n * @internal\n */\n @Prop() offset: {\n mainAxis?: number;\n crossAxis?: number;\n alignmentAxis?: number;\n };\n\n /**\n * Define one or more events to open dropdown\n * @internal\n */\n @Prop() triggerEvent: DropdownTriggerEvent | DropdownTriggerEvent[] = 'click';\n\n /**\n * @internal\n */\n @Prop() overwriteDropdownStyle: (delegate: {\n dropdownRef: HTMLElement;\n triggerRef?: HTMLElement;\n }) => Promise<Partial<CSSStyleDeclaration>>;\n\n /**\n * Fire event after visibility of dropdown has changed\n */\n @Event() showChanged: EventEmitter<boolean>;\n\n private autoUpdateCleanup: () => void = null;\n\n private triggerElement?: Element;\n private anchorElement?: Element;\n\n private dropdownRef: HTMLElement;\n\n private toggleBind: any;\n private openBind: any;\n\n constructor() {\n this.toggleBind = this.toggle.bind(this);\n this.openBind = this.open.bind(this);\n }\n\n get dropdownItems() {\n return Array.from(this.hostElement.querySelectorAll('ix-dropdown-item'));\n }\n\n private addEventListenersFor(triggerEvent: DropdownTriggerEvent) {\n switch (triggerEvent) {\n case 'click':\n if (this.closeBehavior === 'outside') {\n this.triggerElement.addEventListener('click', this.openBind);\n } else {\n this.triggerElement.addEventListener('click', this.toggleBind);\n }\n break;\n\n case 'hover':\n this.triggerElement.addEventListener('mouseenter', this.openBind);\n break;\n\n case 'focus':\n this.triggerElement.addEventListener('focusin', this.openBind);\n break;\n }\n }\n\n private removeEventListenersFor(\n triggerEvent: DropdownTriggerEvent,\n triggerElement: Element\n ) {\n switch (triggerEvent) {\n case 'click':\n if (this.closeBehavior === 'outside') {\n triggerElement.removeEventListener('click', this.openBind);\n } else {\n triggerElement.removeEventListener('click', this.toggleBind);\n }\n break;\n\n case 'hover':\n triggerElement.removeEventListener('mouseenter', this.openBind);\n break;\n\n case 'focus':\n triggerElement.removeEventListener('focusin', this.openBind);\n break;\n }\n }\n\n private async registerListener(element: string | HTMLElement) {\n this.triggerElement = await this.resolveElement(element);\n if (this.triggerElement) {\n if (Array.isArray(this.triggerEvent)) {\n this.triggerEvent.forEach((triggerEvent) => {\n this.addEventListenersFor(triggerEvent);\n });\n } else {\n this.addEventListenersFor(this.triggerEvent);\n }\n }\n }\n\n private async unregisterListener(element: string | HTMLElement) {\n const trigger = await this.resolveElement(element);\n if (Array.isArray(this.triggerEvent)) {\n this.triggerEvent.forEach((triggerEvent) => {\n this.removeEventListenersFor(triggerEvent, trigger);\n });\n } else {\n this.removeEventListenersFor(this.triggerEvent, trigger);\n }\n }\n\n private resolveElement(element: string | HTMLElement): Promise<Element> {\n if (typeof element !== 'string') {\n return Promise.resolve(element);\n }\n\n const selector = `#${element}`;\n return new Promise((resolve) => {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector));\n }\n\n const observer = new MutationObserver(() => {\n if (document.querySelector(selector)) {\n resolve(document.querySelector(selector));\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n @Watch('show')\n async changedShow(newShow: boolean) {\n if (newShow) {\n this.anchorElement = await (this.anchor\n ? this.resolveElement(this.anchor)\n : this.resolveElement(this.trigger));\n\n if (this.anchorElement) {\n this.applyDropdownPosition();\n }\n }\n }\n\n @Watch('trigger')\n changedTrigger(\n newTriggerValue: string | HTMLElement,\n oldTriggerValue: string | HTMLElement\n ) {\n if (newTriggerValue) {\n this.registerListener(newTriggerValue);\n }\n\n if (oldTriggerValue) {\n this.unregisterListener(oldTriggerValue);\n }\n }\n\n @Listen('click', {\n target: 'window',\n })\n clickOutside(event: Event) {\n const target = event.target as HTMLElement;\n\n if (\n this.show === false ||\n this.closeBehavior === false ||\n this.anchorElement?.contains(target) ||\n this.triggerElement?.contains(target)\n ) {\n return;\n }\n\n switch (this.closeBehavior) {\n case 'outside':\n if (!this.dropdownRef.contains(target)) {\n this.close();\n }\n break;\n case 'inside':\n if (this.dropdownRef.contains(target) && this.hostElement !== target) {\n this.close();\n }\n break;\n case 'both':\n if (this.hostElement !== target) this.close();\n break;\n default:\n this.close();\n }\n }\n\n private isNestedDropdown(element: Element) {\n return element.closest('ix-dropdown');\n }\n\n private isAnchorSubmenu() {\n const anchor = this.anchorElement?.closest('ix-dropdown-item');\n if (!anchor) {\n return false;\n }\n\n return true;\n }\n\n private toggle(event?: Event) {\n event?.preventDefault();\n\n if (this.isNestedDropdown(event.target as HTMLElement)) {\n event?.stopPropagation();\n }\n\n this.show = !this.show;\n this.showChanged.emit(this.show);\n }\n\n private open(event?: Event) {\n event?.preventDefault();\n\n if (this.isNestedDropdown(event.target as HTMLElement)) {\n event?.stopPropagation();\n }\n\n this.show = true;\n this.showChanged.emit(true);\n }\n\n private close(event?: Event) {\n if (event?.defaultPrevented) {\n return;\n }\n\n this.show = false;\n this.showChanged.emit(false);\n }\n\n private async applyDropdownPosition() {\n if (!this.anchorElement) {\n return;\n }\n if (!this.dropdownRef) {\n return;\n }\n const isSubmenu = this.isAnchorSubmenu();\n\n let positionConfig: Partial<ComputePositionConfig> = {\n strategy: this.positioningStrategy,\n middleware: [],\n };\n\n if (isSubmenu) {\n positionConfig.placement = 'right-start';\n }\n\n if (this.placement.includes('auto') || isSubmenu) {\n positionConfig.middleware.push(flip());\n } else {\n positionConfig.placement = this.placement as\n | BasePlacement\n | PlacementWithAlignment;\n }\n\n positionConfig.middleware = [\n ...positionConfig.middleware,\n inline(),\n shift(),\n ];\n\n if (this.offset) {\n positionConfig.middleware.push(offset(this.offset));\n }\n\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n this.autoUpdateCleanup = null;\n }\n this.autoUpdateCleanup = autoUpdate(\n this.anchorElement,\n this.dropdownRef,\n async () => {\n const computeResponse = await computePosition(\n this.anchorElement,\n this.dropdownRef,\n positionConfig\n );\n Object.assign(this.dropdownRef.style, {\n top: '0',\n left: '0',\n transform: `translate(${Math.round(computeResponse.x)}px,${Math.round(\n computeResponse.y\n )}px)`,\n });\n if (this.overwriteDropdownStyle) {\n const overwriteStyle = await this.overwriteDropdownStyle({\n dropdownRef: this.dropdownRef,\n triggerRef: this.triggerElement as HTMLElement,\n });\n\n Object.assign(this.dropdownRef.style, overwriteStyle);\n }\n },\n {\n ancestorResize: true,\n ancestorScroll: true,\n elementResize: true,\n }\n );\n }\n\n async componentDidLoad() {\n if (this.trigger) {\n this.registerListener(this.trigger);\n }\n }\n\n async componentDidRender() {\n await this.applyDropdownPosition();\n }\n\n disconnectedCallback() {\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n }\n }\n\n /**\n * Update position of dropdown\n */\n @Method()\n async updatePosition() {\n this.applyDropdownPosition();\n }\n\n render() {\n return (\n <Host\n ref={(ref) => (this.dropdownRef = ref)}\n class={{\n 'dropdown-menu': true,\n show: this.show,\n overflow: true,\n }}\n style={{\n margin: '0',\n minWidth: '0px',\n position: this.positioningStrategy,\n }}\n >\n <div style={{ display: 'contents' }}>\n {this.header ? <div class=\"dropdown-header\">{this.header}</div> : ''}\n\n <slot></slot>\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@import 'common-variables';\n@import 'mixins/hover';\n@import 'mixins/text-truncation';\n\n:host {\n display: block;\n min-width: 10rem;\n\n &.icon-only {\n min-width: 0;\n\n .dropdown-item > .glyph {\n margin-inline-end: 0;\n }\n\n .dropdown-item {\n padding: $tiny-space $small-space;\n\n @include focus-visible {\n border-color: #199fff;\n }\n }\n }\n\n :focus {\n background-color: transparent;\n color: var(--theme-menu-item--color);\n }\n\n .checkmark {\n position: absolute;\n left: $small-space;\n }\n\n &.checked {\n background-color: var(--theme-select-list-item--background--selected);\n }\n\n .label {\n @include ellipsis;\n }\n\n &.disabled {\n pointer-events: none;\n }\n}\n\n::slotted(ix-icon) {\n margin-inline-start: auto;\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';\n\n@Component({\n tag: 'ix-dropdown-item',\n styleUrl: 'dropdown-item.scss',\n scoped: true,\n})\nexport class DropdownItem {\n @Element() hostElement!: HTMLIxDropdownItemElement;\n\n /**\n * Label of dropdown item\n */\n @Prop() label: string;\n\n /**\n * Icon of dropdown item\n */\n @Prop() icon: string;\n\n /**\n * Display hover state\n */\n @Prop() hover = false;\n\n /**\n * Disable item and remove event listeners\n */\n @Prop() disabled = false;\n\n /**\n * Whether the item is checked or not. If true a checkmark will mark the item as checked.\n */\n @Prop() checked = false;\n\n /**\n * Click on item\n */\n @Event() itemClick: EventEmitter<HTMLIxDropdownItemElement>;\n\n /**\n * Internal usage only\n */\n @Method()\n async emitItemClick() {\n this.itemClick.emit(this.hostElement);\n }\n\n render() {\n return (\n <Host\n class={{\n checked: this.checked,\n 'icon-text': this.label !== undefined && this.icon !== undefined,\n 'icon-only': this.label === undefined && this.icon !== undefined,\n disabled: this.disabled,\n }}\n >\n <button\n class={{\n 'dropdown-item': true,\n hover: this.hover,\n disabled: this.disabled,\n }}\n onClick={() => this.emitItemClick()}\n >\n {this.checked ? (\n <ix-icon class=\"checkmark\" name=\"single-check\" size=\"16\"></ix-icon>\n ) : null}\n\n {this.icon ? (\n <span\n class={{\n glyph: true,\n [`glyph-${this.icon}`]: true,\n disabled: this.disabled,\n }}\n ></span>\n ) : null}\n\n {this.label ? <span class=\"label\">{this.label}</span> : null}\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as p,g as s}from"./p-8fcd6f85.js";const o=".sc-ix-input-group-h{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.sc-ix-input-group-h .group.sc-ix-input-group{display:flex;position:absolute;align-items:center;height:100%}.sc-ix-input-group-h .group-start.sc-ix-input-group{left:0px}.sc-ix-input-group-h .group-end.sc-ix-input-group{right:0px}";const n=class{constructor(i){t(this,i)}componentDidRender(){let t=15;let i=15;this.host.querySelectorAll('[slot="input-end"]').forEach((i=>{i.classList.add("input-group-label");t+=i.getBoundingClientRect().width}));this.host.querySelectorAll('[slot="input-start"]').forEach((t=>{t.classList.add("input-group-label");i+=t.getBoundingClientRect().width}));const p=this.host.querySelector("input.form-control");if(p){p.style.paddingRight=t+"px";p.style.paddingLeft=i+"px"}else{console.warn('You used the ix-input-group without an input-tag, e.g. <input class="form-control" />')}}render(){return i(p,null,i("div",{class:"group group-start"},i("slot",{name:"input-start"})),i("slot",null),i("div",{class:"group group-end"},i("slot",{name:"input-end"})))}get host(){return s(this)}};n.style=o;export{n as ix_input_group};
2
- //# sourceMappingURL=p-1259ea24.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["inputGroupCss","InputGroup","componentDidRender","paddingRight","paddingLeft","this","host","querySelectorAll","forEach","item","classList","add","getBoundingClientRect","width","inputElement","querySelector","style","console","warn","render","h","Host","class","name"],"sources":["./src/components/input-group/input-group.scss?tag=ix-input-group&encapsulation=scoped","./src/components/input-group/input-group.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:host {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n\n .group {\n display: flex;\n position: absolute;\n align-items: center;\n height: 100%;\n }\n\n .group-start {\n left: 0px;\n }\n\n .group-end {\n right: 0px;\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 { Component, Element, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'ix-input-group',\n styleUrl: 'input-group.scss',\n scoped: true,\n})\nexport class InputGroup {\n @Element() host!: HTMLIxInputGroupElement;\n\n componentDidRender() {\n let paddingRight = 15;\n let paddingLeft = 15;\n this.host.querySelectorAll('[slot=\"input-end\"]').forEach((item) => {\n item.classList.add('input-group-label');\n paddingRight += item.getBoundingClientRect().width;\n });\n\n this.host.querySelectorAll('[slot=\"input-start\"]').forEach((item) => {\n item.classList.add('input-group-label');\n paddingLeft += item.getBoundingClientRect().width;\n });\n\n const inputElement = this.host.querySelector(\n 'input.form-control'\n ) as HTMLInputElement;\n\n if (inputElement) {\n inputElement.style.paddingRight = paddingRight + 'px';\n inputElement.style.paddingLeft = paddingLeft + 'px';\n } else {\n console.warn(\n 'You used the ix-input-group without an input-tag, e.g. <input class=\"form-control\" />'\n );\n }\n }\n\n render() {\n return (\n <Host>\n <div class=\"group group-start\">\n <slot name=\"input-start\"></slot>\n </div>\n <slot></slot>\n <div class=\"group group-end\">\n <slot name=\"input-end\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAgB,0U,MCgBTC,EAAU,M,yBAGrBC,qBACE,IAAIC,EAAe,GACnB,IAAIC,EAAc,GAClBC,KAAKC,KAAKC,iBAAiB,sBAAsBC,SAASC,IACxDA,EAAKC,UAAUC,IAAI,qBACnBR,GAAgBM,EAAKG,wBAAwBC,KAAK,IAGpDR,KAAKC,KAAKC,iBAAiB,wBAAwBC,SAASC,IAC1DA,EAAKC,UAAUC,IAAI,qBACnBP,GAAeK,EAAKG,wBAAwBC,KAAK,IAGnD,MAAMC,EAAeT,KAAKC,KAAKS,cAC7B,sBAGF,GAAID,EAAc,CAChBA,EAAaE,MAAMb,aAAeA,EAAe,KACjDW,EAAaE,MAAMZ,YAAcA,EAAc,I,KAC1C,CACLa,QAAQC,KACN,wF,EAKNC,SACE,OACEC,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAM,qBACTF,EAAA,QAAMG,KAAK,iBAEbH,EAAA,aACAA,EAAA,OAAKE,MAAM,mBACTF,EAAA,QAAMG,KAAK,e"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["toastCss","Toast","getIcon","this","icon","h","name","color","iconColor","size","type","close","host","classList","add","setTimeout","closeToast","emit","render","progressBarElement","progressBarStyle","progressBarClass","touched","animationDuration","autoCloseDelay","animationPlayState","isRunning","push","updateProgress","requestAnimationFrame","style","transform","progress","Host","class","onPointerLeave","onPointerEnter","toastTitle","ghost","onClick","autoClose","join","ref","r","onAnimationEnd","onTransitionEnd","ToastContainer","hostContainer","document","getElementById","containerId","componentDidLoad","toastContainer","createElement","id","containerClass","position","body","appendChild","async","config","toast","onClose","TypedEvent","removeToast","result","remove","title","addEventListener","event","detail","message","innerText"],"sources":["./src/components/toast/toast.scss?tag=ix-toast&encapsulation=scoped","./src/components/toast/toast.tsx","./src/components/toast/toast-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 'common-variables';\n@import 'mixins/hover';\n@import 'mixins/text-truncation';\n\n:host {\n display: flex;\n flex-direction: column;\n position: relative;\n min-width: 17.5rem;\n max-width: 17.5rem;\n min-height: 3.5rem;\n\n pointer-events: all;\n\n background-color: var(--theme-toast--background);\n border: var(--theme-toast--border-thickness) solid\n var(--theme-toast--border-color);\n border-radius: var(--theme-toast--border-radius);\n box-shadow: var(--theme-toast--box-shadow);\n\n --animate-duration: #{$medium-time};\n\n .toast-body {\n display: flex;\n position: relative;\n width: 100%;\n flex-grow: 1;\n\n .toast-icon {\n display: flex;\n align-items: flex-start;\n margin: $default-space;\n }\n\n .toast-content {\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n width: 100%;\n max-width: 10.25rem;\n margin-top: calc(\n #{$default-space} + var(--theme-toast--border-thickness)\n );\n margin-bottom: $medium-space;\n\n .toast-message {\n min-width: 0;\n }\n }\n }\n\n .toast-close {\n display: flex;\n position: relative;\n margin: $medium-space;\n pointer-events: all;\n }\n\n .toast-progress-bar {\n position: absolute;\n bottom: 0;\n height: $tiny-space;\n width: 100%;\n background-color: var(--theme-toast-timer-value--background);\n transform-origin: left;\n\n &--animated {\n animation: trackProgress linear 1 forwards;\n }\n\n &--touched {\n transition: transform 1s;\n }\n }\n\n @include hover {\n .toast-progress-bar {\n visibility: hidden;\n transition: none;\n }\n }\n\n @keyframes trackProgress {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\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 Prop,\n State,\n} from '@stencil/core';\nimport { ToastType } from './toast-utils';\n\n@Component({\n tag: 'ix-toast',\n styleUrl: 'toast.scss',\n scoped: true,\n})\nexport class Toast {\n /**\n * Toast type\n */\n @Prop() type: ToastType = 'info';\n\n /**\n * Toast title\n */\n @Prop() toastTitle: string;\n\n /**\n * Autoclose title after delay\n */\n @Prop() autoCloseDelay = 5000;\n\n /**\n * Autoclose behavior\n */\n @Prop() autoClose = true;\n\n /**\n * Icon of toast\n */\n @Prop() icon: string;\n\n /**\n * Icon color of toast\n */\n @Prop() iconColor: string;\n\n /**\n * Toast closed\n */\n @Event() closeToast: EventEmitter;\n\n @State() progress = 0;\n @State() isRunning = true;\n @State() touched = false;\n\n @Element() host!: HTMLIxToastElement;\n\n private getIcon() {\n if (this.icon) {\n return <ix-icon name={this.icon} color={this.iconColor} size=\"24\" />;\n }\n\n switch (this.type) {\n case 'info':\n return <ix-icon name={'info'} size=\"24\" color=\"color-std-text\" />;\n\n case 'error':\n return <ix-icon name={'error'} size=\"24\" color=\"color-alarm\" />;\n\n case 'success':\n return <ix-icon name={'success'} size=\"24\" color=\"color-success\" />;\n\n case 'warning':\n return <ix-icon name={'warning'} size=\"24\" color=\"color-warning\" />;\n\n default:\n return '';\n }\n }\n\n private close() {\n if (this.host) {\n this.host.classList.add('animate__fadeOut');\n }\n setTimeout(() => {\n this.closeToast.emit();\n }, 250);\n }\n\n render() {\n let progressBarElement: HTMLElement;\n let progressBarStyle: Record<string, string> = {};\n\n const progressBarClass = ['toast-progress-bar'];\n\n if (!this.touched) {\n progressBarStyle = {\n animationDuration: `${this.autoCloseDelay}ms`,\n animationPlayState: this.isRunning ? 'running' : 'paused',\n };\n\n progressBarClass.push('toast-progress-bar--animated');\n } else {\n progressBarClass.push('toast-progress-bar--touched');\n }\n\n const updateProgress = () => {\n requestAnimationFrame(() => {\n if (progressBarElement) {\n progressBarElement.style.transform = `scaleX(${this.progress})`;\n }\n });\n };\n\n return (\n <Host class=\"animate__animated animate__fadeIn\">\n <div\n class=\"toast-body\"\n onPointerLeave={() => {\n this.progress = 0;\n updateProgress();\n }}\n onPointerEnter={() => {\n this.isRunning = false;\n this.touched = true;\n this.progress = 1;\n updateProgress();\n }}\n >\n {this.type || this.icon ? (\n <div class=\"toast-icon\">{this.getIcon()}</div>\n ) : null}\n <div class=\"toast-content\">\n {this.toastTitle ? (\n <div class=\"toast-title text-default-title-single\">\n {this.toastTitle}\n </div>\n ) : null}\n <div class=\"toast-message text-default\">\n <slot></slot>\n </div>\n </div>\n <div class=\"toast-close\">\n <ix-icon-button\n icon=\"close\"\n size=\"24\"\n ghost\n onClick={() => this.closeToast.emit()}\n />\n </div>\n </div>\n {this.autoClose ? (\n <div\n class={progressBarClass.join(' ')}\n style={progressBarStyle}\n ref={(r) => (progressBarElement = r)}\n onAnimationEnd={() => {\n this.close();\n }}\n onTransitionEnd={() => {\n if (this.progress === 0) {\n this.close();\n }\n }}\n ></div>\n ) : null}\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\nimport { Component, Element, h, Host, Method, Prop } from '@stencil/core';\nimport { TypedEvent } from '../utils/typed-event';\nimport { ToastConfig } from './toast-utils';\n\n@Component({\n tag: 'ix-toast-container',\n scoped: true,\n})\nexport class ToastContainer {\n @Element() host!: HTMLIxToastContainerElement;\n\n /**\n */\n @Prop() containerId = 'toast-container';\n\n /**\n */\n @Prop() containerClass = 'toast-container';\n\n /**\n */\n @Prop() position = 'bottom-right';\n\n get hostContainer() {\n return document.getElementById(this.containerId);\n }\n\n componentDidLoad() {\n if (!document.getElementById(this.containerId)) {\n const toastContainer = document.createElement('div');\n toastContainer.id = this.containerId;\n toastContainer.classList.add(this.containerClass);\n toastContainer.classList.add(`toast-container--${this.position}`);\n document.body.appendChild(toastContainer);\n }\n }\n\n /**\n * Display a toast message\n * @param config\n */\n @Method()\n async showToast(config: ToastConfig) {\n const toast = document.createElement('ix-toast');\n\n const onClose = new TypedEvent<any | undefined>();\n\n function removeToast(result?: any) {\n toast.remove();\n onClose.emit(result);\n }\n\n toast.toastTitle = config.title;\n toast.type = config.type;\n toast.autoClose = config.autoClose;\n toast.autoCloseDelay = config.autoCloseDelay;\n toast.icon = config.icon;\n toast.iconColor = config.iconColor;\n toast.addEventListener(\n 'closeToast',\n (event: CustomEvent<any | undefined>) => {\n const { detail } = event;\n removeToast(detail);\n }\n );\n\n if (typeof config.message === 'string') {\n toast.innerText = config.message;\n } else {\n toast.appendChild(config.message);\n }\n\n this.hostContainer.appendChild(toast);\n\n return {\n onClose,\n close: (result?: any) => {\n removeToast(result);\n },\n };\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r,c as e,h as c,H as b,g as i}from"./p-8fcd6f85.js";import{a as t}from"./p-810b5232.js";import{c as a}from"./p-c0454c9a.js";const s=".sc-ix-breadcrumb-h{display:flex;height:2.5rem;justify-content:flex-start;align-items:center;background-color:transparent;overflow:hidden}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb{position:relative;display:flex;justify-content:flex-start;align-items:center;white-space:nowrap;border-radius:var(--theme-breadcrumb--border-radius);height:2rem;max-height:2rem;min-width:0;-webkit-margin-end:0.25rem;margin-inline-end:0.25rem;padding:0.5rem 0 0.5rem 0.25rem;outline:none;cursor:pointer}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):hover{background-color:var(--theme-breadcrumb-btn--background--hover)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):hover .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn--color--hover)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-arrow--color--hover)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):active{background-color:var(--theme-breadcrumb-btn--background--active)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):active .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn--color--active)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-arrow--color--active)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;min-width:0;font-weight:700}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb ix-icon.sc-ix-breadcrumb{-webkit-margin-end:0.25rem;margin-inline-end:0.25rem}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{-webkit-margin-start:0.25rem;margin-inline-start:0.25rem;-webkit-margin-end:0;margin-inline-end:0}.sc-ix-breadcrumb-h .crumb.last.sc-ix-breadcrumb{background-color:transparent !important;cursor:default;-webkit-padding-end:0.25rem;padding-inline-end:0.25rem}.sc-ix-breadcrumb-h .crumb.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):focus-visible{border-color:var(--theme-focus--border-color)}.sc-ix-breadcrumb-h .crumb.sc-ix-breadcrumb:not(:last-of-type){flex-shrink:0;max-width:14rem}.sc-ix-breadcrumb-h .crumb-dropdown.sc-ix-breadcrumb{overflow:visible}.sc-ix-breadcrumb-h .crumb-dropdown.sc-ix-breadcrumb .glyph.sc-ix-breadcrumb::after{display:none}.sc-ix-breadcrumb-h .remove-anchor.sc-ix-breadcrumb::after{display:none}.sc-ix-breadcrumb-h .more-text.sc-ix-breadcrumb{display:flex}.sc-ix-breadcrumb-h .more-text.sc-ix-breadcrumb .more-text-ellipsis.sc-ix-breadcrumb{width:1rem;display:inline-block;font-weight:700}.sc-ix-breadcrumb-h .more-text.sc-ix-breadcrumb .glyph.sc-ix-breadcrumb{line-height:unset}.sc-ix-breadcrumb-h .crumb-items.sc-ix-breadcrumb{display:contents}.sc-ix-breadcrumb-h .crumb.btn.sc-ix-breadcrumb{background-color:var(--theme-breadcrumb-btn--background);border:var(--theme-btn--btn-thickness) solid transparent;transition:150ms}.sc-ix-breadcrumb-h .crumb.btn.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.btn.sc-ix-breadcrumb .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn--color)}.sc-ix-breadcrumb-h .crumb.btn.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-arrow--color)}.sc-ix-breadcrumb-h .crumb.btn.last.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-last--color)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover{background-color:var(--theme-breadcrumb-btn--background--hover)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn--color--hover)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-arrow--color--hover)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active{background-color:var(--theme-breadcrumb-btn--background--active)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn--color--active)}.sc-ix-breadcrumb-h .crumb.btn.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-btn-arrow--color--active)}.sc-ix-breadcrumb-h .crumb.ghost.sc-ix-breadcrumb{background-color:var(--theme-breadcrumb-ghost--background);border:var(--theme-btn--ghost-thickness) solid transparent;transition:150ms}.sc-ix-breadcrumb-h .crumb.ghost.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.ghost.sc-ix-breadcrumb .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost--color)}.sc-ix-breadcrumb-h .crumb.ghost.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost-arrow--color)}.sc-ix-breadcrumb-h .crumb.ghost.last.sc-ix-breadcrumb .crumb-text.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost-last--color)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover{background-color:var(--theme-breadcrumb-ghost--background--hover)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost--color--hover)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):hover .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost-arrow--color--hover)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled){cursor:pointer}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active{background-color:var(--theme-breadcrumb-ghost--background--active)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb,.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .glyph.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost--color--active)}.sc-ix-breadcrumb-h .crumb.ghost.clickable.sc-ix-breadcrumb:not(.remove-hover):not(.disabled):not(:disabled):active .crumb-text.sc-ix-breadcrumb+.glyph-chevron-right-small.sc-ix-breadcrumb{color:var(--theme-breadcrumb-ghost-arrow--color--active)}";const o=class{constructor(c){r(this,c);this.itemClick=e(this,"itemClick",7);this.nextClick=e(this,"nextClick",7);this.visibleItemCount=9;this.nextItems=[];this.ghost=false;this.previousButtonRef=undefined;this.nextButtonRef=undefined;this.items=[]}get breadcrumbItems(){return Array.from(this.hostElement.querySelectorAll("ix-breadcrumb-item"))}get crumbItems(){return Array.from(this.hostElement.querySelectorAll(".crumb-items .crumb"))}onItemClick(r){this.itemClick.emit(r)}componentDidLoad(){this.mutationObserver=a((()=>{const r=this.getItems();const e=()=>{this.items=r};if(r.length>=this.items.length){e()}else if(r.length<this.items.length){const r=this.crumbItems[this.crumbItems.length-1];this.animationFadeOut(r,(()=>e()))}}));this.mutationObserver.observe(this.hostElement.querySelector(".crumb-items"),{subtree:true,childList:true})}componentWillLoad(){this.items=this.getItems()}getItems(){return this.breadcrumbItems.map((r=>({label:r.label,icon:r.icon})))}disconnectedCallback(){var r;(r=this.mutationObserver)===null||r===void 0?void 0:r.disconnect()}animationFadeOut(r,e){t({targets:r,translateX:"-100%",duration:150,opacity:[1,0],easing:"linear",complete:()=>e()})}animationFadeIn(r){t({targets:r,duration:150,opacity:[0,1],translateX:["-100%","0%"],easing:"linear"})}handleLastButtonRef(r,e){var c;if(e){this.animationFadeIn(r)}if(e&&((c=this.nextItems)===null||c===void 0?void 0:c.length)){this.nextButtonRef=r}}sliceHiddenItems(){let r=0;if(this.items.length>this.visibleItemCount){r=this.items.length-this.visibleItemCount}return this.items.slice(r)}clickItem(r,e){if(!e){this.onItemClick(r)}}renderBreadcrumbItems(){return this.sliceHiddenItems().map(((r,e,b)=>{var i;const t=e===b.length-1;const a=t&&!((i=this.nextItems)===null||i===void 0?void 0:i.length);return c("div",{ref:r=>this.handleLastButtonRef(r,t),"data-breadcrumb":e,class:{crumb:true,clickable:true,ghost:this.ghost,btn:!this.ghost,last:a,"remove-hover":a},onClick:()=>this.clickItem(r.label,t),"data-testid":"item"},c("span",{class:"crumb-text remove-anchor"},r.icon?c("ix-icon",{name:r.icon,size:"16"}):"",r.label),!a?c("span",{class:"glyph glyph-18 glyph-chevron-right-small text-default-text"}):null)}))}render(){var r,e,i;return c(b,null,c("ix-dropdown",{trigger:((r=this.items)===null||r===void 0?void 0:r.length)>this.visibleItemCount?this.previousButtonRef:null},this.items.slice(0,this.items.length-this.visibleItemCount).map((r=>c("ix-dropdown-item",{label:r.label,onClick:()=>this.onItemClick(r.label)})))),((e=this.items)===null||e===void 0?void 0:e.length)>this.visibleItemCount?c("div",{class:"crumb crumb-dropdown",ref:r=>this.previousButtonRef=r},c("span",{class:"remove-anchor more-text"},c("span",{class:"more-text-ellipsis"},"..."),c("span",{class:"glyph glyph-16 glyph-chevron-right"}))):null,c("div",{class:"crumb-items"},this.renderBreadcrumbItems(),c("slot",null)),c("ix-dropdown",{trigger:this.nextButtonRef},(i=this.nextItems)===null||i===void 0?void 0:i.map((r=>c("ix-dropdown-item",{label:r,onClick:e=>{this.nextClick.emit({event:e,item:r})}})))))}get hostElement(){return i(this)}};o.style=s;const d=".sc-ix-breadcrumb-item-h{display:block}";const m=class{constructor(e){r(this,e);this.label=undefined;this.icon=undefined}render(){return c(b,null,c("slot",null))}};m.style=d;export{o as ix_breadcrumb,m as ix_breadcrumb_item};
2
- //# sourceMappingURL=p-29bd1814.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["breadcrumbCss","Breadcrumb","breadcrumbItems","Array","from","this","hostElement","querySelectorAll","crumbItems","onItemClick","item","itemClick","emit","componentDidLoad","mutationObserver","createMutationObserver","updatedItems","getItems","update","items","length","last","animationFadeOut","observe","querySelector","subtree","childList","componentWillLoad","map","label","icon","disconnectedCallback","_a","disconnect","ref","complete","animejs","targets","translateX","duration","opacity","easing","animationFadeIn","handleLastButtonRef","nextItems","nextButtonRef","sliceHiddenItems","sliceIndex","visibleItemCount","slice","clickItem","renderBreadcrumbItems","index","array","isLastItem","h","class","crumb","clickable","ghost","btn","onClick","name","size","render","Host","trigger","previousButtonRef","_b","_c","e","nextClick","event","breadcrumbItemCss","BreadcrumbItem"],"sources":["./src/components/breadcrumb/breadcrumb.scss?tag=ix-breadcrumb&encapsulation=scoped","./src/components/breadcrumb/breadcrumb.tsx","./src/components/breadcrumb-item/breadcrumb-item.scss?tag=ix-breadcrumb-item&encapsulation=scoped","./src/components/breadcrumb-item/breadcrumb-item.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 'mixins/hover';\n@import 'mixins/text-truncation';\n\n@mixin crumb-hover($variant) {\n @include hover {\n background-color: var(--theme-breadcrumb-#{$variant}--background--hover);\n\n .crumb-text,\n .glyph {\n color: var(--theme-breadcrumb-#{$variant}--color--hover);\n }\n\n .crumb-text + .glyph-chevron-right-small {\n color: var(--theme-breadcrumb-#{$variant}-arrow--color--hover);\n }\n }\n\n @include active {\n background-color: var(--theme-breadcrumb-#{$variant}--background--active);\n\n .crumb-text,\n .glyph {\n color: var(--theme-breadcrumb-#{$variant}--color--active);\n }\n\n .crumb-text + .glyph-chevron-right-small {\n color: var(--theme-breadcrumb-#{$variant}-arrow--color--active);\n }\n }\n}\n\n@mixin breadcrumb($variant) {\n .crumb.#{$variant} {\n background-color: var(--theme-breadcrumb-#{$variant}--background);\n border: var(--theme-btn--#{$variant}-thickness) solid transparent;\n transition: $default-time;\n\n .crumb-text,\n .glyph {\n color: var(--theme-breadcrumb-#{$variant}--color);\n }\n\n .crumb-text + .glyph-chevron-right-small {\n color: var(--theme-breadcrumb-#{$variant}-arrow--color);\n }\n\n &.last .crumb-text {\n color: var(--theme-breadcrumb-#{$variant}-last--color);\n }\n\n &.clickable:not(.remove-hover) {\n @include hover {\n background-color: var(\n --theme-breadcrumb-#{$variant}--background--hover\n );\n\n .crumb-text,\n .glyph {\n color: var(--theme-breadcrumb-#{$variant}--color--hover);\n }\n\n .crumb-text + .glyph-chevron-right-small {\n color: var(--theme-breadcrumb-#{$variant}-arrow--color--hover);\n }\n }\n\n @include active {\n background-color: var(\n --theme-breadcrumb-#{$variant}--background--active\n );\n\n .crumb-text,\n .glyph {\n color: var(--theme-breadcrumb-#{$variant}--color--active);\n }\n\n .crumb-text + .glyph-chevron-right-small {\n color: var(--theme-breadcrumb-#{$variant}-arrow--color--active);\n }\n }\n }\n }\n}\n\n:host {\n display: flex;\n height: $large-control-height;\n justify-content: flex-start;\n align-items: center;\n background-color: transparent;\n overflow: hidden;\n\n .crumb {\n position: relative;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n white-space: nowrap;\n border-radius: var(--theme-breadcrumb--border-radius);\n height: $default-control-height;\n max-height: $default-control-height;\n min-width: 0;\n margin-inline-end: $tiny-space;\n padding: $small-space 0 $small-space $tiny-space;\n outline: none;\n cursor: pointer;\n\n @include crumb-hover('btn');\n\n .crumb-text {\n @include ellipsis;\n display: flex;\n align-items: center;\n min-width: 0;\n font-weight: $font-weight-bold;\n\n ix-icon {\n margin-inline-end: $tiny-space;\n }\n }\n\n .crumb-text + .glyph-chevron-right-small {\n margin-inline-start: $tiny-space;\n margin-inline-end: 0; // Overwrite global selector: .btn .glyph\n }\n\n &.last {\n background-color: transparent !important;\n cursor: default;\n padding-inline-end: $tiny-space;\n }\n\n &.clickable:not(.remove-hover) {\n @include focus-visible {\n border-color: var(--theme-focus--border-color);\n }\n }\n\n &:not(:last-of-type) {\n flex-shrink: 0;\n max-width: 14rem;\n }\n }\n\n .crumb-dropdown {\n overflow: visible;\n\n .glyph::after {\n display: none;\n }\n }\n\n .remove-anchor::after {\n display: none;\n }\n\n .more-text {\n display: flex;\n\n .more-text-ellipsis {\n width: 1rem;\n display: inline-block;\n font-weight: $font-weight-bold;\n }\n\n .glyph {\n line-height: unset;\n }\n }\n\n .crumb-items {\n display: contents;\n }\n\n @include breadcrumb('btn');\n @include breadcrumb('ghost');\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 Prop,\n State,\n} from '@stencil/core';\nimport animejs from 'animejs';\nimport { createMutationObserver } from '../utils/mutation-observer';\n\n@Component({\n tag: 'ix-breadcrumb',\n styleUrl: 'breadcrumb.scss',\n scoped: true,\n})\nexport class Breadcrumb {\n /**\n * Excess items will get hidden inside of dropdown\n */\n @Prop() visibleItemCount = 9;\n\n /**\n * Items will be accessible through a dropdown\n */\n @Prop() nextItems: string[] = [];\n\n /**\n * Ghost breadcrumbs will not show solid backgrounds on individual crumbs unless there is a mouse event (e.g. hover)\n */\n @Prop() ghost = false;\n\n /**\n * Crumb item clicked event\n */\n @Event() itemClick: EventEmitter<string>;\n\n /**\n * Next item clicked event\n */\n @Event() nextClick: EventEmitter<{ event: UIEvent; item: string }>;\n\n @State() previousButtonRef: HTMLElement;\n\n @State() nextButtonRef: HTMLElement;\n\n @Element() hostElement: HTMLIxBreadcrumbElement;\n\n get breadcrumbItems() {\n return Array.from(this.hostElement.querySelectorAll('ix-breadcrumb-item'));\n }\n\n get crumbItems() {\n return Array.from(this.hostElement.querySelectorAll('.crumb-items .crumb'));\n }\n\n @State() items: { label: string; icon?: string }[] = [];\n\n private mutationObserver: MutationObserver;\n\n private onItemClick(item: string) {\n this.itemClick.emit(item);\n }\n\n componentDidLoad() {\n this.mutationObserver = createMutationObserver(() => {\n const updatedItems = this.getItems();\n const update = () => {\n this.items = updatedItems;\n };\n\n if (updatedItems.length >= this.items.length) {\n update();\n } else if (updatedItems.length < this.items.length) {\n const last = this.crumbItems[this.crumbItems.length - 1] as HTMLElement;\n this.animationFadeOut(last, () => update());\n }\n });\n\n this.mutationObserver.observe(\n this.hostElement.querySelector('.crumb-items'),\n {\n subtree: true,\n childList: true,\n }\n );\n }\n\n componentWillLoad() {\n this.items = this.getItems();\n }\n\n private getItems() {\n return this.breadcrumbItems.map((item) => {\n return { label: item.label, icon: item.icon };\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n }\n\n private animationFadeOut(ref: HTMLElement, complete: () => void) {\n animejs({\n targets: ref,\n translateX: '-100%',\n duration: 150,\n opacity: [1, 0],\n easing: 'linear',\n complete: () => complete(),\n });\n }\n\n private animationFadeIn(ref: HTMLElement) {\n animejs({\n targets: ref,\n duration: 150,\n opacity: [0, 1],\n translateX: ['-100%', '0%'],\n easing: 'linear',\n });\n }\n\n private handleLastButtonRef(ref: HTMLDivElement, last: boolean) {\n if (last) {\n this.animationFadeIn(ref);\n }\n if (last && this.nextItems?.length) {\n this.nextButtonRef = ref;\n }\n }\n\n private sliceHiddenItems() {\n let sliceIndex = 0;\n\n if (this.items.length > this.visibleItemCount) {\n sliceIndex = this.items.length - this.visibleItemCount;\n }\n\n return this.items.slice(sliceIndex);\n }\n\n private clickItem(item: string, last: boolean) {\n if (!last) {\n this.onItemClick(item);\n }\n }\n\n private renderBreadcrumbItems() {\n return this.sliceHiddenItems().map((item, index, array) => {\n const last = index === array.length - 1;\n\n const isLastItem = last && !this.nextItems?.length;\n return (\n <div\n ref={(ref) => this.handleLastButtonRef(ref, last)}\n data-breadcrumb={index}\n class={{\n crumb: true,\n clickable: true,\n ghost: this.ghost,\n btn: !this.ghost,\n last: isLastItem,\n 'remove-hover': isLastItem,\n }}\n onClick={() => this.clickItem(item.label, last)}\n data-testid=\"item\"\n >\n <span class=\"crumb-text remove-anchor\">\n {item.icon ? <ix-icon name={item.icon} size=\"16\"></ix-icon> : ''}\n {item.label}\n </span>\n {!isLastItem ? (\n <span class=\"glyph glyph-18 glyph-chevron-right-small text-default-text\"></span>\n ) : null}\n </div>\n );\n });\n }\n\n render() {\n return (\n <Host>\n <ix-dropdown\n trigger={\n this.items?.length > this.visibleItemCount\n ? this.previousButtonRef\n : null\n }\n >\n {this.items\n .slice(0, this.items.length - this.visibleItemCount)\n .map((item) => (\n <ix-dropdown-item\n label={item.label}\n onClick={() => this.onItemClick(item.label)}\n ></ix-dropdown-item>\n ))}\n </ix-dropdown>\n {this.items?.length > this.visibleItemCount ? (\n <div\n class=\"crumb crumb-dropdown\"\n ref={(ref) => (this.previousButtonRef = ref)}\n >\n <span class=\"remove-anchor more-text\">\n <span class=\"more-text-ellipsis\">...</span>\n <span class=\"glyph glyph-16 glyph-chevron-right\"></span>\n </span>\n </div>\n ) : null}\n <div class=\"crumb-items\">\n {this.renderBreadcrumbItems()}\n <slot></slot>\n </div>\n <ix-dropdown trigger={this.nextButtonRef}>\n {this.nextItems?.map((item) => (\n <ix-dropdown-item\n label={item}\n onClick={(e) => {\n this.nextClick.emit({\n event: e,\n item,\n });\n }}\n ></ix-dropdown-item>\n ))}\n </ix-dropdown>\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 display: block;\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, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-breadcrumb-item',\n styleUrl: 'breadcrumb-item.scss',\n scoped: true,\n})\nexport class BreadcrumbItem {\n /**\n * Breadcrumb label\n */\n @Prop() label: string;\n\n /**\n * Icon to be displayed next ot the label\n */\n @Prop() icon: string;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,c as e,h as d,H as n,g as l}from"./p-8fcd6f85.js";import{a as o}from"./p-810b5232.js";const r=".sc-ix-blind-h{display:flex;flex-direction:column;background-color:var(--theme-blind-base--background);border:solid var(--theme-blind--border-thickness) var(--theme-blind-base--border-color);border-radius:var(--theme-blind--border-radius);overflow:hidden}.sc-ix-blind-h .blind-header.sc-ix-blind{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;min-height:3rem;height:3rem;border:solid var(--theme-blind--border-thickness) transparent;border-radius:var(--theme-blind--border-radius) var(--theme-blind--border-radius) 0 0;padding-right:1rem;transition:border-radius 150ms;cursor:pointer;z-index:1;color:var(--theme-blind-header-closed--color);background-color:var(--theme-blind-header-closed--background)}.sc-ix-blind-h .blind-header.sc-ix-blind .glyph.sc-ix-blind{color:var(--theme-blind-header-icon-closed--color);padding:0.25rem 0.5rem}.sc-ix-blind-h .blind-header.sc-ix-blind .blind-header-title.sc-ix-blind{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-ix-blind-h .blind-header.sc-ix-blind .blind-header-title.sc-ix-blind .blind-header-title-default.sc-ix-blind{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled):hover{background-color:var(--theme-blind-header-open--background--hover)}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled):hover .glyph.sc-ix-blind{color:var(--theme-blind-header-icon-open--color--hover)}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled):active{background-color:var(--theme-blind-header-open--background--active)}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled):active .glyph.sc-ix-blind{color:var(--theme-blind-header-icon-open--color--active)}.sc-ix-blind-h .blind-header.sc-ix-blind:not(.disabled):not(:disabled):focus-visible{border-color:var(--theme-focus--border-color)}.sc-ix-blind-h .blind-header.closed.sc-ix-blind{border-radius:var(--theme-blind--border-radius)}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled):hover{background-color:var(--theme-blind-header-open--background--hover)}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled):hover .glyph.sc-ix-blind{color:var(--theme-blind-header-icon-closed--color--hover)}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled):active{background-color:var(--theme-blind-header-open--background--active)}.sc-ix-blind-h .blind-header.closed.sc-ix-blind:not(.disabled):not(:disabled):active .glyph.sc-ix-blind{color:var(--theme-blind-header-icon-closed--color--active)}.sc-ix-blind-h .blind-custom-header.sc-ix-blind{display:flex;align-items:center}.sc-ix-blind-h .blind-content.sc-ix-blind{display:block;padding:1rem;transition-property:padding;transition-duration:150ms;transition-timing-function:ease-in}.sc-ix-blind-h .blind-content.hide.sc-ix-blind{max-height:0;padding-top:0px;padding-bottom:0px}";const s=class{constructor(d){i(this,d);this.collapsedChange=e(this,"collapsedChange",7);this.collapsed=false;this.label=undefined}onHeaderClick(i){i.preventDefault();i.stopImmediatePropagation();this.collapsed=!this.collapsed;this.collapsedChange.emit(this.collapsed)}componentDidLoad(){this.animateCollapse(this.collapsed)}get content(){return this.hostElement.querySelector(".blind-content")}animation(i){this.animateCollapse(i)}animateCollapse(i){if(i){this.rotateChevronRight()}else{this.rotateChevronDown()}}rotateChevronDown(){o({targets:this.chevronRef,duration:150,easing:"easeInOutSine",rotateZ:90});o({targets:this.content,duration:150,easing:"easeInOutSine",opacity:1})}rotateChevronRight(){o({targets:this.chevronRef,duration:150,easing:"easeInOutSine",rotateZ:0});o({targets:this.content,duration:150,easing:"easeInOutSine",opacity:0})}render(){return d(n,null,d("div",{class:{"blind-header":true,closed:this.collapsed},onClick:i=>this.onHeaderClick(i)},d("span",{ref:i=>this.chevronRef=i,class:{glyph:true,"glyph-chevron-right-small":true}}),d("div",{class:"blind-header-title"},this.label!==undefined?d("span",{class:"blind-header-title-default"},this.label):d("slot",{name:"custom-header"}))),d("div",{class:{"blind-content":true,hide:this.collapsed}},d("slot",null)))}get hostElement(){return l(this)}static get watchers(){return{collapsed:["animation"]}}};s.style=r;export{s as ix_blind};
2
- //# sourceMappingURL=p-5845a03c.entry.js.map