cax-design-system 2.8.2 → 2.8.4

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 (1067) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +224 -0
  3. package/accordion/accordion.interface.d.ts +49 -0
  4. package/accordion/accordion.module.d.ts +13 -0
  5. package/accordion/index.d.ts +3 -286
  6. package/accordion/public_api.d.ts +3 -0
  7. package/animate/animate.d.ts +40 -0
  8. package/animate/index.d.ts +3 -41
  9. package/animate/public_api.d.ts +1 -0
  10. package/animateonscroll/animateonscroll.d.ts +75 -0
  11. package/animateonscroll/index.d.ts +3 -75
  12. package/animateonscroll/public_api.d.ts +1 -0
  13. package/api/blockableui.d.ts +10 -0
  14. package/api/caxconfig.d.ts +24 -0
  15. package/api/confirmaeventtype.d.ts +8 -0
  16. package/api/confirmation.d.ts +96 -0
  17. package/api/confirmationservice.d.ts +30 -0
  18. package/api/contextmenuservice.d.ts +11 -0
  19. package/api/filtermatchmode.d.ts +22 -0
  20. package/api/filtermetadata.d.ts +18 -0
  21. package/api/filteroperator.d.ts +4 -0
  22. package/api/filterservice.d.ts +10 -0
  23. package/api/index.d.ts +3 -1856
  24. package/api/lazyloadevent.d.ts +47 -0
  25. package/api/lazyloadmeta.d.ts +19 -0
  26. package/api/megamenuitem.d.ts +130 -0
  27. package/api/menuitem.d.ts +176 -0
  28. package/api/message.d.ts +30 -0
  29. package/api/messageservice.d.ts +32 -0
  30. package/api/overlayoptions.d.ts +188 -0
  31. package/api/overlayservice.d.ts +9 -0
  32. package/api/primeicons.d.ts +313 -0
  33. package/api/public_api.d.ts +34 -0
  34. package/api/scrolleroptions.d.ts +116 -0
  35. package/api/selectitem.d.ts +12 -0
  36. package/api/selectitemgroup.d.ts +10 -0
  37. package/api/shared.d.ts +24 -0
  38. package/api/sortevent.d.ts +12 -0
  39. package/api/sortmeta.d.ts +8 -0
  40. package/api/tablestate.d.ts +60 -0
  41. package/api/themegeneratorservice.d.ts +12 -0
  42. package/api/tooltipoptions.d.ts +69 -0
  43. package/api/translation.d.ts +135 -0
  44. package/api/translationkeys.d.ts +50 -0
  45. package/api/treedragdropservice.d.ts +12 -0
  46. package/api/treenode.d.ts +91 -0
  47. package/api/treenodedragevent.d.ts +27 -0
  48. package/api/treetablenode.d.ts +36 -0
  49. package/autocomplete/autocomplete.d.ts +616 -0
  50. package/autocomplete/autocomplete.interface.d.ts +164 -0
  51. package/autocomplete/autocomplete.module.d.ts +20 -0
  52. package/autocomplete/index.d.ts +3 -799
  53. package/autocomplete/public_api.d.ts +3 -0
  54. package/autofocus/autofocus.d.ts +28 -0
  55. package/autofocus/index.d.ts +3 -29
  56. package/autofocus/public_api.d.ts +1 -0
  57. package/avatar/avatar.d.ts +73 -0
  58. package/avatar/avatar.module.d.ts +7 -0
  59. package/avatar/index.d.ts +3 -80
  60. package/avatar/public_api.d.ts +2 -0
  61. package/avatargroup/avatargroup.d.ts +21 -0
  62. package/avatargroup/avatargroup.module.d.ts +9 -0
  63. package/avatargroup/index.d.ts +3 -30
  64. package/avatargroup/public_api.d.ts +2 -0
  65. package/badge/badge.d.ts +21 -0
  66. package/badge/badge.directive.d.ts +35 -0
  67. package/badge/badge.module.d.ts +10 -0
  68. package/badge/index.d.ts +5 -67
  69. package/badge/public_api.d.ts +3 -0
  70. package/baseicon/baseicon.d.ts +15 -0
  71. package/baseicon/index.d.ts +5 -18
  72. package/baseicon/public_api.d.ts +1 -0
  73. package/blockui/blockui.d.ts +64 -0
  74. package/blockui/blockui.interface.d.ts +11 -0
  75. package/blockui/index.d.ts +3 -77
  76. package/blockui/public_api.d.ts +2 -0
  77. package/breadcrumb/breadcrumb.d.ts +55 -0
  78. package/breadcrumb/breadcrumb.interface.d.ts +38 -0
  79. package/breadcrumb/breadcrumb.module.d.ts +13 -0
  80. package/breadcrumb/index.d.ts +3 -105
  81. package/breadcrumb/public_api.d.ts +3 -0
  82. package/button/button.d.ts +85 -0
  83. package/button/button.directive.d.ts +49 -0
  84. package/button/button.interface.d.ts +30 -0
  85. package/button/button.module.d.ts +9 -0
  86. package/button/index.d.ts +3 -170
  87. package/button/public_api.d.ts +4 -0
  88. package/buttongroup/buttongroup.d.ts +11 -0
  89. package/buttongroup/index.d.ts +5 -14
  90. package/buttongroup/public_api.d.ts +1 -0
  91. package/calendar/calendar.d.ts +722 -0
  92. package/calendar/calendar.interface.d.ts +204 -0
  93. package/calendar/calendar.module.d.ts +9 -0
  94. package/calendar/index.d.ts +3 -935
  95. package/calendar/public_api.d.ts +3 -0
  96. package/card/card.d.ts +53 -0
  97. package/card/card.interface.d.ts +27 -0
  98. package/card/card.module.d.ts +11 -0
  99. package/card/index.d.ts +3 -92
  100. package/card/public_api.d.ts +3 -0
  101. package/carousel/carousel.d.ts +227 -0
  102. package/carousel/carousel.interface.d.ts +63 -0
  103. package/carousel/index.d.ts +3 -290
  104. package/carousel/public_api.d.ts +2 -0
  105. package/cascadeselect/cascadeselect.d.ts +435 -0
  106. package/cascadeselect/cascadeselect.interface.d.ts +115 -0
  107. package/cascadeselect/cascadeselect.module.d.ts +15 -0
  108. package/cascadeselect/index.d.ts +3 -564
  109. package/cascadeselect/public_api.d.ts +3 -0
  110. package/chart/chart.d.ts +87 -0
  111. package/chart/index.d.ts +3 -88
  112. package/chart/public_api.d.ts +1 -0
  113. package/checkbox/checkbox.d.ts +168 -0
  114. package/checkbox/checkbox.interface.d.ts +26 -0
  115. package/checkbox/checkbox.module.d.ts +10 -0
  116. package/checkbox/index.d.ts +3 -204
  117. package/checkbox/public_api.d.ts +3 -0
  118. package/chip/chip.d.ts +38 -0
  119. package/chip/chip.interface.d.ts +15 -0
  120. package/chip/chip.module.d.ts +10 -0
  121. package/chip/index.d.ts +3 -63
  122. package/chip/public_api.d.ts +3 -0
  123. package/chips/chips.d.ts +233 -0
  124. package/chips/chips.interface.d.ts +58 -0
  125. package/chips/chips.module.d.ts +14 -0
  126. package/chips/index.d.ts +3 -305
  127. package/chips/public_api.d.ts +3 -0
  128. package/colorpicker/colorpicker.d.ts +240 -0
  129. package/colorpicker/colorpicker.interface.d.ts +15 -0
  130. package/colorpicker/colorpicker.module.d.ts +9 -0
  131. package/colorpicker/index.d.ts +3 -265
  132. package/colorpicker/public_api.d.ts +3 -0
  133. package/commentbox/commentbox.d.ts +120 -0
  134. package/commentbox/commentbox.module.d.ts +17 -0
  135. package/commentbox/index.d.ts +5 -138
  136. package/commentbox/public_api.d.ts +2 -0
  137. package/confirmdialog/confirmdialog.d.ts +281 -0
  138. package/confirmdialog/confirmdialog.interface.d.ts +39 -0
  139. package/confirmdialog/confirmdialog.module.d.ts +15 -0
  140. package/confirmdialog/index.d.ts +3 -336
  141. package/confirmdialog/public_api.d.ts +3 -0
  142. package/confirmpopup/confirmpopup.d.ts +119 -0
  143. package/confirmpopup/confirmpopup.interface.d.ts +27 -0
  144. package/confirmpopup/index.d.ts +3 -148
  145. package/confirmpopup/public_api.d.ts +2 -0
  146. package/contextmenu/contextmenu.d.ts +260 -0
  147. package/contextmenu/index.d.ts +3 -261
  148. package/contextmenu/public_api.d.ts +1 -0
  149. package/dataview/dataview.d.ts +274 -0
  150. package/dataview/dataview.interface.d.ts +183 -0
  151. package/dataview/index.d.ts +3 -457
  152. package/dataview/public_api.d.ts +2 -0
  153. package/defer/defer.d.ts +39 -0
  154. package/defer/index.d.ts +3 -40
  155. package/defer/public_api.d.ts +1 -0
  156. package/dialog/dialog.d.ts +364 -0
  157. package/dialog/dialog.interface.d.ts +31 -0
  158. package/dialog/dialog.module.d.ts +15 -0
  159. package/dialog/index.d.ts +3 -411
  160. package/dialog/public_api.d.ts +3 -0
  161. package/divider/divider.d.ts +49 -0
  162. package/divider/divider.module.d.ts +7 -0
  163. package/divider/index.d.ts +3 -56
  164. package/divider/public_api.d.ts +2 -0
  165. package/dock/dock.d.ts +115 -0
  166. package/dock/dock.interface.d.ts +19 -0
  167. package/dock/index.d.ts +3 -136
  168. package/dock/public_api.d.ts +2 -0
  169. package/dom/connectedoverlayscrollhandler.d.ts +9 -0
  170. package/dom/domhandler.d.ts +95 -0
  171. package/dom/index.d.ts +3 -105
  172. package/dom/public_api.d.ts +2 -0
  173. package/dragdrop/dragdrop.d.ts +112 -0
  174. package/dragdrop/dragdrop.module.d.ts +8 -0
  175. package/dragdrop/index.d.ts +3 -120
  176. package/dragdrop/public_api.d.ts +2 -0
  177. package/dropdown/dropdown-item.d.ts +30 -0
  178. package/dropdown/dropdown.d.ts +628 -0
  179. package/dropdown/dropdown.interface.d.ts +154 -0
  180. package/dropdown/dropdown.module.d.ts +11 -0
  181. package/dropdown/index.d.ts +3 -818
  182. package/dropdown/public_api.d.ts +4 -0
  183. package/dynamicdialog/dialogservice.d.ts +35 -0
  184. package/dynamicdialog/dynamicdialog-config.d.ts +221 -0
  185. package/dynamicdialog/dynamicdialog-injector.d.ts +7 -0
  186. package/dynamicdialog/dynamicdialog-ref.d.ts +101 -0
  187. package/dynamicdialog/dynamicdialog.d.ts +124 -0
  188. package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
  189. package/dynamicdialog/index.d.ts +3 -490
  190. package/dynamicdialog/public_api.d.ts +6 -0
  191. package/editor/editor.d.ts +104 -0
  192. package/editor/editor.interface.d.ts +64 -0
  193. package/editor/editor.module.d.ts +9 -0
  194. package/editor/index.d.ts +3 -177
  195. package/editor/public_api.d.ts +3 -0
  196. package/fesm2022/cax-design-system-accordion.mjs +12 -11
  197. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  198. package/fesm2022/cax-design-system-animate.mjs +8 -7
  199. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  200. package/fesm2022/cax-design-system-animateonscroll.mjs +8 -7
  201. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  202. package/fesm2022/cax-design-system-api.mjs +37 -37
  203. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  204. package/fesm2022/cax-design-system-autocomplete.mjs +8 -8
  205. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  206. package/fesm2022/cax-design-system-autofocus.mjs +7 -7
  207. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  208. package/fesm2022/cax-design-system-avatar.mjs +7 -7
  209. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  210. package/fesm2022/cax-design-system-avatargroup.mjs +8 -8
  211. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  212. package/fesm2022/cax-design-system-badge.mjs +12 -11
  213. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  214. package/fesm2022/cax-design-system-baseicon.mjs +3 -3
  215. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  216. package/fesm2022/cax-design-system-blockui.mjs +8 -8
  217. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  218. package/fesm2022/cax-design-system-breadcrumb.mjs +8 -8
  219. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  220. package/fesm2022/cax-design-system-button.mjs +11 -11
  221. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  222. package/fesm2022/cax-design-system-buttongroup.mjs +9 -8
  223. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  224. package/fesm2022/cax-design-system-calendar.mjs +8 -8
  225. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  226. package/fesm2022/cax-design-system-card.mjs +8 -8
  227. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  228. package/fesm2022/cax-design-system-carousel.mjs +8 -8
  229. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  230. package/fesm2022/cax-design-system-cascadeselect.mjs +12 -12
  231. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  232. package/fesm2022/cax-design-system-chart.mjs +8 -7
  233. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  234. package/fesm2022/cax-design-system-checkbox.mjs +8 -8
  235. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  236. package/fesm2022/cax-design-system-chip.mjs +8 -8
  237. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  238. package/fesm2022/cax-design-system-chips.mjs +7 -7
  239. package/fesm2022/cax-design-system-chips.mjs.map +1 -1
  240. package/fesm2022/cax-design-system-colorpicker.mjs +8 -8
  241. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  242. package/fesm2022/cax-design-system-commentbox.mjs +8 -8
  243. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  244. package/fesm2022/cax-design-system-confirmdialog.mjs +8 -8
  245. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  246. package/fesm2022/cax-design-system-confirmpopup.mjs +8 -8
  247. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  248. package/fesm2022/cax-design-system-contextmenu.mjs +12 -11
  249. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  250. package/fesm2022/cax-design-system-dataview.mjs +12 -11
  251. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  252. package/fesm2022/cax-design-system-defer.mjs +8 -7
  253. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  254. package/fesm2022/cax-design-system-dialog.mjs +8 -8
  255. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  256. package/fesm2022/cax-design-system-divider.mjs +7 -7
  257. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  258. package/fesm2022/cax-design-system-dock.mjs +8 -8
  259. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  260. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  261. package/fesm2022/cax-design-system-dragdrop.mjs +12 -10
  262. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  263. package/fesm2022/cax-design-system-dropdown.mjs +10 -10
  264. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  265. package/fesm2022/cax-design-system-dynamicdialog.mjs +16 -15
  266. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  267. package/fesm2022/cax-design-system-editor.mjs +8 -8
  268. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  269. package/fesm2022/cax-design-system-fieldset.mjs +8 -8
  270. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  271. package/fesm2022/cax-design-system-fileupload.mjs +8 -8
  272. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  273. package/fesm2022/cax-design-system-floatlabel.mjs +9 -8
  274. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  275. package/fesm2022/cax-design-system-focustrap.mjs +8 -7
  276. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  277. package/fesm2022/cax-design-system-galleria.mjs +28 -24
  278. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  279. package/fesm2022/cax-design-system-iconfield.mjs +8 -8
  280. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  281. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
  282. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  283. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
  284. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  285. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
  286. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  287. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
  288. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  289. package/fesm2022/cax-design-system-icons-angledown.mjs +3 -3
  290. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  291. package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
  292. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  293. package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
  294. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  295. package/fesm2022/cax-design-system-icons-angleup.mjs +3 -3
  296. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  297. package/fesm2022/cax-design-system-icons-arrowdown.mjs +3 -3
  298. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  299. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
  300. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  301. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
  302. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  303. package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
  304. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  305. package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
  306. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  307. package/fesm2022/cax-design-system-icons-arrowup.mjs +3 -3
  308. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  309. package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
  310. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  311. package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
  312. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  313. package/fesm2022/cax-design-system-icons-blank.mjs +3 -3
  314. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  315. package/fesm2022/cax-design-system-icons-calendar.mjs +3 -3
  316. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  317. package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
  318. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  319. package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
  320. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  321. package/fesm2022/cax-design-system-icons-check.mjs +3 -3
  322. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  323. package/fesm2022/cax-design-system-icons-chevrondown.mjs +3 -3
  324. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  325. package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
  326. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  327. package/fesm2022/cax-design-system-icons-chevronright.mjs +3 -3
  328. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  329. package/fesm2022/cax-design-system-icons-chevronup.mjs +3 -3
  330. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  331. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
  332. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  333. package/fesm2022/cax-design-system-icons-eye.mjs +3 -3
  334. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  335. package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
  336. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  337. package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
  338. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  339. package/fesm2022/cax-design-system-icons-filterslash.mjs +3 -3
  340. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  341. package/fesm2022/cax-design-system-icons-home.mjs +3 -3
  342. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  343. package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
  344. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  345. package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
  346. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  347. package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
  348. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  349. package/fesm2022/cax-design-system-icons-plus.mjs +3 -3
  350. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  351. package/fesm2022/cax-design-system-icons-refresh.mjs +3 -3
  352. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  353. package/fesm2022/cax-design-system-icons-search.mjs +3 -3
  354. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  355. package/fesm2022/cax-design-system-icons-searchminus.mjs +3 -3
  356. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  357. package/fesm2022/cax-design-system-icons-searchplus.mjs +3 -3
  358. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  359. package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
  360. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  361. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
  362. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  363. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
  364. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  365. package/fesm2022/cax-design-system-icons-spinner.mjs +3 -3
  366. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  367. package/fesm2022/cax-design-system-icons-star.mjs +3 -3
  368. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  369. package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
  370. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  371. package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
  372. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  373. package/fesm2022/cax-design-system-icons-times.mjs +3 -3
  374. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  375. package/fesm2022/cax-design-system-icons-timescircle.mjs +3 -3
  376. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  377. package/fesm2022/cax-design-system-icons-trash.mjs +3 -3
  378. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  379. package/fesm2022/cax-design-system-icons-undo.mjs +3 -3
  380. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  381. package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
  382. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  383. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
  384. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  385. package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
  386. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  387. package/fesm2022/cax-design-system-image.mjs +7 -7
  388. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  389. package/fesm2022/cax-design-system-inplace.mjs +16 -14
  390. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  391. package/fesm2022/cax-design-system-inputgroup.mjs +8 -8
  392. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  393. package/fesm2022/cax-design-system-inputgroupaddon.mjs +8 -8
  394. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  395. package/fesm2022/cax-design-system-inputicon.mjs +8 -8
  396. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  397. package/fesm2022/cax-design-system-inputmask.mjs +8 -8
  398. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  399. package/fesm2022/cax-design-system-inputnumber.mjs +7 -7
  400. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  401. package/fesm2022/cax-design-system-inputotp.mjs +8 -7
  402. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  403. package/fesm2022/cax-design-system-inputswitch.mjs +8 -8
  404. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  405. package/fesm2022/cax-design-system-inputtext.mjs +12 -11
  406. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  407. package/fesm2022/cax-design-system-inputtextarea.mjs +12 -11
  408. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  409. package/fesm2022/cax-design-system-keyfilter.mjs +8 -7
  410. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  411. package/fesm2022/cax-design-system-knob.mjs +8 -8
  412. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  413. package/fesm2022/cax-design-system-listbox.mjs +8 -8
  414. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  415. package/fesm2022/cax-design-system-logo.mjs +7 -7
  416. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  417. package/fesm2022/cax-design-system-megamenu.mjs +12 -11
  418. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  419. package/fesm2022/cax-design-system-menu.mjs +17 -16
  420. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  421. package/fesm2022/cax-design-system-menubar.mjs +15 -14
  422. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  423. package/fesm2022/cax-design-system-message.mjs +8 -8
  424. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  425. package/fesm2022/cax-design-system-messages.mjs +7 -7
  426. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  427. package/fesm2022/cax-design-system-metergroup.mjs +13 -11
  428. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  429. package/fesm2022/cax-design-system-multiselect.mjs +12 -12
  430. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  431. package/fesm2022/cax-design-system-navigation.mjs +7 -7
  432. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  433. package/fesm2022/cax-design-system-orderlist.mjs +8 -8
  434. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  435. package/fesm2022/cax-design-system-organizationchart.mjs +12 -11
  436. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  437. package/fesm2022/cax-design-system-overlay.mjs +7 -7
  438. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  439. package/fesm2022/cax-design-system-overlaypanel.mjs +7 -7
  440. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  441. package/fesm2022/cax-design-system-paginator.mjs +8 -8
  442. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  443. package/fesm2022/cax-design-system-panel.mjs +8 -8
  444. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  445. package/fesm2022/cax-design-system-panelmenu.mjs +16 -15
  446. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  447. package/fesm2022/cax-design-system-password.mjs +17 -15
  448. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  449. package/fesm2022/cax-design-system-picklist.mjs +8 -8
  450. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  451. package/fesm2022/cax-design-system-progressbar.mjs +8 -8
  452. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  453. package/fesm2022/cax-design-system-progressspinner.mjs +8 -8
  454. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  455. package/fesm2022/cax-design-system-radiobutton.mjs +10 -10
  456. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  457. package/fesm2022/cax-design-system-rating.mjs +8 -8
  458. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  459. package/fesm2022/cax-design-system-ripple.mjs +7 -7
  460. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  461. package/fesm2022/cax-design-system-scroller.mjs +7 -7
  462. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  463. package/fesm2022/cax-design-system-scrollpanel.mjs +8 -8
  464. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  465. package/fesm2022/cax-design-system-scrolltop.mjs +8 -8
  466. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  467. package/fesm2022/cax-design-system-selectbutton.mjs +8 -8
  468. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  469. package/fesm2022/cax-design-system-sidebar.mjs +8 -8
  470. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  471. package/fesm2022/cax-design-system-skeleton.mjs +8 -8
  472. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  473. package/fesm2022/cax-design-system-slidemenu.mjs +13 -12
  474. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  475. package/fesm2022/cax-design-system-slider.mjs +8 -8
  476. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  477. package/fesm2022/cax-design-system-speeddial.mjs +8 -8
  478. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  479. package/fesm2022/cax-design-system-spinner.mjs +8 -8
  480. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  481. package/fesm2022/cax-design-system-splitbutton.mjs +8 -8
  482. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  483. package/fesm2022/cax-design-system-splitter.mjs +8 -8
  484. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  485. package/fesm2022/cax-design-system-stepper.mjs +27 -23
  486. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  487. package/fesm2022/cax-design-system-steps.mjs +8 -8
  488. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  489. package/fesm2022/cax-design-system-styleclass.mjs +8 -7
  490. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  491. package/fesm2022/cax-design-system-table.mjs +89 -89
  492. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  493. package/fesm2022/cax-design-system-tableconfiguration.mjs +27 -13
  494. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  495. package/fesm2022/cax-design-system-tabmenu.mjs +8 -8
  496. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  497. package/fesm2022/cax-design-system-tabview.mjs +12 -12
  498. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  499. package/fesm2022/cax-design-system-tag.mjs +8 -8
  500. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  501. package/fesm2022/cax-design-system-terminal.mjs +11 -11
  502. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  503. package/fesm2022/cax-design-system-tieredmenu.mjs +12 -11
  504. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  505. package/fesm2022/cax-design-system-timeline.mjs +8 -8
  506. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  507. package/fesm2022/cax-design-system-toast.mjs +10 -10
  508. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  509. package/fesm2022/cax-design-system-togglebutton.mjs +8 -8
  510. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  511. package/fesm2022/cax-design-system-toggleswitch.mjs +8 -8
  512. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  513. package/fesm2022/cax-design-system-toolbar.mjs +8 -8
  514. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  515. package/fesm2022/cax-design-system-tooltip.mjs +8 -7
  516. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  517. package/fesm2022/cax-design-system-tree.mjs +12 -12
  518. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  519. package/fesm2022/cax-design-system-treeselect.mjs +8 -8
  520. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  521. package/fesm2022/cax-design-system-treetable.mjs +72 -57
  522. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  523. package/fesm2022/cax-design-system-tristatecheckbox.mjs +7 -7
  524. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  525. package/fesm2022/cax-design-system-upload.mjs +19 -14
  526. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  527. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  528. package/fesm2022/cax-design-system-virtualscroller.mjs +8 -7
  529. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  530. package/fieldset/fieldset.d.ts +93 -0
  531. package/fieldset/fieldset.interface.d.ts +46 -0
  532. package/fieldset/index.d.ts +3 -140
  533. package/fieldset/public_api.d.ts +2 -0
  534. package/fileupload/fileupload.d.ts +380 -0
  535. package/fileupload/fileupload.interface.d.ts +226 -0
  536. package/fileupload/index.d.ts +3 -606
  537. package/fileupload/public_api.d.ts +2 -0
  538. package/floatlabel/floatlabel.d.ts +9 -0
  539. package/floatlabel/floatlabel.module.d.ts +10 -0
  540. package/floatlabel/index.d.ts +3 -19
  541. package/floatlabel/public_api.d.ts +2 -0
  542. package/focustrap/focustrap.d.ts +34 -0
  543. package/focustrap/index.d.ts +3 -35
  544. package/focustrap/public_api.d.ts +1 -0
  545. package/galleria/galleria.d.ts +404 -0
  546. package/galleria/galleria.interface.d.ts +97 -0
  547. package/galleria/index.d.ts +3 -502
  548. package/galleria/public_api.d.ts +2 -0
  549. package/iconfield/iconfield.d.ts +25 -0
  550. package/iconfield/index.d.ts +3 -26
  551. package/iconfield/public_api.d.ts +1 -0
  552. package/icons/angledoubledown/angledoubledown.d.ts +6 -0
  553. package/icons/angledoubledown/index.d.ts +5 -9
  554. package/icons/angledoubledown/public_api.d.ts +1 -0
  555. package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
  556. package/icons/angledoubleleft/index.d.ts +5 -9
  557. package/icons/angledoubleleft/public_api.d.ts +1 -0
  558. package/icons/angledoubleright/angledoubleright.d.ts +6 -0
  559. package/icons/angledoubleright/index.d.ts +5 -9
  560. package/icons/angledoubleright/public_api.d.ts +1 -0
  561. package/icons/angledoubleup/angledoubleup.d.ts +6 -0
  562. package/icons/angledoubleup/index.d.ts +5 -9
  563. package/icons/angledoubleup/public_api.d.ts +1 -0
  564. package/icons/angledown/angledown.d.ts +6 -0
  565. package/icons/angledown/index.d.ts +5 -9
  566. package/icons/angledown/public_api.d.ts +1 -0
  567. package/icons/angleleft/angleleft.d.ts +6 -0
  568. package/icons/angleleft/index.d.ts +5 -9
  569. package/icons/angleleft/public_api.d.ts +1 -0
  570. package/icons/angleright/angleright.d.ts +6 -0
  571. package/icons/angleright/index.d.ts +5 -9
  572. package/icons/angleright/public_api.d.ts +1 -0
  573. package/icons/angleup/angleup.d.ts +6 -0
  574. package/icons/angleup/index.d.ts +5 -9
  575. package/icons/angleup/public_api.d.ts +1 -0
  576. package/icons/arrowdown/arrowdown.d.ts +9 -0
  577. package/icons/arrowdown/index.d.ts +5 -12
  578. package/icons/arrowdown/public_api.d.ts +1 -0
  579. package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
  580. package/icons/arrowdownleft/index.d.ts +5 -9
  581. package/icons/arrowdownleft/public_api.d.ts +1 -0
  582. package/icons/arrowdownright/arrowdownright.d.ts +6 -0
  583. package/icons/arrowdownright/index.d.ts +5 -9
  584. package/icons/arrowdownright/public_api.d.ts +1 -0
  585. package/icons/arrowleft/arrowleft.d.ts +8 -0
  586. package/icons/arrowleft/index.d.ts +5 -11
  587. package/icons/arrowleft/public_api.d.ts +1 -0
  588. package/icons/arrowright/arrowright.d.ts +6 -0
  589. package/icons/arrowright/index.d.ts +5 -9
  590. package/icons/arrowright/public_api.d.ts +1 -0
  591. package/icons/arrowup/arrowup.d.ts +8 -0
  592. package/icons/arrowup/index.d.ts +5 -11
  593. package/icons/arrowup/public_api.d.ts +1 -0
  594. package/icons/ban/ban.d.ts +8 -0
  595. package/icons/ban/index.d.ts +5 -11
  596. package/icons/ban/public_api.d.ts +1 -0
  597. package/icons/bars/bars.d.ts +6 -0
  598. package/icons/bars/index.d.ts +5 -9
  599. package/icons/bars/public_api.d.ts +1 -0
  600. package/icons/blank/blank.d.ts +6 -0
  601. package/icons/blank/index.d.ts +5 -9
  602. package/icons/blank/public_api.d.ts +1 -0
  603. package/icons/calendar/calendar.d.ts +6 -0
  604. package/icons/calendar/index.d.ts +5 -9
  605. package/icons/calendar/public_api.d.ts +1 -0
  606. package/icons/caretleft/caretleft.d.ts +6 -0
  607. package/icons/caretleft/index.d.ts +5 -9
  608. package/icons/caretleft/public_api.d.ts +1 -0
  609. package/icons/caretright/caretright.d.ts +6 -0
  610. package/icons/caretright/index.d.ts +5 -9
  611. package/icons/caretright/public_api.d.ts +1 -0
  612. package/icons/check/check.d.ts +6 -0
  613. package/icons/check/index.d.ts +5 -9
  614. package/icons/check/public_api.d.ts +1 -0
  615. package/icons/chevrondown/chevrondown.d.ts +6 -0
  616. package/icons/chevrondown/index.d.ts +5 -9
  617. package/icons/chevrondown/public_api.d.ts +1 -0
  618. package/icons/chevronleft/chevronleft.d.ts +6 -0
  619. package/icons/chevronleft/index.d.ts +5 -9
  620. package/icons/chevronleft/public_api.d.ts +1 -0
  621. package/icons/chevronright/chevronright.d.ts +6 -0
  622. package/icons/chevronright/index.d.ts +5 -9
  623. package/icons/chevronright/public_api.d.ts +1 -0
  624. package/icons/chevronup/chevronup.d.ts +6 -0
  625. package/icons/chevronup/index.d.ts +5 -9
  626. package/icons/chevronup/public_api.d.ts +1 -0
  627. package/icons/exclamationtriangle/exclamationtriangle.d.ts +9 -0
  628. package/icons/exclamationtriangle/index.d.ts +5 -12
  629. package/icons/exclamationtriangle/public_api.d.ts +1 -0
  630. package/icons/eye/eye.d.ts +6 -0
  631. package/icons/eye/index.d.ts +5 -9
  632. package/icons/eye/public_api.d.ts +1 -0
  633. package/icons/eyeslash/eyeslash.d.ts +8 -0
  634. package/icons/eyeslash/index.d.ts +5 -11
  635. package/icons/eyeslash/public_api.d.ts +1 -0
  636. package/icons/filter/filter.d.ts +8 -0
  637. package/icons/filter/index.d.ts +5 -11
  638. package/icons/filter/public_api.d.ts +1 -0
  639. package/icons/filterslash/filterslash.d.ts +8 -0
  640. package/icons/filterslash/index.d.ts +5 -11
  641. package/icons/filterslash/public_api.d.ts +1 -0
  642. package/icons/home/home.d.ts +8 -0
  643. package/icons/home/index.d.ts +5 -11
  644. package/icons/home/public_api.d.ts +1 -0
  645. package/icons/infocircle/index.d.ts +5 -11
  646. package/icons/infocircle/infocircle.d.ts +8 -0
  647. package/icons/infocircle/public_api.d.ts +1 -0
  648. package/icons/minus/index.d.ts +5 -9
  649. package/icons/minus/minus.d.ts +6 -0
  650. package/icons/minus/public_api.d.ts +1 -0
  651. package/icons/pencil/index.d.ts +5 -11
  652. package/icons/pencil/pencil.d.ts +8 -0
  653. package/icons/pencil/public_api.d.ts +1 -0
  654. package/icons/plus/index.d.ts +5 -11
  655. package/icons/plus/plus.d.ts +8 -0
  656. package/icons/plus/public_api.d.ts +1 -0
  657. package/icons/refresh/index.d.ts +5 -11
  658. package/icons/refresh/public_api.d.ts +1 -0
  659. package/icons/refresh/refresh.d.ts +8 -0
  660. package/icons/search/index.d.ts +5 -11
  661. package/icons/search/public_api.d.ts +1 -0
  662. package/icons/search/search.d.ts +8 -0
  663. package/icons/searchminus/index.d.ts +5 -11
  664. package/icons/searchminus/public_api.d.ts +1 -0
  665. package/icons/searchminus/searchminus.d.ts +8 -0
  666. package/icons/searchplus/index.d.ts +5 -11
  667. package/icons/searchplus/public_api.d.ts +1 -0
  668. package/icons/searchplus/searchplus.d.ts +8 -0
  669. package/icons/sortalt/index.d.ts +5 -11
  670. package/icons/sortalt/public_api.d.ts +1 -0
  671. package/icons/sortalt/sortalt.d.ts +8 -0
  672. package/icons/sortamountdown/index.d.ts +5 -11
  673. package/icons/sortamountdown/public_api.d.ts +1 -0
  674. package/icons/sortamountdown/sortamountdown.d.ts +8 -0
  675. package/icons/sortamountupalt/index.d.ts +5 -11
  676. package/icons/sortamountupalt/public_api.d.ts +1 -0
  677. package/icons/sortamountupalt/sortamountupalt.d.ts +8 -0
  678. package/icons/spinner/index.d.ts +5 -11
  679. package/icons/spinner/public_api.d.ts +1 -0
  680. package/icons/spinner/spinner.d.ts +8 -0
  681. package/icons/star/index.d.ts +5 -11
  682. package/icons/star/public_api.d.ts +1 -0
  683. package/icons/star/star.d.ts +8 -0
  684. package/icons/starfill/index.d.ts +5 -11
  685. package/icons/starfill/public_api.d.ts +1 -0
  686. package/icons/starfill/starfill.d.ts +8 -0
  687. package/icons/thlarge/index.d.ts +5 -11
  688. package/icons/thlarge/public_api.d.ts +1 -0
  689. package/icons/thlarge/thlarge.d.ts +8 -0
  690. package/icons/times/index.d.ts +5 -9
  691. package/icons/times/public_api.d.ts +1 -0
  692. package/icons/times/times.d.ts +6 -0
  693. package/icons/timescircle/index.d.ts +5 -11
  694. package/icons/timescircle/public_api.d.ts +1 -0
  695. package/icons/timescircle/timescircle.d.ts +8 -0
  696. package/icons/trash/index.d.ts +5 -11
  697. package/icons/trash/public_api.d.ts +1 -0
  698. package/icons/trash/trash.d.ts +8 -0
  699. package/icons/undo/index.d.ts +5 -11
  700. package/icons/undo/public_api.d.ts +1 -0
  701. package/icons/undo/undo.d.ts +8 -0
  702. package/icons/upload/index.d.ts +5 -11
  703. package/icons/upload/public_api.d.ts +1 -0
  704. package/icons/upload/upload.d.ts +8 -0
  705. package/icons/windowmaximize/index.d.ts +5 -11
  706. package/icons/windowmaximize/public_api.d.ts +1 -0
  707. package/icons/windowmaximize/windowmaximize.d.ts +8 -0
  708. package/icons/windowminimize/index.d.ts +5 -11
  709. package/icons/windowminimize/public_api.d.ts +1 -0
  710. package/icons/windowminimize/windowminimize.d.ts +8 -0
  711. package/image/image.d.ts +188 -0
  712. package/image/image.interface.d.ts +31 -0
  713. package/image/image.module.d.ts +8 -0
  714. package/image/index.d.ts +3 -228
  715. package/image/public_api.d.ts +3 -0
  716. package/index.d.ts +5 -2
  717. package/inplace/index.d.ts +3 -130
  718. package/inplace/inplace.d.ts +109 -0
  719. package/inplace/inplace.interface.d.ts +19 -0
  720. package/inplace/public_api.d.ts +2 -0
  721. package/inputgroup/index.d.ts +3 -48
  722. package/inputgroup/inputgroup.d.ts +33 -0
  723. package/inputgroup/inputgroup.module.d.ts +15 -0
  724. package/inputgroup/public_api.d.ts +2 -0
  725. package/inputgroupaddon/index.d.ts +3 -35
  726. package/inputgroupaddon/inputgroupaddon.d.ts +21 -0
  727. package/inputgroupaddon/inputgroupaddon.module.d.ts +14 -0
  728. package/inputgroupaddon/public_api.d.ts +2 -0
  729. package/inputicon/index.d.ts +3 -22
  730. package/inputicon/inputicon.d.ts +21 -0
  731. package/inputicon/public_api.d.ts +1 -0
  732. package/inputmask/index.d.ts +3 -304
  733. package/inputmask/inputmask.d.ts +273 -0
  734. package/inputmask/inputmask.interface.d.ts +19 -0
  735. package/inputmask/inputmask.module.d.ts +12 -0
  736. package/inputmask/public_api.d.ts +3 -0
  737. package/inputnumber/index.d.ts +3 -443
  738. package/inputnumber/inputnumber.d.ts +397 -0
  739. package/inputnumber/inputnumber.interface.d.ts +38 -0
  740. package/inputnumber/inputnumber.module.d.ts +8 -0
  741. package/inputnumber/public_api.d.ts +3 -0
  742. package/inputotp/index.d.ts +3 -189
  743. package/inputotp/inputotp.d.ts +123 -0
  744. package/inputotp/inputotp.interface.d.ts +65 -0
  745. package/inputotp/public_api.d.ts +2 -0
  746. package/inputswitch/index.d.ts +3 -123
  747. package/inputswitch/inputswitch.d.ts +106 -0
  748. package/inputswitch/inputswitch.interface.d.ts +15 -0
  749. package/inputswitch/public_api.d.ts +2 -0
  750. package/inputtext/index.d.ts +5 -76
  751. package/inputtext/inputtext.component.d.ts +43 -0
  752. package/inputtext/inputtext.directive.d.ts +25 -0
  753. package/inputtext/inputtext.module.d.ts +10 -0
  754. package/inputtext/public_api.d.ts +3 -0
  755. package/inputtextarea/index.d.ts +3 -112
  756. package/inputtextarea/inputtextarea.component.d.ts +57 -0
  757. package/inputtextarea/inputtextarea.directive.d.ts +47 -0
  758. package/inputtextarea/inputtextarea.module.d.ts +10 -0
  759. package/inputtextarea/public_api.d.ts +3 -0
  760. package/keyfilter/index.d.ts +3 -65
  761. package/keyfilter/keyfilter.d.ts +58 -0
  762. package/keyfilter/keyfilter.interface.d.ts +5 -0
  763. package/keyfilter/public_api.d.ts +2 -0
  764. package/knob/index.d.ts +3 -179
  765. package/knob/knob.d.ts +178 -0
  766. package/knob/public_api.d.ts +1 -0
  767. package/listbox/index.d.ts +3 -620
  768. package/listbox/listbox.d.ts +463 -0
  769. package/listbox/listbox.interface.d.ts +156 -0
  770. package/listbox/public_api.d.ts +2 -0
  771. package/logo/index.d.ts +5 -20
  772. package/logo/logo.d.ts +11 -0
  773. package/logo/logo.module.d.ts +7 -0
  774. package/logo/public_api.d.ts +2 -0
  775. package/megamenu/index.d.ts +3 -230
  776. package/megamenu/megamenu.d.ts +198 -0
  777. package/megamenu/megamenu.interface.d.ts +31 -0
  778. package/megamenu/public_api.d.ts +2 -0
  779. package/menu/index.d.ts +3 -222
  780. package/menu/menu.d.ts +210 -0
  781. package/menu/menu.module.d.ts +12 -0
  782. package/menu/public_api.d.ts +2 -0
  783. package/menubar/index.d.ts +3 -290
  784. package/menubar/menubar.d.ts +248 -0
  785. package/menubar/menubar.interface.d.ts +40 -0
  786. package/menubar/public_api.d.ts +2 -0
  787. package/message/index.d.ts +3 -53
  788. package/message/message.d.ts +52 -0
  789. package/message/public_api.d.ts +1 -0
  790. package/messages/index.d.ts +3 -140
  791. package/messages/messages.d.ts +115 -0
  792. package/messages/messages.interface.d.ts +18 -0
  793. package/messages/messages.module.d.ts +8 -0
  794. package/messages/public_api.d.ts +3 -0
  795. package/metergroup/index.d.ts +3 -224
  796. package/metergroup/metergroup.d.ts +101 -0
  797. package/metergroup/metergroup.interface.d.ts +122 -0
  798. package/metergroup/public_api.d.ts +2 -0
  799. package/multiselect/index.d.ts +3 -974
  800. package/multiselect/multiselect.d.ts +710 -0
  801. package/multiselect/multiselect.interface.d.ts +247 -0
  802. package/multiselect/multiselect.module.d.ts +20 -0
  803. package/multiselect/public_api.d.ts +3 -0
  804. package/navigation/index.d.ts +5 -105
  805. package/navigation/navigation.d.ts +70 -0
  806. package/navigation/navigation.interface.d.ts +26 -0
  807. package/navigation/navigation.module.d.ts +7 -0
  808. package/navigation/public_api.d.ts +2 -0
  809. package/orderlist/index.d.ts +3 -381
  810. package/orderlist/orderlist.d.ts +270 -0
  811. package/orderlist/orderlist.interface.d.ts +110 -0
  812. package/orderlist/public_api.d.ts +2 -0
  813. package/organizationchart/index.d.ts +3 -192
  814. package/organizationchart/organizationchart.d.ts +132 -0
  815. package/organizationchart/organizationchart.interface.d.ts +59 -0
  816. package/organizationchart/public_api.d.ts +2 -0
  817. package/overlay/index.d.ts +3 -246
  818. package/overlay/overlay.d.ts +238 -0
  819. package/overlay/overlay.module.d.ts +8 -0
  820. package/overlay/public_api.d.ts +2 -0
  821. package/overlaypanel/index.d.ts +3 -170
  822. package/overlaypanel/overlaypanel.d.ts +162 -0
  823. package/overlaypanel/overlaypanel.module.d.ts +8 -0
  824. package/overlaypanel/public_api.d.ts +2 -0
  825. package/package.json +375 -375
  826. package/paginator/index.d.ts +3 -249
  827. package/paginator/paginator.d.ts +195 -0
  828. package/paginator/paginator.interface.d.ts +37 -0
  829. package/paginator/paginator.module.d.ts +17 -0
  830. package/paginator/public_api.d.ts +3 -0
  831. package/panel/index.d.ts +3 -185
  832. package/panel/panel.d.ts +126 -0
  833. package/panel/panel.interface.d.ts +58 -0
  834. package/panel/public_api.d.ts +2 -0
  835. package/panelmenu/index.d.ts +3 -249
  836. package/panelmenu/panelmenu.d.ts +225 -0
  837. package/panelmenu/panelmenu.interface.d.ts +23 -0
  838. package/panelmenu/public_api.d.ts +2 -0
  839. package/password/index.d.ts +3 -342
  840. package/password/password.d.ts +342 -0
  841. package/password/public_api.d.ts +1 -0
  842. package/picklist/index.d.ts +3 -696
  843. package/picklist/picklist.d.ts +453 -0
  844. package/picklist/picklist.interface.d.ts +242 -0
  845. package/picklist/public_api.d.ts +2 -0
  846. package/progressbar/index.d.ts +3 -61
  847. package/progressbar/progressbar.d.ts +54 -0
  848. package/progressbar/progressbar.module.d.ts +8 -0
  849. package/progressbar/public_api.d.ts +2 -0
  850. package/progressspinner/index.d.ts +3 -58
  851. package/progressspinner/progressspinner.d.ts +50 -0
  852. package/progressspinner/progressspinner.module.d.ts +8 -0
  853. package/progressspinner/public_api.d.ts +2 -0
  854. package/public_api.d.ts +2 -0
  855. package/radiobutton/index.d.ts +3 -173
  856. package/radiobutton/public_api.d.ts +3 -0
  857. package/radiobutton/radiobutton.d.ts +150 -0
  858. package/radiobutton/radiobutton.interface.d.ts +15 -0
  859. package/radiobutton/radiobutton.module.d.ts +7 -0
  860. package/rating/index.d.ts +3 -181
  861. package/rating/public_api.d.ts +2 -0
  862. package/rating/rating.d.ts +146 -0
  863. package/rating/rating.interface.d.ts +34 -0
  864. package/resources/cax.min.scss +1 -1
  865. package/resources/cax.scss +36 -14
  866. package/resources/components/calendar/calendar.scss +215 -219
  867. package/resources/components/colorpicker/images/color.png +0 -0
  868. package/resources/components/colorpicker/images/hue.png +0 -0
  869. package/resources/components/password/images/password-meter.png +0 -0
  870. package/resources/components/table/table.scss +10 -3
  871. package/resources/components/toggleswitch/toggleswitch.scss +1 -1
  872. package/resources/components/tree/images/line.gif +0 -0
  873. package/resources/images/color.png +0 -0
  874. package/resources/images/hue.png +0 -0
  875. package/resources/images/line.gif +0 -0
  876. package/resources/images/password-meter.png +0 -0
  877. package/ripple/index.d.ts +3 -37
  878. package/ripple/public_api.d.ts +2 -0
  879. package/ripple/ripple.d.ts +30 -0
  880. package/ripple/ripple.module.d.ts +7 -0
  881. package/scroller/index.d.ts +3 -528
  882. package/scroller/public_api.d.ts +3 -0
  883. package/scroller/scroller.d.ts +343 -0
  884. package/scroller/scroller.interface.d.ts +177 -0
  885. package/scroller/scroller.module.d.ts +8 -0
  886. package/scrollpanel/index.d.ts +3 -116
  887. package/scrollpanel/public_api.d.ts +2 -0
  888. package/scrollpanel/scrollpanel.d.ts +103 -0
  889. package/scrollpanel/scrollpanel.interface.d.ts +11 -0
  890. package/scrolltop/index.d.ts +3 -117
  891. package/scrolltop/public_api.d.ts +2 -0
  892. package/scrolltop/scrolltop.d.ts +97 -0
  893. package/scrolltop/scrolltop.interface.d.ts +18 -0
  894. package/selectbutton/index.d.ts +3 -184
  895. package/selectbutton/public_api.d.ts +3 -0
  896. package/selectbutton/selectbutton.d.ts +128 -0
  897. package/selectbutton/selectbutton.interface.d.ts +45 -0
  898. package/selectbutton/selectbutton.module.d.ts +11 -0
  899. package/sidebar/index.d.ts +3 -213
  900. package/sidebar/public_api.d.ts +3 -0
  901. package/sidebar/sidebar.d.ts +173 -0
  902. package/sidebar/sidebar.interface.d.ts +27 -0
  903. package/sidebar/sidebar.module.d.ts +12 -0
  904. package/skeleton/index.d.ts +3 -69
  905. package/skeleton/public_api.d.ts +2 -0
  906. package/skeleton/skeleton.d.ts +61 -0
  907. package/skeleton/skeleton.module.d.ts +8 -0
  908. package/slidemenu/index.d.ts +3 -339
  909. package/slidemenu/public_api.d.ts +2 -0
  910. package/slidemenu/slidemenu.d.ts +322 -0
  911. package/slidemenu/slidemenu.interface.d.ts +15 -0
  912. package/slider/index.d.ts +3 -214
  913. package/slider/public_api.d.ts +2 -0
  914. package/slider/slider.d.ts +174 -0
  915. package/slider/slider.interface.d.ts +38 -0
  916. package/speeddial/index.d.ts +3 -319
  917. package/speeddial/public_api.d.ts +3 -0
  918. package/speeddial/speeddial.d.ts +277 -0
  919. package/speeddial/speeddial.interface.d.ts +28 -0
  920. package/speeddial/speeddial.module.d.ts +14 -0
  921. package/spinner/index.d.ts +5 -93
  922. package/spinner/public_api.d.ts +1 -0
  923. package/spinner/spinner.d.ts +90 -0
  924. package/splitbutton/index.d.ts +3 -264
  925. package/splitbutton/public_api.d.ts +3 -0
  926. package/splitbutton/splitbutton.d.ts +222 -0
  927. package/splitbutton/splitbutton.interface.d.ts +30 -0
  928. package/splitbutton/splitbutton.module.d.ts +13 -0
  929. package/splitter/index.d.ts +3 -201
  930. package/splitter/public_api.d.ts +3 -0
  931. package/splitter/splitter.d.ts +158 -0
  932. package/splitter/splitter.interface.d.ts +34 -0
  933. package/splitter/splitter.module.d.ts +9 -0
  934. package/stepper/index.d.ts +3 -145
  935. package/stepper/public_api.d.ts +2 -0
  936. package/stepper/stepper.d.ts +117 -0
  937. package/stepper/stepper.interface.d.ts +26 -0
  938. package/steps/index.d.ts +3 -87
  939. package/steps/public_api.d.ts +2 -0
  940. package/steps/steps.d.ts +77 -0
  941. package/steps/steps.module.d.ts +10 -0
  942. package/styleclass/index.d.ts +3 -109
  943. package/styleclass/public_api.d.ts +1 -0
  944. package/styleclass/styleclass.d.ts +108 -0
  945. package/table/columnfilter.interface.d.ts +247 -0
  946. package/table/components/cell-editor/cell-editor.d.ts +20 -0
  947. package/table/components/column-filter/column-filter.d.ts +291 -0
  948. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +37 -0
  949. package/table/components/sort-icon/sort-icon.d.ts +22 -0
  950. package/table/components/table-body/table-body.d.ts +36 -0
  951. package/table/components/table-checkbox/table-checkbox.d.ts +32 -0
  952. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +29 -0
  953. package/table/components/table-radio-button/table-radio-button.d.ts +29 -0
  954. package/table/directives/cancel-editable-row.directive.d.ts +11 -0
  955. package/table/directives/cell-highlight.directive.d.ts +14 -0
  956. package/table/directives/content-menu-row.directive.d.ts +22 -0
  957. package/table/directives/dynamic-column-width.directive.d.ts +12 -0
  958. package/table/directives/editable-column.directive.d.ts +40 -0
  959. package/table/directives/editable-row.directive.d.ts +12 -0
  960. package/table/directives/frozen-column.directive.d.ts +16 -0
  961. package/table/directives/init-editable-row.directive.d.ts +11 -0
  962. package/table/directives/reorderable-column.directive.d.ts +32 -0
  963. package/table/directives/reorderable-row-handle.directive.d.ts +9 -0
  964. package/table/directives/reorderable-row.directive.d.ts +34 -0
  965. package/table/directives/resizable-column.directive.d.ts +35 -0
  966. package/table/directives/row-group-header.directive.d.ts +9 -0
  967. package/table/directives/row-toggler.directive.d.ts +13 -0
  968. package/table/directives/save-editable-row.directive.d.ts +11 -0
  969. package/table/directives/selectable-row-double-click.directive.d.ts +22 -0
  970. package/table/directives/selectable-row.directive.d.ts +37 -0
  971. package/table/directives/sortable-column.directive.d.ts +24 -0
  972. package/table/index.d.ts +3 -2556
  973. package/table/public_api.d.ts +30 -0
  974. package/table/table.d.ts +871 -0
  975. package/table/table.interface.d.ts +623 -0
  976. package/table/table.module.d.ts +34 -0
  977. package/table/table.service.d.ts +24 -0
  978. package/tableconfiguration/index.d.ts +5 -25
  979. package/tableconfiguration/public_api.d.ts +2 -0
  980. package/tableconfiguration/tableconfiguration.d.ts +16 -0
  981. package/tableconfiguration/tableconfiguration.module.d.ts +7 -0
  982. package/tabmenu/index.d.ts +3 -160
  983. package/tabmenu/public_api.d.ts +2 -0
  984. package/tabmenu/tabmenu.d.ts +126 -0
  985. package/tabmenu/tabmenu.interface.d.ts +32 -0
  986. package/tabview/index.d.ts +3 -357
  987. package/tabview/public_api.d.ts +3 -0
  988. package/tabview/tabview.d.ts +293 -0
  989. package/tabview/tabview.interface.d.ts +49 -0
  990. package/tabview/tabview.module.d.ts +15 -0
  991. package/tag/index.d.ts +3 -82
  992. package/tag/public_api.d.ts +3 -0
  993. package/tag/tag.d.ts +61 -0
  994. package/tag/tag.interface.d.ts +11 -0
  995. package/tag/tag.module.d.ts +9 -0
  996. package/terminal/index.d.ts +3 -68
  997. package/terminal/public_api.d.ts +2 -0
  998. package/terminal/terminal.d.ts +56 -0
  999. package/terminal/terminalservice.d.ts +11 -0
  1000. package/tieredmenu/index.d.ts +3 -307
  1001. package/tieredmenu/public_api.d.ts +3 -0
  1002. package/tieredmenu/tieredmenu.d.ts +266 -0
  1003. package/tieredmenu/tieredmenu.interface.d.ts +27 -0
  1004. package/tieredmenu/tiredmenu.module.d.ts +13 -0
  1005. package/timeline/index.d.ts +3 -100
  1006. package/timeline/public_api.d.ts +3 -0
  1007. package/timeline/timeline.d.ts +47 -0
  1008. package/timeline/timeline.interface.d.ts +43 -0
  1009. package/timeline/timeline.module.d.ts +9 -0
  1010. package/toast/index.d.ts +3 -202
  1011. package/toast/public_api.d.ts +3 -0
  1012. package/toast/toast.d.ts +142 -0
  1013. package/toast/toast.interface.d.ts +52 -0
  1014. package/toast/toast.module.d.ts +9 -0
  1015. package/toast/toastitem.d.ts +37 -0
  1016. package/togglebutton/index.d.ts +3 -150
  1017. package/togglebutton/public_api.d.ts +2 -0
  1018. package/togglebutton/togglebutton.d.ts +115 -0
  1019. package/togglebutton/togglebutton.interface.d.ts +34 -0
  1020. package/toggleswitch/index.d.ts +5 -25
  1021. package/toggleswitch/public_api.d.ts +2 -0
  1022. package/toggleswitch/toggleswitch.d.ts +14 -0
  1023. package/toggleswitch/toggleswitch.module.d.ts +9 -0
  1024. package/toolbar/index.d.ts +3 -64
  1025. package/toolbar/public_api.d.ts +2 -0
  1026. package/toolbar/toolbar.d.ts +43 -0
  1027. package/toolbar/toolbar.interface.d.ts +19 -0
  1028. package/tooltip/index.d.ts +3 -218
  1029. package/tooltip/public_api.d.ts +2 -0
  1030. package/tooltip/tooltip.d.ts +208 -0
  1031. package/tooltip/tooltip.module.d.ts +10 -0
  1032. package/tree/index.d.ts +3 -673
  1033. package/tree/public_api.d.ts +3 -0
  1034. package/tree/tree.d.ts +461 -0
  1035. package/tree/tree.interface.d.ts +193 -0
  1036. package/tree/tree.module.d.ts +21 -0
  1037. package/treeselect/index.d.ts +3 -517
  1038. package/treeselect/public_api.d.ts +3 -0
  1039. package/treeselect/treeselect.d.ts +394 -0
  1040. package/treeselect/treeselect.interface.d.ts +108 -0
  1041. package/treeselect/treeselect.module.d.ts +16 -0
  1042. package/treetable/index.d.ts +3 -1461
  1043. package/treetable/public_api.d.ts +2 -0
  1044. package/treetable/treetable.d.ts +988 -0
  1045. package/treetable/treetable.interface.d.ts +472 -0
  1046. package/tristatecheckbox/index.d.ts +3 -155
  1047. package/tristatecheckbox/public_api.d.ts +3 -0
  1048. package/tristatecheckbox/tristatecheckbox.d.ts +117 -0
  1049. package/tristatecheckbox/tristatecheckbox.interface.d.ts +30 -0
  1050. package/tristatecheckbox/tristatecheckbox.module.d.ts +8 -0
  1051. package/ts-helpers/index.d.ts +5 -6
  1052. package/ts-helpers/public_api.d.ts +1 -0
  1053. package/ts-helpers/ts-helpers.d.ts +4 -0
  1054. package/upload/index.d.ts +5 -81
  1055. package/upload/public_api.d.ts +2 -0
  1056. package/upload/upload.component.d.ts +67 -0
  1057. package/upload/upload.component.module.d.ts +11 -0
  1058. package/utils/index.d.ts +5 -35
  1059. package/utils/objectutils.d.ts +24 -0
  1060. package/utils/public_api.d.ts +4 -0
  1061. package/utils/uniquecomponentid.d.ts +2 -0
  1062. package/utils/zindexutils.d.ts +7 -0
  1063. package/virtualscroller/index.d.ts +3 -161
  1064. package/virtualscroller/public_api.d.ts +2 -0
  1065. package/virtualscroller/virtualscroller.d.ts +89 -0
  1066. package/virtualscroller/virtualscroller.interface.d.ts +72 -0
  1067. package/cax-design-system-2.8.2.tgz +0 -0
