cax-design-system 2.8.5 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1307) hide show
  1. package/README.md +46 -46
  2. package/accordion/index.d.ts +286 -3
  3. package/animate/index.d.ts +41 -3
  4. package/animateonscroll/index.d.ts +75 -3
  5. package/api/index.d.ts +1849 -3
  6. package/autocomplete/index.d.ts +817 -3
  7. package/autofocus/index.d.ts +29 -3
  8. package/avatar/index.d.ts +102 -3
  9. package/avatargroup/index.d.ts +30 -3
  10. package/badge/index.d.ts +71 -5
  11. package/baseicon/index.d.ts +18 -5
  12. package/blockui/index.d.ts +77 -3
  13. package/breadcrumb/index.d.ts +105 -3
  14. package/button/index.d.ts +179 -3
  15. package/buttongroup/index.d.ts +14 -5
  16. package/calendar/index.d.ts +957 -3
  17. package/card/index.d.ts +88 -3
  18. package/carousel/index.d.ts +290 -3
  19. package/cascadeselect/index.d.ts +594 -3
  20. package/categorycard/index.d.ts +20 -0
  21. package/chart/index.d.ts +88 -3
  22. package/checkbox/index.d.ts +204 -3
  23. package/chip/index.d.ts +63 -3
  24. package/colorpicker/index.d.ts +265 -3
  25. package/commentbox/index.d.ts +138 -5
  26. package/comments/index.d.ts +91 -0
  27. package/comparecard/index.d.ts +57 -0
  28. package/confirmdialog/index.d.ts +327 -3
  29. package/confirmpopup/index.d.ts +148 -3
  30. package/contextmenu/index.d.ts +261 -3
  31. package/dataview/index.d.ts +457 -3
  32. package/defer/index.d.ts +40 -3
  33. package/dialog/index.d.ts +411 -3
  34. package/divider/index.d.ts +64 -3
  35. package/dock/index.d.ts +136 -3
  36. package/dom/index.d.ts +105 -3
  37. package/dragdrop/index.d.ts +120 -3
  38. package/dropdown/index.d.ts +841 -3
  39. package/dynamicdialog/index.d.ts +490 -3
  40. package/editor/index.d.ts +182 -3
  41. package/fesm2022/cax-design-system-accordion.mjs +22 -17
  42. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  43. package/fesm2022/cax-design-system-animate.mjs +7 -7
  44. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  45. package/fesm2022/cax-design-system-animateonscroll.mjs +7 -7
  46. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  47. package/fesm2022/cax-design-system-api.mjs +39 -39
  48. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  49. package/fesm2022/cax-design-system-autocomplete.mjs +107 -53
  50. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  51. package/fesm2022/cax-design-system-autofocus.mjs +7 -7
  52. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  53. package/fesm2022/cax-design-system-avatar.mjs +39 -8
  54. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  55. package/fesm2022/cax-design-system-avatargroup.mjs +8 -8
  56. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  57. package/fesm2022/cax-design-system-badge.mjs +16 -12
  58. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  59. package/fesm2022/cax-design-system-baseicon.mjs +3 -3
  60. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  61. package/fesm2022/cax-design-system-blockui.mjs +7 -7
  62. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  63. package/fesm2022/cax-design-system-breadcrumb.mjs +10 -11
  64. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  65. package/fesm2022/cax-design-system-button.mjs +93 -39
  66. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  67. package/fesm2022/cax-design-system-buttongroup.mjs +7 -7
  68. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  69. package/fesm2022/cax-design-system-calendar.mjs +388 -100
  70. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  71. package/fesm2022/cax-design-system-card.mjs +13 -26
  72. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  73. package/fesm2022/cax-design-system-carousel.mjs +7 -7
  74. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  75. package/fesm2022/cax-design-system-cascadeselect.mjs +95 -35
  76. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  77. package/fesm2022/cax-design-system-categorycard.mjs +57 -0
  78. package/fesm2022/cax-design-system-categorycard.mjs.map +1 -0
  79. package/fesm2022/cax-design-system-chart.mjs +7 -7
  80. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  81. package/fesm2022/cax-design-system-checkbox.mjs +15 -14
  82. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  83. package/fesm2022/cax-design-system-chip.mjs +14 -12
  84. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  85. package/fesm2022/cax-design-system-colorpicker.mjs +8 -8
  86. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  87. package/fesm2022/cax-design-system-commentbox.mjs +8 -8
  88. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  89. package/fesm2022/cax-design-system-comments.mjs +385 -0
  90. package/fesm2022/cax-design-system-comments.mjs.map +1 -0
  91. package/fesm2022/cax-design-system-comparecard.mjs +143 -0
  92. package/fesm2022/cax-design-system-comparecard.mjs.map +1 -0
  93. package/fesm2022/cax-design-system-confirmdialog.mjs +54 -50
  94. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  95. package/fesm2022/cax-design-system-confirmpopup.mjs +8 -8
  96. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  97. package/fesm2022/cax-design-system-contextmenu.mjs +14 -14
  98. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  99. package/fesm2022/cax-design-system-dataview.mjs +10 -10
  100. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  101. package/fesm2022/cax-design-system-defer.mjs +7 -7
  102. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  103. package/fesm2022/cax-design-system-dialog.mjs +12 -13
  104. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  105. package/fesm2022/cax-design-system-divider.mjs +21 -11
  106. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  107. package/fesm2022/cax-design-system-dock.mjs +7 -7
  108. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  109. package/fesm2022/cax-design-system-dom.mjs +16 -6
  110. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  111. package/fesm2022/cax-design-system-dragdrop.mjs +10 -10
  112. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  113. package/fesm2022/cax-design-system-dropdown.mjs +67 -32
  114. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  115. package/fesm2022/cax-design-system-dynamicdialog.mjs +15 -15
  116. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  117. package/fesm2022/cax-design-system-editor.mjs +55 -15
  118. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  119. package/fesm2022/cax-design-system-fieldset.mjs +8 -8
  120. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  121. package/fesm2022/cax-design-system-fileupload.mjs +7 -7
  122. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  123. package/fesm2022/cax-design-system-floatlabel.mjs +7 -7
  124. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  125. package/fesm2022/cax-design-system-focustrap.mjs +7 -7
  126. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  127. package/fesm2022/cax-design-system-galleria.mjs +19 -19
  128. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  129. package/fesm2022/cax-design-system-iconfield.mjs +7 -7
  130. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  131. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
  132. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  133. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
  134. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  135. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
  136. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  137. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
  138. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  139. package/fesm2022/cax-design-system-icons-angledown.mjs +4 -4
  140. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  141. package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
  142. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  143. package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
  144. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  145. package/fesm2022/cax-design-system-icons-angleup.mjs +4 -4
  146. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  147. package/fesm2022/cax-design-system-icons-arrowdown.mjs +4 -4
  148. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  149. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
  150. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  151. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
  152. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  153. package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
  154. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  155. package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
  156. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  157. package/fesm2022/cax-design-system-icons-arrowup.mjs +4 -4
  158. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  159. package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
  160. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  161. package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
  162. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  163. package/fesm2022/cax-design-system-icons-blank.mjs +4 -4
  164. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  165. package/fesm2022/cax-design-system-icons-calendar.mjs +4 -4
  166. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  167. package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
  168. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  169. package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
  170. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  171. package/fesm2022/cax-design-system-icons-check.mjs +4 -4
  172. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  173. package/fesm2022/cax-design-system-icons-chevrondown.mjs +4 -4
  174. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  175. package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
  176. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  177. package/fesm2022/cax-design-system-icons-chevronright.mjs +4 -4
  178. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  179. package/fesm2022/cax-design-system-icons-chevronup.mjs +4 -4
  180. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  181. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
  182. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  183. package/fesm2022/cax-design-system-icons-eye.mjs +4 -4
  184. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  185. package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
  186. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  187. package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
  188. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  189. package/fesm2022/cax-design-system-icons-filterslash.mjs +4 -4
  190. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  191. package/fesm2022/cax-design-system-icons-home.mjs +3 -3
  192. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  193. package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
  194. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  195. package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
  196. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  197. package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
  198. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  199. package/fesm2022/cax-design-system-icons-plus.mjs +4 -4
  200. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  201. package/fesm2022/cax-design-system-icons-refresh.mjs +4 -4
  202. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  203. package/fesm2022/cax-design-system-icons-search.mjs +4 -4
  204. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  205. package/fesm2022/cax-design-system-icons-searchminus.mjs +4 -4
  206. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  207. package/fesm2022/cax-design-system-icons-searchplus.mjs +4 -4
  208. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  209. package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
  210. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  211. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
  212. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  213. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
  214. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  215. package/fesm2022/cax-design-system-icons-spinner.mjs +4 -4
  216. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  217. package/fesm2022/cax-design-system-icons-star.mjs +3 -3
  218. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  219. package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
  220. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  221. package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
  222. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  223. package/fesm2022/cax-design-system-icons-times.mjs +4 -4
  224. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  225. package/fesm2022/cax-design-system-icons-timescircle.mjs +4 -4
  226. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  227. package/fesm2022/cax-design-system-icons-trash.mjs +4 -4
  228. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  229. package/fesm2022/cax-design-system-icons-undo.mjs +4 -4
  230. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  231. package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
  232. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  233. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
  234. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  235. package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
  236. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  237. package/fesm2022/cax-design-system-image.mjs +8 -8
  238. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  239. package/fesm2022/cax-design-system-inplace.mjs +13 -13
  240. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  241. package/fesm2022/{cax-design-system-chips.mjs → cax-design-system-inputchips.mjs} +66 -27
  242. package/fesm2022/cax-design-system-inputchips.mjs.map +1 -0
  243. package/fesm2022/cax-design-system-inputgroup.mjs +54 -10
  244. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  245. package/fesm2022/cax-design-system-inputgroupaddon.mjs +8 -8
  246. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  247. package/fesm2022/cax-design-system-inputicon.mjs +7 -7
  248. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  249. package/fesm2022/cax-design-system-inputmask.mjs +33 -20
  250. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  251. package/fesm2022/cax-design-system-inputnumber.mjs +64 -30
  252. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  253. package/fesm2022/cax-design-system-inputotp.mjs +7 -7
  254. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  255. package/fesm2022/cax-design-system-inputswitch.mjs +7 -7
  256. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  257. package/fesm2022/cax-design-system-inputtext.mjs +30 -14
  258. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  259. package/fesm2022/cax-design-system-inputtextarea.mjs +49 -18
  260. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  261. package/fesm2022/cax-design-system-keyfilter.mjs +7 -7
  262. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  263. package/fesm2022/cax-design-system-knob.mjs +7 -7
  264. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  265. package/fesm2022/cax-design-system-listbox.mjs +45 -375
  266. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  267. package/fesm2022/cax-design-system-logo.mjs +8 -8
  268. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  269. package/fesm2022/cax-design-system-logocard.mjs +37 -0
  270. package/fesm2022/cax-design-system-logocard.mjs.map +1 -0
  271. package/fesm2022/cax-design-system-megamenu.mjs +12 -12
  272. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  273. package/fesm2022/cax-design-system-menu.mjs +18 -18
  274. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  275. package/fesm2022/cax-design-system-menubar.mjs +16 -16
  276. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  277. package/fesm2022/cax-design-system-message.mjs +7 -7
  278. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  279. package/fesm2022/cax-design-system-messages.mjs +17 -44
  280. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  281. package/fesm2022/cax-design-system-metergroup.mjs +10 -10
  282. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  283. package/fesm2022/cax-design-system-multiselect.mjs +67 -33
  284. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  285. package/fesm2022/cax-design-system-navigation.mjs +206 -106
  286. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  287. package/fesm2022/cax-design-system-orderlist.mjs +8 -8
  288. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  289. package/fesm2022/cax-design-system-organizationchart.mjs +11 -11
  290. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  291. package/fesm2022/cax-design-system-overlay.mjs +8 -8
  292. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  293. package/fesm2022/cax-design-system-overlaypanel.mjs +17 -11
  294. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  295. package/fesm2022/cax-design-system-paginator.mjs +8 -8
  296. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  297. package/fesm2022/cax-design-system-panel.mjs +8 -8
  298. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  299. package/fesm2022/cax-design-system-panelmenu.mjs +19 -19
  300. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  301. package/fesm2022/cax-design-system-password.mjs +14 -14
  302. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  303. package/fesm2022/cax-design-system-picklist.mjs +8 -8
  304. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  305. package/fesm2022/cax-design-system-productcard.mjs +90 -0
  306. package/fesm2022/cax-design-system-productcard.mjs.map +1 -0
  307. package/fesm2022/cax-design-system-progressbar.mjs +31 -9
  308. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  309. package/fesm2022/cax-design-system-progressspinner.mjs +17 -15
  310. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  311. package/fesm2022/cax-design-system-radiobutton.mjs +27 -15
  312. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  313. package/fesm2022/cax-design-system-rating.mjs +8 -8
  314. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  315. package/fesm2022/cax-design-system-ripple.mjs +7 -7
  316. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  317. package/fesm2022/cax-design-system-scroller.mjs +8 -8
  318. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  319. package/fesm2022/cax-design-system-scrollpanel.mjs +7 -7
  320. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  321. package/fesm2022/cax-design-system-scrolltop.mjs +8 -8
  322. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  323. package/fesm2022/cax-design-system-selectbutton.mjs +79 -9
  324. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  325. package/fesm2022/cax-design-system-sidebar.mjs +10 -10
  326. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  327. package/fesm2022/cax-design-system-skeleton.mjs +11 -10
  328. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  329. package/fesm2022/cax-design-system-slidemenu.mjs +13 -13
  330. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  331. package/fesm2022/cax-design-system-slider.mjs +14 -199
  332. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  333. package/fesm2022/cax-design-system-speeddial.mjs +17 -10
  334. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  335. package/fesm2022/cax-design-system-spinner.mjs +7 -7
  336. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  337. package/fesm2022/cax-design-system-splitbutton.mjs +11 -14
  338. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  339. package/fesm2022/cax-design-system-splitter.mjs +8 -8
  340. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  341. package/fesm2022/cax-design-system-stepper.mjs +20 -20
  342. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  343. package/fesm2022/cax-design-system-steps.mjs +30 -11
  344. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  345. package/fesm2022/cax-design-system-styleclass.mjs +7 -7
  346. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  347. package/fesm2022/cax-design-system-subscriptioncard.mjs +97 -0
  348. package/fesm2022/cax-design-system-subscriptioncard.mjs.map +1 -0
  349. package/fesm2022/cax-design-system-table-paginator.mjs +128 -0
  350. package/fesm2022/cax-design-system-table-paginator.mjs.map +1 -0
  351. package/fesm2022/cax-design-system-table.mjs +284 -400
  352. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  353. package/fesm2022/cax-design-system-tableconfiguration.mjs +19 -10
  354. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  355. package/fesm2022/cax-design-system-tabmenu.mjs +8 -8
  356. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  357. package/fesm2022/cax-design-system-tabview.mjs +168 -95
  358. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  359. package/fesm2022/cax-design-system-tag.mjs +71 -15
  360. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  361. package/fesm2022/cax-design-system-terminal.mjs +14 -14
  362. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  363. package/fesm2022/cax-design-system-tieredmenu.mjs +26 -19
  364. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  365. package/fesm2022/cax-design-system-timeline.mjs +8 -8
  366. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  367. package/fesm2022/cax-design-system-toast.mjs +13 -25
  368. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  369. package/fesm2022/cax-design-system-togglebutton.mjs +9 -9
  370. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  371. package/fesm2022/cax-design-system-toggleswitch.mjs +26 -8
  372. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  373. package/fesm2022/cax-design-system-toolbar.mjs +7 -7
  374. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  375. package/fesm2022/cax-design-system-tooltip.mjs +40 -20
  376. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  377. package/fesm2022/cax-design-system-tree.mjs +12 -12
  378. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  379. package/fesm2022/cax-design-system-treeselect.mjs +8 -8
  380. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  381. package/fesm2022/cax-design-system-treetable.mjs +55 -55
  382. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  383. package/fesm2022/cax-design-system-tristatecheckbox.mjs +8 -8
  384. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  385. package/fesm2022/cax-design-system-upload.mjs +209 -96
  386. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  387. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  388. package/fesm2022/cax-design-system-virtualscroller.mjs +7 -7
  389. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  390. package/fieldset/index.d.ts +140 -3
  391. package/fileupload/index.d.ts +606 -3
  392. package/floatlabel/index.d.ts +19 -3
  393. package/focustrap/index.d.ts +35 -3
  394. package/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  395. package/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  396. package/fonts/Inter/OFL.txt +93 -0
  397. package/fonts/Inter/README.txt +118 -0
  398. package/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
  399. package/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
  400. package/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
  401. package/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
  402. package/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
  403. package/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  404. package/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
  405. package/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
  406. package/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
  407. package/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
  408. package/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
  409. package/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
  410. package/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
  411. package/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
  412. package/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
  413. package/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
  414. package/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
  415. package/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
  416. package/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
  417. package/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
  418. package/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
  419. package/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
  420. package/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
  421. package/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  422. package/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
  423. package/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
  424. package/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
  425. package/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
  426. package/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
  427. package/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
  428. package/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
  429. package/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
  430. package/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
  431. package/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
  432. package/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
  433. package/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
  434. package/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
  435. package/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
  436. package/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
  437. package/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
  438. package/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
  439. package/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  440. package/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
  441. package/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
  442. package/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
  443. package/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
  444. package/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
  445. package/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
  446. package/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
  447. package/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
  448. package/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
  449. package/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
  450. package/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
  451. package/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
  452. package/galleria/index.d.ts +502 -3
  453. package/iconfield/index.d.ts +26 -3
  454. package/icons/angledoubledown/index.d.ts +9 -5
  455. package/icons/angledoubleleft/index.d.ts +9 -5
  456. package/icons/angledoubleright/index.d.ts +9 -5
  457. package/icons/angledoubleup/index.d.ts +9 -5
  458. package/icons/angledown/index.d.ts +9 -5
  459. package/icons/angleleft/index.d.ts +9 -5
  460. package/icons/angleright/index.d.ts +9 -5
  461. package/icons/angleup/index.d.ts +9 -5
  462. package/icons/arrowdown/index.d.ts +12 -5
  463. package/icons/arrowdownleft/index.d.ts +9 -5
  464. package/icons/arrowdownright/index.d.ts +9 -5
  465. package/icons/arrowleft/index.d.ts +11 -5
  466. package/icons/arrowright/index.d.ts +9 -5
  467. package/icons/arrowup/index.d.ts +11 -5
  468. package/icons/ban/index.d.ts +11 -5
  469. package/icons/bars/index.d.ts +9 -5
  470. package/icons/blank/index.d.ts +9 -5
  471. package/icons/calendar/index.d.ts +9 -5
  472. package/icons/caretleft/index.d.ts +9 -5
  473. package/icons/caretright/index.d.ts +9 -5
  474. package/icons/check/index.d.ts +9 -5
  475. package/icons/chevrondown/index.d.ts +9 -5
  476. package/icons/chevronleft/index.d.ts +9 -5
  477. package/icons/chevronright/index.d.ts +9 -5
  478. package/icons/chevronup/index.d.ts +9 -5
  479. package/icons/exclamationtriangle/index.d.ts +12 -5
  480. package/icons/eye/index.d.ts +9 -5
  481. package/icons/eyeslash/index.d.ts +11 -5
  482. package/icons/filter/index.d.ts +11 -5
  483. package/icons/filterslash/index.d.ts +11 -5
  484. package/icons/home/index.d.ts +11 -5
  485. package/icons/infocircle/index.d.ts +11 -5
  486. package/icons/minus/index.d.ts +9 -5
  487. package/icons/pencil/index.d.ts +11 -5
  488. package/icons/plus/index.d.ts +11 -5
  489. package/icons/refresh/index.d.ts +11 -5
  490. package/icons/search/index.d.ts +11 -5
  491. package/icons/searchminus/index.d.ts +11 -5
  492. package/icons/searchplus/index.d.ts +11 -5
  493. package/icons/sortalt/index.d.ts +11 -5
  494. package/icons/sortamountdown/index.d.ts +11 -5
  495. package/icons/sortamountupalt/index.d.ts +11 -5
  496. package/icons/spinner/index.d.ts +11 -5
  497. package/icons/star/index.d.ts +11 -5
  498. package/icons/starfill/index.d.ts +11 -5
  499. package/icons/thlarge/index.d.ts +11 -5
  500. package/icons/times/index.d.ts +9 -5
  501. package/icons/timescircle/index.d.ts +11 -5
  502. package/icons/trash/index.d.ts +11 -5
  503. package/icons/undo/index.d.ts +11 -5
  504. package/icons/upload/index.d.ts +11 -5
  505. package/icons/windowmaximize/index.d.ts +11 -5
  506. package/icons/windowminimize/index.d.ts +11 -5
  507. package/image/index.d.ts +228 -3
  508. package/index.d.ts +2 -5
  509. package/inplace/index.d.ts +130 -3
  510. package/{chips/chips.d.ts → inputchips/index.d.ts} +101 -9
  511. package/inputgroup/index.d.ts +79 -3
  512. package/inputgroupaddon/index.d.ts +35 -3
  513. package/inputicon/index.d.ts +22 -3
  514. package/inputmask/index.d.ts +310 -3
  515. package/inputnumber/index.d.ts +469 -3
  516. package/inputotp/index.d.ts +189 -3
  517. package/inputswitch/index.d.ts +123 -3
  518. package/inputtext/index.d.ts +79 -5
  519. package/inputtextarea/index.d.ts +130 -3
  520. package/keyfilter/index.d.ts +65 -3
  521. package/knob/index.d.ts +179 -3
  522. package/listbox/index.d.ts +631 -3
  523. package/logo/index.d.ts +20 -5
  524. package/logocard/index.d.ts +15 -0
  525. package/megamenu/index.d.ts +230 -3
  526. package/menu/index.d.ts +222 -3
  527. package/menubar/index.d.ts +290 -3
  528. package/message/index.d.ts +53 -3
  529. package/messages/index.d.ts +129 -3
  530. package/metergroup/index.d.ts +224 -3
  531. package/multiselect/index.d.ts +1000 -3
  532. package/navigation/index.d.ts +110 -5
  533. package/orderlist/index.d.ts +381 -3
  534. package/organizationchart/index.d.ts +192 -3
  535. package/overlay/index.d.ts +246 -3
  536. package/overlaypanel/index.d.ts +175 -3
  537. package/package.json +255 -235
  538. package/paginator/index.d.ts +249 -3
  539. package/panel/index.d.ts +185 -3
  540. package/panelmenu/index.d.ts +249 -3
  541. package/password/index.d.ts +342 -3
  542. package/picklist/index.d.ts +696 -3
  543. package/productcard/index.d.ts +28 -0
  544. package/progressbar/index.d.ts +76 -3
  545. package/progressspinner/index.d.ts +58 -3
  546. package/radiobutton/index.d.ts +174 -3
  547. package/rating/index.d.ts +181 -3
  548. package/resources/cax.min.scss +6351 -1
  549. package/resources/cax.scss +11281 -12539
  550. package/resources/components/accordion/accordion.scss +0 -46
  551. package/resources/components/autocomplete/autocomplete.scss +249 -184
  552. package/resources/components/avatar/avatar.scss +30 -34
  553. package/resources/components/avatargroup/avatargroup.scss +10 -10
  554. package/resources/components/badge/badge.scss +68 -67
  555. package/resources/components/blockui/blockui.css +26 -26
  556. package/resources/components/breadcrumb/breadcrumb.scss +36 -33
  557. package/resources/components/button/button.scss +160 -163
  558. package/resources/components/calendar/calendar.scss +368 -231
  559. package/resources/components/card/card.scss +9 -50
  560. package/resources/components/carousel/carousel.css +71 -71
  561. package/resources/components/cascadeselect/cascadeselect.scss +104 -105
  562. package/resources/components/categorycard/categorycard.scss +46 -0
  563. package/resources/components/checkbox/checkbox.scss +30 -30
  564. package/resources/components/chip/chip.scss +6 -6
  565. package/resources/components/colorpicker/colorpicker-images.scss +7 -7
  566. package/resources/components/colorpicker/colorpicker.scss +82 -82
  567. package/resources/components/commentbox/commentbox.scss +621 -611
  568. package/resources/components/comments/comments.scss +0 -0
  569. package/resources/components/common/common.scss +183 -183
  570. package/resources/components/comparecard/comparecard.component.scss +50 -0
  571. package/resources/components/confirmpopup/confirmpopup.css +53 -53
  572. package/resources/components/contextmenu/contextmenu.css +42 -42
  573. package/resources/components/dataview/dataview.css +13 -13
  574. package/resources/components/dialog/dialog.scss +193 -171
  575. package/resources/components/divider/divider.scss +0 -86
  576. package/resources/components/dock/dock.css +107 -107
  577. package/resources/components/dropdown/dropdown.scss +93 -94
  578. package/resources/components/editor/editor.scss +97 -4
  579. package/resources/components/fieldset/fieldset.css +30 -30
  580. package/resources/components/fileupload/fileupload.css +47 -47
  581. package/resources/components/galleria/galleria.css +281 -281
  582. package/resources/components/iconfield/iconfield.css +5 -5
  583. package/resources/components/image/image.scss +97 -92
  584. package/resources/components/inplace/inplace.css +19 -19
  585. package/resources/components/{chips/chips.scss → inputchips/inputchips.scss} +181 -205
  586. package/resources/components/inputicon/inputicon.css +6 -6
  587. package/resources/components/inputmask/inputmask.scss +48 -12
  588. package/resources/components/inputnumber/inputnumber.scss +109 -109
  589. package/resources/components/inputotp/inputotp.css +2 -2
  590. package/resources/components/inputswitch/inputswitch.css +23 -23
  591. package/resources/components/inputtext/inputtext.scss +138 -145
  592. package/resources/components/inputtextarea/inputtextarea.scss +15 -10
  593. package/resources/components/knob/knob.css +20 -20
  594. package/resources/components/listbox/listbox.scss +49 -0
  595. package/resources/components/logocard/logocard.scss +6 -0
  596. package/resources/components/megamenu/megamenu.css +108 -108
  597. package/resources/components/menu/menu.scss +31 -31
  598. package/resources/components/menubar/menubar.css +81 -81
  599. package/resources/components/message/message.css +17 -17
  600. package/resources/components/messages/messages.scss +53 -55
  601. package/resources/components/multiselect/multiselect.scss +132 -132
  602. package/resources/components/navigation/navigation.scss +236 -197
  603. package/resources/components/orderlist/orderlist.css +78 -78
  604. package/resources/components/organizationchart/organizationchart.css +62 -62
  605. package/resources/components/overlay/overlay.scss +80 -80
  606. package/resources/components/overlaypanel/overlaypanel.scss +84 -66
  607. package/resources/components/paginator/paginator.scss +41 -41
  608. package/resources/components/panel/panel.css +29 -29
  609. package/resources/components/panelmenu/panelmenu.css +45 -45
  610. package/resources/components/password/password.css +54 -54
  611. package/resources/components/picklist/picklist.css +60 -60
  612. package/resources/components/productcard/productcard.scss +95 -0
  613. package/resources/components/progressbar/progressbar.scss +107 -107
  614. package/resources/components/progressspinner/progressspinner.scss +0 -94
  615. package/resources/components/radiobutton/radiobutton.scss +34 -34
  616. package/resources/components/rating/rating.css +15 -15
  617. package/resources/components/ripple/ripple.scss +29 -29
  618. package/resources/components/scroller/scroller.scss +58 -58
  619. package/resources/components/scrollpanel/scrollpanel.css +50 -50
  620. package/resources/components/scrolltop/scrolltop.css +18 -18
  621. package/resources/components/sidebar/sidebar.scss +117 -117
  622. package/resources/components/skeleton/skeleton.scss +24 -25
  623. package/resources/components/slidemenu/slidemenu.css +100 -100
  624. package/resources/components/slider/{slider.css → slider.scss} +41 -41
  625. package/resources/components/speeddial/speeddial.scss +131 -122
  626. package/resources/components/spinner/spinner.css +63 -63
  627. package/resources/components/splitbutton/splitbutton.scss +57 -53
  628. package/resources/components/splitter/splitter.scss +73 -73
  629. package/resources/components/stepper/stepper.css +9 -9
  630. package/resources/components/steps/steps.scss +49 -50
  631. package/resources/components/subscriptioncard/subscriptioncard.component.scss +65 -0
  632. package/resources/components/table/table.scss +511 -458
  633. package/resources/components/table-paginator/table-paginator.component.scss +72 -0
  634. package/resources/components/tableconfiguration/tableconfiguration.scss +3 -125
  635. package/resources/components/tabmenu/tabmenu.css +80 -80
  636. package/resources/components/tabview/tabview.scss +206 -198
  637. package/resources/components/tag/tag.scss +7 -23
  638. package/resources/components/terminal/terminal.css +24 -24
  639. package/resources/components/tieredmenu/tieredmenu.scss +55 -55
  640. package/resources/components/timeline/timeline.scss +128 -128
  641. package/resources/components/toast/toast.scss +78 -87
  642. package/resources/components/toggleswitch/toggleswitch.scss +45 -36
  643. package/resources/components/toolbar/toolbar.css +19 -19
  644. package/resources/components/tooltip/tooltip.scss +124 -124
  645. package/resources/components/tree/tree.scss +154 -154
  646. package/resources/components/treeselect/treeselect.scss +114 -114
  647. package/resources/components/treetable/treetable.css +205 -205
  648. package/resources/components/upload/upload.component.scss +84 -145
  649. package/resources/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  650. package/resources/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  651. package/resources/fonts/Inter/OFL.txt +93 -0
  652. package/resources/fonts/Inter/README.txt +118 -0
  653. package/resources/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
  654. package/resources/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
  655. package/resources/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
  656. package/resources/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
  657. package/resources/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
  658. package/resources/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  659. package/resources/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
  660. package/resources/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
  661. package/resources/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
  662. package/resources/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
  663. package/resources/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
  664. package/resources/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
  665. package/resources/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
  666. package/resources/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
  667. package/resources/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
  668. package/resources/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
  669. package/resources/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
  670. package/resources/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
  671. package/resources/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
  672. package/resources/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
  673. package/resources/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
  674. package/resources/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
  675. package/resources/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
  676. package/resources/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  677. package/resources/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
  678. package/resources/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
  679. package/resources/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
  680. package/resources/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
  681. package/resources/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
  682. package/resources/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
  683. package/resources/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
  684. package/resources/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
  685. package/resources/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
  686. package/resources/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
  687. package/resources/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
  688. package/resources/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
  689. package/resources/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
  690. package/resources/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
  691. package/resources/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
  692. package/resources/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
  693. package/resources/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
  694. package/resources/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  695. package/resources/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
  696. package/resources/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
  697. package/resources/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
  698. package/resources/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
  699. package/resources/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
  700. package/resources/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
  701. package/resources/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
  702. package/resources/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
  703. package/resources/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
  704. package/resources/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
  705. package/resources/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
  706. package/resources/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
  707. package/resources/logo/cax-intro-logo.svg +75 -0
  708. package/resources/logo/cax-sidebar-logo.svg +6 -0
  709. package/resources/logo/dataX-dark.svg +12 -12
  710. package/resources/logo/dataX-icon-dark.svg +5 -5
  711. package/resources/logo/dataX-icon.svg +5 -5
  712. package/resources/logo/dataX.svg +12 -12
  713. package/resources/styles/colors.scss +568 -397
  714. package/resources/styles/fonts.scss +15 -0
  715. package/resources/styles/transitions.scss +23 -0
  716. package/resources/styles/typography.scss +555 -116
  717. package/resources/styles/variables.scss +85 -0
  718. package/ripple/index.d.ts +37 -3
  719. package/scroller/index.d.ts +528 -3
  720. package/scrollpanel/index.d.ts +116 -3
  721. package/scrolltop/index.d.ts +117 -3
  722. package/selectbutton/index.d.ts +233 -3
  723. package/sidebar/index.d.ts +213 -3
  724. package/skeleton/index.d.ts +69 -3
  725. package/slidemenu/index.d.ts +339 -3
  726. package/slider/index.d.ts +215 -3
  727. package/speeddial/index.d.ts +324 -3
  728. package/spinner/index.d.ts +93 -5
  729. package/splitbutton/index.d.ts +264 -3
  730. package/splitter/index.d.ts +201 -3
  731. package/stepper/index.d.ts +145 -3
  732. package/steps/index.d.ts +95 -3
  733. package/styleclass/index.d.ts +109 -3
  734. package/subscriptioncard/index.d.ts +46 -0
  735. package/table/index.d.ts +2530 -3
  736. package/table-paginator/index.d.ts +61 -0
  737. package/tableconfiguration/index.d.ts +27 -5
  738. package/tabmenu/index.d.ts +160 -3
  739. package/tabview/index.d.ts +360 -3
  740. package/tag/index.d.ts +120 -3
  741. package/terminal/index.d.ts +68 -3
  742. package/tieredmenu/index.d.ts +312 -3
  743. package/timeline/index.d.ts +100 -3
  744. package/toast/index.d.ts +194 -3
  745. package/togglebutton/index.d.ts +150 -3
  746. package/toggleswitch/index.d.ts +30 -5
  747. package/toolbar/index.d.ts +64 -3
  748. package/tooltip/index.d.ts +218 -3
  749. package/tree/index.d.ts +673 -3
  750. package/treeselect/index.d.ts +517 -3
  751. package/treetable/index.d.ts +1461 -3
  752. package/tristatecheckbox/index.d.ts +155 -3
  753. package/ts-helpers/index.d.ts +6 -5
  754. package/upload/index.d.ts +113 -5
  755. package/utils/index.d.ts +35 -5
  756. package/virtualscroller/index.d.ts +161 -3
  757. package/accordion/accordion.d.ts +0 -224
  758. package/accordion/accordion.interface.d.ts +0 -49
  759. package/accordion/accordion.module.d.ts +0 -13
  760. package/accordion/public_api.d.ts +0 -3
  761. package/animate/animate.d.ts +0 -40
  762. package/animate/public_api.d.ts +0 -1
  763. package/animateonscroll/animateonscroll.d.ts +0 -75
  764. package/animateonscroll/public_api.d.ts +0 -1
  765. package/api/blockableui.d.ts +0 -10
  766. package/api/caxconfig.d.ts +0 -24
  767. package/api/confirmaeventtype.d.ts +0 -8
  768. package/api/confirmation.d.ts +0 -96
  769. package/api/confirmationservice.d.ts +0 -30
  770. package/api/contextmenuservice.d.ts +0 -11
  771. package/api/filtermatchmode.d.ts +0 -22
  772. package/api/filtermetadata.d.ts +0 -18
  773. package/api/filteroperator.d.ts +0 -4
  774. package/api/filterservice.d.ts +0 -10
  775. package/api/lazyloadevent.d.ts +0 -47
  776. package/api/lazyloadmeta.d.ts +0 -19
  777. package/api/megamenuitem.d.ts +0 -130
  778. package/api/menuitem.d.ts +0 -176
  779. package/api/message.d.ts +0 -30
  780. package/api/messageservice.d.ts +0 -32
  781. package/api/overlayoptions.d.ts +0 -188
  782. package/api/overlayservice.d.ts +0 -9
  783. package/api/primeicons.d.ts +0 -313
  784. package/api/public_api.d.ts +0 -34
  785. package/api/scrolleroptions.d.ts +0 -116
  786. package/api/selectitem.d.ts +0 -12
  787. package/api/selectitemgroup.d.ts +0 -10
  788. package/api/shared.d.ts +0 -24
  789. package/api/sortevent.d.ts +0 -12
  790. package/api/sortmeta.d.ts +0 -8
  791. package/api/tablestate.d.ts +0 -60
  792. package/api/themegeneratorservice.d.ts +0 -12
  793. package/api/tooltipoptions.d.ts +0 -69
  794. package/api/translation.d.ts +0 -135
  795. package/api/translationkeys.d.ts +0 -50
  796. package/api/treedragdropservice.d.ts +0 -12
  797. package/api/treenode.d.ts +0 -91
  798. package/api/treenodedragevent.d.ts +0 -27
  799. package/api/treetablenode.d.ts +0 -36
  800. package/autocomplete/autocomplete.d.ts +0 -616
  801. package/autocomplete/autocomplete.interface.d.ts +0 -164
  802. package/autocomplete/autocomplete.module.d.ts +0 -20
  803. package/autocomplete/public_api.d.ts +0 -3
  804. package/autofocus/autofocus.d.ts +0 -28
  805. package/autofocus/public_api.d.ts +0 -1
  806. package/avatar/avatar.d.ts +0 -73
  807. package/avatar/avatar.module.d.ts +0 -7
  808. package/avatar/public_api.d.ts +0 -2
  809. package/avatargroup/avatargroup.d.ts +0 -21
  810. package/avatargroup/avatargroup.module.d.ts +0 -9
  811. package/avatargroup/public_api.d.ts +0 -2
  812. package/badge/badge.d.ts +0 -21
  813. package/badge/badge.directive.d.ts +0 -35
  814. package/badge/badge.module.d.ts +0 -10
  815. package/badge/public_api.d.ts +0 -3
  816. package/baseicon/baseicon.d.ts +0 -15
  817. package/baseicon/public_api.d.ts +0 -1
  818. package/blockui/blockui.d.ts +0 -64
  819. package/blockui/blockui.interface.d.ts +0 -11
  820. package/blockui/public_api.d.ts +0 -2
  821. package/breadcrumb/breadcrumb.d.ts +0 -55
  822. package/breadcrumb/breadcrumb.interface.d.ts +0 -38
  823. package/breadcrumb/breadcrumb.module.d.ts +0 -13
  824. package/breadcrumb/public_api.d.ts +0 -3
  825. package/button/button.d.ts +0 -85
  826. package/button/button.directive.d.ts +0 -49
  827. package/button/button.interface.d.ts +0 -30
  828. package/button/button.module.d.ts +0 -9
  829. package/button/public_api.d.ts +0 -4
  830. package/buttongroup/buttongroup.d.ts +0 -11
  831. package/buttongroup/public_api.d.ts +0 -1
  832. package/calendar/calendar.d.ts +0 -722
  833. package/calendar/calendar.interface.d.ts +0 -204
  834. package/calendar/calendar.module.d.ts +0 -9
  835. package/calendar/public_api.d.ts +0 -3
  836. package/card/card.d.ts +0 -53
  837. package/card/card.interface.d.ts +0 -27
  838. package/card/card.module.d.ts +0 -11
  839. package/card/public_api.d.ts +0 -3
  840. package/carousel/carousel.d.ts +0 -227
  841. package/carousel/carousel.interface.d.ts +0 -63
  842. package/carousel/public_api.d.ts +0 -2
  843. package/cascadeselect/cascadeselect.d.ts +0 -435
  844. package/cascadeselect/cascadeselect.interface.d.ts +0 -115
  845. package/cascadeselect/cascadeselect.module.d.ts +0 -15
  846. package/cascadeselect/public_api.d.ts +0 -3
  847. package/chart/chart.d.ts +0 -87
  848. package/chart/public_api.d.ts +0 -1
  849. package/checkbox/checkbox.d.ts +0 -168
  850. package/checkbox/checkbox.interface.d.ts +0 -26
  851. package/checkbox/checkbox.module.d.ts +0 -10
  852. package/checkbox/public_api.d.ts +0 -3
  853. package/chip/chip.d.ts +0 -38
  854. package/chip/chip.interface.d.ts +0 -15
  855. package/chip/chip.module.d.ts +0 -10
  856. package/chip/public_api.d.ts +0 -3
  857. package/chips/chips.interface.d.ts +0 -58
  858. package/chips/chips.module.d.ts +0 -14
  859. package/chips/index.d.ts +0 -5
  860. package/chips/public_api.d.ts +0 -3
  861. package/colorpicker/colorpicker.d.ts +0 -240
  862. package/colorpicker/colorpicker.interface.d.ts +0 -15
  863. package/colorpicker/colorpicker.module.d.ts +0 -9
  864. package/colorpicker/public_api.d.ts +0 -3
  865. package/commentbox/commentbox.d.ts +0 -120
  866. package/commentbox/commentbox.module.d.ts +0 -17
  867. package/commentbox/public_api.d.ts +0 -2
  868. package/confirmdialog/confirmdialog.d.ts +0 -281
  869. package/confirmdialog/confirmdialog.interface.d.ts +0 -39
  870. package/confirmdialog/confirmdialog.module.d.ts +0 -15
  871. package/confirmdialog/public_api.d.ts +0 -3
  872. package/confirmpopup/confirmpopup.d.ts +0 -119
  873. package/confirmpopup/confirmpopup.interface.d.ts +0 -27
  874. package/confirmpopup/public_api.d.ts +0 -2
  875. package/contextmenu/contextmenu.d.ts +0 -260
  876. package/contextmenu/public_api.d.ts +0 -1
  877. package/dataview/dataview.d.ts +0 -274
  878. package/dataview/dataview.interface.d.ts +0 -183
  879. package/dataview/public_api.d.ts +0 -2
  880. package/defer/defer.d.ts +0 -39
  881. package/defer/public_api.d.ts +0 -1
  882. package/dialog/dialog.d.ts +0 -364
  883. package/dialog/dialog.interface.d.ts +0 -31
  884. package/dialog/dialog.module.d.ts +0 -15
  885. package/dialog/public_api.d.ts +0 -3
  886. package/divider/divider.d.ts +0 -49
  887. package/divider/divider.module.d.ts +0 -7
  888. package/divider/public_api.d.ts +0 -2
  889. package/dock/dock.d.ts +0 -115
  890. package/dock/dock.interface.d.ts +0 -19
  891. package/dock/public_api.d.ts +0 -2
  892. package/dom/connectedoverlayscrollhandler.d.ts +0 -9
  893. package/dom/domhandler.d.ts +0 -95
  894. package/dom/public_api.d.ts +0 -2
  895. package/dragdrop/dragdrop.d.ts +0 -112
  896. package/dragdrop/dragdrop.module.d.ts +0 -8
  897. package/dragdrop/public_api.d.ts +0 -2
  898. package/dropdown/dropdown-item.d.ts +0 -30
  899. package/dropdown/dropdown.d.ts +0 -628
  900. package/dropdown/dropdown.interface.d.ts +0 -154
  901. package/dropdown/dropdown.module.d.ts +0 -11
  902. package/dropdown/public_api.d.ts +0 -4
  903. package/dynamicdialog/dialogservice.d.ts +0 -35
  904. package/dynamicdialog/dynamicdialog-config.d.ts +0 -221
  905. package/dynamicdialog/dynamicdialog-injector.d.ts +0 -7
  906. package/dynamicdialog/dynamicdialog-ref.d.ts +0 -101
  907. package/dynamicdialog/dynamicdialog.d.ts +0 -124
  908. package/dynamicdialog/dynamicdialogcontent.d.ts +0 -8
  909. package/dynamicdialog/public_api.d.ts +0 -6
  910. package/editor/editor.d.ts +0 -104
  911. package/editor/editor.interface.d.ts +0 -64
  912. package/editor/editor.module.d.ts +0 -9
  913. package/editor/public_api.d.ts +0 -3
  914. package/fesm2022/cax-design-system-chips.mjs.map +0 -1
  915. package/fieldset/fieldset.d.ts +0 -93
  916. package/fieldset/fieldset.interface.d.ts +0 -46
  917. package/fieldset/public_api.d.ts +0 -2
  918. package/fileupload/fileupload.d.ts +0 -380
  919. package/fileupload/fileupload.interface.d.ts +0 -226
  920. package/fileupload/public_api.d.ts +0 -2
  921. package/floatlabel/floatlabel.d.ts +0 -9
  922. package/floatlabel/floatlabel.module.d.ts +0 -10
  923. package/floatlabel/public_api.d.ts +0 -2
  924. package/focustrap/focustrap.d.ts +0 -34
  925. package/focustrap/public_api.d.ts +0 -1
  926. package/galleria/galleria.d.ts +0 -404
  927. package/galleria/galleria.interface.d.ts +0 -97
  928. package/galleria/public_api.d.ts +0 -2
  929. package/iconfield/iconfield.d.ts +0 -25
  930. package/iconfield/public_api.d.ts +0 -1
  931. package/icons/angledoubledown/angledoubledown.d.ts +0 -6
  932. package/icons/angledoubledown/public_api.d.ts +0 -1
  933. package/icons/angledoubleleft/angledoubleleft.d.ts +0 -6
  934. package/icons/angledoubleleft/public_api.d.ts +0 -1
  935. package/icons/angledoubleright/angledoubleright.d.ts +0 -6
  936. package/icons/angledoubleright/public_api.d.ts +0 -1
  937. package/icons/angledoubleup/angledoubleup.d.ts +0 -6
  938. package/icons/angledoubleup/public_api.d.ts +0 -1
  939. package/icons/angledown/angledown.d.ts +0 -6
  940. package/icons/angledown/public_api.d.ts +0 -1
  941. package/icons/angleleft/angleleft.d.ts +0 -6
  942. package/icons/angleleft/public_api.d.ts +0 -1
  943. package/icons/angleright/angleright.d.ts +0 -6
  944. package/icons/angleright/public_api.d.ts +0 -1
  945. package/icons/angleup/angleup.d.ts +0 -6
  946. package/icons/angleup/public_api.d.ts +0 -1
  947. package/icons/arrowdown/arrowdown.d.ts +0 -9
  948. package/icons/arrowdown/public_api.d.ts +0 -1
  949. package/icons/arrowdownleft/arrowdownleft.d.ts +0 -6
  950. package/icons/arrowdownleft/public_api.d.ts +0 -1
  951. package/icons/arrowdownright/arrowdownright.d.ts +0 -6
  952. package/icons/arrowdownright/public_api.d.ts +0 -1
  953. package/icons/arrowleft/arrowleft.d.ts +0 -8
  954. package/icons/arrowleft/public_api.d.ts +0 -1
  955. package/icons/arrowright/arrowright.d.ts +0 -6
  956. package/icons/arrowright/public_api.d.ts +0 -1
  957. package/icons/arrowup/arrowup.d.ts +0 -8
  958. package/icons/arrowup/public_api.d.ts +0 -1
  959. package/icons/ban/ban.d.ts +0 -8
  960. package/icons/ban/public_api.d.ts +0 -1
  961. package/icons/bars/bars.d.ts +0 -6
  962. package/icons/bars/public_api.d.ts +0 -1
  963. package/icons/blank/blank.d.ts +0 -6
  964. package/icons/blank/public_api.d.ts +0 -1
  965. package/icons/calendar/calendar.d.ts +0 -6
  966. package/icons/calendar/public_api.d.ts +0 -1
  967. package/icons/caretleft/caretleft.d.ts +0 -6
  968. package/icons/caretleft/public_api.d.ts +0 -1
  969. package/icons/caretright/caretright.d.ts +0 -6
  970. package/icons/caretright/public_api.d.ts +0 -1
  971. package/icons/check/check.d.ts +0 -6
  972. package/icons/check/public_api.d.ts +0 -1
  973. package/icons/chevrondown/chevrondown.d.ts +0 -6
  974. package/icons/chevrondown/public_api.d.ts +0 -1
  975. package/icons/chevronleft/chevronleft.d.ts +0 -6
  976. package/icons/chevronleft/public_api.d.ts +0 -1
  977. package/icons/chevronright/chevronright.d.ts +0 -6
  978. package/icons/chevronright/public_api.d.ts +0 -1
  979. package/icons/chevronup/chevronup.d.ts +0 -6
  980. package/icons/chevronup/public_api.d.ts +0 -1
  981. package/icons/exclamationtriangle/exclamationtriangle.d.ts +0 -9
  982. package/icons/exclamationtriangle/public_api.d.ts +0 -1
  983. package/icons/eye/eye.d.ts +0 -6
  984. package/icons/eye/public_api.d.ts +0 -1
  985. package/icons/eyeslash/eyeslash.d.ts +0 -8
  986. package/icons/eyeslash/public_api.d.ts +0 -1
  987. package/icons/filter/filter.d.ts +0 -8
  988. package/icons/filter/public_api.d.ts +0 -1
  989. package/icons/filterslash/filterslash.d.ts +0 -8
  990. package/icons/filterslash/public_api.d.ts +0 -1
  991. package/icons/home/home.d.ts +0 -8
  992. package/icons/home/public_api.d.ts +0 -1
  993. package/icons/infocircle/infocircle.d.ts +0 -8
  994. package/icons/infocircle/public_api.d.ts +0 -1
  995. package/icons/minus/minus.d.ts +0 -6
  996. package/icons/minus/public_api.d.ts +0 -1
  997. package/icons/pencil/pencil.d.ts +0 -8
  998. package/icons/pencil/public_api.d.ts +0 -1
  999. package/icons/plus/plus.d.ts +0 -8
  1000. package/icons/plus/public_api.d.ts +0 -1
  1001. package/icons/refresh/public_api.d.ts +0 -1
  1002. package/icons/refresh/refresh.d.ts +0 -8
  1003. package/icons/search/public_api.d.ts +0 -1
  1004. package/icons/search/search.d.ts +0 -8
  1005. package/icons/searchminus/public_api.d.ts +0 -1
  1006. package/icons/searchminus/searchminus.d.ts +0 -8
  1007. package/icons/searchplus/public_api.d.ts +0 -1
  1008. package/icons/searchplus/searchplus.d.ts +0 -8
  1009. package/icons/sortalt/public_api.d.ts +0 -1
  1010. package/icons/sortalt/sortalt.d.ts +0 -8
  1011. package/icons/sortamountdown/public_api.d.ts +0 -1
  1012. package/icons/sortamountdown/sortamountdown.d.ts +0 -8
  1013. package/icons/sortamountupalt/public_api.d.ts +0 -1
  1014. package/icons/sortamountupalt/sortamountupalt.d.ts +0 -8
  1015. package/icons/spinner/public_api.d.ts +0 -1
  1016. package/icons/spinner/spinner.d.ts +0 -8
  1017. package/icons/star/public_api.d.ts +0 -1
  1018. package/icons/star/star.d.ts +0 -8
  1019. package/icons/starfill/public_api.d.ts +0 -1
  1020. package/icons/starfill/starfill.d.ts +0 -8
  1021. package/icons/thlarge/public_api.d.ts +0 -1
  1022. package/icons/thlarge/thlarge.d.ts +0 -8
  1023. package/icons/times/public_api.d.ts +0 -1
  1024. package/icons/times/times.d.ts +0 -6
  1025. package/icons/timescircle/public_api.d.ts +0 -1
  1026. package/icons/timescircle/timescircle.d.ts +0 -8
  1027. package/icons/trash/public_api.d.ts +0 -1
  1028. package/icons/trash/trash.d.ts +0 -8
  1029. package/icons/undo/public_api.d.ts +0 -1
  1030. package/icons/undo/undo.d.ts +0 -8
  1031. package/icons/upload/public_api.d.ts +0 -1
  1032. package/icons/upload/upload.d.ts +0 -8
  1033. package/icons/windowmaximize/public_api.d.ts +0 -1
  1034. package/icons/windowmaximize/windowmaximize.d.ts +0 -8
  1035. package/icons/windowminimize/public_api.d.ts +0 -1
  1036. package/icons/windowminimize/windowminimize.d.ts +0 -8
  1037. package/image/image.d.ts +0 -188
  1038. package/image/image.interface.d.ts +0 -31
  1039. package/image/image.module.d.ts +0 -8
  1040. package/image/public_api.d.ts +0 -3
  1041. package/inplace/inplace.d.ts +0 -109
  1042. package/inplace/inplace.interface.d.ts +0 -19
  1043. package/inplace/public_api.d.ts +0 -2
  1044. package/inputgroup/inputgroup.d.ts +0 -33
  1045. package/inputgroup/inputgroup.module.d.ts +0 -15
  1046. package/inputgroup/public_api.d.ts +0 -2
  1047. package/inputgroupaddon/inputgroupaddon.d.ts +0 -21
  1048. package/inputgroupaddon/inputgroupaddon.module.d.ts +0 -14
  1049. package/inputgroupaddon/public_api.d.ts +0 -2
  1050. package/inputicon/inputicon.d.ts +0 -21
  1051. package/inputicon/public_api.d.ts +0 -1
  1052. package/inputmask/inputmask.d.ts +0 -273
  1053. package/inputmask/inputmask.interface.d.ts +0 -19
  1054. package/inputmask/inputmask.module.d.ts +0 -12
  1055. package/inputmask/public_api.d.ts +0 -3
  1056. package/inputnumber/inputnumber.d.ts +0 -397
  1057. package/inputnumber/inputnumber.interface.d.ts +0 -38
  1058. package/inputnumber/inputnumber.module.d.ts +0 -8
  1059. package/inputnumber/public_api.d.ts +0 -3
  1060. package/inputotp/inputotp.d.ts +0 -123
  1061. package/inputotp/inputotp.interface.d.ts +0 -65
  1062. package/inputotp/public_api.d.ts +0 -2
  1063. package/inputswitch/inputswitch.d.ts +0 -106
  1064. package/inputswitch/inputswitch.interface.d.ts +0 -15
  1065. package/inputswitch/public_api.d.ts +0 -2
  1066. package/inputtext/inputtext.component.d.ts +0 -43
  1067. package/inputtext/inputtext.directive.d.ts +0 -25
  1068. package/inputtext/inputtext.module.d.ts +0 -10
  1069. package/inputtext/public_api.d.ts +0 -3
  1070. package/inputtextarea/inputtextarea.component.d.ts +0 -57
  1071. package/inputtextarea/inputtextarea.directive.d.ts +0 -47
  1072. package/inputtextarea/inputtextarea.module.d.ts +0 -10
  1073. package/inputtextarea/public_api.d.ts +0 -3
  1074. package/keyfilter/keyfilter.d.ts +0 -58
  1075. package/keyfilter/keyfilter.interface.d.ts +0 -5
  1076. package/keyfilter/public_api.d.ts +0 -2
  1077. package/knob/knob.d.ts +0 -178
  1078. package/knob/public_api.d.ts +0 -1
  1079. package/listbox/listbox.d.ts +0 -463
  1080. package/listbox/listbox.interface.d.ts +0 -156
  1081. package/listbox/public_api.d.ts +0 -2
  1082. package/logo/logo.d.ts +0 -11
  1083. package/logo/logo.module.d.ts +0 -7
  1084. package/logo/public_api.d.ts +0 -2
  1085. package/megamenu/megamenu.d.ts +0 -198
  1086. package/megamenu/megamenu.interface.d.ts +0 -31
  1087. package/megamenu/public_api.d.ts +0 -2
  1088. package/menu/menu.d.ts +0 -210
  1089. package/menu/menu.module.d.ts +0 -12
  1090. package/menu/public_api.d.ts +0 -2
  1091. package/menubar/menubar.d.ts +0 -248
  1092. package/menubar/menubar.interface.d.ts +0 -40
  1093. package/menubar/public_api.d.ts +0 -2
  1094. package/message/message.d.ts +0 -52
  1095. package/message/public_api.d.ts +0 -1
  1096. package/messages/messages.d.ts +0 -115
  1097. package/messages/messages.interface.d.ts +0 -18
  1098. package/messages/messages.module.d.ts +0 -8
  1099. package/messages/public_api.d.ts +0 -3
  1100. package/metergroup/metergroup.d.ts +0 -101
  1101. package/metergroup/metergroup.interface.d.ts +0 -122
  1102. package/metergroup/public_api.d.ts +0 -2
  1103. package/multiselect/multiselect.d.ts +0 -710
  1104. package/multiselect/multiselect.interface.d.ts +0 -247
  1105. package/multiselect/multiselect.module.d.ts +0 -20
  1106. package/multiselect/public_api.d.ts +0 -3
  1107. package/navigation/navigation.d.ts +0 -70
  1108. package/navigation/navigation.interface.d.ts +0 -26
  1109. package/navigation/navigation.module.d.ts +0 -7
  1110. package/navigation/public_api.d.ts +0 -2
  1111. package/orderlist/orderlist.d.ts +0 -270
  1112. package/orderlist/orderlist.interface.d.ts +0 -110
  1113. package/orderlist/public_api.d.ts +0 -2
  1114. package/organizationchart/organizationchart.d.ts +0 -132
  1115. package/organizationchart/organizationchart.interface.d.ts +0 -59
  1116. package/organizationchart/public_api.d.ts +0 -2
  1117. package/overlay/overlay.d.ts +0 -238
  1118. package/overlay/overlay.module.d.ts +0 -8
  1119. package/overlay/public_api.d.ts +0 -2
  1120. package/overlaypanel/overlaypanel.d.ts +0 -162
  1121. package/overlaypanel/overlaypanel.module.d.ts +0 -8
  1122. package/overlaypanel/public_api.d.ts +0 -2
  1123. package/paginator/paginator.d.ts +0 -195
  1124. package/paginator/paginator.interface.d.ts +0 -37
  1125. package/paginator/paginator.module.d.ts +0 -17
  1126. package/paginator/public_api.d.ts +0 -3
  1127. package/panel/panel.d.ts +0 -126
  1128. package/panel/panel.interface.d.ts +0 -58
  1129. package/panel/public_api.d.ts +0 -2
  1130. package/panelmenu/panelmenu.d.ts +0 -225
  1131. package/panelmenu/panelmenu.interface.d.ts +0 -23
  1132. package/panelmenu/public_api.d.ts +0 -2
  1133. package/password/password.d.ts +0 -342
  1134. package/password/public_api.d.ts +0 -1
  1135. package/picklist/picklist.d.ts +0 -453
  1136. package/picklist/picklist.interface.d.ts +0 -242
  1137. package/picklist/public_api.d.ts +0 -2
  1138. package/progressbar/progressbar.d.ts +0 -54
  1139. package/progressbar/progressbar.module.d.ts +0 -8
  1140. package/progressbar/public_api.d.ts +0 -2
  1141. package/progressspinner/progressspinner.d.ts +0 -50
  1142. package/progressspinner/progressspinner.module.d.ts +0 -8
  1143. package/progressspinner/public_api.d.ts +0 -2
  1144. package/public_api.d.ts +0 -2
  1145. package/radiobutton/public_api.d.ts +0 -3
  1146. package/radiobutton/radiobutton.d.ts +0 -150
  1147. package/radiobutton/radiobutton.interface.d.ts +0 -15
  1148. package/radiobutton/radiobutton.module.d.ts +0 -7
  1149. package/rating/public_api.d.ts +0 -2
  1150. package/rating/rating.d.ts +0 -146
  1151. package/rating/rating.interface.d.ts +0 -34
  1152. package/resources/components/listbox/listbox.css +0 -40
  1153. package/resources/styles/shadow-blur.scss +0 -22
  1154. package/resources/styles/space-radius-border.scss +0 -49
  1155. package/ripple/public_api.d.ts +0 -2
  1156. package/ripple/ripple.d.ts +0 -30
  1157. package/ripple/ripple.module.d.ts +0 -7
  1158. package/scroller/public_api.d.ts +0 -3
  1159. package/scroller/scroller.d.ts +0 -343
  1160. package/scroller/scroller.interface.d.ts +0 -177
  1161. package/scroller/scroller.module.d.ts +0 -8
  1162. package/scrollpanel/public_api.d.ts +0 -2
  1163. package/scrollpanel/scrollpanel.d.ts +0 -103
  1164. package/scrollpanel/scrollpanel.interface.d.ts +0 -11
  1165. package/scrolltop/public_api.d.ts +0 -2
  1166. package/scrolltop/scrolltop.d.ts +0 -97
  1167. package/scrolltop/scrolltop.interface.d.ts +0 -18
  1168. package/selectbutton/public_api.d.ts +0 -3
  1169. package/selectbutton/selectbutton.d.ts +0 -128
  1170. package/selectbutton/selectbutton.interface.d.ts +0 -45
  1171. package/selectbutton/selectbutton.module.d.ts +0 -11
  1172. package/sidebar/public_api.d.ts +0 -3
  1173. package/sidebar/sidebar.d.ts +0 -173
  1174. package/sidebar/sidebar.interface.d.ts +0 -27
  1175. package/sidebar/sidebar.module.d.ts +0 -12
  1176. package/skeleton/public_api.d.ts +0 -2
  1177. package/skeleton/skeleton.d.ts +0 -61
  1178. package/skeleton/skeleton.module.d.ts +0 -8
  1179. package/slidemenu/public_api.d.ts +0 -2
  1180. package/slidemenu/slidemenu.d.ts +0 -322
  1181. package/slidemenu/slidemenu.interface.d.ts +0 -15
  1182. package/slider/public_api.d.ts +0 -2
  1183. package/slider/slider.d.ts +0 -174
  1184. package/slider/slider.interface.d.ts +0 -38
  1185. package/speeddial/public_api.d.ts +0 -3
  1186. package/speeddial/speeddial.d.ts +0 -277
  1187. package/speeddial/speeddial.interface.d.ts +0 -28
  1188. package/speeddial/speeddial.module.d.ts +0 -14
  1189. package/spinner/public_api.d.ts +0 -1
  1190. package/spinner/spinner.d.ts +0 -90
  1191. package/splitbutton/public_api.d.ts +0 -3
  1192. package/splitbutton/splitbutton.d.ts +0 -222
  1193. package/splitbutton/splitbutton.interface.d.ts +0 -30
  1194. package/splitbutton/splitbutton.module.d.ts +0 -13
  1195. package/splitter/public_api.d.ts +0 -3
  1196. package/splitter/splitter.d.ts +0 -158
  1197. package/splitter/splitter.interface.d.ts +0 -34
  1198. package/splitter/splitter.module.d.ts +0 -9
  1199. package/stepper/public_api.d.ts +0 -2
  1200. package/stepper/stepper.d.ts +0 -117
  1201. package/stepper/stepper.interface.d.ts +0 -26
  1202. package/steps/public_api.d.ts +0 -2
  1203. package/steps/steps.d.ts +0 -77
  1204. package/steps/steps.module.d.ts +0 -10
  1205. package/styleclass/public_api.d.ts +0 -1
  1206. package/styleclass/styleclass.d.ts +0 -108
  1207. package/table/columnfilter.interface.d.ts +0 -247
  1208. package/table/components/cell-editor/cell-editor.d.ts +0 -20
  1209. package/table/components/column-filter/column-filter.d.ts +0 -291
  1210. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +0 -37
  1211. package/table/components/sort-icon/sort-icon.d.ts +0 -22
  1212. package/table/components/table-body/table-body.d.ts +0 -36
  1213. package/table/components/table-checkbox/table-checkbox.d.ts +0 -32
  1214. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +0 -29
  1215. package/table/components/table-radio-button/table-radio-button.d.ts +0 -29
  1216. package/table/directives/cancel-editable-row.directive.d.ts +0 -11
  1217. package/table/directives/cell-highlight.directive.d.ts +0 -14
  1218. package/table/directives/content-menu-row.directive.d.ts +0 -22
  1219. package/table/directives/dynamic-column-width.directive.d.ts +0 -12
  1220. package/table/directives/editable-column.directive.d.ts +0 -40
  1221. package/table/directives/editable-row.directive.d.ts +0 -12
  1222. package/table/directives/frozen-column.directive.d.ts +0 -16
  1223. package/table/directives/init-editable-row.directive.d.ts +0 -11
  1224. package/table/directives/reorderable-column.directive.d.ts +0 -32
  1225. package/table/directives/reorderable-row-handle.directive.d.ts +0 -9
  1226. package/table/directives/reorderable-row.directive.d.ts +0 -34
  1227. package/table/directives/resizable-column.directive.d.ts +0 -35
  1228. package/table/directives/row-group-header.directive.d.ts +0 -9
  1229. package/table/directives/row-toggler.directive.d.ts +0 -13
  1230. package/table/directives/save-editable-row.directive.d.ts +0 -11
  1231. package/table/directives/selectable-row-double-click.directive.d.ts +0 -22
  1232. package/table/directives/selectable-row.directive.d.ts +0 -37
  1233. package/table/directives/sortable-column.directive.d.ts +0 -24
  1234. package/table/public_api.d.ts +0 -30
  1235. package/table/table.d.ts +0 -871
  1236. package/table/table.interface.d.ts +0 -623
  1237. package/table/table.module.d.ts +0 -34
  1238. package/table/table.service.d.ts +0 -24
  1239. package/tableconfiguration/public_api.d.ts +0 -2
  1240. package/tableconfiguration/tableconfiguration.d.ts +0 -16
  1241. package/tableconfiguration/tableconfiguration.module.d.ts +0 -7
  1242. package/tabmenu/public_api.d.ts +0 -2
  1243. package/tabmenu/tabmenu.d.ts +0 -126
  1244. package/tabmenu/tabmenu.interface.d.ts +0 -32
  1245. package/tabview/public_api.d.ts +0 -3
  1246. package/tabview/tabview.d.ts +0 -293
  1247. package/tabview/tabview.interface.d.ts +0 -49
  1248. package/tabview/tabview.module.d.ts +0 -15
  1249. package/tag/public_api.d.ts +0 -3
  1250. package/tag/tag.d.ts +0 -61
  1251. package/tag/tag.interface.d.ts +0 -11
  1252. package/tag/tag.module.d.ts +0 -9
  1253. package/terminal/public_api.d.ts +0 -2
  1254. package/terminal/terminal.d.ts +0 -56
  1255. package/terminal/terminalservice.d.ts +0 -11
  1256. package/tieredmenu/public_api.d.ts +0 -3
  1257. package/tieredmenu/tieredmenu.d.ts +0 -266
  1258. package/tieredmenu/tieredmenu.interface.d.ts +0 -27
  1259. package/tieredmenu/tiredmenu.module.d.ts +0 -13
  1260. package/timeline/public_api.d.ts +0 -3
  1261. package/timeline/timeline.d.ts +0 -47
  1262. package/timeline/timeline.interface.d.ts +0 -43
  1263. package/timeline/timeline.module.d.ts +0 -9
  1264. package/toast/public_api.d.ts +0 -3
  1265. package/toast/toast.d.ts +0 -142
  1266. package/toast/toast.interface.d.ts +0 -52
  1267. package/toast/toast.module.d.ts +0 -9
  1268. package/toast/toastitem.d.ts +0 -37
  1269. package/togglebutton/public_api.d.ts +0 -2
  1270. package/togglebutton/togglebutton.d.ts +0 -115
  1271. package/togglebutton/togglebutton.interface.d.ts +0 -34
  1272. package/toggleswitch/public_api.d.ts +0 -2
  1273. package/toggleswitch/toggleswitch.d.ts +0 -14
  1274. package/toggleswitch/toggleswitch.module.d.ts +0 -9
  1275. package/toolbar/public_api.d.ts +0 -2
  1276. package/toolbar/toolbar.d.ts +0 -43
  1277. package/toolbar/toolbar.interface.d.ts +0 -19
  1278. package/tooltip/public_api.d.ts +0 -2
  1279. package/tooltip/tooltip.d.ts +0 -208
  1280. package/tooltip/tooltip.module.d.ts +0 -10
  1281. package/tree/public_api.d.ts +0 -3
  1282. package/tree/tree.d.ts +0 -461
  1283. package/tree/tree.interface.d.ts +0 -193
  1284. package/tree/tree.module.d.ts +0 -21
  1285. package/treeselect/public_api.d.ts +0 -3
  1286. package/treeselect/treeselect.d.ts +0 -394
  1287. package/treeselect/treeselect.interface.d.ts +0 -108
  1288. package/treeselect/treeselect.module.d.ts +0 -16
  1289. package/treetable/public_api.d.ts +0 -2
  1290. package/treetable/treetable.d.ts +0 -988
  1291. package/treetable/treetable.interface.d.ts +0 -472
  1292. package/tristatecheckbox/public_api.d.ts +0 -3
  1293. package/tristatecheckbox/tristatecheckbox.d.ts +0 -117
  1294. package/tristatecheckbox/tristatecheckbox.interface.d.ts +0 -30
  1295. package/tristatecheckbox/tristatecheckbox.module.d.ts +0 -8
  1296. package/ts-helpers/public_api.d.ts +0 -1
  1297. package/ts-helpers/ts-helpers.d.ts +0 -4
  1298. package/upload/public_api.d.ts +0 -2
  1299. package/upload/upload.component.d.ts +0 -67
  1300. package/upload/upload.component.module.d.ts +0 -11
  1301. package/utils/objectutils.d.ts +0 -24
  1302. package/utils/public_api.d.ts +0 -4
  1303. package/utils/uniquecomponentid.d.ts +0 -2
  1304. package/utils/zindexutils.d.ts +0 -7
  1305. package/virtualscroller/public_api.d.ts +0 -2
  1306. package/virtualscroller/virtualscroller.d.ts +0 -89
  1307. package/virtualscroller/virtualscroller.interface.d.ts +0 -72
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-tree.mjs","sources":["../../src/app/components/tree/tree.ts","../../src/app/components/tree/treenode.html","../../src/app/components/tree/tree.html","../../src/app/components/tree/tree.module.ts","../../src/app/components/tree/cax-design-system-tree.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { BlockableUI, caxConfig, CaxTemplate, ScrollerOptions, TranslationKeys, TreeDragDropService, TreeNode } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { Scroller } from 'cax-design-system/scroller';\nimport { ObjectUtils } from 'cax-design-system/utils';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport {\n TreeFilterEvent,\n TreeLazyLoadEvent,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent\n} from './tree.interface';\n\n@Component({\n selector: 'cax-treeNode',\n templateUrl: './treenode.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class UITreeNode implements OnInit {\n static ICON_CLASS: string = 'cax-treenode-icon ';\n\n @Input() rightIcon: boolean = false;\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode<any> | undefined;\n\n @Input() parentNode: TreeNode<any> | undefined;\n\n @Input() nodeActionButton: string | undefined;\n\n @Input() actionButtonMode: 'hover' | 'select' | undefined = 'hover';\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input({ transform: booleanAttribute }) firstChild: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) lastChild: boolean | undefined;\n\n @Input({ transform: numberAttribute }) level: number | undefined;\n\n @Input({ transform: numberAttribute }) indentation: number | undefined;\n\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n\n @Input() loadingMode: string;\n\n @Output() onNodeActionClick: EventEmitter<any> = new EventEmitter<any>();\n\n tree: Tree;\n\n timeout: any;\n\n draghoverPrev: boolean | undefined;\n\n draghoverNext: boolean | undefined;\n\n draghoverNode: boolean | undefined;\n\n get ariaSelected() {\n return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.isSelected() : undefined;\n }\n\n get ariaChecked() {\n return this.tree.selectionMode === 'checkbox' ? this.isSelected() : undefined;\n }\n\n constructor(@Inject(forwardRef(() => Tree)) tree: Tree) {\n this.tree = tree as Tree;\n }\n\n ngOnInit() {\n (<TreeNode>this.node).parent = this.parentNode;\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('cax-dialog');\n\n if (this.parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node, <TreeNode<any>[]>this.tree.value, 'parent', this.tree.getNodeWithKey(<string>this.parentNode.key, <TreeNode<any>[]>this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).icon) icon = (<TreeNode>this.node).icon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n getRightIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).rightIcon) icon = (<TreeNode>this.node).rightIcon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n\n onNodeAction(event: Event, node: TreeNode) {\n this.onNodeActionClick.emit({ originalEvent: event, node: node });\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node);\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node).expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node).expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(<TreeNode>this.node);\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n onDropPoint(event: DragEvent, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? position === 1 || dragNodeIndex !== <number>this.index - 1 : true;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = { ...this.createDropPointEventMetadata(<number>position) };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n } else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event: any) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = event.dragNodeSubNodes === newNodeList ? (event.dragNodeIndex > event.index ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n } else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position: number) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n if (position < 0) this.draghoverPrev = true;\n else this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event: any) {\n if (this.tree.draggableNodes && (<TreeNode>this.node).draggable !== false) {\n event.dataTransfer.setData('text', 'data');\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n } else {\n event.preventDefault();\n }\n }\n\n onDragStop(event: any) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n let dropParams = { ...this.createDropNodeEventMetadata() };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n } else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event: any) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children) event.dropNode.children.push(event.dragNode);\n else event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event: any) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!this.isSameNode(event) || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n\n //space\n case 'Space':\n const nodeName = event.target instanceof HTMLElement && event.target.nodeName;\n if (!['INPUT'].includes(nodeName)) {\n this.onEnter(event);\n }\n break;\n\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.parentElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement.parentElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node)) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level === 0 && !this.node?.expanded) {\n return false;\n }\n\n if (this.node?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement.parentElement);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n isActionableElement(event) {\n const target = event.target;\n\n const isActionable = target instanceof HTMLElement && (target.nodeName == 'A' || target.nodeName == 'BUTTON');\n\n return isActionable;\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n\n if (!this.isActionableElement(event)) {\n event.preventDefault();\n }\n }\n\n setAllNodesTabIndexes() {\n const nodes = DomHandler.find(this.tree.el.nativeElement, '.cax-treenode');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode !== null) {\n const elements = [...DomHandler.find(this.tree.el.nativeElement, '.cax-treenode')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el) => DomHandler.hasClass(el, 'cax-treenode'));\n const childrenListElement = listElement.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n if (this.tree.droppableNodes) (element.children[1] as HTMLElement).focus();\n else (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = DomHandler.findSingle(document.body, `[data-id=\"${<TreeNode>this.node?.key ?? <TreeNode>this.node?.data}\"]`);\n DomHandler.focus(node);\n }, 1);\n }\n}\n\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'cax-tree',\n templateUrl: './tree.html',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.scss'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class Tree implements OnInit, AfterContentInit, OnChanges, OnDestroy, BlockableUI {\n @Input() rightIcon: boolean = false;\n /**\n * An array of treenodes.\n * @group Props\n */\n @Input() value: TreeNode<any> | TreeNode<any>[] | any[] | any;\n /**\n * Defines the selection mode.\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'checkbox' | null | undefined;\n\n @Input() allowUnselect: boolean = true;\n /**\n * Loading mode display.\n * @group Props\n */\n @Input() loadingMode: 'mask' | 'icon' = 'mask';\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n @Input() selection: any;\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 * Context menu instance.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Defines the orientation of the tree, valid values are 'vertical' and 'horizontal'.\n * @group Props\n */\n @Input() layout: string = 'vertical';\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n @Input() draggableScope: any;\n /**\n * Scope of the droppable nodes to match a draggableScope.\n * @group Props\n */\n @Input() droppableScope: any;\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) draggableNodes: boolean | undefined;\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) droppableNodes: boolean | undefined;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionUp: boolean = true;\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionDown: boolean = true;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Text to display when there is no data.\n * @group Props\n */\n @Input() emptyMessage: string = '';\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n @Input() togglerAriaLabel: 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 * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) validateDrop: boolean | undefined;\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) filter: boolean | undefined;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n @Input() filterBy: string = 'label';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n @Input() filterPlaceholder: string = 'Default Placeholder';\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n @Input() filteredNodes: TreeNode<any>[] | undefined | null;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) indentation: number = 1.5;\n /**\n * Custom templates of the component.\n * @group Props\n */\n @Input() _templateMap: any;\n\n @Input() nodeActionButton: string | undefined;\n\n @Input() actionButtonMode: 'hover' | 'select' | undefined = 'hover';\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Height of the node.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n _virtualNodeHeight: number | undefined;\n @Input() get virtualNodeHeight(): number | undefined {\n return this._virtualNodeHeight;\n }\n set virtualNodeHeight(val: number | undefined) {\n this._virtualNodeHeight = val;\n console.warn('The virtualNodeHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * Callback to invoke on selection change.\n * @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeNode<any> | TreeNode<any>[] | null> = new EventEmitter<TreeNode<any> | TreeNode<any>[] | null>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeNodeSelectEvent> = new EventEmitter<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeNodeUnSelectEvent> = new EventEmitter<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeNodeExpandEvent> = new EventEmitter<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeNodeCollapseEvent> = new EventEmitter<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n @Output() onNodeContextMenuSelect: EventEmitter<TreeNodeContextMenuSelectEvent> = new EventEmitter<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n @Output() onNodeDrop: EventEmitter<TreeNodeDropEvent> = new EventEmitter<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeLazyLoadEvent> = new EventEmitter<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<TreeScrollEvent> = new EventEmitter<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<TreeScrollIndexChangeEvent> = new EventEmitter<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeFilterEvent> = new EventEmitter<TreeFilterEvent>();\n\n @Output() onNodeActionClick: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(CaxTemplate) templates: Nullable<QueryList<any>>;\n\n @ViewChild('filter') filterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n loaderTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n filterIconTemplate: Nullable<TemplateRef<any>>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n constructor(\n public el: ElementRef,\n @Optional() public dragDropService: TreeDragDropService,\n public config: caxConfig,\n private cd: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild.nativeElement.value);\n }\n }\n }\n\n onNodeAction(event: Event, node: TreeNode) {\n this.onNodeActionClick.emit({ originalEvent: event, node: node });\n }\n\n get horizontal(): boolean {\n return this.layout == 'horizontal';\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n ngAfterContentInit() {\n if ((this.templates as QueryList<CaxTemplate>).length) {\n this._templateMap = {};\n }\n\n (this.templates as QueryList<CaxTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'empty':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n\n default:\n this._templateMap[<any>item.name] = item.template;\n break;\n }\n });\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n if (DomHandler.hasClass(eventTarget, 'cax-tree-toggler') || DomHandler.hasClass(eventTarget, 'cax-tree-toggler-icon')) {\n return;\n } else if (this.selectionMode) {\n if (node.selectable === false) {\n node.style = '--cax-focus-ring-color: none;';\n return;\n } else {\n node.style = '--cax-focus-ring-color: var(--primary-color)';\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown) this.propagateDown(node, false);\n else this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown) this.propagateDown(node, true);\n else this.selection = [...(this.selection || []), node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n } else {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(<TreeNode>node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = !metaKey ? [] : this.selection || [];\n this.selection = [...this.selection, node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n if (this.allowUnselect) {\n this.selection = null;\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = node;\n }\n } else {\n this.selection = node;\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = [...(this.selection || []), node];\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu) {\n let eventTarget = <Element>event.target;\n let className = eventTarget.getAttribute('class');\n\n if (className && className.includes('cax-tree-toggler')) {\n return;\n } else {\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) this.selectionChange.emit(node);\n else this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n hasFilterActive() {\n return this.filter && this.filterViewChild?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...(this.selection || []), node];\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1 && node.selectable !== false) {\n this.selection = [...(this.selection || []), this.filterUnselectableChildren(node)];\n } else if (!select && index > -1) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n filterUnselectableChildren(node: TreeNode): TreeNode {\n let clonedNode = Object.assign({}, node);\n\n if (clonedNode.children && clonedNode.children.length) {\n for (let child of clonedNode.children) {\n if (child.selectable === false) {\n clonedNode.children = clonedNode.children.filter((val: TreeNode) => val != child);\n }\n child = this.filterUnselectableChildren(child);\n }\n }\n\n return clonedNode;\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap) return node.type ? this._templateMap[node.type] : this._templateMap['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n (<any>event).dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value = this.value || [];\n\n if (this.validateDrop) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes = null;\n } else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for (let node of <TreeNode<any>[]>this.value) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes = null;\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll && this.scroller?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n}\n","<ng-template [ngIf]=\"node\">\r\n <li\r\n *ngIf=\"tree.droppableNodes\"\r\n class=\"cax-treenode-droppoint\"\r\n [attr.aria-hidden]=\"true\"\r\n [ngClass]=\"{ 'cax-treenode-droppoint-active': draghoverPrev }\"\r\n (drop)=\"onDropPoint($event, -1)\"\r\n (dragover)=\"onDropPointDragOver($event)\"\r\n (dragenter)=\"onDropPointDragEnter($event, -1)\"\r\n (dragleave)=\"onDropPointDragLeave($event)\"\r\n ></li>\r\n <cax-skeleton *ngIf=\"node.loading\" width=\"100%\" height=\"48px\" borderRadius=\"12px\" />\r\n <li\r\n *ngIf=\"!tree.horizontal && !node.loading\"\r\n [ngClass]=\"['cax-treenode', node.styleClass || '', isLeaf() ? 'cax-treenode-leaf' : '']\"\r\n [ngStyle]=\"{ height: itemSize + 'px' }\"\r\n [style]=\"node.style\"\r\n [attr.aria-label]=\"node.label\"\r\n [attr.aria-checked]=\"ariaChecked\"\r\n [attr.aria-setsize]=\"node.children ? node.children.length : 0\"\r\n [attr.aria-selected]=\"ariaSelected\"\r\n [attr.aria-expanded]=\"node.expanded\"\r\n [attr.aria-posinset]=\"index + 1\"\r\n [attr.aria-level]=\"level + 1\"\r\n [attr.tabindex]=\"index === 0 ? 0 : -1\"\r\n [attr.data-id]=\"node.key\"\r\n role=\"treeitem\"\r\n (keydown)=\"onKeyDown($event)\"\r\n >\r\n <div\r\n class=\"cax-treenode-content\"\r\n [ngStyle]=\"{\r\n 'padding-left': level * indentation + 'rem'\r\n }\"\r\n (click)=\"onNodeClick($event)\"\r\n (contextmenu)=\"onNodeRightClick($event)\"\r\n (touchend)=\"onNodeTouchEnd()\"\r\n (drop)=\"onDropNode($event)\"\r\n (dragover)=\"onDropNodeDragOver($event)\"\r\n (dragenter)=\"onDropNodeDragEnter($event)\"\r\n (dragleave)=\"onDropNodeDragLeave($event)\"\r\n [draggable]=\"tree.draggableNodes\"\r\n (dragstart)=\"onDragStart($event)\"\r\n (dragend)=\"onDragStop($event)\"\r\n [ngClass]=\"{ 'cax-treenode-selectable': tree.selectionMode && node.selectable !== false, 'cax-treenode-dragover': draghoverNode, 'cax-highlight': isSelected() }\"\r\n >\r\n <button *ngIf=\"!node.leaf\" [disabled]=\"isLeaf()\" type=\"button\" [attr.data-pc-section]=\"'toggler'\" class=\"cax-tree-toggler cax-link\" (click)=\"toggle($event)\" caxRipple tabindex=\"-1\">\r\n <ng-container *ngIf=\"!tree.togglerIconTemplate\">\r\n <ng-container *ngIf=\"!node.loading\">\r\n <ChevronRightIcon *ngIf=\"!node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" />\r\n <ChevronDownIcon *ngIf=\"node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"loadingMode === 'icon' && node.loading\">\r\n <SpinnerIcon [spin]=\"true\" [styleClass]=\"'cax-tree-node-toggler-icon'\" />\r\n </ng-container>\r\n </ng-container>\r\n <span *ngIf=\"tree.togglerIconTemplate\" class=\"cax-tree-toggler-icon\">\r\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\r\n </span>\r\n </button>\r\n <div\r\n class=\"cax-checkbox cax-component\"\r\n [ngClass]=\"{ 'cax-checkbox-disabled cax-disabled': node.selectable === false, 'cax-variant-filled': tree?.config.inputStyle() === 'filled' }\"\r\n *ngIf=\"tree.selectionMode == 'checkbox'\"\r\n aria-hidden=\"true\"\r\n >\r\n <div class=\"cax-checkbox-box\" [ngClass]=\"{ 'cax-highlight': isSelected(), 'cax-indeterminate': node.partialSelected }\" role=\"checkbox\">\r\n <ng-container *ngIf=\"!tree.checkboxIconTemplate\">\r\n <CheckIcon *ngIf=\"!node.partialSelected && isSelected()\" [styleClass]=\"'cax-checkbox-icon'\" />\r\n <MinusIcon *ngIf=\"node.partialSelected\" [styleClass]=\"'cax-checkbox-icon'\" />\r\n </ng-container>\r\n <ng-template *ngTemplateOutlet=\"tree.checkboxIconTemplate; context: { $implicit: isSelected(), partialSelected: node.partialSelected }\"></ng-template>\r\n </div>\r\n </div>\r\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\r\n <span class=\"cax-treenode-label\">\r\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\r\n <span *ngIf=\"tree.getTemplateForNode(node)\">\r\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\r\n </span>\r\n </span>\r\n <span style=\"margin-left: 0.5rem\" [class]=\"getRightIcon()\" *ngIf=\"(node.rightIcon || node.expandedIcon || node.collapsedIcon)\"></span>\r\n <div class=\"cax-tree-action-container\">\r\n <span class=\"cax-tree-badge\" *ngIf=\"node.badge > -1\">\r\n <cax-badge [severity]=\"'secondary'\" [value]=\"node.badge\"></cax-badge>\r\n </span>\r\n <cax-button\r\n *ngIf=\"!node.hideActionButton && nodeActionButton?.length\"\r\n class=\"cax-tree-button\"\r\n [ngClass]=\"{'cax-tree-button-hover': actionButtonMode === 'hover', 'cax-tree-button-select': actionButtonMode === 'select'}\"\r\n [label]=\"nodeActionButton\"\r\n [severity]=\"'primary'\"\r\n [outlined]=\"true\"\r\n [rounded]=\"true\"\r\n (onClick)=\"onNodeAction($event, node)\"\r\n ></cax-button>\r\n </div>\r\n </div>\r\n <ul\r\n class=\"cax-treenode-children\"\r\n [ngStyle]=\"{\r\n display: node.expanded ? 'block' : 'none'\r\n }\"\r\n *ngIf=\"!tree.virtualScroll && node.children && node.expanded\"\r\n role=\"group\"\r\n >\r\n <cax-treeNode\r\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; let index = index; trackBy: tree.trackBy\"\r\n [node]=\"childNode\"\r\n [parentNode]=\"node\"\r\n [firstChild]=\"firstChild\"\r\n [lastChild]=\"lastChild\"\r\n [index]=\"index\"\r\n [itemSize]=\"itemSize\"\r\n [level]=\"level + 1\"\r\n [loadingMode]=\"loadingMode\"\r\n [nodeActionButton]=\"nodeActionButton\"\r\n [actionButtonMode]=\"actionButtonMode\"\r\n (onNodeActionClick)=\"onNodeAction($event, childNode)\"\r\n ></cax-treeNode>\r\n </ul>\r\n </li>\r\n\r\n <li\r\n *ngIf=\"tree.droppableNodes && lastChild\"\r\n class=\"cax-treenode-droppoint\"\r\n [ngClass]=\"{ 'cax-treenode-droppoint-active': draghoverNext }\"\r\n (drop)=\"onDropPoint($event, 1)\"\r\n [attr.aria-hidden]=\"true\"\r\n (dragover)=\"onDropPointDragOver($event)\"\r\n (dragenter)=\"onDropPointDragEnter($event, 1)\"\r\n (dragleave)=\"onDropPointDragLeave($event)\"\r\n ></li>\r\n\r\n <table *ngIf=\"tree.horizontal\" [class]=\"node.styleClass\">\r\n <tbody>\r\n <tr>\r\n <td class=\"cax-treenode-connector\" *ngIf=\"!root\">\r\n <table class=\"cax-treenode-connector-table\">\r\n <tbody>\r\n <tr>\r\n <td [ngClass]=\"{ 'cax-treenode-connector-line': !firstChild }\"></td>\r\n </tr>\r\n <tr>\r\n <td [ngClass]=\"{ 'cax-treenode-connector-line': !lastChild }\"></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </td>\r\n <td class=\"cax-treenode\" [ngClass]=\"{ 'cax-treenode-collapsed': !node.expanded }\">\r\n <div\r\n class=\"cax-treenode-content\"\r\n tabindex=\"0\"\r\n [ngClass]=\"{ 'cax-treenode-selectable': tree.selectionMode, 'cax-highlight': isSelected() }\"\r\n (click)=\"onNodeClick($event)\"\r\n (contextmenu)=\"onNodeRightClick($event)\"\r\n (touchend)=\"onNodeTouchEnd()\"\r\n (keydown)=\"onNodeKeydown($event)\"\r\n >\r\n <span *ngIf=\"!isLeaf()\" [ngClass]=\"'cax-tree-toggler'\" (click)=\"toggle($event)\">\r\n <ng-container *ngIf=\"!tree.togglerIconTemplate\">\r\n <PlusIcon *ngIf=\"!node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" [ariaLabel]=\"tree.togglerAriaLabel\" />\r\n <MinusIcon *ngIf=\"node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" [ariaLabel]=\"tree.togglerAriaLabel\" />\r\n </ng-container>\r\n <span *ngIf=\"tree.togglerIconTemplate\" class=\"cax-tree-toggler-icon\">\r\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\r\n </span>\r\n </span>\r\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\r\n <span class=\"cax-treenode-label\">\r\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\r\n <span *ngIf=\"tree.getTemplateForNode(node)\">\r\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </td>\r\n <td\r\n class=\"cax-treenode-children-container\"\r\n *ngIf=\"node.children && node.expanded\"\r\n [ngStyle]=\"{\r\n display: node.expanded ? 'table-cell' : 'none'\r\n }\"\r\n >\r\n <div class=\"cax-treenode-children\">\r\n <cax-treeNode\r\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; trackBy: tree.trackBy\"\r\n [nodeActionButton]=\"nodeActionButton\"\r\n [actionButtonMode]=\"actionButtonMode\"\r\n [node]=\"childNode\"\r\n [firstChild]=\"firstChild\"\r\n [lastChild]=\"lastChild\"\r\n (onNodeActionClick)=\"onNodeAction($event, childNode)\"\r\n ></cax-treeNode>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n","<div\r\n [ngClass]=\"{ 'cax-tree cax-component': true, 'cax-tree-selectable': selectionMode, 'cax-treenode-dragover': dragHover, 'cax-tree-loading': loading, 'cax-tree-flex-scrollable': scrollHeight === 'flex' }\"\r\n [ngStyle]=\"style\"\r\n [class]=\"styleClass\"\r\n *ngIf=\"!horizontal\"\r\n (drop)=\"onDrop($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragenter)=\"onDragEnter()\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n>\r\n <div class=\"cax-tree-loading-overlay cax-component-overlay\" *ngIf=\"loading && loadingMode === 'mask'\">\r\n <i *ngIf=\"loadingIcon\" [class]=\"'cax-tree-loading-icon pi-spin ' + loadingIcon\"></i>\r\n <ng-container *ngIf=\"!loadingIcon\">\r\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'cax-tree-loading-icon'\" />\r\n <span *ngIf=\"loadingIconTemplate\" class=\"cax-tree-loading-icon\">\r\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div *ngIf=\"filter\" class=\"cax-tree-filter-container\">\r\n <input #filter type=\"search\" autocomplete=\"off\" class=\"cax-tree-filter cax-inputtext cax-component\" [attr.placeholder]=\"filterPlaceholder\" (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event.target.value)\" />\r\n <SearchIcon *ngIf=\"!filterIconTemplate\" [styleClass]=\"'cax-tree-filter-icon'\" />\r\n <span *ngIf=\"filterIconTemplate\" class=\"cax-tree-filter-icon\">\r\n <ng-template *ngTemplateOutlet=\"filterIconTemplate\"></ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"getRootNode()?.length\">\r\n <cax-scroller\r\n #scroller\r\n *ngIf=\"virtualScroll\"\r\n [items]=\"serializedValue\"\r\n [tabindex]=\"-1\"\r\n styleClass=\"cax-tree-wrapper\"\r\n [style]=\"{ height: scrollHeight !== 'flex' ? scrollHeight : undefined }\"\r\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\r\n [itemSize]=\"virtualScrollItemSize || _virtualNodeHeight\"\r\n [lazy]=\"lazy\"\r\n (onScroll)=\"onScroll.emit($event)\"\r\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\r\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\r\n [options]=\"virtualScrollOptions\"\r\n >\r\n <ng-template caxTemplate=\"content\" let-items let-scrollerOptions=\"options\">\r\n <ul *ngIf=\"items\" class=\"cax-tree-container\" [ngClass]=\"scrollerOptions.contentStyleClass\" [style]=\"scrollerOptions.contentStyle\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\r\n <cax-treeNode\r\n #treeNode\r\n *ngFor=\"let rowNode of items; let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\r\n [level]=\"rowNode.level\"\r\n [rowNode]=\"rowNode\"\r\n [rightIcon]=\"rightIcon\"\r\n [nodeActionButton]=\"nodeActionButton\"\r\n [actionButtonMode]=\"actionButtonMode\"\r\n [node]=\"rowNode.node\"\r\n [parentNode]=\"rowNode.parent\"\r\n [firstChild]=\"firstChild\"\r\n [lastChild]=\"lastChild\"\r\n [index]=\"getIndex(scrollerOptions, index)\"\r\n [itemSize]=\"scrollerOptions.itemSize\"\r\n [indentation]=\"indentation\"\r\n [loadingMode]=\"loadingMode\"\r\n (onNodeActionClick)=\"onNodeAction($event, node)\"\r\n ></cax-treeNode>\r\n </ul>\r\n </ng-template>\r\n <ng-container *ngIf=\"loaderTemplate\">\r\n <ng-template caxTemplate=\"loader\" let-scrollerOptions=\"options\">\r\n <ng-container *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </cax-scroller>\r\n <ng-container *ngIf=\"!virtualScroll\">\r\n <div #wrapper class=\"cax-tree-wrapper\" [ngStyle]=\"{ 'max-height': scrollHeight }\">\r\n <ul class=\"cax-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\r\n <cax-treeNode\r\n *ngFor=\"let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\r\n [node]=\"node\"\r\n [firstChild]=\"firstChild\"\r\n [lastChild]=\"lastChild\"\r\n [rightIcon]=\"rightIcon\"\r\n [nodeActionButton]=\"nodeActionButton\"\r\n [actionButtonMode]=\"actionButtonMode\"\r\n [index]=\"index\"\r\n [level]=\"0\"\r\n [loadingMode]=\"loadingMode\"\r\n (onNodeActionClick)=\"onNodeAction($event, node)\"\r\n ></cax-treeNode>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div class=\"cax-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\r\n <ng-container *ngIf=\"!emptyMessageTemplate; else emptyFilter\"> {{ emptyMessageLabel }} </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate\"></ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n</div>\r\n<div [ngClass]=\"{ 'cax-tree cax-tree-horizontal cax-component': true, 'cax-tree-selectable': selectionMode }\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"horizontal\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <div class=\"cax-tree-loading-mask cax-component-overlay\" *ngIf=\"loading\">\r\n <i *ngIf=\"loadingIcon\" [class]=\"'cax-tree-loading-icon pi-spin ' + loadingIcon\"></i>\r\n <ng-container *ngIf=\"!loadingIcon\">\r\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'cax-tree-loading-icon'\" />\r\n <span *ngIf=\"loadingIconTemplate\" class=\"cax-tree-loading-icon\">\r\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <table *ngIf=\"value && value[0]\">\r\n <cax-treeNode [node]=\"value[0]\" [root]=\"true\" [rightIcon]=\"rightIcon\" [nodeActionButton]=\"nodeActionButton\" [actionButtonMode]=\"actionButtonMode\" (onNodeActionClick)=\"onNodeAction($event, node)\"></cax-treeNode>\r\n </table>\r\n <div class=\"cax-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\r\n <ng-container *ngIf=\"!emptyMessageTemplate; else emptyFilter\"> {{ emptyMessageLabel }} </ng-container>\r\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate\"></ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';\nimport { ChevronRightIcon } from 'cax-design-system/icons/chevronright';\nimport { MinusIcon } from 'cax-design-system/icons/minus';\nimport { PlusIcon } from 'cax-design-system/icons/plus';\nimport { SearchIcon } from 'cax-design-system/icons/search';\nimport { SpinnerIcon } from 'cax-design-system/icons/spinner';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { ScrollerModule } from 'cax-design-system/scroller';\nimport { Tree, UITreeNode } from './tree';\nimport { BadgeModule } from 'cax-design-system/badge';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { SkeletonModule } from 'cax-design-system/skeleton';\n\n@NgModule({\n imports: [CommonModule, SharedModule, RippleModule, ScrollerModule, CheckIcon, ChevronDownIcon, ChevronRightIcon, MinusIcon, SearchIcon, SpinnerIcon, PlusIcon, BadgeModule, ButtonModule, SkeletonModule],\n exports: [Tree, UITreeNode, SharedModule, ScrollerModule],\n declarations: [Tree, UITreeNode]\n})\nexport class TreeModule {}\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-tree.mjs","sources":["../../src/app/components/tree/tree.ts","../../src/app/components/tree/treenode.html","../../src/app/components/tree/tree.html","../../src/app/components/tree/tree.module.ts","../../src/app/components/tree/cax-design-system-tree.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { BlockableUI, caxConfig, CaxTemplate, ScrollerOptions, TranslationKeys, TreeDragDropService, TreeNode } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { Scroller } from 'cax-design-system/scroller';\nimport { ObjectUtils } from 'cax-design-system/utils';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport {\n TreeFilterEvent,\n TreeLazyLoadEvent,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent\n} from './tree.interface';\n\n@Component({\n selector: 'cax-treeNode',\n templateUrl: './treenode.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class UITreeNode implements OnInit {\n static ICON_CLASS: string = 'cax-treenode-icon ';\n\n @Input() rightIcon: boolean = false;\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode<any> | undefined;\n\n @Input() parentNode: TreeNode<any> | undefined;\n\n @Input() nodeActionButton: string | undefined;\n\n @Input() actionButtonMode: 'hover' | 'select' | undefined = 'hover';\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input({ transform: booleanAttribute }) firstChild: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) lastChild: boolean | undefined;\n\n @Input({ transform: numberAttribute }) level: number | undefined;\n\n @Input({ transform: numberAttribute }) indentation: number | undefined;\n\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n\n @Input() loadingMode: string;\n\n @Output() onNodeActionClick: EventEmitter<any> = new EventEmitter<any>();\n\n tree: Tree;\n\n timeout: any;\n\n draghoverPrev: boolean | undefined;\n\n draghoverNext: boolean | undefined;\n\n draghoverNode: boolean | undefined;\n\n get ariaSelected() {\n return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.isSelected() : undefined;\n }\n\n get ariaChecked() {\n return this.tree.selectionMode === 'checkbox' ? this.isSelected() : undefined;\n }\n\n constructor(@Inject(forwardRef(() => Tree)) tree: Tree) {\n this.tree = tree as Tree;\n }\n\n ngOnInit() {\n (<TreeNode>this.node).parent = this.parentNode;\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('cax-dialog');\n\n if (this.parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node, <TreeNode<any>[]>this.tree.value, 'parent', this.tree.getNodeWithKey(<string>this.parentNode.key, <TreeNode<any>[]>this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).icon) icon = (<TreeNode>this.node).icon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n getRightIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).rightIcon) icon = (<TreeNode>this.node).rightIcon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n\n onNodeAction(event: Event, node: TreeNode) {\n this.onNodeActionClick.emit({ originalEvent: event, node: node });\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node);\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node).expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node).expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(<TreeNode>this.node);\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n onDropPoint(event: DragEvent, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? position === 1 || dragNodeIndex !== <number>this.index - 1 : true;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = { ...this.createDropPointEventMetadata(<number>position) };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n } else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event: any) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = event.dragNodeSubNodes === newNodeList ? (event.dragNodeIndex > event.index ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n } else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position: number) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n if (position < 0) this.draghoverPrev = true;\n else this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event: any) {\n if (this.tree.draggableNodes && (<TreeNode>this.node).draggable !== false) {\n event.dataTransfer.setData('text', 'data');\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n } else {\n event.preventDefault();\n }\n }\n\n onDragStop(event: any) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n let dropParams = { ...this.createDropNodeEventMetadata() };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n } else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event: any) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children) event.dropNode.children.push(event.dragNode);\n else event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event: any) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!this.isSameNode(event) || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n\n //space\n case 'Space':\n const nodeName = event.target instanceof HTMLElement && event.target.nodeName;\n if (!['INPUT'].includes(nodeName)) {\n this.onEnter(event);\n }\n break;\n\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.parentElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement.parentElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node)) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level === 0 && !this.node?.expanded) {\n return false;\n }\n\n if (this.node?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement.parentElement);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n isActionableElement(event) {\n const target = event.target;\n\n const isActionable = target instanceof HTMLElement && (target.nodeName == 'A' || target.nodeName == 'BUTTON');\n\n return isActionable;\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n\n if (!this.isActionableElement(event)) {\n event.preventDefault();\n }\n }\n\n setAllNodesTabIndexes() {\n const nodes = DomHandler.find(this.tree.el.nativeElement, '.cax-treenode');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n [...nodes][0].tabIndex = 0;\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode !== null) {\n const elements = [...DomHandler.find(this.tree.el.nativeElement, '.cax-treenode')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el) => DomHandler.hasClass(el, 'cax-treenode'));\n const childrenListElement = listElement.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n if (this.tree.droppableNodes) (element.children[1] as HTMLElement).focus();\n else (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = DomHandler.findSingle(document.body, `[data-id=\"${<TreeNode>this.node?.key ?? <TreeNode>this.node?.data}\"]`);\n DomHandler.focus(node);\n }, 1);\n }\n}\n\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'cax-tree',\n templateUrl: './tree.html',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.scss'],\n standalone: false,\n host: {\n class: 'cax-element'\n }\n})\nexport class Tree implements OnInit, AfterContentInit, OnChanges, OnDestroy, BlockableUI {\n @Input() rightIcon: boolean = false;\n /**\n * An array of treenodes.\n * @group Props\n */\n @Input() value: TreeNode<any> | TreeNode<any>[] | any[] | any;\n /**\n * Defines the selection mode.\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'checkbox' | null | undefined;\n\n @Input() allowUnselect: boolean = true;\n /**\n * Loading mode display.\n * @group Props\n */\n @Input() loadingMode: 'mask' | 'icon' = 'mask';\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n @Input() selection: any;\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 * Context menu instance.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Defines the orientation of the tree, valid values are 'vertical' and 'horizontal'.\n * @group Props\n */\n @Input() layout: string = 'vertical';\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n @Input() draggableScope: any;\n /**\n * Scope of the droppable nodes to match a draggableScope.\n * @group Props\n */\n @Input() droppableScope: any;\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) draggableNodes: boolean | undefined;\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) droppableNodes: boolean | undefined;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionUp: boolean = true;\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionDown: boolean = true;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Text to display when there is no data.\n * @group Props\n */\n @Input() emptyMessage: string = '';\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n @Input() togglerAriaLabel: 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 * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) validateDrop: boolean | undefined;\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) filter: boolean | undefined;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n @Input() filterBy: string = 'label';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n @Input() filterPlaceholder: string = 'Default Placeholder';\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n @Input() filteredNodes: TreeNode<any>[] | undefined | null;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) indentation: number = 1.5;\n /**\n * Custom templates of the component.\n * @group Props\n */\n @Input() _templateMap: any;\n\n @Input() nodeActionButton: string | undefined;\n\n @Input() actionButtonMode: 'hover' | 'select' | undefined = 'hover';\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Height of the node.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n _virtualNodeHeight: number | undefined;\n @Input() get virtualNodeHeight(): number | undefined {\n return this._virtualNodeHeight;\n }\n set virtualNodeHeight(val: number | undefined) {\n this._virtualNodeHeight = val;\n console.warn('The virtualNodeHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * Callback to invoke on selection change.\n * @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeNode<any> | TreeNode<any>[] | null> = new EventEmitter<TreeNode<any> | TreeNode<any>[] | null>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeNodeSelectEvent> = new EventEmitter<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeNodeUnSelectEvent> = new EventEmitter<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeNodeExpandEvent> = new EventEmitter<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeNodeCollapseEvent> = new EventEmitter<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n @Output() onNodeContextMenuSelect: EventEmitter<TreeNodeContextMenuSelectEvent> = new EventEmitter<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n @Output() onNodeDrop: EventEmitter<TreeNodeDropEvent> = new EventEmitter<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeLazyLoadEvent> = new EventEmitter<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<TreeScrollEvent> = new EventEmitter<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<TreeScrollIndexChangeEvent> = new EventEmitter<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeFilterEvent> = new EventEmitter<TreeFilterEvent>();\n\n @Output() onNodeActionClick: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(CaxTemplate) templates: Nullable<QueryList<any>>;\n\n @ViewChild('filter') filterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n loaderTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n filterIconTemplate: Nullable<TemplateRef<any>>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n constructor(\n public el: ElementRef,\n @Optional() public dragDropService: TreeDragDropService,\n public config: caxConfig,\n private cd: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild.nativeElement.value);\n }\n }\n }\n\n onNodeAction(event: Event, node: TreeNode) {\n this.onNodeActionClick.emit({ originalEvent: event, node: node });\n }\n\n get horizontal(): boolean {\n return this.layout == 'horizontal';\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n ngAfterContentInit() {\n if ((this.templates as QueryList<CaxTemplate>).length) {\n this._templateMap = {};\n }\n\n (this.templates as QueryList<CaxTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'empty':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n\n default:\n this._templateMap[<any>item.name] = item.template;\n break;\n }\n });\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n if (DomHandler.hasClass(eventTarget, 'cax-tree-toggler') || DomHandler.hasClass(eventTarget, 'cax-tree-toggler-icon')) {\n return;\n } else if (this.selectionMode) {\n if (node.selectable === false) {\n node.style = '--cax-focus-ring-color: none;';\n return;\n } else {\n node.style = '--cax-focus-ring-color: var(--primary-color)';\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown) this.propagateDown(node, false);\n else this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown) this.propagateDown(node, true);\n else this.selection = [...(this.selection || []), node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n } else {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(<TreeNode>node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = !metaKey ? [] : this.selection || [];\n this.selection = [...this.selection, node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n if (this.allowUnselect) {\n this.selection = null;\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = node;\n }\n } else {\n this.selection = node;\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = [...(this.selection || []), node];\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu) {\n let eventTarget = <Element>event.target;\n let className = eventTarget.getAttribute('class');\n\n if (className && className.includes('cax-tree-toggler')) {\n return;\n } else {\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) this.selectionChange.emit(node);\n else this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n hasFilterActive() {\n return this.filter && this.filterViewChild?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...(this.selection || []), node];\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1 && node.selectable !== false) {\n this.selection = [...(this.selection || []), this.filterUnselectableChildren(node)];\n } else if (!select && index > -1) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n filterUnselectableChildren(node: TreeNode): TreeNode {\n let clonedNode = Object.assign({}, node);\n\n if (clonedNode.children && clonedNode.children.length) {\n for (let child of clonedNode.children) {\n if (child.selectable === false) {\n clonedNode.children = clonedNode.children.filter((val: TreeNode) => val != child);\n }\n child = this.filterUnselectableChildren(child);\n }\n }\n\n return clonedNode;\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap) return node.type ? this._templateMap[node.type] : this._templateMap['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n (<any>event).dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value = this.value || [];\n\n if (this.validateDrop) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes = null;\n } else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for (let node of <TreeNode<any>[]>this.value) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes = null;\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll && this.scroller?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n}\n","<ng-template [ngIf]=\"node\">\n <li\n *ngIf=\"tree.droppableNodes\"\n class=\"cax-treenode-droppoint\"\n [attr.aria-hidden]=\"true\"\n [ngClass]=\"{ 'cax-treenode-droppoint-active': draghoverPrev }\"\n (drop)=\"onDropPoint($event, -1)\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, -1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n <cax-skeleton *ngIf=\"node.loading\" width=\"100%\" height=\"48px\" borderRadius=\"12px\" />\n <li\n *ngIf=\"!tree.horizontal && !node.loading\"\n [ngClass]=\"['cax-treenode', node.styleClass || '', isLeaf() ? 'cax-treenode-leaf' : '']\"\n [ngStyle]=\"{ height: itemSize + 'px' }\"\n [style]=\"node.style\"\n [attr.aria-label]=\"node.label\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-setsize]=\"node.children ? node.children.length : 0\"\n [attr.aria-selected]=\"ariaSelected\"\n [attr.aria-expanded]=\"node.expanded\"\n [attr.aria-posinset]=\"index + 1\"\n [attr.aria-level]=\"level + 1\"\n [attr.tabindex]=\"index === 0 ? 0 : -1\"\n [attr.data-id]=\"node.key\"\n role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div\n class=\"cax-treenode-content\"\n [ngStyle]=\"{\n 'padding-left': level * indentation + 'rem'\n }\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onDropNode($event)\"\n (dragover)=\"onDropNodeDragOver($event)\"\n (dragenter)=\"onDropNodeDragEnter($event)\"\n (dragleave)=\"onDropNodeDragLeave($event)\"\n [draggable]=\"tree.draggableNodes\"\n (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragStop($event)\"\n [ngClass]=\"{ 'cax-treenode-selectable': tree.selectionMode && node.selectable !== false, 'cax-treenode-dragover': draghoverNode, 'cax-highlight': isSelected() }\"\n >\n <button *ngIf=\"!node.leaf\" [disabled]=\"isLeaf()\" type=\"button\" [attr.data-pc-section]=\"'toggler'\" class=\"cax-tree-toggler cax-link\" (click)=\"toggle($event)\" caxRipple tabindex=\"-1\">\n <ng-container *ngIf=\"!tree.togglerIconTemplate\">\n <ng-container *ngIf=\"!node.loading\">\n <ChevronRightIcon *ngIf=\"!node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" />\n <ChevronDownIcon *ngIf=\"node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" />\n </ng-container>\n <ng-container *ngIf=\"loadingMode === 'icon' && node.loading\">\n <SpinnerIcon [spin]=\"true\" [styleClass]=\"'cax-tree-node-toggler-icon'\" />\n </ng-container>\n </ng-container>\n <span *ngIf=\"tree.togglerIconTemplate\" class=\"cax-tree-toggler-icon\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\n </span>\n </button>\n <div\n class=\"cax-checkbox cax-component\"\n [ngClass]=\"{ 'cax-checkbox-disabled cax-disabled': node.selectable === false, 'cax-variant-filled': tree?.config.inputStyle() === 'filled' }\"\n *ngIf=\"tree.selectionMode == 'checkbox'\"\n aria-hidden=\"true\"\n >\n <div class=\"cax-checkbox-box\" [ngClass]=\"{ 'cax-highlight': isSelected(), 'cax-indeterminate': node.partialSelected }\" role=\"checkbox\">\n <ng-container *ngIf=\"!tree.checkboxIconTemplate\">\n <CheckIcon *ngIf=\"!node.partialSelected && isSelected()\" [styleClass]=\"'cax-checkbox-icon'\" />\n <MinusIcon *ngIf=\"node.partialSelected\" [styleClass]=\"'cax-checkbox-icon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"tree.checkboxIconTemplate; context: { $implicit: isSelected(), partialSelected: node.partialSelected }\"></ng-template>\n </div>\n </div>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\n <span class=\"cax-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\n </span>\n </span>\n <span style=\"margin-left: 0.5rem\" [class]=\"getRightIcon()\" *ngIf=\"(node.rightIcon || node.expandedIcon || node.collapsedIcon)\"></span>\n <div class=\"cax-tree-action-container\">\n <span class=\"cax-tree-badge\" *ngIf=\"node.badge > -1\">\n <cax-badge [severity]=\"'secondary'\" [value]=\"node.badge\"></cax-badge>\n </span>\n <cax-button\n *ngIf=\"!node.hideActionButton && nodeActionButton?.length\"\n class=\"cax-tree-button\"\n [ngClass]=\"{'cax-tree-button-hover': actionButtonMode === 'hover', 'cax-tree-button-select': actionButtonMode === 'select'}\"\n [label]=\"nodeActionButton\"\n [severity]=\"'primary'\"\n [outlined]=\"true\"\n [rounded]=\"true\"\n (onClick)=\"onNodeAction($event, node)\"\n ></cax-button>\n </div>\n </div>\n <ul\n class=\"cax-treenode-children\"\n [ngStyle]=\"{\n display: node.expanded ? 'block' : 'none'\n }\"\n *ngIf=\"!tree.virtualScroll && node.children && node.expanded\"\n role=\"group\"\n >\n <cax-treeNode\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; let index = index; trackBy: tree.trackBy\"\n [node]=\"childNode\"\n [parentNode]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [itemSize]=\"itemSize\"\n [level]=\"level + 1\"\n [loadingMode]=\"loadingMode\"\n [nodeActionButton]=\"nodeActionButton\"\n [actionButtonMode]=\"actionButtonMode\"\n (onNodeActionClick)=\"onNodeAction($event, childNode)\"\n ></cax-treeNode>\n </ul>\n </li>\n\n <li\n *ngIf=\"tree.droppableNodes && lastChild\"\n class=\"cax-treenode-droppoint\"\n [ngClass]=\"{ 'cax-treenode-droppoint-active': draghoverNext }\"\n (drop)=\"onDropPoint($event, 1)\"\n [attr.aria-hidden]=\"true\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, 1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n\n <table *ngIf=\"tree.horizontal\" [class]=\"node.styleClass\">\n <tbody>\n <tr>\n <td class=\"cax-treenode-connector\" *ngIf=\"!root\">\n <table class=\"cax-treenode-connector-table\">\n <tbody>\n <tr>\n <td [ngClass]=\"{ 'cax-treenode-connector-line': !firstChild }\"></td>\n </tr>\n <tr>\n <td [ngClass]=\"{ 'cax-treenode-connector-line': !lastChild }\"></td>\n </tr>\n </tbody>\n </table>\n </td>\n <td class=\"cax-treenode\" [ngClass]=\"{ 'cax-treenode-collapsed': !node.expanded }\">\n <div\n class=\"cax-treenode-content\"\n tabindex=\"0\"\n [ngClass]=\"{ 'cax-treenode-selectable': tree.selectionMode, 'cax-highlight': isSelected() }\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (keydown)=\"onNodeKeydown($event)\"\n >\n <span *ngIf=\"!isLeaf()\" [ngClass]=\"'cax-tree-toggler'\" (click)=\"toggle($event)\">\n <ng-container *ngIf=\"!tree.togglerIconTemplate\">\n <PlusIcon *ngIf=\"!node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" [ariaLabel]=\"tree.togglerAriaLabel\" />\n <MinusIcon *ngIf=\"node.expanded\" [styleClass]=\"'cax-tree-toggler-icon'\" [ariaLabel]=\"tree.togglerAriaLabel\" />\n </ng-container>\n <span *ngIf=\"tree.togglerIconTemplate\" class=\"cax-tree-toggler-icon\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\n </span>\n </span>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\n <span class=\"cax-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\n </span>\n </span>\n </div>\n </td>\n <td\n class=\"cax-treenode-children-container\"\n *ngIf=\"node.children && node.expanded\"\n [ngStyle]=\"{\n display: node.expanded ? 'table-cell' : 'none'\n }\"\n >\n <div class=\"cax-treenode-children\">\n <cax-treeNode\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; trackBy: tree.trackBy\"\n [nodeActionButton]=\"nodeActionButton\"\n [actionButtonMode]=\"actionButtonMode\"\n [node]=\"childNode\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n (onNodeActionClick)=\"onNodeAction($event, childNode)\"\n ></cax-treeNode>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</ng-template>\n","<div\n [ngClass]=\"{ 'cax-tree cax-component': true, 'cax-tree-selectable': selectionMode, 'cax-treenode-dragover': dragHover, 'cax-tree-loading': loading, 'cax-tree-flex-scrollable': scrollHeight === 'flex' }\"\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n *ngIf=\"!horizontal\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave($event)\"\n>\n <div class=\"cax-tree-loading-overlay cax-component-overlay\" *ngIf=\"loading && loadingMode === 'mask'\">\n <i *ngIf=\"loadingIcon\" [class]=\"'cax-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'cax-tree-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate\" class=\"cax-tree-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <div *ngIf=\"filter\" class=\"cax-tree-filter-container\">\n <input #filter type=\"search\" autocomplete=\"off\" class=\"cax-tree-filter cax-inputtext cax-component\" [attr.placeholder]=\"filterPlaceholder\" (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event.target.value)\" />\n <SearchIcon *ngIf=\"!filterIconTemplate\" [styleClass]=\"'cax-tree-filter-icon'\" />\n <span *ngIf=\"filterIconTemplate\" class=\"cax-tree-filter-icon\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate\"></ng-template>\n </span>\n </div>\n <ng-container *ngIf=\"getRootNode()?.length\">\n <cax-scroller\n #scroller\n *ngIf=\"virtualScroll\"\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n styleClass=\"cax-tree-wrapper\"\n [style]=\"{ height: scrollHeight !== 'flex' ? scrollHeight : undefined }\"\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize || _virtualNodeHeight\"\n [lazy]=\"lazy\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions\"\n >\n <ng-template caxTemplate=\"content\" let-items let-scrollerOptions=\"options\">\n <ul *ngIf=\"items\" class=\"cax-tree-container\" [ngClass]=\"scrollerOptions.contentStyleClass\" [style]=\"scrollerOptions.contentStyle\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <cax-treeNode\n #treeNode\n *ngFor=\"let rowNode of items; let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\n [rightIcon]=\"rightIcon\"\n [nodeActionButton]=\"nodeActionButton\"\n [actionButtonMode]=\"actionButtonMode\"\n [node]=\"rowNode.node\"\n [parentNode]=\"rowNode.parent\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"getIndex(scrollerOptions, index)\"\n [itemSize]=\"scrollerOptions.itemSize\"\n [indentation]=\"indentation\"\n [loadingMode]=\"loadingMode\"\n (onNodeActionClick)=\"onNodeAction($event, node)\"\n ></cax-treeNode>\n </ul>\n </ng-template>\n <ng-container *ngIf=\"loaderTemplate\">\n <ng-template caxTemplate=\"loader\" let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </cax-scroller>\n <ng-container *ngIf=\"!virtualScroll\">\n <div #wrapper class=\"cax-tree-wrapper\" [ngStyle]=\"{ 'max-height': scrollHeight }\">\n <ul class=\"cax-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <cax-treeNode\n *ngFor=\"let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [rightIcon]=\"rightIcon\"\n [nodeActionButton]=\"nodeActionButton\"\n [actionButtonMode]=\"actionButtonMode\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode\"\n (onNodeActionClick)=\"onNodeAction($event, node)\"\n ></cax-treeNode>\n </ul>\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"cax-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\n <ng-container *ngIf=\"!emptyMessageTemplate; else emptyFilter\"> {{ emptyMessageLabel }} </ng-container>\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n</div>\n<div [ngClass]=\"{ 'cax-tree cax-tree-horizontal cax-component': true, 'cax-tree-selectable': selectionMode }\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"horizontal\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <div class=\"cax-tree-loading-mask cax-component-overlay\" *ngIf=\"loading\">\n <i *ngIf=\"loadingIcon\" [class]=\"'cax-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'cax-tree-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate\" class=\"cax-tree-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <table *ngIf=\"value && value[0]\">\n <cax-treeNode [node]=\"value[0]\" [root]=\"true\" [rightIcon]=\"rightIcon\" [nodeActionButton]=\"nodeActionButton\" [actionButtonMode]=\"actionButtonMode\" (onNodeActionClick)=\"onNodeAction($event, node)\"></cax-treeNode>\n </table>\n <div class=\"cax-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\n <ng-container *ngIf=\"!emptyMessageTemplate; else emptyFilter\"> {{ emptyMessageLabel }} </ng-container>\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { CheckIcon } from 'cax-design-system/icons/check';\nimport { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';\nimport { ChevronRightIcon } from 'cax-design-system/icons/chevronright';\nimport { MinusIcon } from 'cax-design-system/icons/minus';\nimport { PlusIcon } from 'cax-design-system/icons/plus';\nimport { SearchIcon } from 'cax-design-system/icons/search';\nimport { SpinnerIcon } from 'cax-design-system/icons/spinner';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { ScrollerModule } from 'cax-design-system/scroller';\nimport { Tree, UITreeNode } from './tree';\nimport { BadgeModule } from 'cax-design-system/badge';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { SkeletonModule } from 'cax-design-system/skeleton';\n\n@NgModule({\n imports: [CommonModule, SharedModule, RippleModule, ScrollerModule, CheckIcon, ChevronDownIcon, ChevronRightIcon, MinusIcon, SearchIcon, SpinnerIcon, PlusIcon, BadgeModule, ButtonModule, SkeletonModule],\n exports: [Tree, UITreeNode, SharedModule, ScrollerModule],\n declarations: [Tree, UITreeNode]\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}