@@ -167,10 +167,10 @@ class TriStateCheckbox {
167
167
  this.disabled = disabled;
168
168
  this.cd.markForCheck();
169
169
  }
170
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: TriStateCheckbox, isStandalone: true, selector: "cax-triStateCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", variant: "variant", tabindex: ["tabindex", "tabindex", numberAttribute], inputId: "inputId", style: "style", styleClass: "styleClass", label: "label", readonly: ["readonly", "readonly", booleanAttribute], checkboxTrueIcon: "checkboxTrueIcon", checkboxFalseIcon: "checkboxFalseIcon", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange" }, host: { classAttribute: "cax-element" }, providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div\r\n [ngStyle]=\"style\"\r\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\r\n [class]=\"styleClass\"\r\n (click)=\"onClick($event, input)\"\r\n [attr.data-pc-name]=\"'tristatecheckbox'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n>\r\n <div class=\"cax-hidden-accessible\">\r\n <input\r\n #input\r\n [attr.id]=\"inputId\"\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [attr.tabindex]=\"tabindex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n inputmode=\"none\"\r\n [attr.data-pc-section]=\"'hiddenInput'\"\r\n pAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n </div>\r\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\r\n <ng-container *ngIf=\"value === true\">\r\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxTrueIcon\">\r\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\r\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\r\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"value === false\">\r\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxFalseIcon\">\r\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\r\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\r\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "component", type: CheckIcon, selector: "CheckIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
170
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
171
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.16", type: TriStateCheckbox, isStandalone: true, selector: "cax-triStateCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", variant: "variant", tabindex: ["tabindex", "tabindex", numberAttribute], inputId: "inputId", style: "style", styleClass: "styleClass", label: "label", readonly: ["readonly", "readonly", booleanAttribute], checkboxTrueIcon: "checkboxTrueIcon", checkboxFalseIcon: "checkboxFalseIcon", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange" }, host: { classAttribute: "cax-element" }, providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div\r\n [ngStyle]=\"style\"\r\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\r\n [class]=\"styleClass\"\r\n (click)=\"onClick($event, input)\"\r\n [attr.data-pc-name]=\"'tristatecheckbox'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n>\r\n <div class=\"cax-hidden-accessible\">\r\n <input\r\n #input\r\n [attr.id]=\"inputId\"\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [attr.tabindex]=\"tabindex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n inputmode=\"none\"\r\n [attr.data-pc-section]=\"'hiddenInput'\"\r\n pAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n </div>\r\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\r\n <ng-container *ngIf=\"value === true\">\r\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxTrueIcon\">\r\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\r\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\r\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"value === false\">\r\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxFalseIcon\">\r\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\r\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\r\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "component", type: CheckIcon, selector: "CheckIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
172
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckbox, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckbox, decorators: [{
174
174
  type: Component,
175
175
  args: [{ selector: 'cax-triStateCheckbox', providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon], host: {
176
176
  class: 'cax-element'
@@ -215,11 +215,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
215
215
  }] } });
216
216
 
217
217
  class TriStateCheckboxModule {
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
219
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule], exports: [TriStateCheckbox, SharedModule] });
220
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule, SharedModule] });
218
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
219
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule], exports: [TriStateCheckbox, SharedModule] });
220
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckboxModule, imports: [TriStateCheckbox, SharedModule, SharedModule] });
221
221
  }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckboxModule, decorators: [{
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TriStateCheckboxModule, decorators: [{
223
223
  type: NgModule,
224
224
  args: [{
225
225
  imports: [TriStateCheckbox, SharedModule],
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-tristatecheckbox.mjs","sources":["../../src/app/components/tristatecheckbox/tristatecheckbox.ts","../../src/app/components/tristatecheckbox/tristatecheckbox.html","../../src/app/components/tristatecheckbox/tristatecheckbox.module.ts","../../src/app/components/tristatecheckbox/cax-design-system-tristatecheckbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewEncapsulation, booleanAttribute, forwardRef, numberAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\nimport { TriStateCheckboxChangeEvent } from './tristatecheckbox.interface';\n\nexport const TRISTATECHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TriStateCheckbox),\n multi: true\n};\n/**\n * TriStateCheckbox is used to select either 'true', 'false' or 'null' as the value.\n * @group Components\n */\n@Component({\n selector: 'cax-triStateCheckbox',\n templateUrl: './tristatecheckbox.html',\n providers: [TRISTATECHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon],\n host: {\n class: 'cax-element'\n }\n})\nexport class TriStateCheckbox implements ControlValueAccessor {\n constructor(\n private cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Name of the component.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Label of the checkbox.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean | undefined;\n /**\n * Specifies the icon for checkbox true value.\n * @group Props\n */\n @Input() checkboxTrueIcon: string | undefined;\n /**\n * Specifies the icon for checkbox false value.\n * @group Props\n */\n @Input() checkboxFalseIcon: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Callback to invoke on value change.\n * @param {TriStateCheckboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<TriStateCheckboxChangeEvent> = new EventEmitter<TriStateCheckboxChangeEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n checkIconTemplate: Nullable<TemplateRef<any>>;\n\n uncheckIconTemplate: Nullable<TemplateRef<any>>;\n\n focused: Nullable<boolean>;\n\n value: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n onClick(event: Event, input: HTMLInputElement) {\n if (!this.disabled && !this.readonly) {\n this.toggle(event);\n this.focused = true;\n input.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n toggle(event: Event) {\n if (this.value == null || this.value == undefined) this.value = true;\n else if (this.value == true) this.value = false;\n else if (this.value == false) this.value = null;\n\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'checkicon':\n this.checkIconTemplate = item.template;\n break;\n\n case 'uncheckicon':\n this.uncheckIconTemplate = item.template;\n break;\n }\n });\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.cd.markForCheck();\n }\n}\n","<div\r\n [ngStyle]=\"style\"\r\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\r\n [class]=\"styleClass\"\r\n (click)=\"onClick($event, input)\"\r\n [attr.data-pc-name]=\"'tristatecheckbox'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n>\r\n <div class=\"cax-hidden-accessible\">\r\n <input\r\n #input\r\n [attr.id]=\"inputId\"\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [attr.tabindex]=\"tabindex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n inputmode=\"none\"\r\n [attr.data-pc-section]=\"'hiddenInput'\"\r\n pAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n </div>\r\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\r\n <ng-container *ngIf=\"value === true\">\r\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxTrueIcon\">\r\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\r\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\r\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"value === false\">\r\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxFalseIcon\">\r\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\r\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\r\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { TriStateCheckbox } from './tristatecheckbox';\n\n@NgModule({\n imports: [TriStateCheckbox, SharedModule],\n exports: [TriStateCheckbox, SharedModule]\n})\nexport class TriStateCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;AAUO,MAAM,+BAA+B,GAAQ;AAChD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,IAAA,KAAK,EAAE;;AAEX;;;AAGG;MAaU,gBAAgB,CAAA;AAEb,IAAA,EAAA;AACD,IAAA,MAAA;IAFX,WAAA,CACY,EAAqB,EACtB,MAAiB,EAAA;QADhB,IAAA,CAAA,EAAE,GAAF,EAAE;QACH,IAAA,CAAA,MAAM,GAAN,MAAM;IACd;AACH;;;AAGG;AACqC,IAAA,QAAQ;AAChD;;;AAGG;AACM,IAAA,IAAI;AACb;;;AAGG;AACM,IAAA,SAAS;AAClB;;;AAGG;AACM,IAAA,cAAc;AACvB;;;AAGG;IACM,OAAO,GAA0B,UAAU;AACpD;;;AAGG;AACoC,IAAA,QAAQ;AAC/C;;;AAGG;AACM,IAAA,OAAO;AAChB;;;AAGG;AACM,IAAA,KAAK;AACd;;;AAGG;AACM,IAAA,UAAU;AACnB;;;AAGG;AACM,IAAA,KAAK;AACd;;;AAGG;AACqC,IAAA,QAAQ;AAChD;;;AAGG;AACM,IAAA,gBAAgB;AACzB;;;AAGG;AACM,IAAA,iBAAiB;AAC1B;;;AAGG;AACqC,IAAA,SAAS;AACjD;;;;AAIG;AACO,IAAA,QAAQ,GAA8C,IAAI,YAAY,EAA+B;AAEjF,IAAA,SAAS;AAEvC,IAAA,iBAAiB;AAEjB,IAAA,mBAAmB;AAEnB,IAAA,OAAO;AAEP,IAAA,KAAK;AAEL,IAAA,aAAa,GAAa,MAAK,EAAE,CAAC;AAElC,IAAA,cAAc,GAAa,MAAK,EAAE,CAAC;IAEnC,OAAO,CAAC,KAAY,EAAE,KAAuB,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,KAAK,CAAC,KAAK,EAAE;QACjB;IACJ;AAEA,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAClB,KAAK,CAAC,cAAc,EAAE;QAC1B;IACJ;AAEA,IAAA,MAAM,CAAC,KAAY,EAAA;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAC/D,aAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1C,aAAA,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAE/C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACf,YAAA,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,IAAI,CAAC;AACf,SAAA,CAAC;IACN;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC5B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,WAAW;AACZ,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ;oBACtC;AAEJ,gBAAA,KAAK,aAAa;AACd,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;;AAEZ,QAAA,CAAC,CAAC;IACN;IAEA,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACvB;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA,IAAA,gBAAgB,CAAC,EAAY,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;IAC3B;AAEA,IAAA,iBAAiB,CAAC,EAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;IAC5B;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAC1B;uGAlKS,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EASL,gBAAgB,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAyBhB,eAAe,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAyBf,gBAAgB,CAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAehB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAnFzB,CAAC,+BAA+B,CAAC,oDA2F3B,WAAW,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjHhC,w8FAkDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKlE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;+BACI,sBAAsB,EAAA,SAAA,EAErB,CAAC,+BAA+B,CAAC,EAAA,eAAA,EAC3B,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAA,IAAA,EACtE;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,w8FAAA,EAAA;8GAWuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKsC,QAAQ,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAK5B,OAAO,EAAA,CAAA;sBAAf;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,gBAAgB,EAAA,CAAA;sBAAxB;gBAKQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAKuC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAM5B,QAAQ,EAAA,CAAA;sBAAjB;gBAE6B,SAAS,EAAA,CAAA;sBAAtC,eAAe;uBAAC,WAAW;;;MEzGnB,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAHrB,gBAAgB,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAC9B,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA;AAE/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,OAAA,EAAA,CAHrB,gBAAgB,EAAE,YAAY,EACZ,YAAY,CAAA,EAAA,CAAA;;2FAE/B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AACzC,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY;AAC3C,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"cax-design-system-tristatecheckbox.mjs","sources":["../../src/app/components/tristatecheckbox/tristatecheckbox.ts","../../src/app/components/tristatecheckbox/tristatecheckbox.html","../../src/app/components/tristatecheckbox/tristatecheckbox.module.ts","../../src/app/components/tristatecheckbox/cax-design-system-tristatecheckbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewEncapsulation, booleanAttribute, forwardRef, numberAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\nimport { TriStateCheckboxChangeEvent } from './tristatecheckbox.interface';\n\nexport const TRISTATECHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TriStateCheckbox),\n multi: true\n};\n/**\n * TriStateCheckbox is used to select either 'true', 'false' or 'null' as the value.\n * @group Components\n */\n@Component({\n selector: 'cax-triStateCheckbox',\n templateUrl: './tristatecheckbox.html',\n providers: [TRISTATECHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon],\n host: {\n class: 'cax-element'\n }\n})\nexport class TriStateCheckbox implements ControlValueAccessor {\n constructor(\n private cd: ChangeDetectorRef,\n public config: caxConfig\n ) {}\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Name of the component.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Label of the checkbox.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean | undefined;\n /**\n * Specifies the icon for checkbox true value.\n * @group Props\n */\n @Input() checkboxTrueIcon: string | undefined;\n /**\n * Specifies the icon for checkbox false value.\n * @group Props\n */\n @Input() checkboxFalseIcon: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Callback to invoke on value change.\n * @param {TriStateCheckboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<TriStateCheckboxChangeEvent> = new EventEmitter<TriStateCheckboxChangeEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n checkIconTemplate: Nullable<TemplateRef<any>>;\n\n uncheckIconTemplate: Nullable<TemplateRef<any>>;\n\n focused: Nullable<boolean>;\n\n value: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n onClick(event: Event, input: HTMLInputElement) {\n if (!this.disabled && !this.readonly) {\n this.toggle(event);\n this.focused = true;\n input.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n toggle(event: Event) {\n if (this.value == null || this.value == undefined) this.value = true;\n else if (this.value == true) this.value = false;\n else if (this.value == false) this.value = null;\n\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'checkicon':\n this.checkIconTemplate = item.template;\n break;\n\n case 'uncheckicon':\n this.uncheckIconTemplate = item.template;\n break;\n }\n });\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.cd.markForCheck();\n }\n}\n","<div\r\n [ngStyle]=\"style\"\r\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\r\n [class]=\"styleClass\"\r\n (click)=\"onClick($event, input)\"\r\n [attr.data-pc-name]=\"'tristatecheckbox'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n>\r\n <div class=\"cax-hidden-accessible\">\r\n <input\r\n #input\r\n [attr.id]=\"inputId\"\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [attr.tabindex]=\"tabindex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n inputmode=\"none\"\r\n [attr.data-pc-section]=\"'hiddenInput'\"\r\n pAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n </div>\r\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\r\n <ng-container *ngIf=\"value === true\">\r\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxTrueIcon\">\r\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\r\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\r\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"value === false\">\r\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\r\n <ng-container *ngIf=\"!checkboxFalseIcon\">\r\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\r\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\r\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { TriStateCheckbox } from './tristatecheckbox';\n\n@NgModule({\n imports: [TriStateCheckbox, SharedModule],\n exports: [TriStateCheckbox, SharedModule]\n})\nexport class TriStateCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -93,6 +93,8 @@ class UploadComponent {
93
93
  if (!this.isProcessingQueue) {
94
94
  this.processQueue();
95
95
  }
96
+ // 🔹 Reset the input value so the same file can be selected again
97
+ event.target.value = null;
96
98
  }
97
99
  // New method for file validation
98
100
  validateFile(file) {
@@ -244,23 +246,22 @@ class UploadComponent {
244
246
  this.updateUploadStatus('idle');
245
247
  }
246
248
  }
247
- // Remove a file from the list
248
249
  removeFile(index) {
249
250
  const fileToRemove = this.uploadedFiles[index];
250
- // Cancel first if it's active
251
251
  if (fileToRemove.status === 'uploading' || fileToRemove.status === 'queued') {
252
252
  this.cancelUpload(index);
253
253
  }
254
- // Emit removal event
255
254
  this.fileRemoved.emit(fileToRemove.file);
256
- // Remove from array
257
255
  this.uploadedFiles.splice(index, 1);
258
- // Reset status if no files left
256
+ // 🔹 Reset input element to allow re-uploading same file
257
+ const fileInput = document.getElementById(`fileInput-${this.uniqueId}`);
258
+ if (fileInput) {
259
+ fileInput.value = '';
260
+ }
259
261
  if (this.uploadedFiles.length === 0) {
260
262
  this.updateUploadStatus('idle');
261
263
  }
262
264
  else if (!this.hasQueuedOrUploading && this.uploadStatus !== 'complete') {
263
- // If there are no more queued or uploading files but we have completed files
264
265
  this.updateUploadStatus('complete');
265
266
  }
266
267
  }
@@ -274,6 +275,10 @@ class UploadComponent {
274
275
  }
275
276
  this.uploadedFiles = [];
276
277
  this.updateUploadStatus('idle');
278
+ const fileInput = document.getElementById(`fileInput-${this.uniqueId}`);
279
+ if (fileInput) {
280
+ fileInput.value = '';
281
+ }
277
282
  }
278
283
  get hasUploading() {
279
284
  return this.uploadedFiles.some((file) => file.status === 'uploading');
@@ -315,12 +320,12 @@ class UploadComponent {
315
320
  const activeFilesCount = this.uploadedFiles.filter((file) => file.status !== 'canceled' && file.status !== 'error').length;
316
321
  return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;
317
322
  }
318
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
319
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UploadComponent, selector: "cax-upload", inputs: { invalid: "invalid", style: "style", maxFileSize: "maxFileSize", inputFiles: "inputFiles", uploadString: "uploadString", errorText: "errorText", allowMultiple: "allowMultiple", componentId: "componentId", allowedFileTypes: "allowedFileTypes" }, outputs: { fileSelected: "fileSelected", filesQueued: "filesQueued", uploadStarted: "uploadStarted", uploadCompleted: "uploadCompleted", uploadCanceled: "uploadCanceled", uploadError: "uploadError", fileRemoved: "fileRemoved", allFilesRemoved: "allFilesRemoved", uploadStatusChange: "uploadStatusChange" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, classAttribute: "cax-element" }, ngImport: i0, template: "<p class=\"cax-files\">{{inputFiles}}</p>\r\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\r\n [class.dragging]=\"isDragging\" \r\n (click)=\"openFileSelector()\">\r\n <input\r\n type=\"file\"\r\n id=\"fileInput-{{uniqueId}}\"\r\n style=\"display:none\"\r\n [multiple]=\"allowMultiple\"\r\n [accept]=\"acceptFileTypes\"\r\n (change)=\"handleFileInput($event)\"\r\n />\r\n\r\n <!-- Default Upload State -->\r\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\r\n <div class=\"cax-upload-options\" >\r\n <p class=\"hint-text\">\r\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\r\n </p>\r\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- Uploading State -->\r\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\r\n <div class=\"status-container\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'lg'\"\r\n [animationDuration]=\"'2s'\"\r\n ></cax-progressSpinner>\r\n <p >{{ uploadingProgressText }}</p>\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n</div>\r\n\r\n <!-- Complete State -->\r\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\r\n <div class=\"status-container\">\r\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\r\n <p>{{uploadString}}</p>\r\n <cax-button\r\n [label]=\"'Remove'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\r\n</div>\r\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\r\n {{ errorText }}\r\n</div>\r\n\r\n<!-- stacked file -->\r\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\r\n <div\r\n *ngFor=\"let item of uploadedFiles; let i = index\"\r\n class=\"cax-file-preview\"\r\n [ngClass]=\"{\r\n 'queued': item.status === 'queued',\r\n 'uploading': item.status === 'uploading',\r\n 'complete': item.status === 'complete',\r\n 'canceled': item.status === 'canceled'\r\n }\"\r\n >\r\n <div class=\"file-info\">\r\n <p class=\"file-name\">{{ item.file.name }}</p>\r\n </div> \r\n\r\n <!-- Show spinner for queued or uploading files -->\r\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'sm'\"\r\n [animationDuration]=\"'2s'\">\r\n </cax-progressSpinner>\r\n </div>\r\n \r\n <!-- Show remove button only for complete or canceled files -->\r\n <button\r\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\r\n class=\"remove-button\"\r\n (click)=\"removeFile(i); $event.stopPropagation()\">\r\n <i class=\"cax cax-close\"></i> \r\n </button>\r\n </div>\r\n</div>", styles: ["@layer cax{.cax-files{font-size:14px;font-weight:500;margin-bottom:10px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-upload-options{text-align:center}.cax-upload-options .hint-text{font-size:14px;font-weight:500}.cax-upload-options .drop-files{font-weight:500;font-size:14px}.cax-upload-options .max-size{font-size:12px;margin-bottom:20px;font-weight:400}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.cax-file-preview{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px}.cax-file-preview .file-info{display:flex;align-items:center;gap:10px}.cax-file-preview .file-info .file-icon img{width:32px;height:32px}.cax-file-preview .file-info .file-name{font-weight:500;font-size:14px}.cax-file-preview .spinner{margin-left:auto;font-size:20px!important}.cax-file-preview .remove-button{background:none;border:none;margin-left:auto;cursor:pointer}.cax-file-preview .remove-button i{font-size:20px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ProgressSpinner, selector: "cax-progressSpinner", inputs: ["styleClass", "strokeColor", "backgroundStrokeColor", "size", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i3.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }] });
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: UploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: UploadComponent, isStandalone: false, selector: "cax-upload", inputs: { invalid: "invalid", style: "style", maxFileSize: "maxFileSize", inputFiles: "inputFiles", uploadString: "uploadString", errorText: "errorText", allowMultiple: "allowMultiple", componentId: "componentId", allowedFileTypes: "allowedFileTypes" }, outputs: { fileSelected: "fileSelected", filesQueued: "filesQueued", uploadStarted: "uploadStarted", uploadCompleted: "uploadCompleted", uploadCanceled: "uploadCanceled", uploadError: "uploadError", fileRemoved: "fileRemoved", allFilesRemoved: "allFilesRemoved", uploadStatusChange: "uploadStatusChange" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, classAttribute: "cax-element" }, ngImport: i0, template: "<p class=\"cax-files\">{{inputFiles}}</p>\r\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\r\n [class.dragging]=\"isDragging\" \r\n (click)=\"openFileSelector()\">\r\n <input\r\n type=\"file\"\r\n id=\"fileInput-{{uniqueId}}\"\r\n style=\"display:none\"\r\n [multiple]=\"allowMultiple\"\r\n [accept]=\"acceptFileTypes\"\r\n (change)=\"handleFileInput($event)\"\r\n />\r\n\r\n <!-- Default Upload State -->\r\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\r\n <div class=\"cax-upload-options\" >\r\n <p class=\"hint-text\">\r\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\r\n </p>\r\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- Uploading State -->\r\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\r\n <div class=\"status-container\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'lg'\"\r\n [animationDuration]=\"'2s'\"\r\n ></cax-progressSpinner>\r\n <p >{{ uploadingProgressText }}</p>\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n</div>\r\n\r\n <!-- Complete State -->\r\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\r\n <div class=\"status-container\">\r\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\r\n <p>{{uploadString}}</p>\r\n <cax-button\r\n [label]=\"'Remove'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\r\n</div>\r\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\r\n {{ errorText }}\r\n</div>\r\n\r\n<!-- stacked file -->\r\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\r\n <div\r\n *ngFor=\"let item of uploadedFiles; let i = index\"\r\n class=\"cax-file-preview\"\r\n [ngClass]=\"{\r\n 'queued': item.status === 'queued',\r\n 'uploading': item.status === 'uploading',\r\n 'complete': item.status === 'complete',\r\n 'canceled': item.status === 'canceled'\r\n }\"\r\n >\r\n <div class=\"file-info\">\r\n <p class=\"file-name\">{{ item.file.name }}</p>\r\n </div> \r\n\r\n <!-- Show spinner for queued or uploading files -->\r\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'sm'\"\r\n [animationDuration]=\"'2s'\">\r\n </cax-progressSpinner>\r\n </div>\r\n \r\n <!-- Show remove button only for complete or canceled files -->\r\n <button\r\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\r\n class=\"remove-button\"\r\n (click)=\"removeFile(i); $event.stopPropagation()\">\r\n <i class=\"cax cax-close\"></i> \r\n </button>\r\n </div>\r\n</div>", styles: ["@layer cax{.cax-files{font-size:14px;font-weight:500;margin-bottom:10px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-upload-options{text-align:center}.cax-upload-options .hint-text{font-size:14px;font-weight:500}.cax-upload-options .drop-files{font-weight:500;font-size:14px}.cax-upload-options .max-size{font-size:12px;margin-bottom:20px;font-weight:400}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.cax-file-preview{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px}.cax-file-preview .file-info{display:flex;align-items:center;gap:10px}.cax-file-preview .file-info .file-icon img{width:32px;height:32px}.cax-file-preview .file-info .file-name{font-weight:500;font-size:14px}.cax-file-preview .spinner{margin-left:auto;font-size:20px!important}.cax-file-preview .remove-button{background:none;border:none;margin-left:auto;cursor:pointer}.cax-file-preview .remove-button i{font-size:20px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ProgressSpinner, selector: "cax-progressSpinner", inputs: ["styleClass", "strokeColor", "backgroundStrokeColor", "size", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i3.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }] });
320
325
  }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadComponent, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: UploadComponent, decorators: [{
322
327
  type: Component,
323
- args: [{ selector: 'cax-upload', host: {
328
+ args: [{ selector: 'cax-upload', standalone: false, host: {
324
329
  class: 'cax-element'
325
330
  }, template: "<p class=\"cax-files\">{{inputFiles}}</p>\r\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\r\n [class.dragging]=\"isDragging\" \r\n (click)=\"openFileSelector()\">\r\n <input\r\n type=\"file\"\r\n id=\"fileInput-{{uniqueId}}\"\r\n style=\"display:none\"\r\n [multiple]=\"allowMultiple\"\r\n [accept]=\"acceptFileTypes\"\r\n (change)=\"handleFileInput($event)\"\r\n />\r\n\r\n <!-- Default Upload State -->\r\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\r\n <div class=\"cax-upload-options\" >\r\n <p class=\"hint-text\">\r\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\r\n </p>\r\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- Uploading State -->\r\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\r\n <div class=\"status-container\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'lg'\"\r\n [animationDuration]=\"'2s'\"\r\n ></cax-progressSpinner>\r\n <p >{{ uploadingProgressText }}</p>\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n</div>\r\n\r\n <!-- Complete State -->\r\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\r\n <div class=\"status-container\">\r\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\r\n <p>{{uploadString}}</p>\r\n <cax-button\r\n [label]=\"'Remove'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\r\n</div>\r\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\r\n {{ errorText }}\r\n</div>\r\n\r\n<!-- stacked file -->\r\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\r\n <div\r\n *ngFor=\"let item of uploadedFiles; let i = index\"\r\n class=\"cax-file-preview\"\r\n [ngClass]=\"{\r\n 'queued': item.status === 'queued',\r\n 'uploading': item.status === 'uploading',\r\n 'complete': item.status === 'complete',\r\n 'canceled': item.status === 'canceled'\r\n }\"\r\n >\r\n <div class=\"file-info\">\r\n <p class=\"file-name\">{{ item.file.name }}</p>\r\n </div> \r\n\r\n <!-- Show spinner for queued or uploading files -->\r\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'sm'\"\r\n [animationDuration]=\"'2s'\">\r\n </cax-progressSpinner>\r\n </div>\r\n \r\n <!-- Show remove button only for complete or canceled files -->\r\n <button\r\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\r\n class=\"remove-button\"\r\n (click)=\"removeFile(i); $event.stopPropagation()\">\r\n <i class=\"cax cax-close\"></i> \r\n </button>\r\n </div>\r\n</div>", styles: ["@layer cax{.cax-files{font-size:14px;font-weight:500;margin-bottom:10px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-upload-options{text-align:center}.cax-upload-options .hint-text{font-size:14px;font-weight:500}.cax-upload-options .drop-files{font-weight:500;font-size:14px}.cax-upload-options .max-size{font-size:12px;margin-bottom:20px;font-weight:400}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.cax-file-preview{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px}.cax-file-preview .file-info{display:flex;align-items:center;gap:10px}.cax-file-preview .file-info .file-icon img{width:32px;height:32px}.cax-file-preview .file-info .file-name{font-weight:500;font-size:14px}.cax-file-preview .spinner{margin-left:auto;font-size:20px!important}.cax-file-preview .remove-button{background:none;border:none;margin-left:auto;cursor:pointer}.cax-file-preview .remove-button i{font-size:20px}}\n"] }]
326
331
  }], propDecorators: { invalid: [{
@@ -371,11 +376,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
371
376
  }] } });
372
377
 
373
378
  class UploadModule {
374
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
375
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: UploadModule, declarations: [UploadComponent], imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button], exports: [UploadComponent] });
376
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadModule, imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button] });
379
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
380
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: UploadModule, declarations: [UploadComponent], imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button], exports: [UploadComponent] });
381
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: UploadModule, imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button] });
377
382
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadModule, decorators: [{
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: UploadModule, decorators: [{
379
384
  type: NgModule,
380
385
  args: [{
381
386
  declarations: [UploadComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-upload.mjs","sources":["../../src/app/components/upload/upload.component.ts","../../src/app/components/upload/upload.component.html","../../src/app/components/upload/upload.component.module.ts","../../src/app/components/upload/cax-design-system-upload.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, Output, OnInit } from '@angular/core';\n\nexport type UploadFileStatus = 'queued' | 'uploading' | 'complete' | 'canceled' | 'error';\n\nexport type UploadFile = {\n file: File;\n status: UploadFileStatus;\n progress?: number;\n errorMessage?: string;\n};\n\n@Component({\n selector: 'cax-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n host: {\n class: 'cax-element'\n }\n})\nexport class UploadComponent implements OnInit {\n @Input() invalid: boolean = false;\n @Input() style: { [klass: string]: any } | null | undefined;\n @Input() maxFileSize: number = 30;\n @Input() inputFiles: string = 'Input Files';\n @Input() uploadString: string = 'uploading the file';\n @Input() errorText: string = 'Please upload a file';\n @Input() allowMultiple: boolean = true;\n @Input() componentId: string = '';\n @Input() allowedFileTypes: string[] = [];\n // Enhanced event emitters\n @Output() fileSelected = new EventEmitter<File>();\n @Output() filesQueued = new EventEmitter<File[]>();\n @Output() uploadStarted = new EventEmitter<File>();\n @Output() uploadCompleted = new EventEmitter<File>();\n @Output() uploadCanceled = new EventEmitter<File>();\n @Output() uploadError = new EventEmitter<{ file: File; error: string }>();\n @Output() fileRemoved = new EventEmitter<File>();\n @Output() allFilesRemoved = new EventEmitter<void>();\n @Output() uploadStatusChange = new EventEmitter<'idle' | 'uploading' | 'complete'>();\n\n isDragging: boolean = false;\n uploadedFiles: UploadFile[] = [];\n uploadStatus: 'idle' | 'uploading' | 'complete' = 'idle';\n isProcessingQueue: boolean = false;\n uniqueId: string = '';\n\n // Computed property for accept attribute in file input\n get acceptFileTypes(): string {\n if (!this.allowedFileTypes || this.allowedFileTypes.length === 0) return '';\n return this.allowedFileTypes.map((type) => `.${type}`).join(',');\n }\n\n // Track actual files to process (excludes canceled ones)\n private get activeFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status !== 'canceled').length;\n }\n\n ngOnInit() {\n // Generate unique ID if not provided through input\n this.uniqueId = this.componentId || `upload-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n\n const files = event.dataTransfer?.files;\n if (!files || files.length === 0) return;\n\n const fileArray = Array.from(files);\n const validFiles = fileArray.filter((file) => this.validateFile(file));\n\n // Queue all files for upload\n validFiles.forEach((file) => this.queueFile(file));\n\n // Emit the queued files event\n if (validFiles.length > 0) {\n this.filesQueued.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n }\n\n handleFileInput(event: any): void {\n const files: FileList = event.target.files;\n if (!files) return;\n\n const fileArray = Array.from(files);\n const validFiles = fileArray.filter((file) => this.validateFile(file));\n\n // Queue all files for upload\n validFiles.forEach((file) => this.queueFile(file));\n\n // Emit the queued files event\n if (validFiles.length > 0) {\n this.filesQueued.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n }\n\n // New method for file validation\n private validateFile(file: File): boolean {\n // Size validation\n if (file.size > this.maxFileSize * 1024 * 1024) {\n this.emitError(file, `File size should be less than ${this.maxFileSize}MB`);\n return false;\n }\n\n // File type validation\n if (this.allowedFileTypes.length > 0) {\n const fileExtension = this.getFileExtension(file.name).toLowerCase();\n if (!this.allowedFileTypes.includes(fileExtension)) {\n this.emitError(file, `Only ${this.allowedFileTypes.join(', ')} files are allowed`);\n return false;\n }\n }\n\n return true;\n }\n\n // Helper method to get file extension\n private getFileExtension(filename: string): string {\n return filename.split('.').pop() || '';\n }\n\n // Queue a file for upload\n private queueFile(file: File): void {\n const uploadEntry: UploadFile = {\n file,\n status: 'queued',\n progress: 0\n };\n\n this.uploadedFiles.push(uploadEntry);\n\n if (this.uploadStatus === 'idle') {\n this.updateUploadStatus('uploading');\n }\n }\n\n // Update upload status and emit event\n private updateUploadStatus(status: 'idle' | 'uploading' | 'complete'): void {\n if (this.uploadStatus !== status) {\n this.uploadStatus = status;\n this.uploadStatusChange.emit(status);\n }\n }\n\n // Process the queue of files sequentially\n private async processQueue(): Promise<void> {\n if (this.isProcessingQueue) return;\n\n this.isProcessingQueue = true;\n\n // Find the next file to upload\n let nextFileIndex = this.uploadedFiles.findIndex((file) => file.status === 'queued');\n\n while (nextFileIndex !== -1) {\n const currentFile = this.uploadedFiles[nextFileIndex];\n await this.processFile(currentFile, nextFileIndex);\n\n // Find the next file after processing\n nextFileIndex = this.uploadedFiles.findIndex((file) => file.status === 'queued');\n }\n\n this.isProcessingQueue = false;\n\n // Check if all uploads are complete and there are no more files to process\n if (this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('complete');\n }\n }\n\n // Trigger file input click programmatically\n openFileSelector(): void {\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.click();\n }\n }\n\n // Emit error event\n private emitError(file: File, message: string): void {\n this.uploadError.emit({ file, error: message });\n }\n\n private async processFile(fileEntry: UploadFile, index: number): Promise<void> {\n // Update status to uploading\n fileEntry.status = 'uploading';\n fileEntry.progress = 0;\n\n this.fileSelected.emit(fileEntry.file);\n this.uploadStarted.emit(fileEntry.file);\n\n try {\n // Simulate upload with progress updates\n for (let progress = 0; progress <= 100; progress += 10) {\n // Check if upload was canceled during progress\n // Need to check current status since it might have changed\n if (fileEntry.status !== 'uploading') {\n // Either canceled or errored\n break;\n }\n\n fileEntry.progress = progress;\n\n // Simulate network delay\n await new Promise((resolve) => setTimeout(resolve, 200));\n }\n\n // Only set to complete if still uploading (not canceled or errored)\n if (fileEntry.status === 'uploading') {\n fileEntry.status = 'complete';\n fileEntry.progress = 100;\n this.uploadCompleted.emit(fileEntry.file);\n }\n } catch (error) {\n // Handle errors\n fileEntry.status = 'error';\n const errorMessage = error instanceof Error ? error.message : 'Unknown upload error';\n fileEntry.errorMessage = errorMessage;\n this.emitError(fileEntry.file, errorMessage);\n }\n }\n\n cancelUpload(index: number): void {\n // Cancel the specified file and all files below it\n for (let i = index; i < this.uploadedFiles.length; i++) {\n const fileToCancel = this.uploadedFiles[i];\n if (fileToCancel) {\n const previousStatus = fileToCancel.status;\n if (previousStatus === 'uploading' || previousStatus === 'queued') {\n fileToCancel.status = 'canceled';\n // Only emit if it was actively uploading (not just queued)\n if (previousStatus === 'uploading') {\n this.uploadCanceled.emit(fileToCancel.file);\n }\n }\n }\n }\n // If the file at the specified index was uploading, process the next file in queue\n // (which would now be a file before the index that might be queued)\n if (this.uploadedFiles[index]?.status === 'canceled') {\n setTimeout(() => this.processQueue(), 0);\n }\n }\n\n // Cancel the current upload\n cancelCurrentUpload(): void {\n // Find the file that's currently uploading\n const currentUploadIndex = this.uploadedFiles.findIndex((file) => file.status === 'uploading');\n if (currentUploadIndex >= 0) {\n this.cancelUpload(currentUploadIndex);\n }\n }\n\n // Cancel all uploads\n cancelAllUploads(): void {\n let hadActiveUploads = false;\n\n this.uploadedFiles.forEach((file) => {\n if (file.status === 'uploading' || file.status === 'queued') {\n hadActiveUploads = true;\n const previousStatus = file.status;\n file.status = 'canceled';\n\n if (previousStatus === 'uploading') {\n this.uploadCanceled.emit(file.file);\n }\n }\n });\n\n if (hadActiveUploads && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('idle');\n }\n }\n\n // Remove a file from the list\n removeFile(index: number): void {\n const fileToRemove = this.uploadedFiles[index];\n\n // Cancel first if it's active\n if (fileToRemove.status === 'uploading' || fileToRemove.status === 'queued') {\n this.cancelUpload(index);\n }\n\n // Emit removal event\n this.fileRemoved.emit(fileToRemove.file);\n\n // Remove from array\n this.uploadedFiles.splice(index, 1);\n\n // Reset status if no files left\n if (this.uploadedFiles.length === 0) {\n this.updateUploadStatus('idle');\n } else if (!this.hasQueuedOrUploading && this.uploadStatus !== 'complete') {\n // If there are no more queued or uploading files but we have completed files\n this.updateUploadStatus('complete');\n }\n }\n\n // Remove all files\n removeAllFiles(): void {\n // Cancel any active uploads\n this.cancelAllUploads();\n\n // Only emit if there were files to remove\n if (this.uploadedFiles.length > 0) {\n this.allFilesRemoved.emit();\n }\n\n this.uploadedFiles = [];\n this.updateUploadStatus('idle');\n }\n\n get hasUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading');\n }\n\n get hasQueuedOrUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading' || file.status === 'queued');\n }\n\n get hasErrors(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'error');\n }\n\n get allUploadsComplete(): boolean {\n return this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading;\n }\n\n get uploadingProgressText(): string {\n // Count active files (excluding canceled ones)\n const totalActiveFiles = this.activeFilesCount;\n const completedCount = this.uploadedFiles.filter((file) => file.status === 'complete').length;\n const uploadingFile = this.uploadedFiles.find((file) => file.status === 'uploading');\n if (uploadingFile) {\n // We're currently uploading the (completedCount + 1)th active file\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n if (this.uploadedFiles.some((file) => file.status === 'queued')) {\n return `Uploading ${completedCount + 1}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n\n // Calculate overall progress percentage across all files\n get overallProgress(): number {\n if (this.uploadedFiles.length === 0) return 0;\n\n const totalProgress = this.uploadedFiles.reduce((sum, file) => {\n if (file.status === 'complete') return sum + 100;\n if (file.status === 'canceled' || file.status === 'error') return sum;\n return sum + (file.progress || 0);\n }, 0);\n\n const activeFilesCount = this.uploadedFiles.filter((file) => file.status !== 'canceled' && file.status !== 'error').length;\n\n return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;\n }\n}\n","<p class=\"cax-files\">{{inputFiles}}</p>\r\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\r\n [class.dragging]=\"isDragging\" \r\n (click)=\"openFileSelector()\">\r\n <input\r\n type=\"file\"\r\n id=\"fileInput-{{uniqueId}}\"\r\n style=\"display:none\"\r\n [multiple]=\"allowMultiple\"\r\n [accept]=\"acceptFileTypes\"\r\n (change)=\"handleFileInput($event)\"\r\n />\r\n\r\n <!-- Default Upload State -->\r\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\r\n <div class=\"cax-upload-options\" >\r\n <p class=\"hint-text\">\r\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\r\n </p>\r\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- Uploading State -->\r\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\r\n <div class=\"status-container\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'lg'\"\r\n [animationDuration]=\"'2s'\"\r\n ></cax-progressSpinner>\r\n <p >{{ uploadingProgressText }}</p>\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n</div>\r\n\r\n <!-- Complete State -->\r\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\r\n <div class=\"status-container\">\r\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\r\n <p>{{uploadString}}</p>\r\n <cax-button\r\n [label]=\"'Remove'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\r\n</div>\r\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\r\n {{ errorText }}\r\n</div>\r\n\r\n<!-- stacked file -->\r\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\r\n <div\r\n *ngFor=\"let item of uploadedFiles; let i = index\"\r\n class=\"cax-file-preview\"\r\n [ngClass]=\"{\r\n 'queued': item.status === 'queued',\r\n 'uploading': item.status === 'uploading',\r\n 'complete': item.status === 'complete',\r\n 'canceled': item.status === 'canceled'\r\n }\"\r\n >\r\n <div class=\"file-info\">\r\n <p class=\"file-name\">{{ item.file.name }}</p>\r\n </div> \r\n\r\n <!-- Show spinner for queued or uploading files -->\r\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'sm'\"\r\n [animationDuration]=\"'2s'\">\r\n </cax-progressSpinner>\r\n </div>\r\n \r\n <!-- Show remove button only for complete or canceled files -->\r\n <button\r\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\r\n class=\"remove-button\"\r\n (click)=\"removeFile(i); $event.stopPropagation()\">\r\n <i class=\"cax cax-close\"></i> \r\n </button>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\nimport { UploadComponent } from './upload.component';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ProgressSpinnerModule } from 'cax-design-system/progressspinner';\nimport { Button } from 'cax-design-system/button';\n\n@NgModule({\n declarations: [UploadComponent],\n imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button],\n exports: [UploadComponent]\n})\nexport class UploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cax-design-system-upload.mjs","sources":["../../src/app/components/upload/upload.component.ts","../../src/app/components/upload/upload.component.html","../../src/app/components/upload/upload.component.module.ts","../../src/app/components/upload/cax-design-system-upload.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, Output, OnInit } from '@angular/core';\n\nexport type UploadFileStatus = 'queued' | 'uploading' | 'complete' | 'canceled' | 'error';\n\nexport type UploadFile = {\n file: File;\n status: UploadFileStatus;\n progress?: number;\n errorMessage?: string;\n};\n\n@Component({\n selector: 'cax-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class UploadComponent implements OnInit {\n @Input() invalid: boolean = false;\n @Input() style: { [klass: string]: any } | null | undefined;\n @Input() maxFileSize: number = 30;\n @Input() inputFiles: string = 'Input Files';\n @Input() uploadString: string = 'uploading the file';\n @Input() errorText: string = 'Please upload a file';\n @Input() allowMultiple: boolean = true;\n @Input() componentId: string = '';\n @Input() allowedFileTypes: string[] = [];\n // Enhanced event emitters\n @Output() fileSelected = new EventEmitter<File>();\n @Output() filesQueued = new EventEmitter<File[]>();\n @Output() uploadStarted = new EventEmitter<File>();\n @Output() uploadCompleted = new EventEmitter<File>();\n @Output() uploadCanceled = new EventEmitter<File>();\n @Output() uploadError = new EventEmitter<{ file: File; error: string }>();\n @Output() fileRemoved = new EventEmitter<File>();\n @Output() allFilesRemoved = new EventEmitter<void>();\n @Output() uploadStatusChange = new EventEmitter<'idle' | 'uploading' | 'complete'>();\n\n isDragging: boolean = false;\n uploadedFiles: UploadFile[] = [];\n uploadStatus: 'idle' | 'uploading' | 'complete' = 'idle';\n isProcessingQueue: boolean = false;\n uniqueId: string = '';\n\n // Computed property for accept attribute in file input\n get acceptFileTypes(): string {\n if (!this.allowedFileTypes || this.allowedFileTypes.length === 0) return '';\n return this.allowedFileTypes.map((type) => `.${type}`).join(',');\n }\n\n // Track actual files to process (excludes canceled ones)\n private get activeFilesCount(): number {\n return this.uploadedFiles.filter((file) => file.status !== 'canceled').length;\n }\n\n ngOnInit() {\n // Generate unique ID if not provided through input\n this.uniqueId = this.componentId || `upload-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n\n const files = event.dataTransfer?.files;\n if (!files || files.length === 0) return;\n\n const fileArray = Array.from(files);\n const validFiles = fileArray.filter((file) => this.validateFile(file));\n\n // Queue all files for upload\n validFiles.forEach((file) => this.queueFile(file));\n\n // Emit the queued files event\n if (validFiles.length > 0) {\n this.filesQueued.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n }\n\n handleFileInput(event: any): void {\n const files: FileList = event.target.files;\n if (!files) return;\n\n const fileArray = Array.from(files);\n const validFiles = fileArray.filter((file) => this.validateFile(file));\n\n // Queue all files for upload\n validFiles.forEach((file) => this.queueFile(file));\n\n // Emit the queued files event\n if (validFiles.length > 0) {\n this.filesQueued.emit(validFiles);\n }\n\n // Start processing the queue if not already processing\n if (!this.isProcessingQueue) {\n this.processQueue();\n }\n\n // 🔹 Reset the input value so the same file can be selected again\n event.target.value = null;\n }\n\n // New method for file validation\n private validateFile(file: File): boolean {\n // Size validation\n if (file.size > this.maxFileSize * 1024 * 1024) {\n this.emitError(file, `File size should be less than ${this.maxFileSize}MB`);\n return false;\n }\n\n // File type validation\n if (this.allowedFileTypes.length > 0) {\n const fileExtension = this.getFileExtension(file.name).toLowerCase();\n if (!this.allowedFileTypes.includes(fileExtension)) {\n this.emitError(file, `Only ${this.allowedFileTypes.join(', ')} files are allowed`);\n return false;\n }\n }\n\n return true;\n }\n\n // Helper method to get file extension\n private getFileExtension(filename: string): string {\n return filename.split('.').pop() || '';\n }\n\n // Queue a file for upload\n private queueFile(file: File): void {\n const uploadEntry: UploadFile = {\n file,\n status: 'queued',\n progress: 0\n };\n\n this.uploadedFiles.push(uploadEntry);\n\n if (this.uploadStatus === 'idle') {\n this.updateUploadStatus('uploading');\n }\n }\n\n // Update upload status and emit event\n private updateUploadStatus(status: 'idle' | 'uploading' | 'complete'): void {\n if (this.uploadStatus !== status) {\n this.uploadStatus = status;\n this.uploadStatusChange.emit(status);\n }\n }\n\n // Process the queue of files sequentially\n private async processQueue(): Promise<void> {\n if (this.isProcessingQueue) return;\n\n this.isProcessingQueue = true;\n\n // Find the next file to upload\n let nextFileIndex = this.uploadedFiles.findIndex((file) => file.status === 'queued');\n\n while (nextFileIndex !== -1) {\n const currentFile = this.uploadedFiles[nextFileIndex];\n await this.processFile(currentFile, nextFileIndex);\n\n // Find the next file after processing\n nextFileIndex = this.uploadedFiles.findIndex((file) => file.status === 'queued');\n }\n\n this.isProcessingQueue = false;\n\n // Check if all uploads are complete and there are no more files to process\n if (this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('complete');\n }\n }\n\n // Trigger file input click programmatically\n openFileSelector(): void {\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.click();\n }\n }\n\n // Emit error event\n private emitError(file: File, message: string): void {\n this.uploadError.emit({ file, error: message });\n }\n\n private async processFile(fileEntry: UploadFile, index: number): Promise<void> {\n // Update status to uploading\n fileEntry.status = 'uploading';\n fileEntry.progress = 0;\n\n this.fileSelected.emit(fileEntry.file);\n this.uploadStarted.emit(fileEntry.file);\n\n try {\n // Simulate upload with progress updates\n for (let progress = 0; progress <= 100; progress += 10) {\n // Check if upload was canceled during progress\n // Need to check current status since it might have changed\n if (fileEntry.status !== 'uploading') {\n // Either canceled or errored\n break;\n }\n\n fileEntry.progress = progress;\n\n // Simulate network delay\n await new Promise((resolve) => setTimeout(resolve, 200));\n }\n\n // Only set to complete if still uploading (not canceled or errored)\n if (fileEntry.status === 'uploading') {\n fileEntry.status = 'complete';\n fileEntry.progress = 100;\n this.uploadCompleted.emit(fileEntry.file);\n }\n } catch (error) {\n // Handle errors\n fileEntry.status = 'error';\n const errorMessage = error instanceof Error ? error.message : 'Unknown upload error';\n fileEntry.errorMessage = errorMessage;\n this.emitError(fileEntry.file, errorMessage);\n }\n }\n\n cancelUpload(index: number): void {\n // Cancel the specified file and all files below it\n for (let i = index; i < this.uploadedFiles.length; i++) {\n const fileToCancel = this.uploadedFiles[i];\n if (fileToCancel) {\n const previousStatus = fileToCancel.status;\n if (previousStatus === 'uploading' || previousStatus === 'queued') {\n fileToCancel.status = 'canceled';\n // Only emit if it was actively uploading (not just queued)\n if (previousStatus === 'uploading') {\n this.uploadCanceled.emit(fileToCancel.file);\n }\n }\n }\n }\n // If the file at the specified index was uploading, process the next file in queue\n // (which would now be a file before the index that might be queued)\n if (this.uploadedFiles[index]?.status === 'canceled') {\n setTimeout(() => this.processQueue(), 0);\n }\n }\n\n // Cancel the current upload\n cancelCurrentUpload(): void {\n // Find the file that's currently uploading\n const currentUploadIndex = this.uploadedFiles.findIndex((file) => file.status === 'uploading');\n if (currentUploadIndex >= 0) {\n this.cancelUpload(currentUploadIndex);\n }\n }\n\n // Cancel all uploads\n cancelAllUploads(): void {\n let hadActiveUploads = false;\n\n this.uploadedFiles.forEach((file) => {\n if (file.status === 'uploading' || file.status === 'queued') {\n hadActiveUploads = true;\n const previousStatus = file.status;\n file.status = 'canceled';\n\n if (previousStatus === 'uploading') {\n this.uploadCanceled.emit(file.file);\n }\n }\n });\n\n if (hadActiveUploads && !this.hasQueuedOrUploading) {\n this.updateUploadStatus('idle');\n }\n }\n\n removeFile(index: number): void {\n const fileToRemove = this.uploadedFiles[index];\n\n if (fileToRemove.status === 'uploading' || fileToRemove.status === 'queued') {\n this.cancelUpload(index);\n }\n\n this.fileRemoved.emit(fileToRemove.file);\n this.uploadedFiles.splice(index, 1);\n\n // 🔹 Reset input element to allow re-uploading same file\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n\n if (this.uploadedFiles.length === 0) {\n this.updateUploadStatus('idle');\n } else if (!this.hasQueuedOrUploading && this.uploadStatus !== 'complete') {\n this.updateUploadStatus('complete');\n }\n }\n\n // Remove all files\n removeAllFiles(): void {\n // Cancel any active uploads\n this.cancelAllUploads();\n\n // Only emit if there were files to remove\n if (this.uploadedFiles.length > 0) {\n this.allFilesRemoved.emit();\n }\n\n this.uploadedFiles = [];\n this.updateUploadStatus('idle');\n\n const fileInput = document.getElementById(`fileInput-${this.uniqueId}`) as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n get hasUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading');\n }\n\n get hasQueuedOrUploading(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'uploading' || file.status === 'queued');\n }\n\n get hasErrors(): boolean {\n return this.uploadedFiles.some((file) => file.status === 'error');\n }\n\n get allUploadsComplete(): boolean {\n return this.uploadedFiles.length > 0 && this.uploadedFiles.some((file) => file.status === 'complete') && !this.hasQueuedOrUploading;\n }\n\n get uploadingProgressText(): string {\n // Count active files (excluding canceled ones)\n const totalActiveFiles = this.activeFilesCount;\n const completedCount = this.uploadedFiles.filter((file) => file.status === 'complete').length;\n const uploadingFile = this.uploadedFiles.find((file) => file.status === 'uploading');\n if (uploadingFile) {\n // We're currently uploading the (completedCount + 1)th active file\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n if (this.uploadedFiles.some((file) => file.status === 'queued')) {\n return `Uploading ${completedCount + 1}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n return `Uploading ${completedCount}/${totalActiveFiles} file${totalActiveFiles > 1 ? 's' : ''}...`;\n }\n\n // Calculate overall progress percentage across all files\n get overallProgress(): number {\n if (this.uploadedFiles.length === 0) return 0;\n\n const totalProgress = this.uploadedFiles.reduce((sum, file) => {\n if (file.status === 'complete') return sum + 100;\n if (file.status === 'canceled' || file.status === 'error') return sum;\n return sum + (file.progress || 0);\n }, 0);\n\n const activeFilesCount = this.uploadedFiles.filter((file) => file.status !== 'canceled' && file.status !== 'error').length;\n\n return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;\n }\n}\n","<p class=\"cax-files\">{{inputFiles}}</p>\r\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\r\n [class.dragging]=\"isDragging\" \r\n (click)=\"openFileSelector()\">\r\n <input\r\n type=\"file\"\r\n id=\"fileInput-{{uniqueId}}\"\r\n style=\"display:none\"\r\n [multiple]=\"allowMultiple\"\r\n [accept]=\"acceptFileTypes\"\r\n (change)=\"handleFileInput($event)\"\r\n />\r\n\r\n <!-- Default Upload State -->\r\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\r\n <div class=\"cax-upload-options\" >\r\n <p class=\"hint-text\">\r\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\r\n </p>\r\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- Uploading State -->\r\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\r\n <div class=\"status-container\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'lg'\"\r\n [animationDuration]=\"'2s'\"\r\n ></cax-progressSpinner>\r\n <p >{{ uploadingProgressText }}</p>\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n</div>\r\n\r\n <!-- Complete State -->\r\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\r\n <div class=\"status-container\">\r\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\r\n <p>{{uploadString}}</p>\r\n <cax-button\r\n [label]=\"'Remove'\"\r\n [rounded]=\"false\"\r\n [severity]=\"'danger'\"\r\n [size]=\"'large'\"\r\n [outlined]=\"'false'\"\r\n [link]=\"true\"\r\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\r\n</div>\r\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\r\n {{ errorText }}\r\n</div>\r\n\r\n<!-- stacked file -->\r\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\r\n <div\r\n *ngFor=\"let item of uploadedFiles; let i = index\"\r\n class=\"cax-file-preview\"\r\n [ngClass]=\"{\r\n 'queued': item.status === 'queued',\r\n 'uploading': item.status === 'uploading',\r\n 'complete': item.status === 'complete',\r\n 'canceled': item.status === 'canceled'\r\n }\"\r\n >\r\n <div class=\"file-info\">\r\n <p class=\"file-name\">{{ item.file.name }}</p>\r\n </div> \r\n\r\n <!-- Show spinner for queued or uploading files -->\r\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\r\n <cax-progressSpinner\r\n [strokeColor]=\"'primary'\"\r\n [size]=\"'sm'\"\r\n [animationDuration]=\"'2s'\">\r\n </cax-progressSpinner>\r\n </div>\r\n \r\n <!-- Show remove button only for complete or canceled files -->\r\n <button\r\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\r\n class=\"remove-button\"\r\n (click)=\"removeFile(i); $event.stopPropagation()\">\r\n <i class=\"cax cax-close\"></i> \r\n </button>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\nimport { UploadComponent } from './upload.component';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ProgressSpinnerModule } from 'cax-design-system/progressspinner';\nimport { Button } from 'cax-design-system/button';\n\n@NgModule({\n declarations: [UploadComponent],\n imports: [CommonModule, FormsModule, ProgressSpinnerModule, Button],\n exports: [UploadComponent]\n})\nexport class UploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-utils.mjs","sources":["../../src/app/components/utils/objectutils.ts","../../src/app/components/utils/uniquecomponentid.ts","../../src/app/components/utils/zindexutils.ts","../../src/app/components/utils/cax-design-system-utils.ts"],"sourcesContent":["export class ObjectUtils {\n public static isArray(value, empty = true) {\n return Array.isArray(value) && (empty || value.length !== 0);\n }\n\n public static isObject(value, empty = true) {\n return typeof value === 'object' && !Array.isArray(value) && value != null && (empty || Object.keys(value).length !== 0);\n }\n\n public static equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);\n else return this.equalsByValue(obj1, obj2);\n }\n\n public static equalsByValue(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) return true;\n\n if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {\n var arrA = Array.isArray(obj1),\n arrB = Array.isArray(obj2),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!this.equalsByValue(obj1[i], obj2[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = this.isDate(obj1),\n dateB = this.isDate(obj2);\n if (dateA != dateB) return false;\n if (dateA && dateB) return obj1.getTime() == obj2.getTime();\n\n var regexpA = obj1 instanceof RegExp,\n regexpB = obj2 instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return obj1.toString() == obj2.toString();\n\n var keys = Object.keys(obj1);\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!this.equalsByValue(obj1[key], obj2[key])) return false;\n }\n\n return true;\n }\n\n return obj1 !== obj1 && obj2 !== obj2;\n }\n\n public static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') == -1) {\n return data[field];\n } else {\n let fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else {\n return null;\n }\n }\n\n public static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n public static reorderArray(value: any[], from: number, to: number) {\n let target: number;\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n\n public static insertIntoOrderedArray(item: any, index: number, arr: any[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = this.findIndexInList(arr[i], sourceArr);\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n }\n\n public static findIndexInList(item: any, list: any): number {\n let index: number = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] == item) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n public static contains(value, list) {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (this.equals(value, val)) return true;\n }\n }\n\n return false;\n }\n\n public static removeAccents(str) {\n if (str) {\n str = str.normalize('NFKD').replace(/\\p{Diacritic}/gu, '');\n }\n\n return str;\n }\n\n public static isDate(input: any) {\n return Object.prototype.toString.call(input) === '[object Date]';\n }\n\n public static isEmpty(value) {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!this.isDate(value) && typeof value === 'object' && Object.keys(value).length === 0);\n }\n\n public static isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n\n public static compare(value1, value2, locale, order = 1) {\n let result = -1;\n const emptyValue1 = this.isEmpty(value1);\n const emptyValue2 = this.isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, locale, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n }\n\n public static sort(value1, value2, order = 1, locale, nullSortOrder = 1) {\n const result = ObjectUtils.compare(value1, value2, locale, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (ObjectUtils.isEmpty(value1) || ObjectUtils.isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n }\n\n public static merge(obj1?: any, obj2?: any): any {\n if (obj1 == undefined && obj2 == undefined) {\n return undefined;\n } else if ((obj1 == undefined || typeof obj1 === 'object') && (obj2 == undefined || typeof obj2 === 'object')) {\n return { ...(obj1 || {}), ...(obj2 || {}) };\n } else if ((obj1 == undefined || typeof obj1 === 'string') && (obj2 == undefined || typeof obj2 === 'string')) {\n return [obj1 || '', obj2 || ''].join(' ');\n }\n\n return obj2 || obj1;\n }\n\n public static isPrintableCharacter(char = '') {\n return this.isNotEmpty(char) && char.length === 1 && char.match(/\\S| /);\n }\n\n public static getItemValue(obj, ...params) {\n return this.isFunction(obj) ? obj(...params) : obj;\n }\n\n public static findLastIndex(arr, callback) {\n let index = -1;\n\n if (this.isNotEmpty(arr)) {\n try {\n index = arr.findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback));\n }\n }\n\n return index;\n }\n\n public static findLast(arr, callback) {\n let item;\n\n if (this.isNotEmpty(arr)) {\n try {\n item = arr.findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n }\n\n public static deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!this.deepEquals(a[i], b[i])) return false;\n\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = Object.keys(a);\n\n length = keys.length;\n\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a !== a && b !== b;\n }\n}\n","export var lastId = 0;\n\nexport function UniqueComponentId(prefix = 'cx_id_') {\n lastId++;\n\n return `${prefix}${lastId}`;\n}\n","function ZIndexUtils() {\n let zIndexes = [];\n\n const generateZIndex = (key, baseZIndex) => {\n let lastZIndex = zIndexes.length > 0 ? zIndexes[zIndexes.length - 1] : { key, value: baseZIndex };\n let newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 2;\n\n zIndexes.push({ key, value: newZIndex });\n\n return newZIndex;\n };\n\n const revertZIndex = (zIndex) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n\n const getCurrentZIndex = () => {\n return zIndexes.length > 0 ? zIndexes[zIndexes.length - 1].value : 0;\n };\n\n const getZIndex = (el) => {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: (key, el, baseZIndex) => {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, baseZIndex));\n }\n },\n clear: (el) => {\n if (el) {\n revertZIndex(getZIndex(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: () => getCurrentZIndex()\n };\n}\n\nexport default ZIndexUtils();\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"MAAa,WAAW,CAAA;AACb,IAAA,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAChE;AAEO,IAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAA;AACtC,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5H;AAEO,IAAA,OAAO,MAAM,CAAC,IAAS,EAAE,IAAS,EAAE,KAAc,EAAA;AACrD,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;;YACtF,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9C;AAEO,IAAA,OAAO,aAAa,CAAC,IAAS,EAAE,IAAS,EAAA;QAC5C,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;AAE9B,QAAA,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YACpE,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAC1B,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAC1B,CAAC,EACD,MAAM,EACN,GAAG;AAEP,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,gBAAA,MAAM,GAAG,IAAI,CAAC,MAAM;AACpB,gBAAA,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM;AAAE,oBAAA,OAAO,KAAK;AACvC,gBAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAAI,oBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAAE,wBAAA,OAAO,KAAK;AACrF,gBAAA,OAAO,IAAI;YACf;YAEA,IAAI,IAAI,IAAI,IAAI;AAAE,gBAAA,OAAO,KAAK;AAE9B,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EACzB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,IAAI,KAAK,IAAI,KAAK;AAAE,gBAAA,OAAO,KAAK;YAChC,IAAI,KAAK,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;YAE3D,IAAI,OAAO,GAAG,IAAI,YAAY,MAAM,EAChC,OAAO,GAAG,IAAI,YAAY,MAAM;YACpC,IAAI,OAAO,IAAI,OAAO;AAAE,gBAAA,OAAO,KAAK;YACpC,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAEjE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM;YAEpB,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;AAErD,YAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAAI,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAA,OAAO,KAAK;YAEpG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAI;AAC1B,gBAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAAE,oBAAA,OAAO,KAAK;YAC/D;AAEA,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;IACzC;AAEO,IAAA,OAAO,gBAAgB,CAAC,IAAS,EAAE,KAAU,EAAA;AAChD,QAAA,IAAI,IAAI,IAAI,KAAK,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACxB,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC;YACtB;iBAAO,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACjC,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC;YACtB;iBAAO;gBACH,IAAI,MAAM,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACvC,IAAI,KAAK,GAAG,IAAI;AAChB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC/C,oBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,wBAAA,OAAO,IAAI;oBACf;oBACA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B;AACA,gBAAA,OAAO,KAAK;YAChB;QACJ;aAAO;AACH,YAAA,OAAO,IAAI;QACf;IACJ;IAEO,OAAO,UAAU,CAAC,GAAQ,EAAA;AAC7B,QAAA,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC;IAC9D;AAEO,IAAA,OAAO,YAAY,CAAC,KAAY,EAAE,IAAY,EAAE,EAAU,EAAA;AAC7D,QAAA,IAAI,MAAc;AAClB,QAAA,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,EAAE;AACtB,YAAA,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AACpB,gBAAA,EAAE,IAAI,KAAK,CAAC,MAAM;AAClB,gBAAA,IAAI,IAAI,KAAK,CAAC,MAAM;YACxB;AACA,YAAA,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD;IACJ;IAEO,OAAO,sBAAsB,CAAC,IAAS,EAAE,KAAa,EAAE,GAAU,EAAE,SAAgB,EAAA;AACvF,QAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,QAAQ,GAAG,KAAK;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjC,gBAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9D,gBAAA,IAAI,gBAAgB,GAAG,KAAK,EAAE;oBAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;oBACtB,QAAQ,GAAG,IAAI;oBACf;gBACJ;YACJ;YAEA,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB;QACJ;aAAO;AACH,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAClB;IACJ;AAEO,IAAA,OAAO,eAAe,CAAC,IAAS,EAAE,IAAS,EAAA;AAC9C,QAAA,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;oBACjB,KAAK,GAAG,CAAC;oBACT;gBACJ;YACJ;QACJ;AAEA,QAAA,OAAO,KAAK;IAChB;AAEO,IAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAA;QAC9B,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACtC,YAAA,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAAE,oBAAA,OAAO,IAAI;YAC5C;QACJ;AAEA,QAAA,OAAO,KAAK;IAChB;IAEO,OAAO,aAAa,CAAC,GAAG,EAAA;QAC3B,IAAI,GAAG,EAAE;AACL,YAAA,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9D;AAEA,QAAA,OAAO,GAAG;IACd;IAEO,OAAO,MAAM,CAAC,KAAU,EAAA;AAC3B,QAAA,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe;IACpE;IAEO,OAAO,OAAO,CAAC,KAAK,EAAA;QACvB,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzM;IAEO,OAAO,UAAU,CAAC,KAAK,EAAA;AAC1B,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B;IAEO,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAA;AACnD,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAExC,IAAI,WAAW,IAAI,WAAW;YAAE,MAAM,GAAG,CAAC;AACrC,aAAA,IAAI,WAAW;YAAE,MAAM,GAAG,KAAK;AAC/B,aAAA,IAAI,WAAW;YAAE,MAAM,GAAG,CAAC,KAAK;aAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAAE,YAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;YAC9H,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAE5D,QAAA,OAAO,MAAM;IACjB;AAEO,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,CAAC,EAAA;AACnE,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;QACjE,IAAI,cAAc,GAAG,KAAK;;AAG1B,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC5D,YAAA,cAAc,GAAG,aAAa,KAAK,CAAC,GAAG,KAAK,GAAG,aAAa;QAChE;QAEA,OAAO,cAAc,GAAG,MAAM;IAClC;AAEO,IAAA,OAAO,KAAK,CAAC,IAAU,EAAE,IAAU,EAAA;QACtC,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,EAAE;AACxC,YAAA,OAAO,SAAS;QACpB;aAAO,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,MAAM,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;AAC3G,YAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;QAC/C;aAAO,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,MAAM,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;AAC3G,YAAA,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C;QAEA,OAAO,IAAI,IAAI,IAAI;IACvB;AAEO,IAAA,OAAO,oBAAoB,CAAC,IAAI,GAAG,EAAE,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3E;AAEO,IAAA,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,MAAM,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG;IACtD;AAEO,IAAA,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAA;AACrC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI;AACA,gBAAA,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;YACvC;AAAE,YAAA,MAAM;AACJ,gBAAA,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9D;QACJ;AAEA,QAAA,OAAO,KAAK;IAChB;AAEO,IAAA,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAA;AAChC,QAAA,IAAI,IAAI;AAER,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI;AACA,gBAAA,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC;AAAE,YAAA,MAAM;AACJ,gBAAA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAA;QACzB,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;YACxD,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACvB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACvB,CAAC,EACD,MAAM,EACN,GAAG;AAEP,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,gBAAA,MAAM,GAAG,CAAC,CAAC,MAAM;AACjB,gBAAA,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM;AAAE,oBAAA,OAAO,KAAK;AACpC,gBAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAAI,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,wBAAA,OAAO,KAAK;AAE5E,gBAAA,OAAO,IAAI;YACf;YAEA,IAAI,IAAI,IAAI,IAAI;AAAE,gBAAA,OAAO,KAAK;YAE9B,IAAI,KAAK,GAAG,CAAC,YAAY,IAAI,EACzB,KAAK,GAAG,CAAC,YAAY,IAAI;YAE7B,IAAI,KAAK,IAAI,KAAK;AAAE,gBAAA,OAAO,KAAK;YAChC,IAAI,KAAK,IAAI,KAAK;gBAAE,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE;YAErD,IAAI,OAAO,GAAG,CAAC,YAAY,MAAM,EAC7B,OAAO,GAAG,CAAC,YAAY,MAAM;YAEjC,IAAI,OAAO,IAAI,OAAO;AAAE,gBAAA,OAAO,KAAK;YACpC,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;YAE3D,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAEzB,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM;YAEpB,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;AAElD,YAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAAI,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAA,OAAO,KAAK;YAEjG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAI;AAC1B,gBAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAAE,oBAAA,OAAO,KAAK;YACtD;AAEA,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;AACH;;AC/RM,IAAI,MAAM,GAAG,CAAC;AAEf,SAAU,iBAAiB,CAAC,MAAM,GAAG,QAAQ,EAAA;AAC/C,IAAA,MAAM,EAAE;AAER,IAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,MAAM,EAAE;AAC/B;;ACNA,SAAS,WAAW,GAAA;IAChB,IAAI,QAAQ,GAAG,EAAE;AAEjB,IAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,UAAU,KAAI;AACvC,QAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;QACjG,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;QAEhF,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAExC,QAAA,OAAO,SAAS;AACpB,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,MAAM,KAAI;AAC5B,QAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC;AAC7D,IAAA,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAK;QAC1B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACxE,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,EAAE,KAAI;QACrB,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,IAAA,CAAC;IAED,OAAO;AACH,QAAA,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,KAAI;YACzB,IAAI,EAAE,EAAE;AACJ,gBAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC7D;QACJ,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,EAAE,KAAI;YACV,IAAI,EAAE,EAAE;AACJ,gBAAA,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3B,gBAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;YACxB;QACJ,CAAC;AACD,QAAA,UAAU,EAAE,MAAM,gBAAgB;KACrC;AACL;AAEA,kBAAe,WAAW,EAAE;;ACzC5B;;AAEG;;;;"}
1
+ {"version":3,"file":"cax-design-system-utils.mjs","sources":["../../src/app/components/utils/objectutils.ts","../../src/app/components/utils/uniquecomponentid.ts","../../src/app/components/utils/zindexutils.ts","../../src/app/components/utils/cax-design-system-utils.ts"],"sourcesContent":["export class ObjectUtils {\n public static isArray(value, empty = true) {\n return Array.isArray(value) && (empty || value.length !== 0);\n }\n\n public static isObject(value, empty = true) {\n return typeof value === 'object' && !Array.isArray(value) && value != null && (empty || Object.keys(value).length !== 0);\n }\n\n public static equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);\n else return this.equalsByValue(obj1, obj2);\n }\n\n public static equalsByValue(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) return true;\n\n if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {\n var arrA = Array.isArray(obj1),\n arrB = Array.isArray(obj2),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!this.equalsByValue(obj1[i], obj2[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = this.isDate(obj1),\n dateB = this.isDate(obj2);\n if (dateA != dateB) return false;\n if (dateA && dateB) return obj1.getTime() == obj2.getTime();\n\n var regexpA = obj1 instanceof RegExp,\n regexpB = obj2 instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return obj1.toString() == obj2.toString();\n\n var keys = Object.keys(obj1);\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!this.equalsByValue(obj1[key], obj2[key])) return false;\n }\n\n return true;\n }\n\n return obj1 !== obj1 && obj2 !== obj2;\n }\n\n public static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') == -1) {\n return data[field];\n } else {\n let fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else {\n return null;\n }\n }\n\n public static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n public static reorderArray(value: any[], from: number, to: number) {\n let target: number;\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n\n public static insertIntoOrderedArray(item: any, index: number, arr: any[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = this.findIndexInList(arr[i], sourceArr);\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n }\n\n public static findIndexInList(item: any, list: any): number {\n let index: number = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] == item) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n public static contains(value, list) {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (this.equals(value, val)) return true;\n }\n }\n\n return false;\n }\n\n public static removeAccents(str) {\n if (str) {\n str = str.normalize('NFKD').replace(/\\p{Diacritic}/gu, '');\n }\n\n return str;\n }\n\n public static isDate(input: any) {\n return Object.prototype.toString.call(input) === '[object Date]';\n }\n\n public static isEmpty(value) {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!this.isDate(value) && typeof value === 'object' && Object.keys(value).length === 0);\n }\n\n public static isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n\n public static compare(value1, value2, locale, order = 1) {\n let result = -1;\n const emptyValue1 = this.isEmpty(value1);\n const emptyValue2 = this.isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, locale, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n }\n\n public static sort(value1, value2, order = 1, locale, nullSortOrder = 1) {\n const result = ObjectUtils.compare(value1, value2, locale, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (ObjectUtils.isEmpty(value1) || ObjectUtils.isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n }\n\n public static merge(obj1?: any, obj2?: any): any {\n if (obj1 == undefined && obj2 == undefined) {\n return undefined;\n } else if ((obj1 == undefined || typeof obj1 === 'object') && (obj2 == undefined || typeof obj2 === 'object')) {\n return { ...(obj1 || {}), ...(obj2 || {}) };\n } else if ((obj1 == undefined || typeof obj1 === 'string') && (obj2 == undefined || typeof obj2 === 'string')) {\n return [obj1 || '', obj2 || ''].join(' ');\n }\n\n return obj2 || obj1;\n }\n\n public static isPrintableCharacter(char = '') {\n return this.isNotEmpty(char) && char.length === 1 && char.match(/\\S| /);\n }\n\n public static getItemValue(obj, ...params) {\n return this.isFunction(obj) ? obj(...params) : obj;\n }\n\n public static findLastIndex(arr, callback) {\n let index = -1;\n\n if (this.isNotEmpty(arr)) {\n try {\n index = arr.findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback));\n }\n }\n\n return index;\n }\n\n public static findLast(arr, callback) {\n let item;\n\n if (this.isNotEmpty(arr)) {\n try {\n item = arr.findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n }\n\n public static deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!this.deepEquals(a[i], b[i])) return false;\n\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = Object.keys(a);\n\n length = keys.length;\n\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a !== a && b !== b;\n }\n}\n","export var lastId = 0;\n\nexport function UniqueComponentId(prefix = 'cx_id_') {\n lastId++;\n\n return `${prefix}${lastId}`;\n}\n","function ZIndexUtils() {\n let zIndexes = [];\n\n const generateZIndex = (key, baseZIndex) => {\n let lastZIndex = zIndexes.length > 0 ? zIndexes[zIndexes.length - 1] : { key, value: baseZIndex };\n let newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 2;\n\n zIndexes.push({ key, value: newZIndex });\n\n return newZIndex;\n };\n\n const revertZIndex = (zIndex) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n\n const getCurrentZIndex = () => {\n return zIndexes.length > 0 ? zIndexes[zIndexes.length - 1].value : 0;\n };\n\n const getZIndex = (el) => {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: (key, el, baseZIndex) => {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, baseZIndex));\n }\n },\n clear: (el) => {\n if (el) {\n revertZIndex(getZIndex(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: () => getCurrentZIndex()\n };\n}\n\nexport default ZIndexUtils();\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}