@gravionlabs/helix-core 22.1.1 → 22.1.3

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 (820) hide show
  1. package/fesm2022/gravionlabs-helix-core-accordion.mjs +994 -541
  2. package/fesm2022/gravionlabs-helix-core-accordion.mjs.map +1 -1
  3. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs +265 -166
  4. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs.map +1 -1
  5. package/fesm2022/gravionlabs-helix-core-api.mjs +926 -836
  6. package/fesm2022/gravionlabs-helix-core-api.mjs.map +1 -1
  7. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs +2603 -1611
  8. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs.map +1 -1
  9. package/fesm2022/gravionlabs-helix-core-autofocus.mjs +115 -79
  10. package/fesm2022/gravionlabs-helix-core-autofocus.mjs.map +1 -1
  11. package/fesm2022/gravionlabs-helix-core-avatar.mjs +356 -180
  12. package/fesm2022/gravionlabs-helix-core-avatar.mjs.map +1 -1
  13. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs +200 -84
  14. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs.map +1 -1
  15. package/fesm2022/gravionlabs-helix-core-badge.mjs +671 -390
  16. package/fesm2022/gravionlabs-helix-core-badge.mjs.map +1 -1
  17. package/fesm2022/gravionlabs-helix-core-base.mjs +113 -103
  18. package/fesm2022/gravionlabs-helix-core-base.mjs.map +1 -1
  19. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs +498 -444
  20. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs.map +1 -1
  21. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs +131 -69
  22. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs.map +1 -1
  23. package/fesm2022/gravionlabs-helix-core-baseinput.mjs +210 -94
  24. package/fesm2022/gravionlabs-helix-core-baseinput.mjs.map +1 -1
  25. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs +39 -26
  26. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs.map +1 -1
  27. package/fesm2022/gravionlabs-helix-core-bind.mjs +136 -98
  28. package/fesm2022/gravionlabs-helix-core-bind.mjs.map +1 -1
  29. package/fesm2022/gravionlabs-helix-core-blockui.mjs +390 -224
  30. package/fesm2022/gravionlabs-helix-core-blockui.mjs.map +1 -1
  31. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs +473 -212
  32. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/gravionlabs-helix-core-button.mjs +1739 -825
  34. package/fesm2022/gravionlabs-helix-core-button.mjs.map +1 -1
  35. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs +116 -64
  36. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs.map +1 -1
  37. package/fesm2022/gravionlabs-helix-core-card.mjs +454 -205
  38. package/fesm2022/gravionlabs-helix-core-card.mjs.map +1 -1
  39. package/fesm2022/gravionlabs-helix-core-carousel.mjs +1238 -898
  40. package/fesm2022/gravionlabs-helix-core-carousel.mjs.map +1 -1
  41. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs +2373 -1337
  42. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs.map +1 -1
  43. package/fesm2022/gravionlabs-helix-core-chart.mjs +407 -214
  44. package/fesm2022/gravionlabs-helix-core-chart.mjs.map +1 -1
  45. package/fesm2022/gravionlabs-helix-core-checkbox.mjs +704 -346
  46. package/fesm2022/gravionlabs-helix-core-checkbox.mjs.map +1 -1
  47. package/fesm2022/gravionlabs-helix-core-chip.mjs +489 -251
  48. package/fesm2022/gravionlabs-helix-core-chip.mjs.map +1 -1
  49. package/fesm2022/gravionlabs-helix-core-classnames.mjs +95 -48
  50. package/fesm2022/gravionlabs-helix-core-classnames.mjs.map +1 -1
  51. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs +975 -667
  52. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs.map +1 -1
  53. package/fesm2022/gravionlabs-helix-core-config.mjs +395 -306
  54. package/fesm2022/gravionlabs-helix-core-config.mjs.map +1 -1
  55. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs +1222 -546
  56. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs.map +1 -1
  57. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs +878 -524
  58. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs.map +1 -1
  59. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs +1917 -1031
  60. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs.map +1 -1
  61. package/fesm2022/gravionlabs-helix-core-dataview.mjs +1075 -522
  62. package/fesm2022/gravionlabs-helix-core-dataview.mjs.map +1 -1
  63. package/fesm2022/gravionlabs-helix-core-datepicker.mjs +3797 -3313
  64. package/fesm2022/gravionlabs-helix-core-datepicker.mjs.map +1 -1
  65. package/fesm2022/gravionlabs-helix-core-dialog.mjs +1852 -1047
  66. package/fesm2022/gravionlabs-helix-core-dialog.mjs.map +1 -1
  67. package/fesm2022/gravionlabs-helix-core-divider.mjs +288 -136
  68. package/fesm2022/gravionlabs-helix-core-divider.mjs.map +1 -1
  69. package/fesm2022/gravionlabs-helix-core-dock.mjs +655 -387
  70. package/fesm2022/gravionlabs-helix-core-dock.mjs.map +1 -1
  71. package/fesm2022/gravionlabs-helix-core-dom.mjs +589 -760
  72. package/fesm2022/gravionlabs-helix-core-dom.mjs.map +1 -1
  73. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs +457 -302
  74. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs.map +1 -1
  75. package/fesm2022/gravionlabs-helix-core-drawer.mjs +986 -507
  76. package/fesm2022/gravionlabs-helix-core-drawer.mjs.map +1 -1
  77. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs +849 -923
  78. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs.map +1 -1
  79. package/fesm2022/gravionlabs-helix-core-editor.mjs +578 -383
  80. package/fesm2022/gravionlabs-helix-core-editor.mjs.map +1 -1
  81. package/fesm2022/gravionlabs-helix-core-fieldset.mjs +593 -280
  82. package/fesm2022/gravionlabs-helix-core-fieldset.mjs.map +1 -1
  83. package/fesm2022/gravionlabs-helix-core-fileupload.mjs +1882 -994
  84. package/fesm2022/gravionlabs-helix-core-fileupload.mjs.map +1 -1
  85. package/fesm2022/gravionlabs-helix-core-firsterror.mjs +41 -23
  86. package/fesm2022/gravionlabs-helix-core-firsterror.mjs.map +1 -1
  87. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs +197 -94
  88. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs.map +1 -1
  89. package/fesm2022/gravionlabs-helix-core-fluid.mjs +149 -74
  90. package/fesm2022/gravionlabs-helix-core-fluid.mjs.map +1 -1
  91. package/fesm2022/gravionlabs-helix-core-focustrap.mjs +141 -104
  92. package/fesm2022/gravionlabs-helix-core-focustrap.mjs.map +1 -1
  93. package/fesm2022/gravionlabs-helix-core-galleria.mjs +2800 -1449
  94. package/fesm2022/gravionlabs-helix-core-galleria.mjs.map +1 -1
  95. package/fesm2022/gravionlabs-helix-core-iconfield.mjs +214 -98
  96. package/fesm2022/gravionlabs-helix-core-iconfield.mjs.map +1 -1
  97. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs +43 -24
  98. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs.map +1 -1
  99. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs +43 -24
  100. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs.map +1 -1
  101. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs +43 -24
  102. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs.map +1 -1
  103. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs +43 -24
  104. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs.map +1 -1
  105. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs +43 -24
  106. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs.map +1 -1
  107. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs +43 -24
  108. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs.map +1 -1
  109. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs +43 -24
  110. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs.map +1 -1
  111. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs +43 -24
  112. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs.map +1 -1
  113. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs +48 -29
  114. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs.map +1 -1
  115. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs +43 -24
  116. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs.map +1 -1
  117. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs +43 -24
  118. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs.map +1 -1
  119. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs +48 -29
  120. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs.map +1 -1
  121. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs +43 -24
  122. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs.map +1 -1
  123. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs +48 -29
  124. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs.map +1 -1
  125. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs +48 -29
  126. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs.map +1 -1
  127. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs +43 -24
  128. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs.map +1 -1
  129. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs +120 -64
  130. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs.map +1 -1
  131. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs +42 -23
  132. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs.map +1 -1
  133. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs +43 -24
  134. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs.map +1 -1
  135. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs +43 -24
  136. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs.map +1 -1
  137. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs +43 -24
  138. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs.map +1 -1
  139. package/fesm2022/gravionlabs-helix-core-icons-check.mjs +43 -24
  140. package/fesm2022/gravionlabs-helix-core-icons-check.mjs.map +1 -1
  141. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs +43 -24
  142. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs.map +1 -1
  143. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs +43 -24
  144. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs.map +1 -1
  145. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs +43 -24
  146. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs.map +1 -1
  147. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs +43 -24
  148. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs.map +1 -1
  149. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs +48 -29
  150. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs.map +1 -1
  151. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs +43 -24
  152. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs.map +1 -1
  153. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs +48 -29
  154. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs.map +1 -1
  155. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs +48 -29
  156. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs.map +1 -1
  157. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs +43 -24
  158. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs.map +1 -1
  159. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs +48 -29
  160. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs.map +1 -1
  161. package/fesm2022/gravionlabs-helix-core-icons-home.mjs +48 -29
  162. package/fesm2022/gravionlabs-helix-core-icons-home.mjs.map +1 -1
  163. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs +48 -29
  164. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs.map +1 -1
  165. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs +43 -24
  166. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs.map +1 -1
  167. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs +48 -29
  168. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs.map +1 -1
  169. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs +48 -29
  170. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs.map +1 -1
  171. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs +48 -29
  172. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs.map +1 -1
  173. package/fesm2022/gravionlabs-helix-core-icons-search.mjs +48 -29
  174. package/fesm2022/gravionlabs-helix-core-icons-search.mjs.map +1 -1
  175. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs +48 -29
  176. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs.map +1 -1
  177. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs +48 -29
  178. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs.map +1 -1
  179. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs +48 -29
  180. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs.map +1 -1
  181. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs +48 -29
  182. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs.map +1 -1
  183. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs +48 -29
  184. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs.map +1 -1
  185. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs +48 -29
  186. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs.map +1 -1
  187. package/fesm2022/gravionlabs-helix-core-icons-star.mjs +48 -29
  188. package/fesm2022/gravionlabs-helix-core-icons-star.mjs.map +1 -1
  189. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs +48 -29
  190. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs.map +1 -1
  191. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs +48 -29
  192. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs.map +1 -1
  193. package/fesm2022/gravionlabs-helix-core-icons-times.mjs +43 -24
  194. package/fesm2022/gravionlabs-helix-core-icons-times.mjs.map +1 -1
  195. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs +48 -29
  196. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs.map +1 -1
  197. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs +48 -29
  198. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs.map +1 -1
  199. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs +48 -29
  200. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs.map +1 -1
  201. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs +48 -29
  202. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs.map +1 -1
  203. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs +48 -29
  204. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs.map +1 -1
  205. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs +48 -29
  206. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs.map +1 -1
  207. package/fesm2022/gravionlabs-helix-core-icons.mjs +53 -63
  208. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs +175 -81
  209. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs.map +1 -1
  210. package/fesm2022/gravionlabs-helix-core-image.mjs +1089 -552
  211. package/fesm2022/gravionlabs-helix-core-image.mjs.map +1 -1
  212. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs +348 -165
  213. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs.map +1 -1
  214. package/fesm2022/gravionlabs-helix-core-inplace.mjs +591 -249
  215. package/fesm2022/gravionlabs-helix-core-inplace.mjs.map +1 -1
  216. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs +175 -91
  217. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs.map +1 -1
  218. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs +196 -73
  219. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs.map +1 -1
  220. package/fesm2022/gravionlabs-helix-core-inputicon.mjs +207 -70
  221. package/fesm2022/gravionlabs-helix-core-inputicon.mjs.map +1 -1
  222. package/fesm2022/gravionlabs-helix-core-inputmask.mjs +1581 -1330
  223. package/fesm2022/gravionlabs-helix-core-inputmask.mjs.map +1 -1
  224. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs +1696 -1294
  225. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs.map +1 -1
  226. package/fesm2022/gravionlabs-helix-core-inputotp.mjs +576 -363
  227. package/fesm2022/gravionlabs-helix-core-inputotp.mjs.map +1 -1
  228. package/fesm2022/gravionlabs-helix-core-inputtext.mjs +344 -183
  229. package/fesm2022/gravionlabs-helix-core-inputtext.mjs.map +1 -1
  230. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs +291 -252
  231. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs.map +1 -1
  232. package/fesm2022/gravionlabs-helix-core-knob.mjs +642 -396
  233. package/fesm2022/gravionlabs-helix-core-knob.mjs.map +1 -1
  234. package/fesm2022/gravionlabs-helix-core-listbox.mjs +2354 -1401
  235. package/fesm2022/gravionlabs-helix-core-listbox.mjs.map +1 -1
  236. package/fesm2022/gravionlabs-helix-core-megamenu.mjs +1913 -1052
  237. package/fesm2022/gravionlabs-helix-core-megamenu.mjs.map +1 -1
  238. package/fesm2022/gravionlabs-helix-core-menu.mjs +1392 -767
  239. package/fesm2022/gravionlabs-helix-core-menu.mjs.map +1 -1
  240. package/fesm2022/gravionlabs-helix-core-menubar.mjs +1857 -984
  241. package/fesm2022/gravionlabs-helix-core-menubar.mjs.map +1 -1
  242. package/fesm2022/gravionlabs-helix-core-message.mjs +605 -288
  243. package/fesm2022/gravionlabs-helix-core-message.mjs.map +1 -1
  244. package/fesm2022/gravionlabs-helix-core-metergroup.mjs +719 -323
  245. package/fesm2022/gravionlabs-helix-core-metergroup.mjs.map +1 -1
  246. package/fesm2022/gravionlabs-helix-core-motion.mjs +1178 -694
  247. package/fesm2022/gravionlabs-helix-core-motion.mjs.map +1 -1
  248. package/fesm2022/gravionlabs-helix-core-multiselect.mjs +3437 -1839
  249. package/fesm2022/gravionlabs-helix-core-multiselect.mjs.map +1 -1
  250. package/fesm2022/gravionlabs-helix-core-orderlist.mjs +1426 -753
  251. package/fesm2022/gravionlabs-helix-core-orderlist.mjs.map +1 -1
  252. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs +755 -371
  253. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs.map +1 -1
  254. package/fesm2022/gravionlabs-helix-core-overlay.mjs +984 -600
  255. package/fesm2022/gravionlabs-helix-core-overlay.mjs.map +1 -1
  256. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs +310 -107
  257. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs.map +1 -1
  258. package/fesm2022/gravionlabs-helix-core-paginator.mjs +1076 -564
  259. package/fesm2022/gravionlabs-helix-core-paginator.mjs.map +1 -1
  260. package/fesm2022/gravionlabs-helix-core-panel.mjs +759 -364
  261. package/fesm2022/gravionlabs-helix-core-panel.mjs.map +1 -1
  262. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs +1909 -888
  263. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs.map +1 -1
  264. package/fesm2022/gravionlabs-helix-core-passthrough.mjs +10 -18
  265. package/fesm2022/gravionlabs-helix-core-passthrough.mjs.map +1 -1
  266. package/fesm2022/gravionlabs-helix-core-password.mjs +1624 -894
  267. package/fesm2022/gravionlabs-helix-core-password.mjs.map +1 -1
  268. package/fesm2022/gravionlabs-helix-core-picklist.mjs +2415 -1359
  269. package/fesm2022/gravionlabs-helix-core-picklist.mjs.map +1 -1
  270. package/fesm2022/gravionlabs-helix-core-popover.mjs +708 -442
  271. package/fesm2022/gravionlabs-helix-core-popover.mjs.map +1 -1
  272. package/fesm2022/gravionlabs-helix-core-progressbar.mjs +380 -170
  273. package/fesm2022/gravionlabs-helix-core-progressbar.mjs.map +1 -1
  274. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs +276 -121
  275. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs.map +1 -1
  276. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs +525 -291
  277. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs.map +1 -1
  278. package/fesm2022/gravionlabs-helix-core-rating.mjs +529 -286
  279. package/fesm2022/gravionlabs-helix-core-rating.mjs.map +1 -1
  280. package/fesm2022/gravionlabs-helix-core-ripple.mjs +194 -175
  281. package/fesm2022/gravionlabs-helix-core-ripple.mjs.map +1 -1
  282. package/fesm2022/gravionlabs-helix-core-scroller.mjs +1384 -977
  283. package/fesm2022/gravionlabs-helix-core-scroller.mjs.map +1 -1
  284. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs +605 -458
  285. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs.map +1 -1
  286. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs +565 -261
  287. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs.map +1 -1
  288. package/fesm2022/gravionlabs-helix-core-select.mjs +2959 -1644
  289. package/fesm2022/gravionlabs-helix-core-select.mjs.map +1 -1
  290. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs +644 -335
  291. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs.map +1 -1
  292. package/fesm2022/gravionlabs-helix-core-skeleton.mjs +315 -160
  293. package/fesm2022/gravionlabs-helix-core-skeleton.mjs.map +1 -1
  294. package/fesm2022/gravionlabs-helix-core-slider.mjs +839 -630
  295. package/fesm2022/gravionlabs-helix-core-slider.mjs.map +1 -1
  296. package/fesm2022/gravionlabs-helix-core-speeddial.mjs +1183 -700
  297. package/fesm2022/gravionlabs-helix-core-speeddial.mjs.map +1 -1
  298. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs +977 -375
  299. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs.map +1 -1
  300. package/fesm2022/gravionlabs-helix-core-splitter.mjs +737 -509
  301. package/fesm2022/gravionlabs-helix-core-splitter.mjs.map +1 -1
  302. package/fesm2022/gravionlabs-helix-core-stepper.mjs +1397 -628
  303. package/fesm2022/gravionlabs-helix-core-stepper.mjs.map +1 -1
  304. package/fesm2022/gravionlabs-helix-core-steps.mjs +457 -272
  305. package/fesm2022/gravionlabs-helix-core-steps.mjs.map +1 -1
  306. package/fesm2022/gravionlabs-helix-core-styleclass.mjs +466 -344
  307. package/fesm2022/gravionlabs-helix-core-styleclass.mjs.map +1 -1
  308. package/fesm2022/gravionlabs-helix-core-table.mjs +9728 -5590
  309. package/fesm2022/gravionlabs-helix-core-table.mjs.map +1 -1
  310. package/fesm2022/gravionlabs-helix-core-tabs.mjs +1350 -735
  311. package/fesm2022/gravionlabs-helix-core-tabs.mjs.map +1 -1
  312. package/fesm2022/gravionlabs-helix-core-tag.mjs +343 -154
  313. package/fesm2022/gravionlabs-helix-core-tag.mjs.map +1 -1
  314. package/fesm2022/gravionlabs-helix-core-terminal.mjs +384 -214
  315. package/fesm2022/gravionlabs-helix-core-terminal.mjs.map +1 -1
  316. package/fesm2022/gravionlabs-helix-core-textarea.mjs +347 -209
  317. package/fesm2022/gravionlabs-helix-core-textarea.mjs.map +1 -1
  318. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs +4846 -5618
  319. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs.map +1 -1
  320. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs +4961 -5809
  321. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs.map +1 -1
  322. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs +4780 -5567
  323. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs.map +1 -1
  324. package/fesm2022/gravionlabs-helix-core-themes-types.mjs +0 -700
  325. package/fesm2022/gravionlabs-helix-core-themes.mjs +4 -9
  326. package/fesm2022/gravionlabs-helix-core-themes.mjs.map +1 -1
  327. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs +1967 -1048
  328. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs.map +1 -1
  329. package/fesm2022/gravionlabs-helix-core-timeline.mjs +370 -185
  330. package/fesm2022/gravionlabs-helix-core-timeline.mjs.map +1 -1
  331. package/fesm2022/gravionlabs-helix-core-toast.mjs +1083 -526
  332. package/fesm2022/gravionlabs-helix-core-toast.mjs.map +1 -1
  333. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs +609 -315
  334. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs.map +1 -1
  335. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs +504 -246
  336. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs.map +1 -1
  337. package/fesm2022/gravionlabs-helix-core-toolbar.mjs +350 -149
  338. package/fesm2022/gravionlabs-helix-core-toolbar.mjs.map +1 -1
  339. package/fesm2022/gravionlabs-helix-core-tooltip.mjs +1035 -795
  340. package/fesm2022/gravionlabs-helix-core-tooltip.mjs.map +1 -1
  341. package/fesm2022/gravionlabs-helix-core-tree.mjs +2673 -1668
  342. package/fesm2022/gravionlabs-helix-core-tree.mjs.map +1 -1
  343. package/fesm2022/gravionlabs-helix-core-treeselect.mjs +1773 -976
  344. package/fesm2022/gravionlabs-helix-core-treeselect.mjs.map +1 -1
  345. package/fesm2022/gravionlabs-helix-core-treetable.mjs +5963 -3647
  346. package/fesm2022/gravionlabs-helix-core-treetable.mjs.map +1 -1
  347. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs +0 -4
  348. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs +0 -4
  349. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs +0 -4
  350. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs +0 -4
  351. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs +0 -4
  352. package/fesm2022/gravionlabs-helix-core-types-badge.mjs +0 -4
  353. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs +0 -4
  354. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs +0 -4
  355. package/fesm2022/gravionlabs-helix-core-types-button.mjs +0 -4
  356. package/fesm2022/gravionlabs-helix-core-types-card.mjs +0 -4
  357. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs +0 -4
  358. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs +0 -4
  359. package/fesm2022/gravionlabs-helix-core-types-chart.mjs +0 -4
  360. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs +0 -4
  361. package/fesm2022/gravionlabs-helix-core-types-chip.mjs +0 -4
  362. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs +0 -4
  363. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs +0 -4
  364. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs +0 -4
  365. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs +0 -4
  366. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs +0 -4
  367. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs +0 -4
  368. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs +0 -4
  369. package/fesm2022/gravionlabs-helix-core-types-divider.mjs +0 -4
  370. package/fesm2022/gravionlabs-helix-core-types-dock.mjs +0 -4
  371. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs +0 -4
  372. package/fesm2022/gravionlabs-helix-core-types-editor.mjs +0 -4
  373. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs +0 -4
  374. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs +0 -4
  375. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs +0 -4
  376. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs +0 -4
  377. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs +0 -4
  378. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs +0 -4
  379. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs +0 -4
  380. package/fesm2022/gravionlabs-helix-core-types-image.mjs +0 -4
  381. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs +0 -4
  382. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs +0 -4
  383. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs +0 -4
  384. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs +0 -4
  385. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs +0 -4
  386. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs +0 -4
  387. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs +0 -4
  388. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs +0 -4
  389. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs +0 -4
  390. package/fesm2022/gravionlabs-helix-core-types-knob.mjs +0 -4
  391. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs +0 -4
  392. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs +0 -4
  393. package/fesm2022/gravionlabs-helix-core-types-menu.mjs +0 -4
  394. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs +0 -4
  395. package/fesm2022/gravionlabs-helix-core-types-message.mjs +0 -4
  396. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs +0 -4
  397. package/fesm2022/gravionlabs-helix-core-types-motion.mjs +0 -4
  398. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs +0 -4
  399. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs +0 -4
  400. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs +0 -4
  401. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs +0 -4
  402. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs +0 -4
  403. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs +0 -4
  404. package/fesm2022/gravionlabs-helix-core-types-panel.mjs +0 -4
  405. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs +0 -4
  406. package/fesm2022/gravionlabs-helix-core-types-password.mjs +0 -4
  407. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs +0 -4
  408. package/fesm2022/gravionlabs-helix-core-types-popover.mjs +0 -4
  409. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs +0 -4
  410. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs +0 -4
  411. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs +0 -4
  412. package/fesm2022/gravionlabs-helix-core-types-rating.mjs +0 -4
  413. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs +0 -4
  414. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs +0 -4
  415. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs +0 -4
  416. package/fesm2022/gravionlabs-helix-core-types-select.mjs +0 -4
  417. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs +0 -4
  418. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs +0 -4
  419. package/fesm2022/gravionlabs-helix-core-types-slider.mjs +0 -4
  420. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs +0 -4
  421. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs +0 -4
  422. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs +0 -4
  423. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs +0 -4
  424. package/fesm2022/gravionlabs-helix-core-types-table.mjs +0 -4
  425. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs +0 -4
  426. package/fesm2022/gravionlabs-helix-core-types-tag.mjs +0 -4
  427. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs +0 -4
  428. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs +0 -4
  429. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs +0 -4
  430. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs +0 -4
  431. package/fesm2022/gravionlabs-helix-core-types-toast.mjs +0 -4
  432. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs +0 -4
  433. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs +0 -4
  434. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs +0 -4
  435. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs +0 -4
  436. package/fesm2022/gravionlabs-helix-core-types-tree.mjs +0 -4
  437. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs +0 -4
  438. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs +0 -4
  439. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs +192 -282
  440. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs.map +1 -1
  441. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs +827 -813
  442. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs.map +1 -1
  443. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs +967 -1558
  444. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs.map +1 -1
  445. package/fesm2022/gravionlabs-helix-core-usestyle.mjs +62 -52
  446. package/fesm2022/gravionlabs-helix-core-usestyle.mjs.map +1 -1
  447. package/fesm2022/gravionlabs-helix-core-utils.mjs +272 -366
  448. package/fesm2022/gravionlabs-helix-core-utils.mjs.map +1 -1
  449. package/fesm2022/gravionlabs-helix-core-validators.mjs +86 -93
  450. package/fesm2022/gravionlabs-helix-core-validators.mjs.map +1 -1
  451. package/fesm2022/gravionlabs-helix-core.mjs +1 -5
  452. package/fesm2022/gravionlabs-helix-core.mjs.map +1 -1
  453. package/package.json +1 -1
  454. package/types/gravionlabs-helix-core-accordion.d.ts +317 -246
  455. package/types/gravionlabs-helix-core-animateonscroll.d.ts +89 -61
  456. package/types/gravionlabs-helix-core-api.d.ts +1743 -1777
  457. package/types/gravionlabs-helix-core-autocomplete.d.ts +1070 -750
  458. package/types/gravionlabs-helix-core-autofocus.d.ts +29 -26
  459. package/types/gravionlabs-helix-core-avatar.d.ts +165 -123
  460. package/types/gravionlabs-helix-core-avatargroup.d.ts +58 -48
  461. package/types/gravionlabs-helix-core-badge.d.ts +243 -162
  462. package/types/gravionlabs-helix-core-base.d.ts +46 -49
  463. package/types/gravionlabs-helix-core-basecomponent.d.ts +187 -170
  464. package/types/gravionlabs-helix-core-baseeditableholder.d.ts +63 -45
  465. package/types/gravionlabs-helix-core-baseinput.d.ts +121 -73
  466. package/types/gravionlabs-helix-core-basemodelholder.d.ts +9 -12
  467. package/types/gravionlabs-helix-core-bind.d.ts +36 -33
  468. package/types/gravionlabs-helix-core-blockui.d.ts +114 -90
  469. package/types/gravionlabs-helix-core-breadcrumb.d.ts +158 -132
  470. package/types/gravionlabs-helix-core-button.d.ts +716 -443
  471. package/types/gravionlabs-helix-core-buttongroup.d.ts +28 -33
  472. package/types/gravionlabs-helix-core-card.d.ts +156 -136
  473. package/types/gravionlabs-helix-core-carousel.d.ts +461 -361
  474. package/types/gravionlabs-helix-core-cascadeselect.d.ts +880 -604
  475. package/types/gravionlabs-helix-core-chart.d.ts +162 -115
  476. package/types/gravionlabs-helix-core-checkbox.d.ts +310 -211
  477. package/types/gravionlabs-helix-core-chip.d.ts +202 -147
  478. package/types/gravionlabs-helix-core-classnames.d.ts +23 -21
  479. package/types/gravionlabs-helix-core-colorpicker.d.ts +359 -290
  480. package/types/gravionlabs-helix-core-config.d.ts +249 -259
  481. package/types/gravionlabs-helix-core-confirmdialog.d.ts +498 -325
  482. package/types/gravionlabs-helix-core-confirmpopup.d.ts +273 -218
  483. package/types/gravionlabs-helix-core-contextmenu.d.ts +509 -351
  484. package/types/gravionlabs-helix-core-dataview.d.ts +507 -349
  485. package/types/gravionlabs-helix-core-datepicker.d.ts +1267 -954
  486. package/types/gravionlabs-helix-core-dialog.d.ts +758 -515
  487. package/types/gravionlabs-helix-core-divider.d.ts +126 -106
  488. package/types/gravionlabs-helix-core-dock.d.ts +219 -181
  489. package/types/gravionlabs-helix-core-dom.d.ts +97 -100
  490. package/types/gravionlabs-helix-core-dragdrop.d.ts +149 -107
  491. package/types/gravionlabs-helix-core-drawer.d.ts +382 -278
  492. package/types/gravionlabs-helix-core-dynamicdialog.d.ts +512 -519
  493. package/types/gravionlabs-helix-core-editor.d.ts +225 -173
  494. package/types/gravionlabs-helix-core-fieldset.d.ts +209 -170
  495. package/types/gravionlabs-helix-core-fileupload.d.ts +764 -533
  496. package/types/gravionlabs-helix-core-firsterror.d.ts +8 -11
  497. package/types/gravionlabs-helix-core-floatlabel.d.ts +57 -52
  498. package/types/gravionlabs-helix-core-fluid.d.ts +38 -39
  499. package/types/gravionlabs-helix-core-focustrap.d.ts +33 -30
  500. package/types/gravionlabs-helix-core-galleria.d.ts +957 -628
  501. package/types/gravionlabs-helix-core-iconfield.d.ts +72 -57
  502. package/types/gravionlabs-helix-core-icons-angledoubledown.d.ts +6 -9
  503. package/types/gravionlabs-helix-core-icons-angledoubleleft.d.ts +6 -9
  504. package/types/gravionlabs-helix-core-icons-angledoubleright.d.ts +6 -9
  505. package/types/gravionlabs-helix-core-icons-angledoubleup.d.ts +6 -9
  506. package/types/gravionlabs-helix-core-icons-angledown.d.ts +6 -9
  507. package/types/gravionlabs-helix-core-icons-angleleft.d.ts +6 -9
  508. package/types/gravionlabs-helix-core-icons-angleright.d.ts +6 -9
  509. package/types/gravionlabs-helix-core-icons-angleup.d.ts +6 -9
  510. package/types/gravionlabs-helix-core-icons-arrowdown.d.ts +8 -11
  511. package/types/gravionlabs-helix-core-icons-arrowdownleft.d.ts +6 -9
  512. package/types/gravionlabs-helix-core-icons-arrowdownright.d.ts +6 -9
  513. package/types/gravionlabs-helix-core-icons-arrowleft.d.ts +8 -11
  514. package/types/gravionlabs-helix-core-icons-arrowright.d.ts +6 -9
  515. package/types/gravionlabs-helix-core-icons-arrowup.d.ts +8 -11
  516. package/types/gravionlabs-helix-core-icons-ban.d.ts +8 -11
  517. package/types/gravionlabs-helix-core-icons-bars.d.ts +6 -9
  518. package/types/gravionlabs-helix-core-icons-baseicon.d.ts +25 -24
  519. package/types/gravionlabs-helix-core-icons-blank.d.ts +6 -9
  520. package/types/gravionlabs-helix-core-icons-calendar.d.ts +6 -9
  521. package/types/gravionlabs-helix-core-icons-caretleft.d.ts +6 -9
  522. package/types/gravionlabs-helix-core-icons-caretright.d.ts +6 -9
  523. package/types/gravionlabs-helix-core-icons-check.d.ts +6 -9
  524. package/types/gravionlabs-helix-core-icons-chevrondown.d.ts +6 -9
  525. package/types/gravionlabs-helix-core-icons-chevronleft.d.ts +6 -9
  526. package/types/gravionlabs-helix-core-icons-chevronright.d.ts +6 -9
  527. package/types/gravionlabs-helix-core-icons-chevronup.d.ts +6 -9
  528. package/types/gravionlabs-helix-core-icons-exclamationtriangle.d.ts +8 -11
  529. package/types/gravionlabs-helix-core-icons-eye.d.ts +6 -9
  530. package/types/gravionlabs-helix-core-icons-eyeslash.d.ts +8 -11
  531. package/types/gravionlabs-helix-core-icons-filter.d.ts +8 -11
  532. package/types/gravionlabs-helix-core-icons-filterfill.d.ts +6 -9
  533. package/types/gravionlabs-helix-core-icons-filterslash.d.ts +8 -11
  534. package/types/gravionlabs-helix-core-icons-home.d.ts +8 -11
  535. package/types/gravionlabs-helix-core-icons-infocircle.d.ts +8 -11
  536. package/types/gravionlabs-helix-core-icons-minus.d.ts +6 -9
  537. package/types/gravionlabs-helix-core-icons-pencil.d.ts +8 -11
  538. package/types/gravionlabs-helix-core-icons-plus.d.ts +8 -11
  539. package/types/gravionlabs-helix-core-icons-refresh.d.ts +8 -11
  540. package/types/gravionlabs-helix-core-icons-search.d.ts +8 -11
  541. package/types/gravionlabs-helix-core-icons-searchminus.d.ts +8 -11
  542. package/types/gravionlabs-helix-core-icons-searchplus.d.ts +8 -11
  543. package/types/gravionlabs-helix-core-icons-sortalt.d.ts +8 -11
  544. package/types/gravionlabs-helix-core-icons-sortamountdown.d.ts +8 -11
  545. package/types/gravionlabs-helix-core-icons-sortamountupalt.d.ts +8 -11
  546. package/types/gravionlabs-helix-core-icons-spinner.d.ts +8 -11
  547. package/types/gravionlabs-helix-core-icons-star.d.ts +8 -11
  548. package/types/gravionlabs-helix-core-icons-starfill.d.ts +8 -11
  549. package/types/gravionlabs-helix-core-icons-thlarge.d.ts +8 -11
  550. package/types/gravionlabs-helix-core-icons-times.d.ts +6 -9
  551. package/types/gravionlabs-helix-core-icons-timescircle.d.ts +8 -11
  552. package/types/gravionlabs-helix-core-icons-trash.d.ts +8 -11
  553. package/types/gravionlabs-helix-core-icons-undo.d.ts +8 -11
  554. package/types/gravionlabs-helix-core-icons-upload.d.ts +8 -11
  555. package/types/gravionlabs-helix-core-icons-windowmaximize.d.ts +8 -11
  556. package/types/gravionlabs-helix-core-icons-windowminimize.d.ts +8 -11
  557. package/types/gravionlabs-helix-core-icons.d.ts +53 -53
  558. package/types/gravionlabs-helix-core-iftalabel.d.ts +42 -43
  559. package/types/gravionlabs-helix-core-image.d.ts +440 -331
  560. package/types/gravionlabs-helix-core-imagecompare.d.ts +99 -84
  561. package/types/gravionlabs-helix-core-inplace.d.ts +188 -149
  562. package/types/gravionlabs-helix-core-inputgroup.d.ts +55 -50
  563. package/types/gravionlabs-helix-core-inputgroupaddon.d.ts +54 -43
  564. package/types/gravionlabs-helix-core-inputicon.d.ts +49 -38
  565. package/types/gravionlabs-helix-core-inputmask.d.ts +499 -353
  566. package/types/gravionlabs-helix-core-inputnumber.d.ts +581 -410
  567. package/types/gravionlabs-helix-core-inputotp.d.ts +206 -158
  568. package/types/gravionlabs-helix-core-inputtext.d.ts +142 -102
  569. package/types/gravionlabs-helix-core-keyfilter.d.ts +62 -53
  570. package/types/gravionlabs-helix-core-knob.d.ts +265 -188
  571. package/types/gravionlabs-helix-core-listbox.d.ts +897 -638
  572. package/types/gravionlabs-helix-core-megamenu.d.ts +512 -365
  573. package/types/gravionlabs-helix-core-menu.d.ts +441 -343
  574. package/types/gravionlabs-helix-core-menubar.d.ts +499 -361
  575. package/types/gravionlabs-helix-core-message.d.ts +267 -195
  576. package/types/gravionlabs-helix-core-metergroup.d.ts +256 -190
  577. package/types/gravionlabs-helix-core-motion.d.ts +602 -385
  578. package/types/gravionlabs-helix-core-multiselect.d.ts +1256 -855
  579. package/types/gravionlabs-helix-core-orderlist.d.ts +504 -351
  580. package/types/gravionlabs-helix-core-organizationchart.d.ts +264 -203
  581. package/types/gravionlabs-helix-core-overlay.d.ts +417 -307
  582. package/types/gravionlabs-helix-core-overlaybadge.d.ts +107 -71
  583. package/types/gravionlabs-helix-core-paginator.d.ts +445 -336
  584. package/types/gravionlabs-helix-core-panel.d.ts +285 -225
  585. package/types/gravionlabs-helix-core-panelmenu.d.ts +499 -340
  586. package/types/gravionlabs-helix-core-passthrough.d.ts +5 -7
  587. package/types/gravionlabs-helix-core-password.d.ts +657 -463
  588. package/types/gravionlabs-helix-core-picklist.d.ts +938 -647
  589. package/types/gravionlabs-helix-core-popover.d.ts +259 -190
  590. package/types/gravionlabs-helix-core-progressbar.d.ts +141 -106
  591. package/types/gravionlabs-helix-core-progressspinner.d.ts +101 -76
  592. package/types/gravionlabs-helix-core-radiobutton.d.ts +228 -174
  593. package/types/gravionlabs-helix-core-rating.d.ts +217 -178
  594. package/types/gravionlabs-helix-core-ripple.d.ts +43 -48
  595. package/types/gravionlabs-helix-core-scroller.d.ts +505 -371
  596. package/types/gravionlabs-helix-core-scrollpanel.d.ts +151 -141
  597. package/types/gravionlabs-helix-core-scrolltop.d.ts +195 -140
  598. package/types/gravionlabs-helix-core-select.d.ts +1095 -749
  599. package/types/gravionlabs-helix-core-selectbutton.d.ts +238 -165
  600. package/types/gravionlabs-helix-core-skeleton.d.ts +123 -88
  601. package/types/gravionlabs-helix-core-slider.d.ts +259 -201
  602. package/types/gravionlabs-helix-core-speeddial.d.ts +511 -390
  603. package/types/gravionlabs-helix-core-splitbutton.d.ts +422 -267
  604. package/types/gravionlabs-helix-core-splitter.d.ts +246 -192
  605. package/types/gravionlabs-helix-core-stepper.d.ts +428 -269
  606. package/types/gravionlabs-helix-core-steps.d.ts +162 -134
  607. package/types/gravionlabs-helix-core-styleclass.d.ts +165 -107
  608. package/types/gravionlabs-helix-core-table.d.ts +2908 -1935
  609. package/types/gravionlabs-helix-core-tabs.d.ts +471 -311
  610. package/types/gravionlabs-helix-core-tag.d.ts +123 -98
  611. package/types/gravionlabs-helix-core-terminal.d.ts +142 -124
  612. package/types/gravionlabs-helix-core-textarea.d.ts +147 -110
  613. package/types/gravionlabs-helix-core-themes-aura.d.ts +957 -942
  614. package/types/gravionlabs-helix-core-themes-lara.d.ts +968 -953
  615. package/types/gravionlabs-helix-core-themes-nora.d.ts +954 -939
  616. package/types/gravionlabs-helix-core-themes-types.d.ts +17940 -18746
  617. package/types/gravionlabs-helix-core-themes.d.ts +8 -11
  618. package/types/gravionlabs-helix-core-tieredmenu.d.ts +583 -398
  619. package/types/gravionlabs-helix-core-timeline.d.ts +145 -125
  620. package/types/gravionlabs-helix-core-toast.d.ts +408 -275
  621. package/types/gravionlabs-helix-core-togglebutton.d.ts +264 -188
  622. package/types/gravionlabs-helix-core-toggleswitch.d.ts +202 -150
  623. package/types/gravionlabs-helix-core-toolbar.d.ts +100 -90
  624. package/types/gravionlabs-helix-core-tooltip.d.ts +362 -256
  625. package/types/gravionlabs-helix-core-tree.d.ts +902 -630
  626. package/types/gravionlabs-helix-core-treeselect.d.ts +770 -559
  627. package/types/gravionlabs-helix-core-treetable.d.ts +1715 -1205
  628. package/types/gravionlabs-helix-core-ts-helpers.d.ts +4 -6
  629. package/types/gravionlabs-helix-core-types-accordion.d.ts +42 -45
  630. package/types/gravionlabs-helix-core-types-autocomplete.d.ts +230 -233
  631. package/types/gravionlabs-helix-core-types-avatar.d.ts +23 -26
  632. package/types/gravionlabs-helix-core-types-avatargroup.d.ts +11 -14
  633. package/types/gravionlabs-helix-core-types-badge.d.ts +11 -14
  634. package/types/gravionlabs-helix-core-types-blockui.d.ts +18 -21
  635. package/types/gravionlabs-helix-core-types-breadcrumb.d.ts +65 -68
  636. package/types/gravionlabs-helix-core-types-button.d.ts +90 -93
  637. package/types/gravionlabs-helix-core-types-card.d.ts +54 -57
  638. package/types/gravionlabs-helix-core-types-carousel.d.ts +107 -110
  639. package/types/gravionlabs-helix-core-types-cascadeselect.d.ts +151 -157
  640. package/types/gravionlabs-helix-core-types-chart.d.ts +15 -18
  641. package/types/gravionlabs-helix-core-types-checkbox.d.ts +48 -51
  642. package/types/gravionlabs-helix-core-types-chip.d.ts +49 -52
  643. package/types/gravionlabs-helix-core-types-colorpicker.d.ts +58 -61
  644. package/types/gravionlabs-helix-core-types-confirmdialog.d.ts +116 -119
  645. package/types/gravionlabs-helix-core-types-confirmpopup.d.ts +74 -77
  646. package/types/gravionlabs-helix-core-types-contextmenu.d.ts +71 -74
  647. package/types/gravionlabs-helix-core-types-dataview.d.ts +178 -181
  648. package/types/gravionlabs-helix-core-types-datepicker.d.ts +436 -439
  649. package/types/gravionlabs-helix-core-types-dialog.d.ts +86 -89
  650. package/types/gravionlabs-helix-core-types-divider.d.ts +11 -14
  651. package/types/gravionlabs-helix-core-types-dock.d.ts +44 -47
  652. package/types/gravionlabs-helix-core-types-drawer.d.ts +61 -64
  653. package/types/gravionlabs-helix-core-types-editor.d.ts +143 -146
  654. package/types/gravionlabs-helix-core-types-fieldset.d.ts +69 -73
  655. package/types/gravionlabs-helix-core-types-fileupload.d.ts +260 -265
  656. package/types/gravionlabs-helix-core-types-floatlabel.d.ts +11 -14
  657. package/types/gravionlabs-helix-core-types-fluid.d.ts +11 -14
  658. package/types/gravionlabs-helix-core-types-galleria.d.ts +204 -207
  659. package/types/gravionlabs-helix-core-types-iconfield.d.ts +11 -14
  660. package/types/gravionlabs-helix-core-types-iftalabel.d.ts +11 -14
  661. package/types/gravionlabs-helix-core-types-image.d.ts +113 -116
  662. package/types/gravionlabs-helix-core-types-imagecompare.d.ts +22 -25
  663. package/types/gravionlabs-helix-core-types-inplace.d.ts +46 -49
  664. package/types/gravionlabs-helix-core-types-inputgroup.d.ts +11 -14
  665. package/types/gravionlabs-helix-core-types-inputgroupaddon.d.ts +11 -14
  666. package/types/gravionlabs-helix-core-types-inputicon.d.ts +11 -14
  667. package/types/gravionlabs-helix-core-types-inputmask.d.ts +30 -33
  668. package/types/gravionlabs-helix-core-types-inputnumber.d.ts +68 -71
  669. package/types/gravionlabs-helix-core-types-inputotp.d.ts +67 -70
  670. package/types/gravionlabs-helix-core-types-inputtext.d.ts +7 -10
  671. package/types/gravionlabs-helix-core-types-knob.d.ts +23 -26
  672. package/types/gravionlabs-helix-core-types-listbox.d.ts +262 -266
  673. package/types/gravionlabs-helix-core-types-megamenu.d.ts +112 -115
  674. package/types/gravionlabs-helix-core-types-menu.d.ts +83 -86
  675. package/types/gravionlabs-helix-core-types-menubar.d.ts +98 -101
  676. package/types/gravionlabs-helix-core-types-message.d.ts +61 -64
  677. package/types/gravionlabs-helix-core-types-metergroup.d.ts +135 -138
  678. package/types/gravionlabs-helix-core-types-motion.d.ts +11 -14
  679. package/types/gravionlabs-helix-core-types-multiselect.d.ts +302 -306
  680. package/types/gravionlabs-helix-core-types-orderlist.d.ts +125 -128
  681. package/types/gravionlabs-helix-core-types-organizationchart.d.ts +90 -96
  682. package/types/gravionlabs-helix-core-types-overlay.d.ts +31 -34
  683. package/types/gravionlabs-helix-core-types-overlaybadge.d.ts +17 -20
  684. package/types/gravionlabs-helix-core-types-paginator.d.ts +131 -134
  685. package/types/gravionlabs-helix-core-types-panel.d.ts +89 -93
  686. package/types/gravionlabs-helix-core-types-panelmenu.d.ts +105 -108
  687. package/types/gravionlabs-helix-core-types-password.d.ts +94 -97
  688. package/types/gravionlabs-helix-core-types-picklist.d.ts +240 -250
  689. package/types/gravionlabs-helix-core-types-popover.d.ts +33 -36
  690. package/types/gravionlabs-helix-core-types-progressbar.d.ts +32 -35
  691. package/types/gravionlabs-helix-core-types-progressspinner.d.ts +19 -22
  692. package/types/gravionlabs-helix-core-types-radiobutton.d.ts +29 -32
  693. package/types/gravionlabs-helix-core-types-rating.d.ts +62 -65
  694. package/types/gravionlabs-helix-core-types-scroller.d.ts +142 -146
  695. package/types/gravionlabs-helix-core-types-scrollpanel.d.ts +30 -33
  696. package/types/gravionlabs-helix-core-types-scrolltop.d.ts +35 -38
  697. package/types/gravionlabs-helix-core-types-select.d.ts +245 -248
  698. package/types/gravionlabs-helix-core-types-selectbutton.d.ts +56 -59
  699. package/types/gravionlabs-helix-core-types-skeleton.d.ts +11 -14
  700. package/types/gravionlabs-helix-core-types-slider.d.ts +50 -53
  701. package/types/gravionlabs-helix-core-types-speeddial.d.ts +69 -72
  702. package/types/gravionlabs-helix-core-types-splitbutton.d.ts +41 -44
  703. package/types/gravionlabs-helix-core-types-splitter.d.ts +36 -40
  704. package/types/gravionlabs-helix-core-types-stepper.d.ts +68 -71
  705. package/types/gravionlabs-helix-core-types-table.d.ts +721 -727
  706. package/types/gravionlabs-helix-core-types-tabs.d.ts +51 -54
  707. package/types/gravionlabs-helix-core-types-tag.d.ts +26 -29
  708. package/types/gravionlabs-helix-core-types-terminal.d.ts +43 -46
  709. package/types/gravionlabs-helix-core-types-textarea.d.ts +11 -14
  710. package/types/gravionlabs-helix-core-types-tieredmenu.d.ts +69 -72
  711. package/types/gravionlabs-helix-core-types-timeline.d.ts +58 -61
  712. package/types/gravionlabs-helix-core-types-toast.d.ts +86 -89
  713. package/types/gravionlabs-helix-core-types-togglebutton.d.ts +51 -54
  714. package/types/gravionlabs-helix-core-types-toggleswitch.d.ts +41 -44
  715. package/types/gravionlabs-helix-core-types-toolbar.d.ts +34 -37
  716. package/types/gravionlabs-helix-core-types-tooltip.d.ts +15 -18
  717. package/types/gravionlabs-helix-core-types-tree.d.ts +230 -239
  718. package/types/gravionlabs-helix-core-types-treeselect.d.ts +195 -199
  719. package/types/gravionlabs-helix-core-types-treetable.d.ts +486 -491
  720. package/types/gravionlabs-helix-core-uix-motion.d.ts +177 -190
  721. package/types/gravionlabs-helix-core-uix-styled.d.ts +254 -277
  722. package/types/gravionlabs-helix-core-uix-utils.d.ts +39 -176
  723. package/types/gravionlabs-helix-core-usestyle.d.ts +12 -15
  724. package/types/gravionlabs-helix-core-utils.d.ts +45 -50
  725. package/types/gravionlabs-helix-core-validators.d.ts +29 -34
  726. package/types/gravionlabs-helix-core.d.ts +2 -2
  727. package/fesm2022/gravionlabs-helix-core-icons.mjs.map +0 -1
  728. package/fesm2022/gravionlabs-helix-core-themes-types.mjs.map +0 -1
  729. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs.map +0 -1
  730. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs.map +0 -1
  731. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs.map +0 -1
  732. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs.map +0 -1
  733. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs.map +0 -1
  734. package/fesm2022/gravionlabs-helix-core-types-badge.mjs.map +0 -1
  735. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs.map +0 -1
  736. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs.map +0 -1
  737. package/fesm2022/gravionlabs-helix-core-types-button.mjs.map +0 -1
  738. package/fesm2022/gravionlabs-helix-core-types-card.mjs.map +0 -1
  739. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs.map +0 -1
  740. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs.map +0 -1
  741. package/fesm2022/gravionlabs-helix-core-types-chart.mjs.map +0 -1
  742. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs.map +0 -1
  743. package/fesm2022/gravionlabs-helix-core-types-chip.mjs.map +0 -1
  744. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs.map +0 -1
  745. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs.map +0 -1
  746. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs.map +0 -1
  747. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs.map +0 -1
  748. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs.map +0 -1
  749. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs.map +0 -1
  750. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs.map +0 -1
  751. package/fesm2022/gravionlabs-helix-core-types-divider.mjs.map +0 -1
  752. package/fesm2022/gravionlabs-helix-core-types-dock.mjs.map +0 -1
  753. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs.map +0 -1
  754. package/fesm2022/gravionlabs-helix-core-types-editor.mjs.map +0 -1
  755. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs.map +0 -1
  756. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs.map +0 -1
  757. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs.map +0 -1
  758. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs.map +0 -1
  759. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs.map +0 -1
  760. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs.map +0 -1
  761. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs.map +0 -1
  762. package/fesm2022/gravionlabs-helix-core-types-image.mjs.map +0 -1
  763. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs.map +0 -1
  764. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs.map +0 -1
  765. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs.map +0 -1
  766. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs.map +0 -1
  767. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs.map +0 -1
  768. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs.map +0 -1
  769. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs.map +0 -1
  770. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs.map +0 -1
  771. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs.map +0 -1
  772. package/fesm2022/gravionlabs-helix-core-types-knob.mjs.map +0 -1
  773. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs.map +0 -1
  774. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs.map +0 -1
  775. package/fesm2022/gravionlabs-helix-core-types-menu.mjs.map +0 -1
  776. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs.map +0 -1
  777. package/fesm2022/gravionlabs-helix-core-types-message.mjs.map +0 -1
  778. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs.map +0 -1
  779. package/fesm2022/gravionlabs-helix-core-types-motion.mjs.map +0 -1
  780. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs.map +0 -1
  781. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs.map +0 -1
  782. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs.map +0 -1
  783. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs.map +0 -1
  784. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs.map +0 -1
  785. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs.map +0 -1
  786. package/fesm2022/gravionlabs-helix-core-types-panel.mjs.map +0 -1
  787. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs.map +0 -1
  788. package/fesm2022/gravionlabs-helix-core-types-password.mjs.map +0 -1
  789. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs.map +0 -1
  790. package/fesm2022/gravionlabs-helix-core-types-popover.mjs.map +0 -1
  791. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs.map +0 -1
  792. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs.map +0 -1
  793. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs.map +0 -1
  794. package/fesm2022/gravionlabs-helix-core-types-rating.mjs.map +0 -1
  795. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs.map +0 -1
  796. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs.map +0 -1
  797. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs.map +0 -1
  798. package/fesm2022/gravionlabs-helix-core-types-select.mjs.map +0 -1
  799. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs.map +0 -1
  800. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs.map +0 -1
  801. package/fesm2022/gravionlabs-helix-core-types-slider.mjs.map +0 -1
  802. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs.map +0 -1
  803. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs.map +0 -1
  804. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs.map +0 -1
  805. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs.map +0 -1
  806. package/fesm2022/gravionlabs-helix-core-types-table.mjs.map +0 -1
  807. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs.map +0 -1
  808. package/fesm2022/gravionlabs-helix-core-types-tag.mjs.map +0 -1
  809. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs.map +0 -1
  810. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs.map +0 -1
  811. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs.map +0 -1
  812. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs.map +0 -1
  813. package/fesm2022/gravionlabs-helix-core-types-toast.mjs.map +0 -1
  814. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs.map +0 -1
  815. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs.map +0 -1
  816. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs.map +0 -1
  817. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs.map +0 -1
  818. package/fesm2022/gravionlabs-helix-core-types-tree.mjs.map +0 -1
  819. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs.map +0 -1
  820. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs.map +0 -1
@@ -1,28 +1,27 @@
1
- export * from '@gravionlabs/helix-core/types/tree';
2
- import * as i1 from '@angular/common';
3
- import { CommonModule } from '@angular/common';
4
- import * as i0 from '@angular/core';
5
- import { Injectable, InjectionToken, inject, input, booleanAttribute, numberAttribute, forwardRef, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, model, output, contentChild, viewChild, contentChildren, Optional, NgModule } from '@angular/core';
6
- import * as i2 from '@angular/forms';
7
- import { FormsModule } from '@angular/forms';
8
- import { getOuterWidth, getOuterHeight, find, findSingle, focus, removeAccents, resolveFieldData } from '@gravionlabs/helix-core/uix/utils';
9
- import * as i4 from '@gravionlabs/helix-core/api';
10
- import { SharedModule, HelixTemplate, TranslationKeys } from '@gravionlabs/helix-core/api';
11
- import * as i5 from '@gravionlabs/helix-core/autofocus';
12
- import { AutoFocusModule } from '@gravionlabs/helix-core/autofocus';
13
- import { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';
14
- import * as i3 from '@gravionlabs/helix-core/bind';
15
- import { BindModule, Bind } from '@gravionlabs/helix-core/bind';
16
- import { Checkbox } from '@gravionlabs/helix-core/checkbox';
17
- import { IconField } from '@gravionlabs/helix-core/iconfield';
18
- import { ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SearchIcon } from '@gravionlabs/helix-core/icons';
19
- import { InputIcon } from '@gravionlabs/helix-core/inputicon';
20
- import { InputText } from '@gravionlabs/helix-core/inputtext';
21
- import { Ripple } from '@gravionlabs/helix-core/ripple';
22
- import { Scroller } from '@gravionlabs/helix-core/scroller';
23
- import { BaseStyle } from '@gravionlabs/helix-core/base';
24
-
25
- const style = /*css*/ `
1
+ import * as i1 from "@angular/common";
2
+ import { CommonModule } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import { ChangeDetectionStrategy, Component, Injectable, InjectionToken, NgModule, Optional, ViewEncapsulation, booleanAttribute, computed, contentChild, contentChildren, forwardRef, inject, input, model, numberAttribute, output, signal, viewChild } from "@angular/core";
5
+ import * as i2 from "@angular/forms";
6
+ import { FormsModule } from "@angular/forms";
7
+ import { find, findSingle, focus, getOuterHeight, getOuterWidth, removeAccents, resolveFieldData } from "@gravionlabs/helix-core/uix/utils";
8
+ import * as i4 from "@gravionlabs/helix-core/api";
9
+ import { HelixTemplate, SharedModule, TranslationKeys } from "@gravionlabs/helix-core/api";
10
+ import * as i5 from "@gravionlabs/helix-core/autofocus";
11
+ import { AutoFocusModule } from "@gravionlabs/helix-core/autofocus";
12
+ import { BaseComponent, PARENT_INSTANCE } from "@gravionlabs/helix-core/basecomponent";
13
+ import * as i3 from "@gravionlabs/helix-core/bind";
14
+ import { Bind, BindModule } from "@gravionlabs/helix-core/bind";
15
+ import { Checkbox } from "@gravionlabs/helix-core/checkbox";
16
+ import { IconField } from "@gravionlabs/helix-core/iconfield";
17
+ import { ChevronDownIcon, ChevronRightIcon, SearchIcon, SpinnerIcon } from "@gravionlabs/helix-core/icons";
18
+ import { InputIcon } from "@gravionlabs/helix-core/inputicon";
19
+ import { InputText } from "@gravionlabs/helix-core/inputtext";
20
+ import { Ripple } from "@gravionlabs/helix-core/ripple";
21
+ import { Scroller } from "@gravionlabs/helix-core/scroller";
22
+ import { BaseStyle } from "@gravionlabs/helix-core/base";
23
+ export * from "@gravionlabs/helix-core/types/tree";
24
+ const style = `
26
25
  .h-tree {
27
26
  display: block;
28
27
  background: dt('tree.background');
@@ -210,1651 +209,2657 @@ const style = /*css*/ `
210
209
  flex: 1;
211
210
  }
212
211
  `;
213
-
214
212
  const classes = {
215
- root: ({ instance }) => [
216
- 'h-tree h-component',
217
- {
218
- 'h-tree-selectable': instance.selectionMode != null,
219
- 'h-tree-loading': instance.loading,
220
- 'h-tree-flex-scrollable': instance.scrollHeight === 'flex',
221
- 'h-tree-node-dragover': instance.dragHover
222
- }
223
- ],
224
- mask: 'h-tree-mask h-overlay-mask',
225
- loadingIcon: 'h-tree-loading-icon',
226
- pcFilterInput: 'h-tree-filter-input',
227
- wrapper: 'h-tree-root',
228
- rootChildren: 'h-tree-root-children',
229
- node: ({ instance }) => ({ 'h-tree-node': true, 'h-tree-node-leaf': instance.isLeaf() }),
230
- nodeContent: ({ instance }) => ({
231
- 'h-tree-node-content': true,
232
- 'h-tree-node-selectable': instance.selectable,
233
- 'h-tree-node-dragover': instance.isNodeDropActive(),
234
- 'h-tree-node-selected': instance.selectionMode === 'checkbox' && instance.tree.highlightOnSelect ? instance.checked : instance.selected,
235
- 'h-tree-node-contextmenu-selected': instance.isContextMenuSelected()
236
- }),
237
- nodeToggleButton: 'h-tree-node-toggle-button',
238
- nodeToggleIcon: 'h-tree-node-toggle-icon',
239
- nodeCheckbox: 'h-tree-node-checkbox',
240
- nodeIcon: 'h-tree-node-icon',
241
- nodeLabel: 'h-tree-node-label',
242
- nodeChildren: 'h-tree-node-children',
243
- emptyMessage: 'h-tree-empty-message',
244
- dropPoint: 'h-tree-node-drop-point'
213
+ root: ({ instance }) => ["h-tree h-component", {
214
+ "h-tree-selectable": instance.selectionMode != null,
215
+ "h-tree-loading": instance.loading,
216
+ "h-tree-flex-scrollable": instance.scrollHeight === "flex",
217
+ "h-tree-node-dragover": instance.dragHover
218
+ }],
219
+ mask: "h-tree-mask h-overlay-mask",
220
+ loadingIcon: "h-tree-loading-icon",
221
+ pcFilterInput: "h-tree-filter-input",
222
+ wrapper: "h-tree-root",
223
+ rootChildren: "h-tree-root-children",
224
+ node: ({ instance }) => ({
225
+ "h-tree-node": true,
226
+ "h-tree-node-leaf": instance.isLeaf()
227
+ }),
228
+ nodeContent: ({ instance }) => ({
229
+ "h-tree-node-content": true,
230
+ "h-tree-node-selectable": instance.selectable,
231
+ "h-tree-node-dragover": instance.isNodeDropActive(),
232
+ "h-tree-node-selected": instance.selectionMode === "checkbox" && instance.tree.highlightOnSelect ? instance.checked : instance.selected,
233
+ "h-tree-node-contextmenu-selected": instance.isContextMenuSelected()
234
+ }),
235
+ nodeToggleButton: "h-tree-node-toggle-button",
236
+ nodeToggleIcon: "h-tree-node-toggle-icon",
237
+ nodeCheckbox: "h-tree-node-checkbox",
238
+ nodeIcon: "h-tree-node-icon",
239
+ nodeLabel: "h-tree-node-label",
240
+ nodeChildren: "h-tree-node-children",
241
+ emptyMessage: "h-tree-empty-message",
242
+ dropPoint: "h-tree-node-drop-point"
245
243
  };
246
- class TreeStyle extends BaseStyle {
247
- name = 'tree';
248
- style = style;
249
- classes = classes;
250
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
251
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeStyle });
252
- }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeStyle, decorators: [{
254
- type: Injectable
255
- }] });
256
- /**
257
- *
258
- * Tree is used to display hierarchical data.
259
- *
260
- * [Live Demo](https://www.primeng.org/tree/)
261
- *
262
- * @module treestyle
263
- *
264
- */
244
+ var TreeStyle = class TreeStyle extends BaseStyle {
245
+ name = "tree";
246
+ style = style;
247
+ classes = classes;
248
+ static ɵfac = i0.ɵɵngDeclareFactory({
249
+ minVersion: "12.0.0",
250
+ version: "22.2.1",
251
+ ngImport: i0,
252
+ type: TreeStyle,
253
+ deps: null,
254
+ target: i0.ɵɵFactoryTarget.Injectable
255
+ });
256
+ static ɵprov = i0.ɵɵngDeclareInjectable({
257
+ minVersion: "12.0.0",
258
+ version: "22.2.1",
259
+ ngImport: i0,
260
+ type: TreeStyle
261
+ });
262
+ };
263
+ i0.ɵɵngDeclareClassMetadata({
264
+ minVersion: "12.0.0",
265
+ version: "22.2.1",
266
+ ngImport: i0,
267
+ type: TreeStyle,
268
+ decorators: [{ type: Injectable }]
269
+ });
265
270
  var TreeClasses;
266
- (function (TreeClasses) {
267
- /**
268
- * Class name of the root element
269
- */
270
- TreeClasses["root"] = "h-tree";
271
- /**
272
- * Class name of the mask element
273
- */
274
- TreeClasses["mask"] = "h-tree-mask";
275
- /**
276
- * Class name of the loading icon element
277
- */
278
- TreeClasses["loadingIcon"] = "h-tree-loading-icon";
279
- /**
280
- * Class name of the filter input element
281
- */
282
- TreeClasses["pcFilterInput"] = "h-tree-filter-input";
283
- /**
284
- * Class name of the wrapper element
285
- */
286
- TreeClasses["wrapper"] = "h-tree-root";
287
- /**
288
- * Class name of the root children element
289
- */
290
- TreeClasses["rootChildren"] = "h-tree-root-children";
291
- /**
292
- * Class name of the node element
293
- */
294
- TreeClasses["node"] = "h-tree-node";
295
- /**
296
- * Class name of the node content element
297
- */
298
- TreeClasses["nodeContent"] = "h-tree-node-content";
299
- /**
300
- * Class name of the node toggle button element
301
- */
302
- TreeClasses["nodeToggleButton"] = "h-tree-node-toggle-button";
303
- /**
304
- * Class name of the node toggle icon element
305
- */
306
- TreeClasses["nodeToggleIcon"] = "h-tree-node-toggle-icon";
307
- /**
308
- * Class name of the node checkbox element
309
- */
310
- TreeClasses["nodeCheckbox"] = "h-tree-node-checkbox";
311
- /**
312
- * Class name of the node icon element
313
- */
314
- TreeClasses["nodeIcon"] = "h-tree-node-icon";
315
- /**
316
- * Class name of the node label element
317
- */
318
- TreeClasses["nodeLabel"] = "h-tree-node-label";
319
- /**
320
- * Class name of the node children element
321
- */
322
- TreeClasses["nodeChildren"] = "h-tree-node-children";
323
- /**
324
- * Class name of the empty message element
325
- */
326
- TreeClasses["emptyMessage"] = "h-tree-empty-message";
327
- /**
328
- * Class name of the drop point element
329
- */
330
- TreeClasses["dropPoint"] = "h-tree-node-droppoint";
271
+ (function(TreeClasses) {
272
+ TreeClasses["root"] = "h-tree";
273
+ TreeClasses["mask"] = "h-tree-mask";
274
+ TreeClasses["loadingIcon"] = "h-tree-loading-icon";
275
+ TreeClasses["pcFilterInput"] = "h-tree-filter-input";
276
+ TreeClasses["wrapper"] = "h-tree-root";
277
+ TreeClasses["rootChildren"] = "h-tree-root-children";
278
+ TreeClasses["node"] = "h-tree-node";
279
+ TreeClasses["nodeContent"] = "h-tree-node-content";
280
+ TreeClasses["nodeToggleButton"] = "h-tree-node-toggle-button";
281
+ TreeClasses["nodeToggleIcon"] = "h-tree-node-toggle-icon";
282
+ TreeClasses["nodeCheckbox"] = "h-tree-node-checkbox";
283
+ TreeClasses["nodeIcon"] = "h-tree-node-icon";
284
+ TreeClasses["nodeLabel"] = "h-tree-node-label";
285
+ TreeClasses["nodeChildren"] = "h-tree-node-children";
286
+ TreeClasses["emptyMessage"] = "h-tree-empty-message";
287
+ TreeClasses["dropPoint"] = "h-tree-node-droppoint";
331
288
  })(TreeClasses || (TreeClasses = {}));
332
-
333
- const TREE_INSTANCE = new InjectionToken('TREE_INSTANCE');
334
- const TREENODE_INSTANCE = new InjectionToken('TREENODE_INSTANCE');
335
- class UITreeNode extends BaseComponent {
336
- $pcTreeNode = inject(TREENODE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
337
- static ICON_CLASS = 'h-tree-node-icon ';
338
- rowNode = input(/* @ts-ignore */
339
- ...(ngDevMode ? [undefined, { debugName: "rowNode" }] : /* istanbul ignore next */ []));
340
- node = input(undefined, /* @ts-ignore */
341
- ...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
342
- parentNode = input(/* @ts-ignore */
343
- ...(ngDevMode ? [undefined, { debugName: "parentNode" }] : /* istanbul ignore next */ []));
344
- root = input(undefined, { ...(ngDevMode ? { debugName: "root" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
345
- index = input(undefined, { ...(ngDevMode ? { debugName: "index" } : /* istanbul ignore next */ {}), transform: numberAttribute });
346
- firstChild = input(undefined, { ...(ngDevMode ? { debugName: "firstChild" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
347
- lastChild = input(undefined, { ...(ngDevMode ? { debugName: "lastChild" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
348
- level = input(undefined, { ...(ngDevMode ? { debugName: "level" } : /* istanbul ignore next */ {}), transform: numberAttribute });
349
- indentation = input(undefined, { ...(ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {}), transform: numberAttribute });
350
- itemSize = input(undefined, { ...(ngDevMode ? { debugName: "itemSize" } : /* istanbul ignore next */ {}), transform: numberAttribute });
351
- loadingMode = input(undefined, /* @ts-ignore */
352
- ...(ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []));
353
- tree = inject(forwardRef(() => Tree));
354
- timeout;
355
- isPrevDropPointHovered = signal(false, /* @ts-ignore */
356
- ...(ngDevMode ? [{ debugName: "isPrevDropPointHovered" }] : /* istanbul ignore next */ []));
357
- isNextDropPointHovered = signal(false, /* @ts-ignore */
358
- ...(ngDevMode ? [{ debugName: "isNextDropPointHovered" }] : /* istanbul ignore next */ []));
359
- isNodeDropHovered = signal(false, /* @ts-ignore */
360
- ...(ngDevMode ? [{ debugName: "isNodeDropHovered" }] : /* istanbul ignore next */ []));
361
- isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable(), /* @ts-ignore */
362
- ...(ngDevMode ? [{ debugName: "isPrevDropPointActive" }] : /* istanbul ignore next */ []));
363
- isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable(), /* @ts-ignore */
364
- ...(ngDevMode ? [{ debugName: "isNextDropPointActive" }] : /* istanbul ignore next */ []));
365
- isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), /* @ts-ignore */
366
- ...(ngDevMode ? [{ debugName: "isNodeDropActive" }] : /* istanbul ignore next */ []));
367
- dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0), /* @ts-ignore */
368
- ...(ngDevMode ? [{ debugName: "dropPosition" }] : /* istanbul ignore next */ []));
369
- _componentStyle = inject(TreeStyle);
370
- /**
371
- * Computed signal that reactively tracks selection state.
372
- */
373
- _selected = computed(() => {
374
- // Reading selection() makes this computed reactive to selection changes
375
- this.tree.selection();
376
- return this.tree.isSelected(this.node());
377
- }, /* @ts-ignore */
378
- ...(ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []));
379
- /**
380
- * Computed signal that reactively tracks context menu selection state.
381
- */
382
- _contextMenuSelected = computed(() => {
383
- const selection = this.tree.contextMenuSelection();
384
- const n = this.node();
385
- if (!selection || !n) {
386
- return false;
387
- }
388
- return selection === n || (selection.key && selection.key === n.key);
389
- }, /* @ts-ignore */
390
- ...(ngDevMode ? [{ debugName: "_contextMenuSelected" }] : /* istanbul ignore next */ []));
391
- get selected() {
392
- return this.tree.selectionMode() === 'single' || this.tree.selectionMode() === 'multiple' ? this._selected() : undefined;
393
- }
394
- get checked() {
395
- return this.tree.selectionMode() === 'checkbox' ? this._selected() : undefined;
396
- }
397
- get nodeClass() {
398
- return this.tree._componentStyle.classes.node({ instance: this });
399
- }
400
- get selectable() {
401
- return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;
402
- }
403
- get subNodes() {
404
- const n = this.node();
405
- return n?.parent ? n.parent.children : this.tree.value();
406
- }
407
- getPTOptions(key) {
408
- return this.ptm(key, {
409
- context: {
410
- node: this.node(),
411
- index: this.index(),
412
- expanded: this.node()?.expanded,
413
- selected: this.selected,
414
- checked: this.checked,
415
- partialChecked: this.node()?.partialSelected,
416
- leaf: this.isLeaf()
417
- }
418
- });
419
- }
420
- onInit() {
421
- this.node().parent = this.parentNode();
422
- const nativeElement = this.tree.el.nativeElement;
423
- const pDialogWrapper = nativeElement.closest('h-dialog');
424
- const parentNode = this.parentNode();
425
- if (parentNode && !pDialogWrapper) {
426
- this.setAllNodesTabIndexes();
427
- this.tree.syncNodeOption(this.node(), this.tree.value(), 'parent', this.tree.getNodeWithKey(parentNode.key, this.tree.value()));
428
- }
429
- }
430
- getIcon() {
431
- let icon;
432
- if (this.node().icon)
433
- icon = this.node().icon;
434
- else
435
- icon = this.node().expanded && this.node().children && this.node().children?.length ? this.node().expandedIcon : this.node().collapsedIcon;
436
- return UITreeNode.ICON_CLASS + ' ' + icon + ' h-tree-node-icon';
437
- }
438
- isLeaf() {
439
- return this.tree.isNodeLeaf(this.node());
440
- }
441
- isSelected() {
442
- return this._selected();
443
- }
444
- isContextMenuSelected() {
445
- return this._contextMenuSelected();
446
- }
447
- isSameNode(event) {
448
- return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role="treeitem"]')));
449
- }
450
- isDraggable() {
451
- return this.tree.draggableNodes();
452
- }
453
- isDroppable() {
454
- return this.tree.droppableNodes() && this.tree.allowDrop(this.tree.dragNode, this.node(), this.tree.dragNodeScope);
455
- }
456
- isNodeDroppable() {
457
- return this.node()?.droppable !== false && this.isDroppable();
458
- }
459
- isNodeDraggable() {
460
- return this.node()?.draggable !== false && this.isDraggable();
461
- }
462
- toggle(event) {
463
- if (this.node().expanded)
464
- this.collapse(event);
465
- else
466
- this.expand(event);
467
- event.stopPropagation();
468
- }
469
- expand(event) {
470
- this.node().expanded = true;
471
- if (this.tree.virtualScroll()) {
472
- this.tree.updateSerializedValue();
473
- this.focusVirtualNode();
474
- }
475
- this.tree.onNodeExpand.emit({ originalEvent: event, node: this.node() });
476
- }
477
- collapse(event) {
478
- this.node().expanded = false;
479
- if (this.tree.virtualScroll()) {
480
- this.tree.updateSerializedValue();
481
- }
482
- this.tree.onNodeCollapse.emit({ originalEvent: event, node: this.node() });
483
- this.focusVirtualNode();
484
- }
485
- onNodeClick(event) {
486
- this.tree.onNodeClick(event, this.node());
487
- }
488
- onNodeKeydown(event) {
489
- if (event.key === 'Enter') {
490
- this.tree.onNodeClick(event, this.node());
491
- }
492
- }
493
- onNodeTouchEnd() {
494
- this.tree.onNodeTouchEnd();
495
- }
496
- onNodeRightClick(event) {
497
- this.tree.onNodeRightClick(event, this.node());
498
- }
499
- onNodeDblClick(event) {
500
- this.tree.onNodeDblClick(event, this.node());
501
- }
502
- insertNodeOnDrop() {
503
- const { dragNode, dragNodeIndex, dragNodeSubNodes } = this.tree;
504
- const n = this.node();
505
- if (!n || dragNodeIndex == null || !dragNode || !dragNodeSubNodes) {
506
- return;
507
- }
508
- const position = this.dropPosition();
509
- const subNodes = this.subNodes || [];
510
- const index = this.index() || 0;
511
- const dropIndex = dragNodeSubNodes === subNodes ? (dragNodeIndex > index ? index : index - 1) : index;
512
- dragNodeSubNodes.splice(dragNodeIndex, 1);
513
- if (position < 0) {
514
- // insert before a Node
515
- subNodes.splice(dropIndex, 0, dragNode);
516
- }
517
- else if (position > 0) {
518
- // insert after a Node
519
- subNodes.splice(dropIndex + 1, 0, dragNode);
520
- }
521
- else {
522
- // insert as child of a Node
523
- n.children = n.children || [];
524
- n.children.push(dragNode);
525
- }
526
- this.tree.dragDropService.stopDrag({
527
- node: dragNode,
528
- subNodes,
529
- index: dragNodeIndex
530
- });
531
- }
532
- onNodeDrop(event) {
533
- event.preventDefault();
534
- event.stopPropagation();
535
- if (this.isDroppable()) {
536
- const { dragNode } = this.tree;
537
- const position = this.dropPosition();
538
- const isValidDrop = position !== 0 || (position === 0 && this.isNodeDroppable());
539
- if (isValidDrop) {
540
- if (this.tree.validateDrop()) {
541
- this.tree.onNodeDrop.emit({
542
- originalEvent: event,
543
- dragNode: dragNode,
544
- dropNode: this.node(),
545
- index: this.index(),
546
- accept: () => {
547
- this.insertNodeOnDrop();
548
- }
549
- });
550
- }
551
- else {
552
- this.insertNodeOnDrop();
553
- this.tree.onNodeDrop.emit({
554
- originalEvent: event,
555
- dragNode: dragNode,
556
- dropNode: this.node(),
557
- index: this.index()
558
- });
559
- }
560
- }
561
- }
562
- this.isPrevDropPointHovered.set(false);
563
- this.isNextDropPointHovered.set(false);
564
- this.isNodeDropHovered.set(false);
565
- }
566
- onNodeDragStart(event) {
567
- if (this.isNodeDraggable()) {
568
- event.dataTransfer.effectAllowed = 'all';
569
- event.dataTransfer?.setData('text', 'data');
570
- const target = event.currentTarget;
571
- const dragEl = target.cloneNode(true);
572
- const toggler = dragEl.querySelector('[data-pc-section="nodetogglebutton"]');
573
- const checkbox = dragEl.querySelector('[data-pc-name="pcnodecheckbox"]');
574
- target.setAttribute('data-h-dragging', 'true');
575
- dragEl.style.width = getOuterWidth(target) + 'px';
576
- dragEl.style.height = getOuterHeight(target) + 'px';
577
- dragEl.setAttribute('data-pc-section', 'drag-image');
578
- toggler.style.visibility = 'hidden';
579
- checkbox?.remove();
580
- document.body.appendChild(dragEl);
581
- event.dataTransfer?.setDragImage(dragEl, 0, 0);
582
- setTimeout(() => document.body.removeChild(dragEl), 0);
583
- this.tree.dragDropService.startDrag({
584
- tree: this,
585
- node: this.node(),
586
- subNodes: this.subNodes,
587
- index: this.index(),
588
- scope: this.tree.draggableScope()
589
- });
590
- }
591
- else {
592
- event.preventDefault();
593
- }
594
- }
595
- onNodeDragOver(event) {
596
- if (this.isDroppable()) {
597
- event.dataTransfer.dropEffect = 'copy';
598
- const nodeElement = event.currentTarget;
599
- const rect = nodeElement.getBoundingClientRect();
600
- const y = event.clientY - parseInt(rect.top);
601
- this.isPrevDropPointHovered.set(false);
602
- this.isNextDropPointHovered.set(false);
603
- this.isNodeDropHovered.set(false);
604
- if (y < rect.height * 0.25) {
605
- this.isPrevDropPointHovered.set(true);
606
- }
607
- else if (y > rect.height * 0.75) {
608
- this.isNextDropPointHovered.set(true);
609
- }
610
- else if (this.isNodeDroppable()) {
611
- this.isNodeDropHovered.set(true);
612
- }
613
- }
614
- else {
615
- event.dataTransfer.dropEffect = 'none';
616
- }
617
- if (this.tree.droppableNodes()) {
618
- event.preventDefault();
619
- event.stopPropagation();
620
- }
621
- }
622
- onNodeDragLeave() {
623
- this.isPrevDropPointHovered.set(false);
624
- this.isNextDropPointHovered.set(false);
625
- this.isNodeDropHovered.set(false);
626
- }
627
- onNodeDragEnd(event) {
628
- event.currentTarget?.removeAttribute('data-h-dragging');
629
- this.tree.dragDropService.stopDrag({
630
- node: this.node(),
631
- subNodes: this.subNodes,
632
- index: this.index()
633
- });
634
- }
635
- onKeyDown(event) {
636
- const contextMenu = this.tree.contextMenu();
637
- if (!this.isSameNode(event) || (contextMenu && contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {
638
- return;
639
- }
640
- switch (event.code) {
641
- //down arrow
642
- case 'ArrowDown':
643
- this.onArrowDown(event);
644
- break;
645
- //up arrow
646
- case 'ArrowUp':
647
- this.onArrowUp(event);
648
- break;
649
- //right arrow
650
- case 'ArrowRight':
651
- this.onArrowRight(event);
652
- break;
653
- //left arrow
654
- case 'ArrowLeft':
655
- this.onArrowLeft(event);
656
- break;
657
- //enter
658
- case 'Enter':
659
- case 'Space':
660
- case 'NumpadEnter':
661
- this.onEnter(event);
662
- break;
663
- //tab
664
- case 'Tab':
665
- this.setAllNodesTabIndexes();
666
- break;
667
- default:
668
- //no op
669
- break;
670
- }
671
- }
672
- onArrowUp(event) {
673
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target.parentElement;
674
- if (nodeElement?.previousElementSibling) {
675
- this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));
676
- }
677
- else {
678
- let parentNodeElement = this.getParentNodeElement(nodeElement);
679
- if (parentNodeElement) {
680
- this.focusRowChange(nodeElement, parentNodeElement);
681
- }
682
- }
683
- event.preventDefault();
684
- }
685
- onArrowDown(event) {
686
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target;
687
- const listElement = nodeElement?.children[1];
688
- if (listElement && listElement.children.length > 0) {
689
- this.focusRowChange(nodeElement, listElement.children[0]);
690
- }
691
- else {
692
- if (nodeElement?.parentElement?.nextElementSibling) {
693
- this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);
694
- }
695
- else {
696
- let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement);
697
- if (nextSiblingAncestor) {
698
- this.focusRowChange(nodeElement, nextSiblingAncestor);
699
- }
700
- }
701
- }
702
- event.preventDefault();
703
- }
704
- onArrowRight(event) {
705
- if (!this.node()?.expanded && !this.tree.isNodeLeaf(this.node())) {
706
- this.expand(event);
707
- event.currentTarget.tabIndex = -1;
708
- setTimeout(() => {
709
- this.onArrowDown(event);
710
- }, 1);
711
- }
712
- event.preventDefault();
713
- }
714
- onArrowLeft(event) {
715
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target;
716
- if (this.level() === 0 && !this.node()?.expanded) {
717
- return false;
718
- }
719
- if (this.node()?.expanded) {
720
- this.collapse(event);
721
- return;
722
- }
723
- let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement);
724
- if (parentNodeElement) {
725
- this.focusRowChange(event.currentTarget, parentNodeElement);
726
- }
727
- event.preventDefault();
728
- }
729
- onEnter(event) {
730
- this.tree.onNodeClick(event, this.node());
731
- this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);
732
- event.preventDefault();
733
- }
734
- setAllNodesTabIndexes() {
735
- const nodes = find(this.tree.el.nativeElement, '[data-pc-section="node"]');
736
- const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
737
- [...nodes].forEach((node) => {
738
- node.tabIndex = -1;
739
- });
740
- if (hasSelectedNode) {
741
- const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
742
- selectedNodes[0].tabIndex = 0;
743
- return;
744
- }
745
- if (nodes.length) {
746
- [...nodes][0].tabIndex = 0;
747
- }
748
- }
749
- setTabIndexForSelectionMode(event, nodeTouched) {
750
- if (this.tree.selectionMode() !== null) {
751
- const elements = [...find(this.tree.el.nativeElement, '[role="treeitem"]')];
752
- event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
753
- if (elements.every((element) => element.tabIndex === -1)) {
754
- elements[0].tabIndex = 0;
755
- }
756
- }
757
- }
758
- findNextSiblingOfAncestor(nodeElement) {
759
- let parentNodeElement = this.getParentNodeElement(nodeElement);
760
- if (parentNodeElement) {
761
- if (parentNodeElement.nextElementSibling)
762
- return parentNodeElement.nextElementSibling;
763
- else
764
- return this.findNextSiblingOfAncestor(parentNodeElement);
765
- }
766
- else {
767
- return null;
768
- }
769
- }
770
- findLastVisibleDescendant(nodeElement) {
771
- const listElement = Array.from(nodeElement.children).find((el) => el.getAttribute('data-pc-section') === 'node');
772
- const childrenListElement = listElement?.children[1];
773
- if (childrenListElement && childrenListElement.children.length > 0) {
774
- const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
775
- return this.findLastVisibleDescendant(lastChildElement);
776
- }
777
- else {
778
- return nodeElement;
779
- }
780
- }
781
- getParentNodeElement(nodeElement) {
782
- const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;
783
- return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;
784
- }
785
- focusNode(element) {
786
- element.children[0].focus();
787
- }
788
- focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {
789
- firstFocusableRow.tabIndex = '-1';
790
- currentFocusedRow.children[0].tabIndex = '0';
791
- this.focusNode(lastVisibleDescendant || currentFocusedRow);
792
- }
793
- focusVirtualNode() {
794
- this.timeout = setTimeout(() => {
795
- let node = findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id="${this.node()?.key ?? this.node()?.data}"]`);
796
- focus(node);
797
- }, 1);
798
- }
799
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: UITreeNode, deps: null, target: i0.ɵɵFactoryTarget.Component });
800
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: UITreeNode, isStandalone: true, selector: "h-treeNode", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "rowNode", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, firstChild: { classPropertyName: "firstChild", publicName: "firstChild", isSignal: true, isRequired: false, transformFunction: null }, lastChild: { classPropertyName: "lastChild", publicName: "lastChild", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], usesInheritance: true, ngImport: i0, template: "@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\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 [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n", dependencies: [{ kind: "component", type: UITreeNode, selector: "h-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[hRipple]" }, { kind: "component", type: Checkbox, selector: "h-checkbox, h-checkBox, h-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRightIcon, selector: "[data-h-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-h-icon=\"chevron-down\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-h-icon=\"spinner\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i3.Bind, selector: "[hBind]", inputs: ["hBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
801
- }
802
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: UITreeNode, decorators: [{
803
- type: Component,
804
- args: [{ selector: 'h-treeNode', standalone: true, imports: [CommonModule, Ripple, Checkbox, FormsModule, ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SharedModule, BindModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], template: "@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\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 [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n" }]
805
- }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowNode", required: false }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: false }] }], parentNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentNode", required: false }] }], root: [{ type: i0.Input, args: [{ isSignal: true, alias: "root", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }], firstChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstChild", required: false }] }], lastChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastChild", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], indentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentation", required: false }] }], itemSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemSize", required: false }] }], loadingMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMode", required: false }] }] } });
806
- /**
807
- * Tree is used to display hierarchical data.
808
- * @group Components
809
- */
810
- class Tree extends BaseComponent {
811
- dragDropService;
812
- componentName = 'Tree';
813
- bindDirectiveInstance = inject(Bind, { self: true });
814
- $pcTree = inject(TREE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
815
- onAfterViewChecked() {
816
- this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
817
- }
818
- /**
819
- * An array of treenodes.
820
- * @group Props
821
- */
822
- value = model(undefined, /* @ts-ignore */
823
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
824
- /**
825
- * Defines the selection mode.
826
- * @group Props
827
- */
828
- selectionMode = model(undefined, /* @ts-ignore */
829
- ...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
830
- /**
831
- * Loading mode display.
832
- * @group Props
833
- */
834
- loadingMode = input('mask', /* @ts-ignore */
835
- ...(ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []));
836
- /**
837
- * A single treenode instance or an array to refer to the selections.
838
- * @group Props
839
- */
840
- selection = model(null, /* @ts-ignore */
841
- ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
842
- /**
843
- * Style class of the component.
844
- * @deprecated since v20.0.0, use `class` instead.
845
- * @group Props
846
- */
847
- styleClass = input(/* @ts-ignore */
848
- ...(ngDevMode ? [undefined, { debugName: "styleClass" }] : /* istanbul ignore next */ []));
849
- /**
850
- * Context menu instance.
851
- * @group Props
852
- */
853
- contextMenu = input(/* @ts-ignore */
854
- ...(ngDevMode ? [undefined, { debugName: "contextMenu" }] : /* istanbul ignore next */ []));
855
- /**
856
- * Defines the behavior of context menu selection, in "separate" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.
857
- * @group Props
858
- */
859
- contextMenuSelectionMode = input('joint', /* @ts-ignore */
860
- ...(ngDevMode ? [{ debugName: "contextMenuSelectionMode" }] : /* istanbul ignore next */ []));
861
- /**
862
- * Selected node with a context menu.
863
- * @group Props
864
- */
865
- contextMenuSelection = model(null, /* @ts-ignore */
866
- ...(ngDevMode ? [{ debugName: "contextMenuSelection" }] : /* istanbul ignore next */ []));
867
- /**
868
- * Scope of the draggable nodes to match a droppableScope.
869
- * @group Props
870
- */
871
- draggableScope = input(/* @ts-ignore */
872
- ...(ngDevMode ? [undefined, { debugName: "draggableScope" }] : /* istanbul ignore next */ []));
873
- /**
874
- * Scope of the droppable nodes to match a droppableScope.
875
- * @group Props
876
- */
877
- droppableScope = input(/* @ts-ignore */
878
- ...(ngDevMode ? [undefined, { debugName: "droppableScope" }] : /* istanbul ignore next */ []));
879
- /**
880
- * Whether the nodes are draggable.
881
- * @group Props
882
- */
883
- draggableNodes = input(undefined, { ...(ngDevMode ? { debugName: "draggableNodes" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
884
- /**
885
- * Whether the nodes are droppable.
886
- * @group Props
887
- */
888
- droppableNodes = input(undefined, { ...(ngDevMode ? { debugName: "droppableNodes" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
889
- /**
890
- * 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.
891
- * @group Props
892
- */
893
- metaKeySelection = input(false, { ...(ngDevMode ? { debugName: "metaKeySelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
894
- /**
895
- * Whether checkbox selections propagate to ancestor nodes.
896
- * @group Props
897
- */
898
- propagateSelectionUp = input(true, { ...(ngDevMode ? { debugName: "propagateSelectionUp" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
899
- /**
900
- * Whether checkbox selections propagate to descendant nodes.
901
- * @group Props
902
- */
903
- propagateSelectionDown = input(true, { ...(ngDevMode ? { debugName: "propagateSelectionDown" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
904
- /**
905
- * Displays a loader to indicate data load is in progress.
906
- * @group Props
907
- */
908
- loading = input(undefined, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
909
- /**
910
- * The icon to show while indicating data load is in progress.
911
- * @group Props
912
- */
913
- loadingIcon = input(undefined, /* @ts-ignore */
914
- ...(ngDevMode ? [{ debugName: "loadingIcon" }] : /* istanbul ignore next */ []));
915
- /**
916
- * Text to display when there is no data.
917
- * @group Props
918
- */
919
- emptyMessage = input('', /* @ts-ignore */
920
- ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
921
- /**
922
- * Used to define a string that labels the tree.
923
- * @group Props
924
- */
925
- ariaLabel = input(/* @ts-ignore */
926
- ...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
927
- /**
928
- * Defines a string that labels the toggler icon for accessibility.
929
- * @group Props
930
- */
931
- togglerAriaLabel = input(/* @ts-ignore */
932
- ...(ngDevMode ? [undefined, { debugName: "togglerAriaLabel" }] : /* istanbul ignore next */ []));
933
- /**
934
- * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
935
- * @group Props
936
- */
937
- ariaLabelledBy = input(/* @ts-ignore */
938
- ...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
939
- /**
940
- * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.
941
- * @group Props
942
- */
943
- validateDrop = input(undefined, { ...(ngDevMode ? { debugName: "validateDrop" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
944
- /**
945
- * When specified, displays an input field to filter the items.
946
- * @group Props
947
- */
948
- filter = input(undefined, { ...(ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
949
- /**
950
- * Determines whether the filter input should be automatically focused when the component is rendered.
951
- * @group Props
952
- */
953
- filterInputAutoFocus = input(false, { ...(ngDevMode ? { debugName: "filterInputAutoFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
954
- /**
955
- * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
956
- * @group Props
957
- */
958
- filterBy = input('label', /* @ts-ignore */
959
- ...(ngDevMode ? [{ debugName: "filterBy" }] : /* istanbul ignore next */ []));
960
- /**
961
- * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
962
- * @group Props
963
- */
964
- filterMode = input('lenient', /* @ts-ignore */
965
- ...(ngDevMode ? [{ debugName: "filterMode" }] : /* istanbul ignore next */ []));
966
- /**
967
- * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
968
- * @group Props
969
- */
970
- filterOptions = model(undefined, /* @ts-ignore */
971
- ...(ngDevMode ? [{ debugName: "filterOptions" }] : /* istanbul ignore next */ []));
972
- /**
973
- * Placeholder text to show when filter input is empty.
974
- * @group Props
975
- */
976
- filterPlaceholder = input(/* @ts-ignore */
977
- ...(ngDevMode ? [undefined, { debugName: "filterPlaceholder" }] : /* istanbul ignore next */ []));
978
- /**
979
- * Values after the tree nodes are filtered.
980
- * @group Props
981
- */
982
- filteredNodes = model(undefined, /* @ts-ignore */
983
- ...(ngDevMode ? [{ debugName: "filteredNodes" }] : /* istanbul ignore next */ []));
984
- /**
985
- * Locale to use in filtering. The default locale is the host environment's current locale.
986
- * @group Props
987
- */
988
- filterLocale = input(/* @ts-ignore */
989
- ...(ngDevMode ? [undefined, { debugName: "filterLocale" }] : /* istanbul ignore next */ []));
990
- /**
991
- * Height of the scrollable viewport.
992
- * @group Props
993
- */
994
- scrollHeight = input(/* @ts-ignore */
995
- ...(ngDevMode ? [undefined, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []));
996
- /**
997
- * Defines if data is loaded and interacted with in lazy manner.
998
- * @group Props
999
- */
1000
- lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1001
- /**
1002
- * Whether the data should be loaded on demand during scroll.
1003
- * @group Props
1004
- */
1005
- virtualScroll = input(undefined, { ...(ngDevMode ? { debugName: "virtualScroll" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1006
- /**
1007
- * Height of an item in the list for VirtualScrolling.
1008
- * @group Props
1009
- */
1010
- virtualScrollItemSize = input(undefined, { ...(ngDevMode ? { debugName: "virtualScrollItemSize" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1011
- /**
1012
- * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
1013
- * @group Props
1014
- */
1015
- virtualScrollOptions = input(/* @ts-ignore */
1016
- ...(ngDevMode ? [undefined, { debugName: "virtualScrollOptions" }] : /* istanbul ignore next */ []));
1017
- /**
1018
- * Indentation factor for spacing of the nested node when virtual scrolling is enabled.
1019
- * @group Props
1020
- */
1021
- indentation = input(1.5, { ...(ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1022
- /**
1023
- * Custom templates of the component.
1024
- * @group Props
1025
- */
1026
- _templateMap = model(undefined, /* @ts-ignore */
1027
- ...(ngDevMode ? [{ debugName: "_templateMap" }] : /* istanbul ignore next */ []));
1028
- /**
1029
- * Function to optimize the node list rendering, default algorithm checks for object identity.
1030
- * @group Props
1031
- */
1032
- trackBy = input((index, item) => item, /* @ts-ignore */
1033
- ...(ngDevMode ? [{ debugName: "trackBy" }] : /* istanbul ignore next */ []));
1034
- /**
1035
- * Highlights the node on select.
1036
- * @group Props
1037
- */
1038
- highlightOnSelect = input(false, { ...(ngDevMode ? { debugName: "highlightOnSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1039
- /**
1040
- * Callback to invoke when a node is selected.
1041
- * @param {TreeNodeSelectEvent} event - Node select event.
1042
- * @group Emits
1043
- */
1044
- onNodeSelect = output();
1045
- /**
1046
- * Callback to invoke when a node is unselected.
1047
- * @param {TreeNodeUnSelectEvent} event - Node unselect event.
1048
- * @group Emits
1049
- */
1050
- onNodeUnselect = output();
1051
- /**
1052
- * Callback to invoke when a node is expanded.
1053
- * @param {TreeNodeExpandEvent} event - Node expand event.
1054
- * @group Emits
1055
- */
1056
- onNodeExpand = output();
1057
- /**
1058
- * Callback to invoke when a node is collapsed.
1059
- * @param {TreeNodeCollapseEvent} event - Node collapse event.
1060
- * @group Emits
1061
- */
1062
- onNodeCollapse = output();
1063
- /**
1064
- * Callback to invoke when a node is selected with right click.
1065
- * @param {onNodeContextMenuSelect} event - Node context menu select event.
1066
- * @group Emits
1067
- */
1068
- onNodeContextMenuSelect = output();
1069
- /**
1070
- * Callback to invoke when a node is double clicked.
1071
- * @param {TreeNodeDoubleClickEvent} event - Node double click event.
1072
- * @group Emits
1073
- */
1074
- onNodeDoubleClick = output();
1075
- /**
1076
- * Callback to invoke when a node is dropped.
1077
- * @param {TreeNodeDropEvent} event - Node drop event.
1078
- * @group Emits
1079
- */
1080
- onNodeDrop = output();
1081
- /**
1082
- * Callback to invoke in lazy mode to load new data.
1083
- * @param {TreeLazyLoadEvent} event - Custom lazy load event.
1084
- * @group Emits
1085
- */
1086
- onLazyLoad = output();
1087
- /**
1088
- * Callback to invoke in virtual scroll mode when scroll position changes.
1089
- * @param {TreeScrollEvent} event - Custom scroll event.
1090
- * @group Emits
1091
- */
1092
- onScroll = output();
1093
- /**
1094
- * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.
1095
- * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.
1096
- * @group Emits
1097
- */
1098
- onScrollIndexChange = output();
1099
- /**
1100
- * Callback to invoke when data is filtered.
1101
- * @param {TreeFilterEvent} event - Custom filter event.
1102
- * @group Emits
1103
- */
1104
- onFilter = output();
1105
- /**
1106
- * Custom filter template.
1107
- * @param {TreeFilterTemplateContext} context - filter context.
1108
- * @see {@link TreeFilterTemplateContext}
1109
- * @group Templates
1110
- */
1111
- filterTemplate = contentChild('filter', { ...(ngDevMode ? { debugName: "filterTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1112
- /**
1113
- * Custom node template.
1114
- * @group Templates
1115
- */
1116
- nodeTemplate = contentChild('node', { ...(ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1117
- /**
1118
- * Custom header template.
1119
- * @group Templates
1120
- */
1121
- headerTemplate = contentChild('header', { ...(ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1122
- /**
1123
- * Custom footer template.
1124
- * @group Templates
1125
- */
1126
- footerTemplate = contentChild('footer', { ...(ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1127
- /**
1128
- * Custom loader template.
1129
- * @param {TreeLoaderTemplateContext} context - loader context.
1130
- * @see {@link TreeLoaderTemplateContext}
1131
- * @group Templates
1132
- */
1133
- loaderTemplate = contentChild('loader', { ...(ngDevMode ? { debugName: "loaderTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1134
- /**
1135
- * Custom empty message template.
1136
- * @group Templates
1137
- */
1138
- emptyTemplate = contentChild('empty', { ...(ngDevMode ? { debugName: "emptyTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1139
- /**
1140
- * Custom toggler icon template.
1141
- * @param {TreeTogglerIconTemplateContext} context - toggler icon context.
1142
- * @see {@link TreeTogglerIconTemplateContext}
1143
- * @group Templates
1144
- */
1145
- togglerIconTemplate = contentChild('togglericon', { ...(ngDevMode ? { debugName: "togglerIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1146
- /**
1147
- * Custom checkbox icon template.
1148
- * @param {TreeCheckboxIconTemplateContext} context - checkbox icon context.
1149
- * @see {@link TreeCheckboxIconTemplateContext}
1150
- * @group Templates
1151
- */
1152
- checkboxIconTemplate = contentChild('checkboxicon', { ...(ngDevMode ? { debugName: "checkboxIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1153
- /**
1154
- * Custom loading icon template.
1155
- * @group Templates
1156
- */
1157
- loadingIconTemplate = contentChild('loadingicon', { ...(ngDevMode ? { debugName: "loadingIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1158
- /**
1159
- * Custom filter icon template.
1160
- * @group Templates
1161
- */
1162
- filterIconTemplate = contentChild('filtericon', { ...(ngDevMode ? { debugName: "filterIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1163
- filterViewChild = viewChild('filter', /* @ts-ignore */
1164
- ...(ngDevMode ? [{ debugName: "filterViewChild" }] : /* istanbul ignore next */ []));
1165
- scroller = viewChild('scroller', /* @ts-ignore */
1166
- ...(ngDevMode ? [{ debugName: "scroller" }] : /* istanbul ignore next */ []));
1167
- wrapperViewChild = viewChild('wrapper', /* @ts-ignore */
1168
- ...(ngDevMode ? [{ debugName: "wrapperViewChild" }] : /* istanbul ignore next */ []));
1169
- contentViewChild = viewChild('content', /* @ts-ignore */
1170
- ...(ngDevMode ? [{ debugName: "contentViewChild" }] : /* istanbul ignore next */ []));
1171
- templates = contentChildren(HelixTemplate, /* @ts-ignore */
1172
- ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
1173
- _headerTemplate;
1174
- _emptyTemplate;
1175
- _footerTemplate;
1176
- _loaderTemplate;
1177
- _togglerIconTemplate;
1178
- _checkboxIconTemplate;
1179
- _loadingIconTemplate;
1180
- _filterIconTemplate;
1181
- _filterTemplate;
1182
- onAfterContentInit() {
1183
- const map = {};
1184
- this.templates().forEach((item) => {
1185
- switch (item.getType()) {
1186
- case 'header':
1187
- this._headerTemplate = item.template;
1188
- break;
1189
- case 'empty':
1190
- this._emptyTemplate = item.template;
1191
- break;
1192
- case 'footer':
1193
- this._footerTemplate = item.template;
1194
- break;
1195
- case 'loader':
1196
- this._loaderTemplate = item.template;
1197
- break;
1198
- case 'togglericon':
1199
- this._togglerIconTemplate = item.template;
1200
- break;
1201
- case 'checkboxicon':
1202
- this._checkboxIconTemplate = item.template;
1203
- break;
1204
- case 'loadingicon':
1205
- this._loadingIconTemplate = item.template;
1206
- break;
1207
- case 'filtericon':
1208
- this._filterIconTemplate = item.template;
1209
- break;
1210
- case 'filter':
1211
- this._filterTemplate = item.template;
1212
- break;
1213
- default:
1214
- map[item.name()] = item.template;
1215
- break;
1216
- }
1217
- });
1218
- if (Object.keys(map).length) {
1219
- this._templateMap.set(map);
1220
- }
1221
- }
1222
- serializedValue;
1223
- nodeTouched;
1224
- dragNodeTree;
1225
- dragNode;
1226
- dragNodeSubNodes;
1227
- dragNodeIndex;
1228
- dragNodeScope;
1229
- dragHover;
1230
- dragStartSubscription;
1231
- dragStopSubscription;
1232
- _componentStyle = inject(TreeStyle);
1233
- handleDropEvent(event) {
1234
- this.onDrop(event);
1235
- }
1236
- handleDragOverEvent(event) {
1237
- this.onDragOver(event);
1238
- }
1239
- handleDragEnterEvent() {
1240
- this.onDragEnter();
1241
- }
1242
- handleDragLeaveEvent(event) {
1243
- this.onDragLeave(event);
1244
- }
1245
- constructor(dragDropService) {
1246
- super();
1247
- this.dragDropService = dragDropService;
1248
- }
1249
- onInit() {
1250
- if (this.filterBy()) {
1251
- this.filterOptions.set({
1252
- filter: (value) => this._filter(value),
1253
- reset: () => this.resetFilter()
1254
- });
1255
- }
1256
- if (this.droppableNodes()) {
1257
- this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {
1258
- this.dragNodeTree = event.tree;
1259
- this.dragNode = event.node;
1260
- this.dragNodeSubNodes = event.subNodes;
1261
- this.dragNodeIndex = event.index;
1262
- this.dragNodeScope = event.scope;
1263
- });
1264
- this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {
1265
- this.dragNodeTree = null;
1266
- this.dragNode = null;
1267
- this.dragNodeSubNodes = null;
1268
- this.dragNodeIndex = null;
1269
- this.dragNodeScope = null;
1270
- this.dragHover = false;
1271
- });
1272
- }
1273
- }
1274
- onChanges(simpleChange) {
1275
- if (simpleChange.value) {
1276
- this.updateSerializedValue();
1277
- if (this.hasFilterActive()) {
1278
- this._filter(this.filterViewChild()?.nativeElement?.value);
1279
- }
1280
- }
1281
- }
1282
- get emptyMessageLabel() {
1283
- return this.emptyMessage() || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
1284
- }
1285
- updateSerializedValue() {
1286
- this.serializedValue = [];
1287
- this.serializeNodes(null, this.getRootNode(), 0, true);
1288
- }
1289
- serializeNodes(parent, nodes, level, visible) {
1290
- if (nodes && nodes.length) {
1291
- for (let node of nodes) {
1292
- node.parent = parent;
1293
- const rowNode = {
1294
- node: node,
1295
- parent: parent,
1296
- level: level,
1297
- visible: visible && (parent ? parent.expanded : true)
1298
- };
1299
- this.serializedValue.push(rowNode);
1300
- if (rowNode.visible && node.expanded) {
1301
- this.serializeNodes(node, node.children, level + 1, rowNode.visible);
1302
- }
1303
- }
1304
- }
1305
- }
1306
- onNodeClick(event, node) {
1307
- let eventTarget = event.target;
1308
- const section = eventTarget?.getAttribute?.('data-pc-section');
1309
- if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1310
- return;
1311
- }
1312
- if (this.selectionMode()) {
1313
- if (node.selectable === false) {
1314
- node.style = '--h-focus-ring-color: none;';
1315
- return;
1316
- }
1317
- else {
1318
- if (!node.style?.includes('--h-focus-ring-color')) {
1319
- node.style = node.style ? `${node.style}--h-focus-ring-color: var(--primary-color)` : '--h-focus-ring-color: var(--primary-color)';
1320
- }
1321
- }
1322
- if (this.hasFilteredNodes()) {
1323
- node = this.getNodeWithKey(node.key, this.filteredNodes());
1324
- if (!node) {
1325
- return;
1326
- }
1327
- }
1328
- let index = this.findIndexInSelection(node);
1329
- let selected = index >= 0;
1330
- const currentSelection = this.selection();
1331
- if (this.isCheckboxSelectionMode()) {
1332
- if (selected) {
1333
- if (this.propagateSelectionDown())
1334
- this.propagateDown(node, false);
1335
- else
1336
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1337
- if (this.propagateSelectionUp() && node.parent) {
1338
- this.propagateUp(node.parent, false);
1339
- }
1340
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1341
- }
1342
- else {
1343
- if (this.propagateSelectionDown())
1344
- this.propagateDown(node, true);
1345
- else
1346
- this.selection.set([...(currentSelection || []), node]);
1347
- if (this.propagateSelectionUp() && node.parent) {
1348
- this.propagateUp(node.parent, true);
1349
- }
1350
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1351
- }
1352
- }
1353
- else {
1354
- let metaSelection = this.nodeTouched ? false : this.metaKeySelection();
1355
- if (metaSelection) {
1356
- let metaKey = event.metaKey || event.ctrlKey;
1357
- if (selected && metaKey) {
1358
- if (this.isSingleSelectionMode()) {
1359
- this.selection.set(null);
1360
- }
1361
- else {
1362
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1363
- }
1364
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1365
- }
1366
- else {
1367
- if (this.isSingleSelectionMode()) {
1368
- this.selection.set(node);
1369
- }
1370
- else if (this.isMultipleSelectionMode()) {
1371
- const base = !metaKey ? [] : currentSelection || [];
1372
- this.selection.set([...base, node]);
1373
- }
1374
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1375
- }
1376
- }
1377
- else {
1378
- if (this.isSingleSelectionMode()) {
1379
- if (selected) {
1380
- this.selection.set(null);
1381
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1382
- }
1383
- else {
1384
- this.selection.set(node);
1385
- setTimeout(() => {
1386
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1387
- });
1388
- }
1389
- }
1390
- else {
1391
- if (selected) {
1392
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1393
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1394
- }
1395
- else {
1396
- this.selection.set([...(currentSelection || []), node]);
1397
- setTimeout(() => {
1398
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1399
- });
1400
- }
1401
- }
1402
- }
1403
- }
1404
- }
1405
- this.nodeTouched = false;
1406
- }
1407
- onNodeTouchEnd() {
1408
- this.nodeTouched = true;
1409
- }
1410
- onNodeRightClick(event, node) {
1411
- if (this.contextMenu()) {
1412
- let eventTarget = event.target;
1413
- const section = eventTarget.getAttribute('data-pc-section');
1414
- if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1415
- return;
1416
- }
1417
- let index = this.findIndexInSelection(node);
1418
- let isNodeSelected = index >= 0;
1419
- const onContextMenuCallback = () => {
1420
- this.contextMenu().show(event);
1421
- this.contextMenu().hideCallback = () => {
1422
- this.contextMenuSelection.set(null);
1423
- };
1424
- this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });
1425
- };
1426
- const contextMenuSelectionMode = this.contextMenuSelectionMode();
1427
- if (contextMenuSelectionMode === 'separate') {
1428
- // In 'separate' mode: Update contextMenuSelection with clicked node, don't modify selection
1429
- this.contextMenuSelection.set(node);
1430
- onContextMenuCallback();
1431
- }
1432
- else if (contextMenuSelectionMode === 'joint') {
1433
- // In 'joint' mode: Update only selection, don't touch contextMenuSelection
1434
- if (!isNodeSelected) {
1435
- if (this.isSingleSelectionMode()) {
1436
- this.selection.set(node);
1437
- }
1438
- else {
1439
- this.selection.set([node]);
1440
- }
1441
- }
1442
- // If already selected, keep current selection as is
1443
- onContextMenuCallback();
1444
- }
1445
- }
1446
- }
1447
- onNodeDblClick(event, node) {
1448
- this.onNodeDoubleClick.emit({ originalEvent: event, node: node });
1449
- }
1450
- findIndexInSelection(node) {
1451
- let index = -1;
1452
- const currentSelection = this.selection();
1453
- if (this.selectionMode() && currentSelection) {
1454
- if (this.isSingleSelectionMode()) {
1455
- const sel = currentSelection;
1456
- let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;
1457
- index = areNodesEqual ? 0 : -1;
1458
- }
1459
- else {
1460
- const selArray = currentSelection;
1461
- for (let i = 0; i < selArray.length; i++) {
1462
- let selectedNode = selArray[i];
1463
- let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;
1464
- if (areNodesEqual) {
1465
- index = i;
1466
- break;
1467
- }
1468
- }
1469
- }
1470
- }
1471
- return index;
1472
- }
1473
- syncNodeOption(node, parentNodes, option, value) {
1474
- // to synchronize the node option between the filtered nodes and the original nodes(this.value)
1475
- const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;
1476
- if (_node) {
1477
- _node[option] = value || node[option];
1478
- }
1479
- }
1480
- hasFilteredNodes() {
1481
- const filtered = this.filteredNodes();
1482
- return this.filter() && filtered && filtered.length > 0;
1483
- }
1484
- hasFilterActive() {
1485
- return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;
1486
- }
1487
- getNodeWithKey(key, nodes) {
1488
- for (let node of nodes) {
1489
- if (node.key === key) {
1490
- return node;
1491
- }
1492
- if (node.children) {
1493
- let matchedNode = this.getNodeWithKey(key, node.children);
1494
- if (matchedNode) {
1495
- return matchedNode;
1496
- }
1497
- }
1498
- }
1499
- }
1500
- propagateUp(node, select) {
1501
- if (node.children && node.children.length) {
1502
- let selectedCount = 0;
1503
- let childPartialSelected = false;
1504
- for (let child of node.children) {
1505
- if (this.isSelected(child)) {
1506
- selectedCount++;
1507
- }
1508
- else if (child.partialSelected) {
1509
- childPartialSelected = true;
1510
- }
1511
- }
1512
- const currentSelection = this.selection() || [];
1513
- if (select && selectedCount == node.children.length) {
1514
- this.selection.set([...currentSelection, node]);
1515
- node.partialSelected = false;
1516
- }
1517
- else {
1518
- if (!select) {
1519
- let index = this.findIndexInSelection(node);
1520
- if (index >= 0) {
1521
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1522
- }
1523
- }
1524
- if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length))
1525
- node.partialSelected = true;
1526
- else
1527
- node.partialSelected = false;
1528
- }
1529
- this.syncNodeOption(node, this.filteredNodes(), 'partialSelected');
1530
- }
1531
- let parent = node.parent;
1532
- if (parent) {
1533
- this.propagateUp(parent, select);
1534
- }
1535
- }
1536
- propagateDown(node, select) {
1537
- let index = this.findIndexInSelection(node);
1538
- const currentSelection = this.selection() || [];
1539
- if (select && index == -1) {
1540
- this.selection.set([...currentSelection, node]);
1541
- }
1542
- else if (!select && index > -1) {
1543
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1544
- }
1545
- node.partialSelected = false;
1546
- this.syncNodeOption(node, this.filteredNodes(), 'partialSelected');
1547
- if (node.children && node.children.length) {
1548
- for (let child of node.children) {
1549
- this.propagateDown(child, select);
1550
- }
1551
- }
1552
- }
1553
- isSelected(node) {
1554
- return this.findIndexInSelection(node) != -1;
1555
- }
1556
- isSingleSelectionMode() {
1557
- return this.selectionMode() && this.selectionMode() == 'single';
1558
- }
1559
- isMultipleSelectionMode() {
1560
- return this.selectionMode() && this.selectionMode() == 'multiple';
1561
- }
1562
- isCheckboxSelectionMode() {
1563
- return this.selectionMode() && this.selectionMode() == 'checkbox';
1564
- }
1565
- isNodeLeaf(node) {
1566
- return node.leaf == false ? false : !(node.children && node.children.length);
1567
- }
1568
- getRootNode() {
1569
- return this.filteredNodes() ? this.filteredNodes() : this.value();
1570
- }
1571
- getTemplateForNode(node) {
1572
- if (this._templateMap())
1573
- return node.type ? this._templateMap()[node.type] : this._templateMap()['default'];
1574
- else
1575
- return null;
1576
- }
1577
- onDragOver(event) {
1578
- if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1579
- event.dataTransfer.dropEffect = 'copy';
1580
- event.preventDefault();
1581
- }
1582
- }
1583
- onDrop(event) {
1584
- if (this.droppableNodes()) {
1585
- event.preventDefault();
1586
- let dragNode = this.dragNode;
1587
- if (this.isSameTreeScope(this.dragNodeScope)) {
1588
- return;
1589
- }
1590
- if (this.allowDrop(dragNode, null, this.dragNodeScope)) {
1591
- let dragNodeIndex = this.dragNodeIndex;
1592
- this.value.update(v => v || []);
1593
- if (this.validateDrop()) {
1594
- this.onNodeDrop.emit({
1595
- originalEvent: event,
1596
- dragNode: dragNode,
1597
- dropNode: null,
1598
- index: dragNodeIndex,
1599
- accept: () => {
1600
- this.processTreeDrop(dragNode, dragNodeIndex);
1601
- }
1602
- });
1603
- }
1604
- else {
1605
- this.onNodeDrop.emit({
1606
- originalEvent: event,
1607
- dragNode: dragNode,
1608
- dropNode: null,
1609
- index: dragNodeIndex
1610
- });
1611
- this.processTreeDrop(dragNode, dragNodeIndex);
1612
- }
1613
- }
1614
- }
1615
- }
1616
- processTreeDrop(dragNode, dragNodeIndex) {
1617
- this.dragNodeSubNodes.splice(dragNodeIndex, 1);
1618
- this.value().push(dragNode);
1619
- this.dragDropService.stopDrag({
1620
- node: dragNode
1621
- });
1622
- }
1623
- onDragEnter() {
1624
- if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1625
- this.dragHover = true;
1626
- }
1627
- }
1628
- onDragLeave(event) {
1629
- if (this.droppableNodes()) {
1630
- let rect = event.currentTarget.getBoundingClientRect();
1631
- if (event.x > parseInt(rect.left) + rect.width || event.x < parseInt(rect.left) || event.y > parseInt(rect.top) + rect.height || event.y < parseInt(rect.top)) {
1632
- this.dragHover = false;
1633
- }
1634
- }
1635
- }
1636
- allowDrop(dragNode, dropNode, dragNodeScope) {
1637
- if (!dragNode) {
1638
- //prevent random html elements to be dragged
1639
- return false;
1640
- }
1641
- else if (this.isValidDragScope(dragNodeScope)) {
1642
- let allow = true;
1643
- if (dropNode) {
1644
- if (dragNode === dropNode) {
1645
- allow = false;
1646
- }
1647
- else {
1648
- let parent = dropNode.parent;
1649
- while (parent != null) {
1650
- if (parent === dragNode) {
1651
- allow = false;
1652
- break;
1653
- }
1654
- parent = parent.parent;
1655
- }
1656
- }
1657
- }
1658
- return allow;
1659
- }
1660
- else {
1661
- return false;
1662
- }
1663
- }
1664
- hasCommonScope(dragScope, dropScope) {
1665
- if (typeof dropScope === 'string') {
1666
- if (typeof dragScope === 'string')
1667
- return dropScope === dragScope;
1668
- else if (Array.isArray(dragScope))
1669
- return dragScope.indexOf(dropScope) != -1;
1670
- }
1671
- else if (Array.isArray(dropScope)) {
1672
- if (typeof dragScope === 'string') {
1673
- return dropScope.indexOf(dragScope) != -1;
1674
- }
1675
- else if (Array.isArray(dragScope)) {
1676
- for (let s of dropScope) {
1677
- for (let ds of dragScope) {
1678
- if (s === ds) {
1679
- return true;
1680
- }
1681
- }
1682
- }
1683
- }
1684
- }
1685
- return false;
1686
- }
1687
- isSameTreeScope(dragScope) {
1688
- return this.hasCommonScope(dragScope, this.draggableScope());
1689
- }
1690
- isValidDragScope(dragScope) {
1691
- let dropScope = this.droppableScope();
1692
- if (dropScope) {
1693
- return this.hasCommonScope(dragScope, dropScope);
1694
- }
1695
- else {
1696
- return true;
1697
- }
1698
- }
1699
- _filter(value) {
1700
- let filterValue = value;
1701
- if (filterValue === '') {
1702
- this.filteredNodes.set(null);
1703
- }
1704
- else {
1705
- const filtered = [];
1706
- const searchFields = this.filterBy().split(',');
1707
- const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());
1708
- const isStrictMode = this.filterMode() === 'strict';
1709
- for (let node of this.value()) {
1710
- let copyNode = { ...node };
1711
- let paramsWithoutNode = { searchFields, filterText, isStrictMode };
1712
- if ((isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||
1713
- (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {
1714
- filtered.push(copyNode);
1715
- }
1716
- }
1717
- this.filteredNodes.set(filtered);
1718
- }
1719
- this.updateSerializedValue();
1720
- this.onFilter.emit({
1721
- filter: filterValue,
1722
- filteredValue: this.filteredNodes()
1723
- });
1724
- }
1725
- /**
1726
- * Resets filter.
1727
- * @group Method
1728
- */
1729
- resetFilter() {
1730
- this.filteredNodes.set(null);
1731
- const filterViewChildEl = this.filterViewChild();
1732
- if (filterViewChildEl?.nativeElement) {
1733
- filterViewChildEl.nativeElement.value = '';
1734
- }
1735
- }
1736
- /**
1737
- * Scrolls to virtual index.
1738
- * @param {number} number - Index to be scrolled.
1739
- * @group Method
1740
- */
1741
- scrollToVirtualIndex(index) {
1742
- this.virtualScroll() && this.scroller()?.scrollToIndex(index);
1743
- }
1744
- /**
1745
- * Scrolls to virtual index.
1746
- * @param {ScrollToOptions} options - Scroll options.
1747
- * @group Method
1748
- */
1749
- scrollTo(options) {
1750
- if (this.virtualScroll()) {
1751
- this.scroller()?.scrollTo(options);
1752
- }
1753
- else {
1754
- const wrapperEl = this.wrapperViewChild();
1755
- if (wrapperEl?.nativeElement) {
1756
- if (wrapperEl.nativeElement.scrollTo) {
1757
- wrapperEl.nativeElement.scrollTo(options);
1758
- }
1759
- else {
1760
- wrapperEl.nativeElement.scrollLeft = options.left;
1761
- wrapperEl.nativeElement.scrollTop = options.top;
1762
- }
1763
- }
1764
- }
1765
- }
1766
- findFilteredNodes(node, paramsWithoutNode) {
1767
- if (node) {
1768
- let matched = false;
1769
- if (node.children) {
1770
- let childNodes = [...node.children];
1771
- node.children = [];
1772
- for (let childNode of childNodes) {
1773
- let copyChildNode = { ...childNode };
1774
- if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {
1775
- matched = true;
1776
- node.children.push(copyChildNode);
1777
- }
1778
- }
1779
- }
1780
- if (matched) {
1781
- node.expanded = true;
1782
- return true;
1783
- }
1784
- }
1785
- }
1786
- isFilterMatched(node, params) {
1787
- let { searchFields, filterText, isStrictMode } = params;
1788
- let matched = false;
1789
- for (let field of searchFields) {
1790
- let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale());
1791
- if (fieldValue.indexOf(filterText) > -1) {
1792
- matched = true;
1793
- }
1794
- }
1795
- if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {
1796
- matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;
1797
- }
1798
- return matched;
1799
- }
1800
- getIndex(options, index) {
1801
- const getItemOptions = options['getItemOptions'];
1802
- return getItemOptions ? getItemOptions(index).index : index;
1803
- }
1804
- getBlockableElement() {
1805
- return this.el.nativeElement.children[0];
1806
- }
1807
- onDestroy() {
1808
- if (this.dragStartSubscription) {
1809
- this.dragStartSubscription.unsubscribe();
1810
- }
1811
- if (this.dragStopSubscription) {
1812
- this.dragStopSubscription.unsubscribe();
1813
- }
1814
- }
1815
- get containerDataP() {
1816
- return this.cn({
1817
- loading: this.loading(),
1818
- scrollable: this.scrollHeight() === 'flex'
1819
- });
1820
- }
1821
- get wrapperDataP() {
1822
- return this.cn({
1823
- scrollable: this.scrollHeight() === 'flex'
1824
- });
1825
- }
1826
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: Tree, deps: [{ token: i4.TreeDragDropService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1827
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: Tree, isStandalone: true, selector: "h-tree", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, contextMenuSelectionMode: { classPropertyName: "contextMenuSelectionMode", publicName: "contextMenuSelectionMode", isSignal: true, isRequired: false, transformFunction: null }, contextMenuSelection: { classPropertyName: "contextMenuSelection", publicName: "contextMenuSelection", isSignal: true, isRequired: false, transformFunction: null }, draggableScope: { classPropertyName: "draggableScope", publicName: "draggableScope", isSignal: true, isRequired: false, transformFunction: null }, droppableScope: { classPropertyName: "droppableScope", publicName: "droppableScope", isSignal: true, isRequired: false, transformFunction: null }, draggableNodes: { classPropertyName: "draggableNodes", publicName: "draggableNodes", isSignal: true, isRequired: false, transformFunction: null }, droppableNodes: { classPropertyName: "droppableNodes", publicName: "droppableNodes", isSignal: true, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionUp: { classPropertyName: "propagateSelectionUp", publicName: "propagateSelectionUp", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionDown: { classPropertyName: "propagateSelectionDown", publicName: "propagateSelectionDown", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, togglerAriaLabel: { classPropertyName: "togglerAriaLabel", publicName: "togglerAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, validateDrop: { classPropertyName: "validateDrop", publicName: "validateDrop", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filterInputAutoFocus: { classPropertyName: "filterInputAutoFocus", publicName: "filterInputAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: true, isRequired: false, transformFunction: null }, filterOptions: { classPropertyName: "filterOptions", publicName: "filterOptions", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filteredNodes: { classPropertyName: "filteredNodes", publicName: "filteredNodes", isSignal: true, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: true, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: true, isRequired: false, transformFunction: null }, _templateMap: { classPropertyName: "_templateMap", publicName: "_templateMap", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", selectionMode: "selectionModeChange", selection: "selectionChange", contextMenuSelection: "contextMenuSelectionChange", filterOptions: "filterOptionsChange", filteredNodes: "filteredNodesChange", _templateMap: "_templateMapChange", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onNodeContextMenuSelect: "onNodeContextMenuSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeDrop: "onNodeDrop", onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange", onFilter: "onFilter" }, host: { listeners: { "drop": "handleDropEvent($event)", "dragover": "handleDragOverEvent($event)", "dragenter": "handleDragEnterEvent()", "dragleave": "handleDragLeaveEvent($event)" }, properties: { "class": "cn(cx('root'), styleClass())", "attr.data-h": "containerDataP" } }, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], queries: [{ propertyName: "filterTemplate", first: true, predicate: ["filter"], isSignal: true }, { propertyName: "nodeTemplate", first: true, predicate: ["node"], isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], isSignal: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], isSignal: true }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"], isSignal: true }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"], isSignal: true }, { propertyName: "togglerIconTemplate", first: true, predicate: ["togglericon"], isSignal: true }, { propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"], isSignal: true }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"], isSignal: true }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"], isSignal: true }, { propertyName: "templates", predicate: HelixTemplate, isSignal: true }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true, isSignal: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true, isSignal: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true, isSignal: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i3.Bind }], ngImport: i0, template: "@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Scroller, selector: "h-scroller, h-virtualscroller, h-virtual-scroller, h-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: SearchIcon, selector: "[data-h-icon=\"search\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-h-icon=\"spinner\"]" }, { kind: "directive", type: InputText, selector: "[hInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IconField, selector: "h-iconfield, h-iconField, h-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: InputIcon, selector: "h-inputicon, h-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: UITreeNode, selector: "h-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "directive", type: i5.AutoFocus, selector: "[hAutoFocus]", inputs: ["hAutoFocus"] }, { kind: "directive", type: Bind, selector: "[hBind]", inputs: ["hBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1828
- }
1829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: Tree, decorators: [{
1830
- type: Component,
1831
- args: [{ selector: 'h-tree', standalone: true, imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], host: {
1832
- '[class]': "cn(cx('root'), styleClass())",
1833
- '[attr.data-h]': 'containerDataP',
1834
- '(drop)': 'handleDropEvent($event)',
1835
- '(dragover)': 'handleDragOverEvent($event)',
1836
- '(dragenter)': 'handleDragEnterEvent()',
1837
- '(dragleave)': 'handleDragLeaveEvent($event)'
1838
- }, hostDirectives: [Bind], template: "@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n" }]
1839
- }], ctorParameters: () => [{ type: i4.TreeDragDropService, decorators: [{
1840
- type: Optional
1841
- }] }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }, { type: i0.Output, args: ["selectionModeChange"] }], loadingMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMode", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], contextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenu", required: false }] }], contextMenuSelectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelectionMode", required: false }] }], contextMenuSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelection", required: false }] }, { type: i0.Output, args: ["contextMenuSelectionChange"] }], draggableScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggableScope", required: false }] }], droppableScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "droppableScope", required: false }] }], draggableNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggableNodes", required: false }] }], droppableNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "droppableNodes", required: false }] }], metaKeySelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaKeySelection", required: false }] }], propagateSelectionUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateSelectionUp", required: false }] }], propagateSelectionDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateSelectionDown", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingIcon", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], togglerAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "togglerAriaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], validateDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "validateDrop", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], filterInputAutoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterInputAutoFocus", required: false }] }], filterBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterBy", required: false }] }], filterMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterMode", required: false }] }], filterOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterOptions", required: false }] }, { type: i0.Output, args: ["filterOptionsChange"] }], filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: false }] }], filteredNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "filteredNodes", required: false }] }, { type: i0.Output, args: ["filteredNodesChange"] }], filterLocale: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterLocale", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], virtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScroll", required: false }] }], virtualScrollItemSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollItemSize", required: false }] }], virtualScrollOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollOptions", required: false }] }], indentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentation", required: false }] }], _templateMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "_templateMap", required: false }] }, { type: i0.Output, args: ["_templateMapChange"] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], highlightOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightOnSelect", required: false }] }], onNodeSelect: [{ type: i0.Output, args: ["onNodeSelect"] }], onNodeUnselect: [{ type: i0.Output, args: ["onNodeUnselect"] }], onNodeExpand: [{ type: i0.Output, args: ["onNodeExpand"] }], onNodeCollapse: [{ type: i0.Output, args: ["onNodeCollapse"] }], onNodeContextMenuSelect: [{ type: i0.Output, args: ["onNodeContextMenuSelect"] }], onNodeDoubleClick: [{ type: i0.Output, args: ["onNodeDoubleClick"] }], onNodeDrop: [{ type: i0.Output, args: ["onNodeDrop"] }], onLazyLoad: [{ type: i0.Output, args: ["onLazyLoad"] }], onScroll: [{ type: i0.Output, args: ["onScroll"] }], onScrollIndexChange: [{ type: i0.Output, args: ["onScrollIndexChange"] }], onFilter: [{ type: i0.Output, args: ["onFilter"] }], filterTemplate: [{ type: i0.ContentChild, args: ['filter', { ...{ descendants: false }, isSignal: true }] }], nodeTemplate: [{ type: i0.ContentChild, args: ['node', { ...{ descendants: false }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { ...{ descendants: false }, isSignal: true }] }], footerTemplate: [{ type: i0.ContentChild, args: ['footer', { ...{ descendants: false }, isSignal: true }] }], loaderTemplate: [{ type: i0.ContentChild, args: ['loader', { ...{ descendants: false }, isSignal: true }] }], emptyTemplate: [{ type: i0.ContentChild, args: ['empty', { ...{ descendants: false }, isSignal: true }] }], togglerIconTemplate: [{ type: i0.ContentChild, args: ['togglericon', { ...{ descendants: false }, isSignal: true }] }], checkboxIconTemplate: [{ type: i0.ContentChild, args: ['checkboxicon', { ...{ descendants: false }, isSignal: true }] }], loadingIconTemplate: [{ type: i0.ContentChild, args: ['loadingicon', { ...{ descendants: false }, isSignal: true }] }], filterIconTemplate: [{ type: i0.ContentChild, args: ['filtericon', { ...{ descendants: false }, isSignal: true }] }], filterViewChild: [{ type: i0.ViewChild, args: ['filter', { isSignal: true }] }], scroller: [{ type: i0.ViewChild, args: ['scroller', { isSignal: true }] }], wrapperViewChild: [{ type: i0.ViewChild, args: ['wrapper', { isSignal: true }] }], contentViewChild: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => HelixTemplate), { isSignal: true }] }] } });
1842
- class TreeModule {
1843
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1844
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule], exports: [Tree, SharedModule] });
1845
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule, SharedModule] });
1846
- }
1847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeModule, decorators: [{
1848
- type: NgModule,
1849
- args: [{
1850
- imports: [Tree, SharedModule],
1851
- exports: [Tree, SharedModule]
1852
- }]
1853
- }] });
1854
-
1855
- /**
1856
- * Generated bundle index. Do not edit.
1857
- */
1858
-
289
+ const TREE_INSTANCE = new InjectionToken("TREE_INSTANCE");
290
+ const TREENODE_INSTANCE = new InjectionToken("TREENODE_INSTANCE");
291
+ var UITreeNode = class UITreeNode extends BaseComponent {
292
+ $pcTreeNode = inject(TREENODE_INSTANCE, {
293
+ optional: true,
294
+ skipSelf: true
295
+ }) ?? void 0;
296
+ static ICON_CLASS = "h-tree-node-icon ";
297
+ rowNode = input(...ngDevMode ? [void 0, { debugName: "rowNode" }] : /* istanbul ignore next */ []);
298
+ node = input(void 0, ...ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []);
299
+ parentNode = input(...ngDevMode ? [void 0, { debugName: "parentNode" }] : /* istanbul ignore next */ []);
300
+ root = input(void 0, {
301
+ ...ngDevMode ? { debugName: "root" } : /* istanbul ignore next */ {},
302
+ transform: booleanAttribute
303
+ });
304
+ index = input(void 0, {
305
+ ...ngDevMode ? { debugName: "index" } : /* istanbul ignore next */ {},
306
+ transform: numberAttribute
307
+ });
308
+ firstChild = input(void 0, {
309
+ ...ngDevMode ? { debugName: "firstChild" } : /* istanbul ignore next */ {},
310
+ transform: booleanAttribute
311
+ });
312
+ lastChild = input(void 0, {
313
+ ...ngDevMode ? { debugName: "lastChild" } : /* istanbul ignore next */ {},
314
+ transform: booleanAttribute
315
+ });
316
+ level = input(void 0, {
317
+ ...ngDevMode ? { debugName: "level" } : /* istanbul ignore next */ {},
318
+ transform: numberAttribute
319
+ });
320
+ indentation = input(void 0, {
321
+ ...ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {},
322
+ transform: numberAttribute
323
+ });
324
+ itemSize = input(void 0, {
325
+ ...ngDevMode ? { debugName: "itemSize" } : /* istanbul ignore next */ {},
326
+ transform: numberAttribute
327
+ });
328
+ loadingMode = input(void 0, ...ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []);
329
+ tree = inject(forwardRef(() => Tree));
330
+ timeout;
331
+ isPrevDropPointHovered = signal(false, ...ngDevMode ? [{ debugName: "isPrevDropPointHovered" }] : /* istanbul ignore next */ []);
332
+ isNextDropPointHovered = signal(false, ...ngDevMode ? [{ debugName: "isNextDropPointHovered" }] : /* istanbul ignore next */ []);
333
+ isNodeDropHovered = signal(false, ...ngDevMode ? [{ debugName: "isNodeDropHovered" }] : /* istanbul ignore next */ []);
334
+ isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable(), ...ngDevMode ? [{ debugName: "isPrevDropPointActive" }] : /* istanbul ignore next */ []);
335
+ isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable(), ...ngDevMode ? [{ debugName: "isNextDropPointActive" }] : /* istanbul ignore next */ []);
336
+ isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), ...ngDevMode ? [{ debugName: "isNodeDropActive" }] : /* istanbul ignore next */ []);
337
+ dropPosition = computed(() => this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0, ...ngDevMode ? [{ debugName: "dropPosition" }] : /* istanbul ignore next */ []);
338
+ _componentStyle = inject(TreeStyle);
339
+ _selected = computed(() => {
340
+ this.tree.selection();
341
+ return this.tree.isSelected(this.node());
342
+ }, ...ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []);
343
+ _contextMenuSelected = computed(() => {
344
+ const selection = this.tree.contextMenuSelection();
345
+ const n = this.node();
346
+ if (!selection || !n) return false;
347
+ return selection === n || selection.key && selection.key === n.key;
348
+ }, ...ngDevMode ? [{ debugName: "_contextMenuSelected" }] : /* istanbul ignore next */ []);
349
+ get selected() {
350
+ return this.tree.selectionMode() === "single" || this.tree.selectionMode() === "multiple" ? this._selected() : void 0;
351
+ }
352
+ get checked() {
353
+ return this.tree.selectionMode() === "checkbox" ? this._selected() : void 0;
354
+ }
355
+ get nodeClass() {
356
+ return this.tree._componentStyle.classes.node({ instance: this });
357
+ }
358
+ get selectable() {
359
+ return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;
360
+ }
361
+ get subNodes() {
362
+ const n = this.node();
363
+ return n?.parent ? n.parent.children : this.tree.value();
364
+ }
365
+ getPTOptions(key) {
366
+ return this.ptm(key, { context: {
367
+ node: this.node(),
368
+ index: this.index(),
369
+ expanded: this.node()?.expanded,
370
+ selected: this.selected,
371
+ checked: this.checked,
372
+ partialChecked: this.node()?.partialSelected,
373
+ leaf: this.isLeaf()
374
+ } });
375
+ }
376
+ onInit() {
377
+ this.node().parent = this.parentNode();
378
+ const pDialogWrapper = this.tree.el.nativeElement.closest("h-dialog");
379
+ const parentNode = this.parentNode();
380
+ if (parentNode && !pDialogWrapper) {
381
+ this.setAllNodesTabIndexes();
382
+ this.tree.syncNodeOption(this.node(), this.tree.value(), "parent", this.tree.getNodeWithKey(parentNode.key, this.tree.value()));
383
+ }
384
+ }
385
+ getIcon() {
386
+ let icon;
387
+ if (this.node().icon) icon = this.node().icon;
388
+ else icon = this.node().expanded && this.node().children && this.node().children?.length ? this.node().expandedIcon : this.node().collapsedIcon;
389
+ return UITreeNode.ICON_CLASS + " " + icon + " h-tree-node-icon";
390
+ }
391
+ isLeaf() {
392
+ return this.tree.isNodeLeaf(this.node());
393
+ }
394
+ isSelected() {
395
+ return this._selected();
396
+ }
397
+ isContextMenuSelected() {
398
+ return this._contextMenuSelected();
399
+ }
400
+ isSameNode(event) {
401
+ return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest("[role=\"treeitem\"]")));
402
+ }
403
+ isDraggable() {
404
+ return this.tree.draggableNodes();
405
+ }
406
+ isDroppable() {
407
+ return this.tree.droppableNodes() && this.tree.allowDrop(this.tree.dragNode, this.node(), this.tree.dragNodeScope);
408
+ }
409
+ isNodeDroppable() {
410
+ return this.node()?.droppable !== false && this.isDroppable();
411
+ }
412
+ isNodeDraggable() {
413
+ return this.node()?.draggable !== false && this.isDraggable();
414
+ }
415
+ toggle(event) {
416
+ if (this.node().expanded) this.collapse(event);
417
+ else this.expand(event);
418
+ event.stopPropagation();
419
+ }
420
+ expand(event) {
421
+ this.node().expanded = true;
422
+ if (this.tree.virtualScroll()) {
423
+ this.tree.updateSerializedValue();
424
+ this.focusVirtualNode();
425
+ }
426
+ this.tree.onNodeExpand.emit({
427
+ originalEvent: event,
428
+ node: this.node()
429
+ });
430
+ }
431
+ collapse(event) {
432
+ this.node().expanded = false;
433
+ if (this.tree.virtualScroll()) this.tree.updateSerializedValue();
434
+ this.tree.onNodeCollapse.emit({
435
+ originalEvent: event,
436
+ node: this.node()
437
+ });
438
+ this.focusVirtualNode();
439
+ }
440
+ onNodeClick(event) {
441
+ this.tree.onNodeClick(event, this.node());
442
+ }
443
+ onNodeKeydown(event) {
444
+ if (event.key === "Enter") this.tree.onNodeClick(event, this.node());
445
+ }
446
+ onNodeTouchEnd() {
447
+ this.tree.onNodeTouchEnd();
448
+ }
449
+ onNodeRightClick(event) {
450
+ this.tree.onNodeRightClick(event, this.node());
451
+ }
452
+ onNodeDblClick(event) {
453
+ this.tree.onNodeDblClick(event, this.node());
454
+ }
455
+ insertNodeOnDrop() {
456
+ const { dragNode, dragNodeIndex, dragNodeSubNodes } = this.tree;
457
+ const n = this.node();
458
+ if (!n || dragNodeIndex == null || !dragNode || !dragNodeSubNodes) return;
459
+ const position = this.dropPosition();
460
+ const subNodes = this.subNodes || [];
461
+ const index = this.index() || 0;
462
+ const dropIndex = dragNodeSubNodes === subNodes ? dragNodeIndex > index ? index : index - 1 : index;
463
+ dragNodeSubNodes.splice(dragNodeIndex, 1);
464
+ if (position < 0) subNodes.splice(dropIndex, 0, dragNode);
465
+ else if (position > 0) subNodes.splice(dropIndex + 1, 0, dragNode);
466
+ else {
467
+ n.children = n.children || [];
468
+ n.children.push(dragNode);
469
+ }
470
+ this.tree.dragDropService.stopDrag({
471
+ node: dragNode,
472
+ subNodes,
473
+ index: dragNodeIndex
474
+ });
475
+ }
476
+ onNodeDrop(event) {
477
+ event.preventDefault();
478
+ event.stopPropagation();
479
+ if (this.isDroppable()) {
480
+ const { dragNode } = this.tree;
481
+ const position = this.dropPosition();
482
+ if (position !== 0 || position === 0 && this.isNodeDroppable()) if (this.tree.validateDrop()) this.tree.onNodeDrop.emit({
483
+ originalEvent: event,
484
+ dragNode,
485
+ dropNode: this.node(),
486
+ index: this.index(),
487
+ accept: () => {
488
+ this.insertNodeOnDrop();
489
+ }
490
+ });
491
+ else {
492
+ this.insertNodeOnDrop();
493
+ this.tree.onNodeDrop.emit({
494
+ originalEvent: event,
495
+ dragNode,
496
+ dropNode: this.node(),
497
+ index: this.index()
498
+ });
499
+ }
500
+ }
501
+ this.isPrevDropPointHovered.set(false);
502
+ this.isNextDropPointHovered.set(false);
503
+ this.isNodeDropHovered.set(false);
504
+ }
505
+ onNodeDragStart(event) {
506
+ if (this.isNodeDraggable()) {
507
+ event.dataTransfer.effectAllowed = "all";
508
+ event.dataTransfer?.setData("text", "data");
509
+ const target = event.currentTarget;
510
+ const dragEl = target.cloneNode(true);
511
+ const toggler = dragEl.querySelector("[data-pc-section=\"nodetogglebutton\"]");
512
+ const checkbox = dragEl.querySelector("[data-pc-name=\"pcnodecheckbox\"]");
513
+ target.setAttribute("data-h-dragging", "true");
514
+ dragEl.style.width = getOuterWidth(target) + "px";
515
+ dragEl.style.height = getOuterHeight(target) + "px";
516
+ dragEl.setAttribute("data-pc-section", "drag-image");
517
+ toggler.style.visibility = "hidden";
518
+ checkbox?.remove();
519
+ document.body.appendChild(dragEl);
520
+ event.dataTransfer?.setDragImage(dragEl, 0, 0);
521
+ setTimeout(() => document.body.removeChild(dragEl), 0);
522
+ this.tree.dragDropService.startDrag({
523
+ tree: this,
524
+ node: this.node(),
525
+ subNodes: this.subNodes,
526
+ index: this.index(),
527
+ scope: this.tree.draggableScope()
528
+ });
529
+ } else event.preventDefault();
530
+ }
531
+ onNodeDragOver(event) {
532
+ if (this.isDroppable()) {
533
+ event.dataTransfer.dropEffect = "copy";
534
+ const rect = event.currentTarget.getBoundingClientRect();
535
+ const y = event.clientY - parseInt(rect.top);
536
+ this.isPrevDropPointHovered.set(false);
537
+ this.isNextDropPointHovered.set(false);
538
+ this.isNodeDropHovered.set(false);
539
+ if (y < rect.height * .25) this.isPrevDropPointHovered.set(true);
540
+ else if (y > rect.height * .75) this.isNextDropPointHovered.set(true);
541
+ else if (this.isNodeDroppable()) this.isNodeDropHovered.set(true);
542
+ } else event.dataTransfer.dropEffect = "none";
543
+ if (this.tree.droppableNodes()) {
544
+ event.preventDefault();
545
+ event.stopPropagation();
546
+ }
547
+ }
548
+ onNodeDragLeave() {
549
+ this.isPrevDropPointHovered.set(false);
550
+ this.isNextDropPointHovered.set(false);
551
+ this.isNodeDropHovered.set(false);
552
+ }
553
+ onNodeDragEnd(event) {
554
+ event.currentTarget?.removeAttribute("data-h-dragging");
555
+ this.tree.dragDropService.stopDrag({
556
+ node: this.node(),
557
+ subNodes: this.subNodes,
558
+ index: this.index()
559
+ });
560
+ }
561
+ onKeyDown(event) {
562
+ const contextMenu = this.tree.contextMenu();
563
+ if (!this.isSameNode(event) || contextMenu && contextMenu.containerViewChild?.nativeElement.style.display === "block") return;
564
+ switch (event.code) {
565
+ case "ArrowDown":
566
+ this.onArrowDown(event);
567
+ break;
568
+ case "ArrowUp":
569
+ this.onArrowUp(event);
570
+ break;
571
+ case "ArrowRight":
572
+ this.onArrowRight(event);
573
+ break;
574
+ case "ArrowLeft":
575
+ this.onArrowLeft(event);
576
+ break;
577
+ case "Enter":
578
+ case "Space":
579
+ case "NumpadEnter":
580
+ this.onEnter(event);
581
+ break;
582
+ case "Tab":
583
+ this.setAllNodesTabIndexes();
584
+ break;
585
+ default: break;
586
+ }
587
+ }
588
+ onArrowUp(event) {
589
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target.parentElement;
590
+ if (nodeElement?.previousElementSibling) this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));
591
+ else {
592
+ let parentNodeElement = this.getParentNodeElement(nodeElement);
593
+ if (parentNodeElement) this.focusRowChange(nodeElement, parentNodeElement);
594
+ }
595
+ event.preventDefault();
596
+ }
597
+ onArrowDown(event) {
598
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target;
599
+ const listElement = nodeElement?.children[1];
600
+ if (listElement && listElement.children.length > 0) this.focusRowChange(nodeElement, listElement.children[0]);
601
+ else if (nodeElement?.parentElement?.nextElementSibling) this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);
602
+ else {
603
+ let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement);
604
+ if (nextSiblingAncestor) this.focusRowChange(nodeElement, nextSiblingAncestor);
605
+ }
606
+ event.preventDefault();
607
+ }
608
+ onArrowRight(event) {
609
+ if (!this.node()?.expanded && !this.tree.isNodeLeaf(this.node())) {
610
+ this.expand(event);
611
+ event.currentTarget.tabIndex = -1;
612
+ setTimeout(() => {
613
+ this.onArrowDown(event);
614
+ }, 1);
615
+ }
616
+ event.preventDefault();
617
+ }
618
+ onArrowLeft(event) {
619
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target;
620
+ if (this.level() === 0 && !this.node()?.expanded) return false;
621
+ if (this.node()?.expanded) {
622
+ this.collapse(event);
623
+ return;
624
+ }
625
+ let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement);
626
+ if (parentNodeElement) this.focusRowChange(event.currentTarget, parentNodeElement);
627
+ event.preventDefault();
628
+ }
629
+ onEnter(event) {
630
+ this.tree.onNodeClick(event, this.node());
631
+ this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);
632
+ event.preventDefault();
633
+ }
634
+ setAllNodesTabIndexes() {
635
+ const nodes = find(this.tree.el.nativeElement, "[data-pc-section=\"node\"]");
636
+ const hasSelectedNode = [...nodes].some((node) => node.getAttribute("aria-selected") === "true" || node.getAttribute("aria-checked") === "true");
637
+ [...nodes].forEach((node) => {
638
+ node.tabIndex = -1;
639
+ });
640
+ if (hasSelectedNode) {
641
+ const selectedNodes = [...nodes].filter((node) => node.getAttribute("aria-selected") === "true" || node.getAttribute("aria-checked") === "true");
642
+ selectedNodes[0].tabIndex = 0;
643
+ return;
644
+ }
645
+ if (nodes.length) [...nodes][0].tabIndex = 0;
646
+ }
647
+ setTabIndexForSelectionMode(event, nodeTouched) {
648
+ if (this.tree.selectionMode() !== null) {
649
+ const elements = [...find(this.tree.el.nativeElement, "[role=\"treeitem\"]")];
650
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
651
+ if (elements.every((element) => element.tabIndex === -1)) elements[0].tabIndex = 0;
652
+ }
653
+ }
654
+ findNextSiblingOfAncestor(nodeElement) {
655
+ let parentNodeElement = this.getParentNodeElement(nodeElement);
656
+ if (parentNodeElement) if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;
657
+ else return this.findNextSiblingOfAncestor(parentNodeElement);
658
+ else return null;
659
+ }
660
+ findLastVisibleDescendant(nodeElement) {
661
+ const childrenListElement = Array.from(nodeElement.children).find((el) => el.getAttribute("data-pc-section") === "node")?.children[1];
662
+ if (childrenListElement && childrenListElement.children.length > 0) {
663
+ const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
664
+ return this.findLastVisibleDescendant(lastChildElement);
665
+ } else return nodeElement;
666
+ }
667
+ getParentNodeElement(nodeElement) {
668
+ const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;
669
+ return parentNodeElement?.tagName === "P-TREENODE" ? parentNodeElement : null;
670
+ }
671
+ focusNode(element) {
672
+ element.children[0].focus();
673
+ }
674
+ focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {
675
+ firstFocusableRow.tabIndex = "-1";
676
+ currentFocusedRow.children[0].tabIndex = "0";
677
+ this.focusNode(lastVisibleDescendant || currentFocusedRow);
678
+ }
679
+ focusVirtualNode() {
680
+ this.timeout = setTimeout(() => {
681
+ focus(findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id="${this.node()?.key ?? this.node()?.data}"]`));
682
+ }, 1);
683
+ }
684
+ static ɵfac = i0.ɵɵngDeclareFactory({
685
+ minVersion: "12.0.0",
686
+ version: "22.2.1",
687
+ ngImport: i0,
688
+ type: UITreeNode,
689
+ deps: null,
690
+ target: i0.ɵɵFactoryTarget.Component
691
+ });
692
+ static ɵcmp = i0.ɵɵngDeclareComponent({
693
+ minVersion: "17.0.0",
694
+ version: "22.2.1",
695
+ type: UITreeNode,
696
+ isStandalone: true,
697
+ selector: "h-treeNode",
698
+ inputs: {
699
+ rowNode: {
700
+ classPropertyName: "rowNode",
701
+ publicName: "rowNode",
702
+ isSignal: true,
703
+ isRequired: false,
704
+ transformFunction: null
705
+ },
706
+ node: {
707
+ classPropertyName: "node",
708
+ publicName: "node",
709
+ isSignal: true,
710
+ isRequired: false,
711
+ transformFunction: null
712
+ },
713
+ parentNode: {
714
+ classPropertyName: "parentNode",
715
+ publicName: "parentNode",
716
+ isSignal: true,
717
+ isRequired: false,
718
+ transformFunction: null
719
+ },
720
+ root: {
721
+ classPropertyName: "root",
722
+ publicName: "root",
723
+ isSignal: true,
724
+ isRequired: false,
725
+ transformFunction: null
726
+ },
727
+ index: {
728
+ classPropertyName: "index",
729
+ publicName: "index",
730
+ isSignal: true,
731
+ isRequired: false,
732
+ transformFunction: null
733
+ },
734
+ firstChild: {
735
+ classPropertyName: "firstChild",
736
+ publicName: "firstChild",
737
+ isSignal: true,
738
+ isRequired: false,
739
+ transformFunction: null
740
+ },
741
+ lastChild: {
742
+ classPropertyName: "lastChild",
743
+ publicName: "lastChild",
744
+ isSignal: true,
745
+ isRequired: false,
746
+ transformFunction: null
747
+ },
748
+ level: {
749
+ classPropertyName: "level",
750
+ publicName: "level",
751
+ isSignal: true,
752
+ isRequired: false,
753
+ transformFunction: null
754
+ },
755
+ indentation: {
756
+ classPropertyName: "indentation",
757
+ publicName: "indentation",
758
+ isSignal: true,
759
+ isRequired: false,
760
+ transformFunction: null
761
+ },
762
+ itemSize: {
763
+ classPropertyName: "itemSize",
764
+ publicName: "itemSize",
765
+ isSignal: true,
766
+ isRequired: false,
767
+ transformFunction: null
768
+ },
769
+ loadingMode: {
770
+ classPropertyName: "loadingMode",
771
+ publicName: "loadingMode",
772
+ isSignal: true,
773
+ isRequired: false,
774
+ transformFunction: null
775
+ }
776
+ },
777
+ providers: [
778
+ TreeStyle,
779
+ {
780
+ provide: TREENODE_INSTANCE,
781
+ useExisting: UITreeNode
782
+ },
783
+ {
784
+ provide: PARENT_INSTANCE,
785
+ useExisting: UITreeNode
786
+ }
787
+ ],
788
+ usesInheritance: true,
789
+ ngImport: i0,
790
+ template: "@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\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 [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n",
791
+ dependencies: [
792
+ {
793
+ kind: "component",
794
+ type: UITreeNode,
795
+ selector: "h-treeNode",
796
+ inputs: [
797
+ "rowNode",
798
+ "node",
799
+ "parentNode",
800
+ "root",
801
+ "index",
802
+ "firstChild",
803
+ "lastChild",
804
+ "level",
805
+ "indentation",
806
+ "itemSize",
807
+ "loadingMode"
808
+ ]
809
+ },
810
+ {
811
+ kind: "ngmodule",
812
+ type: CommonModule
813
+ },
814
+ {
815
+ kind: "directive",
816
+ type: i1.NgTemplateOutlet,
817
+ selector: "[ngTemplateOutlet]",
818
+ inputs: [
819
+ "ngTemplateOutletContext",
820
+ "ngTemplateOutlet",
821
+ "ngTemplateOutletInjector"
822
+ ]
823
+ },
824
+ {
825
+ kind: "directive",
826
+ type: i1.NgStyle,
827
+ selector: "[ngStyle]",
828
+ inputs: ["ngStyle"]
829
+ },
830
+ {
831
+ kind: "directive",
832
+ type: Ripple,
833
+ selector: "[hRipple]"
834
+ },
835
+ {
836
+ kind: "component",
837
+ type: Checkbox,
838
+ selector: "h-checkbox, h-checkBox, h-check-box",
839
+ inputs: [
840
+ "hostName",
841
+ "value",
842
+ "binary",
843
+ "ariaLabelledBy",
844
+ "ariaLabel",
845
+ "tabindex",
846
+ "inputId",
847
+ "inputStyle",
848
+ "styleClass",
849
+ "inputClass",
850
+ "indeterminate",
851
+ "formControl",
852
+ "checkboxIcon",
853
+ "readonly",
854
+ "autofocus",
855
+ "trueValue",
856
+ "falseValue",
857
+ "variant",
858
+ "size"
859
+ ],
860
+ outputs: [
861
+ "onChange",
862
+ "onFocus",
863
+ "onBlur"
864
+ ]
865
+ },
866
+ {
867
+ kind: "ngmodule",
868
+ type: FormsModule
869
+ },
870
+ {
871
+ kind: "directive",
872
+ type: i2.NgControlStatus,
873
+ selector: "[formControlName],[ngModel],[formControl]"
874
+ },
875
+ {
876
+ kind: "directive",
877
+ type: i2.NgModel,
878
+ selector: "[ngModel]:not([formControlName]):not([formControl])",
879
+ inputs: [
880
+ "name",
881
+ "disabled",
882
+ "ngModel",
883
+ "ngModelOptions"
884
+ ],
885
+ outputs: ["ngModelChange"],
886
+ exportAs: ["ngModel"]
887
+ },
888
+ {
889
+ kind: "component",
890
+ type: ChevronRightIcon,
891
+ selector: "[data-h-icon=\"chevron-right\"]"
892
+ },
893
+ {
894
+ kind: "component",
895
+ type: ChevronDownIcon,
896
+ selector: "[data-h-icon=\"chevron-down\"]"
897
+ },
898
+ {
899
+ kind: "component",
900
+ type: SpinnerIcon,
901
+ selector: "[data-h-icon=\"spinner\"]"
902
+ },
903
+ {
904
+ kind: "ngmodule",
905
+ type: SharedModule
906
+ },
907
+ {
908
+ kind: "ngmodule",
909
+ type: BindModule
910
+ },
911
+ {
912
+ kind: "directive",
913
+ type: i3.Bind,
914
+ selector: "[hBind]",
915
+ inputs: ["hBind"]
916
+ }
917
+ ],
918
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
919
+ encapsulation: i0.ViewEncapsulation.None
920
+ });
921
+ };
922
+ i0.ɵɵngDeclareClassMetadata({
923
+ minVersion: "12.0.0",
924
+ version: "22.2.1",
925
+ ngImport: i0,
926
+ type: UITreeNode,
927
+ decorators: [{
928
+ type: Component,
929
+ args: [{
930
+ selector: "h-treeNode",
931
+ standalone: true,
932
+ imports: [
933
+ CommonModule,
934
+ Ripple,
935
+ Checkbox,
936
+ FormsModule,
937
+ ChevronRightIcon,
938
+ ChevronDownIcon,
939
+ SpinnerIcon,
940
+ SharedModule,
941
+ BindModule
942
+ ],
943
+ changeDetection: ChangeDetectionStrategy.OnPush,
944
+ encapsulation: ViewEncapsulation.None,
945
+ providers: [
946
+ TreeStyle,
947
+ {
948
+ provide: TREENODE_INSTANCE,
949
+ useExisting: UITreeNode
950
+ },
951
+ {
952
+ provide: PARENT_INSTANCE,
953
+ useExisting: UITreeNode
954
+ }
955
+ ],
956
+ template: "@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\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 [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n"
957
+ }]
958
+ }],
959
+ propDecorators: {
960
+ rowNode: [{
961
+ type: i0.Input,
962
+ args: [{
963
+ isSignal: true,
964
+ alias: "rowNode",
965
+ required: false
966
+ }]
967
+ }],
968
+ node: [{
969
+ type: i0.Input,
970
+ args: [{
971
+ isSignal: true,
972
+ alias: "node",
973
+ required: false
974
+ }]
975
+ }],
976
+ parentNode: [{
977
+ type: i0.Input,
978
+ args: [{
979
+ isSignal: true,
980
+ alias: "parentNode",
981
+ required: false
982
+ }]
983
+ }],
984
+ root: [{
985
+ type: i0.Input,
986
+ args: [{
987
+ isSignal: true,
988
+ alias: "root",
989
+ required: false
990
+ }]
991
+ }],
992
+ index: [{
993
+ type: i0.Input,
994
+ args: [{
995
+ isSignal: true,
996
+ alias: "index",
997
+ required: false
998
+ }]
999
+ }],
1000
+ firstChild: [{
1001
+ type: i0.Input,
1002
+ args: [{
1003
+ isSignal: true,
1004
+ alias: "firstChild",
1005
+ required: false
1006
+ }]
1007
+ }],
1008
+ lastChild: [{
1009
+ type: i0.Input,
1010
+ args: [{
1011
+ isSignal: true,
1012
+ alias: "lastChild",
1013
+ required: false
1014
+ }]
1015
+ }],
1016
+ level: [{
1017
+ type: i0.Input,
1018
+ args: [{
1019
+ isSignal: true,
1020
+ alias: "level",
1021
+ required: false
1022
+ }]
1023
+ }],
1024
+ indentation: [{
1025
+ type: i0.Input,
1026
+ args: [{
1027
+ isSignal: true,
1028
+ alias: "indentation",
1029
+ required: false
1030
+ }]
1031
+ }],
1032
+ itemSize: [{
1033
+ type: i0.Input,
1034
+ args: [{
1035
+ isSignal: true,
1036
+ alias: "itemSize",
1037
+ required: false
1038
+ }]
1039
+ }],
1040
+ loadingMode: [{
1041
+ type: i0.Input,
1042
+ args: [{
1043
+ isSignal: true,
1044
+ alias: "loadingMode",
1045
+ required: false
1046
+ }]
1047
+ }]
1048
+ }
1049
+ });
1050
+ var Tree = class Tree extends BaseComponent {
1051
+ dragDropService;
1052
+ componentName = "Tree";
1053
+ bindDirectiveInstance = inject(Bind, { self: true });
1054
+ $pcTree = inject(TREE_INSTANCE, {
1055
+ optional: true,
1056
+ skipSelf: true
1057
+ }) ?? void 0;
1058
+ onAfterViewChecked() {
1059
+ this.bindDirectiveInstance.setAttrs(this.ptms(["host", "root"]));
1060
+ }
1061
+ value = model(void 0, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
1062
+ selectionMode = model(void 0, ...ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []);
1063
+ loadingMode = input("mask", ...ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []);
1064
+ selection = model(null, ...ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []);
1065
+ styleClass = input(...ngDevMode ? [void 0, { debugName: "styleClass" }] : /* istanbul ignore next */ []);
1066
+ contextMenu = input(...ngDevMode ? [void 0, { debugName: "contextMenu" }] : /* istanbul ignore next */ []);
1067
+ contextMenuSelectionMode = input("joint", ...ngDevMode ? [{ debugName: "contextMenuSelectionMode" }] : /* istanbul ignore next */ []);
1068
+ contextMenuSelection = model(null, ...ngDevMode ? [{ debugName: "contextMenuSelection" }] : /* istanbul ignore next */ []);
1069
+ draggableScope = input(...ngDevMode ? [void 0, { debugName: "draggableScope" }] : /* istanbul ignore next */ []);
1070
+ droppableScope = input(...ngDevMode ? [void 0, { debugName: "droppableScope" }] : /* istanbul ignore next */ []);
1071
+ draggableNodes = input(void 0, {
1072
+ ...ngDevMode ? { debugName: "draggableNodes" } : /* istanbul ignore next */ {},
1073
+ transform: booleanAttribute
1074
+ });
1075
+ droppableNodes = input(void 0, {
1076
+ ...ngDevMode ? { debugName: "droppableNodes" } : /* istanbul ignore next */ {},
1077
+ transform: booleanAttribute
1078
+ });
1079
+ metaKeySelection = input(false, {
1080
+ ...ngDevMode ? { debugName: "metaKeySelection" } : /* istanbul ignore next */ {},
1081
+ transform: booleanAttribute
1082
+ });
1083
+ propagateSelectionUp = input(true, {
1084
+ ...ngDevMode ? { debugName: "propagateSelectionUp" } : /* istanbul ignore next */ {},
1085
+ transform: booleanAttribute
1086
+ });
1087
+ propagateSelectionDown = input(true, {
1088
+ ...ngDevMode ? { debugName: "propagateSelectionDown" } : /* istanbul ignore next */ {},
1089
+ transform: booleanAttribute
1090
+ });
1091
+ loading = input(void 0, {
1092
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
1093
+ transform: booleanAttribute
1094
+ });
1095
+ loadingIcon = input(void 0, ...ngDevMode ? [{ debugName: "loadingIcon" }] : /* istanbul ignore next */ []);
1096
+ emptyMessage = input("", ...ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []);
1097
+ ariaLabel = input(...ngDevMode ? [void 0, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
1098
+ togglerAriaLabel = input(...ngDevMode ? [void 0, { debugName: "togglerAriaLabel" }] : /* istanbul ignore next */ []);
1099
+ ariaLabelledBy = input(...ngDevMode ? [void 0, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []);
1100
+ validateDrop = input(void 0, {
1101
+ ...ngDevMode ? { debugName: "validateDrop" } : /* istanbul ignore next */ {},
1102
+ transform: booleanAttribute
1103
+ });
1104
+ filter = input(void 0, {
1105
+ ...ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {},
1106
+ transform: booleanAttribute
1107
+ });
1108
+ filterInputAutoFocus = input(false, {
1109
+ ...ngDevMode ? { debugName: "filterInputAutoFocus" } : /* istanbul ignore next */ {},
1110
+ transform: booleanAttribute
1111
+ });
1112
+ filterBy = input("label", ...ngDevMode ? [{ debugName: "filterBy" }] : /* istanbul ignore next */ []);
1113
+ filterMode = input("lenient", ...ngDevMode ? [{ debugName: "filterMode" }] : /* istanbul ignore next */ []);
1114
+ filterOptions = model(void 0, ...ngDevMode ? [{ debugName: "filterOptions" }] : /* istanbul ignore next */ []);
1115
+ filterPlaceholder = input(...ngDevMode ? [void 0, { debugName: "filterPlaceholder" }] : /* istanbul ignore next */ []);
1116
+ filteredNodes = model(void 0, ...ngDevMode ? [{ debugName: "filteredNodes" }] : /* istanbul ignore next */ []);
1117
+ filterLocale = input(...ngDevMode ? [void 0, { debugName: "filterLocale" }] : /* istanbul ignore next */ []);
1118
+ scrollHeight = input(...ngDevMode ? [void 0, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []);
1119
+ lazy = input(false, {
1120
+ ...ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {},
1121
+ transform: booleanAttribute
1122
+ });
1123
+ virtualScroll = input(void 0, {
1124
+ ...ngDevMode ? { debugName: "virtualScroll" } : /* istanbul ignore next */ {},
1125
+ transform: booleanAttribute
1126
+ });
1127
+ virtualScrollItemSize = input(void 0, {
1128
+ ...ngDevMode ? { debugName: "virtualScrollItemSize" } : /* istanbul ignore next */ {},
1129
+ transform: numberAttribute
1130
+ });
1131
+ virtualScrollOptions = input(...ngDevMode ? [void 0, { debugName: "virtualScrollOptions" }] : /* istanbul ignore next */ []);
1132
+ indentation = input(1.5, {
1133
+ ...ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {},
1134
+ transform: numberAttribute
1135
+ });
1136
+ _templateMap = model(void 0, ...ngDevMode ? [{ debugName: "_templateMap" }] : /* istanbul ignore next */ []);
1137
+ trackBy = input((index, item) => item, ...ngDevMode ? [{ debugName: "trackBy" }] : /* istanbul ignore next */ []);
1138
+ highlightOnSelect = input(false, {
1139
+ ...ngDevMode ? { debugName: "highlightOnSelect" } : /* istanbul ignore next */ {},
1140
+ transform: booleanAttribute
1141
+ });
1142
+ onNodeSelect = output();
1143
+ onNodeUnselect = output();
1144
+ onNodeExpand = output();
1145
+ onNodeCollapse = output();
1146
+ onNodeContextMenuSelect = output();
1147
+ onNodeDoubleClick = output();
1148
+ onNodeDrop = output();
1149
+ onLazyLoad = output();
1150
+ onScroll = output();
1151
+ onScrollIndexChange = output();
1152
+ onFilter = output();
1153
+ filterTemplate = contentChild("filter", {
1154
+ ...ngDevMode ? { debugName: "filterTemplate" } : /* istanbul ignore next */ {},
1155
+ descendants: false
1156
+ });
1157
+ nodeTemplate = contentChild("node", {
1158
+ ...ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {},
1159
+ descendants: false
1160
+ });
1161
+ headerTemplate = contentChild("header", {
1162
+ ...ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {},
1163
+ descendants: false
1164
+ });
1165
+ footerTemplate = contentChild("footer", {
1166
+ ...ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {},
1167
+ descendants: false
1168
+ });
1169
+ loaderTemplate = contentChild("loader", {
1170
+ ...ngDevMode ? { debugName: "loaderTemplate" } : /* istanbul ignore next */ {},
1171
+ descendants: false
1172
+ });
1173
+ emptyTemplate = contentChild("empty", {
1174
+ ...ngDevMode ? { debugName: "emptyTemplate" } : /* istanbul ignore next */ {},
1175
+ descendants: false
1176
+ });
1177
+ togglerIconTemplate = contentChild("togglericon", {
1178
+ ...ngDevMode ? { debugName: "togglerIconTemplate" } : /* istanbul ignore next */ {},
1179
+ descendants: false
1180
+ });
1181
+ checkboxIconTemplate = contentChild("checkboxicon", {
1182
+ ...ngDevMode ? { debugName: "checkboxIconTemplate" } : /* istanbul ignore next */ {},
1183
+ descendants: false
1184
+ });
1185
+ loadingIconTemplate = contentChild("loadingicon", {
1186
+ ...ngDevMode ? { debugName: "loadingIconTemplate" } : /* istanbul ignore next */ {},
1187
+ descendants: false
1188
+ });
1189
+ filterIconTemplate = contentChild("filtericon", {
1190
+ ...ngDevMode ? { debugName: "filterIconTemplate" } : /* istanbul ignore next */ {},
1191
+ descendants: false
1192
+ });
1193
+ filterViewChild = viewChild("filter", ...ngDevMode ? [{ debugName: "filterViewChild" }] : /* istanbul ignore next */ []);
1194
+ scroller = viewChild("scroller", ...ngDevMode ? [{ debugName: "scroller" }] : /* istanbul ignore next */ []);
1195
+ wrapperViewChild = viewChild("wrapper", ...ngDevMode ? [{ debugName: "wrapperViewChild" }] : /* istanbul ignore next */ []);
1196
+ contentViewChild = viewChild("content", ...ngDevMode ? [{ debugName: "contentViewChild" }] : /* istanbul ignore next */ []);
1197
+ templates = contentChildren(HelixTemplate, ...ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []);
1198
+ _headerTemplate;
1199
+ _emptyTemplate;
1200
+ _footerTemplate;
1201
+ _loaderTemplate;
1202
+ _togglerIconTemplate;
1203
+ _checkboxIconTemplate;
1204
+ _loadingIconTemplate;
1205
+ _filterIconTemplate;
1206
+ _filterTemplate;
1207
+ onAfterContentInit() {
1208
+ const map = {};
1209
+ this.templates().forEach((item) => {
1210
+ switch (item.getType()) {
1211
+ case "header":
1212
+ this._headerTemplate = item.template;
1213
+ break;
1214
+ case "empty":
1215
+ this._emptyTemplate = item.template;
1216
+ break;
1217
+ case "footer":
1218
+ this._footerTemplate = item.template;
1219
+ break;
1220
+ case "loader":
1221
+ this._loaderTemplate = item.template;
1222
+ break;
1223
+ case "togglericon":
1224
+ this._togglerIconTemplate = item.template;
1225
+ break;
1226
+ case "checkboxicon":
1227
+ this._checkboxIconTemplate = item.template;
1228
+ break;
1229
+ case "loadingicon":
1230
+ this._loadingIconTemplate = item.template;
1231
+ break;
1232
+ case "filtericon":
1233
+ this._filterIconTemplate = item.template;
1234
+ break;
1235
+ case "filter":
1236
+ this._filterTemplate = item.template;
1237
+ break;
1238
+ default:
1239
+ map[item.name()] = item.template;
1240
+ break;
1241
+ }
1242
+ });
1243
+ if (Object.keys(map).length) this._templateMap.set(map);
1244
+ }
1245
+ serializedValue;
1246
+ nodeTouched;
1247
+ dragNodeTree;
1248
+ dragNode;
1249
+ dragNodeSubNodes;
1250
+ dragNodeIndex;
1251
+ dragNodeScope;
1252
+ dragHover;
1253
+ dragStartSubscription;
1254
+ dragStopSubscription;
1255
+ _componentStyle = inject(TreeStyle);
1256
+ handleDropEvent(event) {
1257
+ this.onDrop(event);
1258
+ }
1259
+ handleDragOverEvent(event) {
1260
+ this.onDragOver(event);
1261
+ }
1262
+ handleDragEnterEvent() {
1263
+ this.onDragEnter();
1264
+ }
1265
+ handleDragLeaveEvent(event) {
1266
+ this.onDragLeave(event);
1267
+ }
1268
+ constructor(dragDropService) {
1269
+ super();
1270
+ this.dragDropService = dragDropService;
1271
+ }
1272
+ onInit() {
1273
+ if (this.filterBy()) this.filterOptions.set({
1274
+ filter: (value) => this._filter(value),
1275
+ reset: () => this.resetFilter()
1276
+ });
1277
+ if (this.droppableNodes()) {
1278
+ this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {
1279
+ this.dragNodeTree = event.tree;
1280
+ this.dragNode = event.node;
1281
+ this.dragNodeSubNodes = event.subNodes;
1282
+ this.dragNodeIndex = event.index;
1283
+ this.dragNodeScope = event.scope;
1284
+ });
1285
+ this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {
1286
+ this.dragNodeTree = null;
1287
+ this.dragNode = null;
1288
+ this.dragNodeSubNodes = null;
1289
+ this.dragNodeIndex = null;
1290
+ this.dragNodeScope = null;
1291
+ this.dragHover = false;
1292
+ });
1293
+ }
1294
+ }
1295
+ onChanges(simpleChange) {
1296
+ if (simpleChange.value) {
1297
+ this.updateSerializedValue();
1298
+ if (this.hasFilterActive()) this._filter(this.filterViewChild()?.nativeElement?.value);
1299
+ }
1300
+ }
1301
+ get emptyMessageLabel() {
1302
+ return this.emptyMessage() || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
1303
+ }
1304
+ updateSerializedValue() {
1305
+ this.serializedValue = [];
1306
+ this.serializeNodes(null, this.getRootNode(), 0, true);
1307
+ }
1308
+ serializeNodes(parent, nodes, level, visible) {
1309
+ if (nodes && nodes.length) for (let node of nodes) {
1310
+ node.parent = parent;
1311
+ const rowNode = {
1312
+ node,
1313
+ parent,
1314
+ level,
1315
+ visible: visible && (parent ? parent.expanded : true)
1316
+ };
1317
+ this.serializedValue.push(rowNode);
1318
+ if (rowNode.visible && node.expanded) this.serializeNodes(node, node.children, level + 1, rowNode.visible);
1319
+ }
1320
+ }
1321
+ onNodeClick(event, node) {
1322
+ const section = event.target?.getAttribute?.("data-pc-section");
1323
+ if (section === "nodetogglebutton" || section === "nodetoggleicon") return;
1324
+ if (this.selectionMode()) {
1325
+ if (node.selectable === false) {
1326
+ node.style = "--h-focus-ring-color: none;";
1327
+ return;
1328
+ } else if (!node.style?.includes("--h-focus-ring-color")) node.style = node.style ? `${node.style}--h-focus-ring-color: var(--primary-color)` : "--h-focus-ring-color: var(--primary-color)";
1329
+ if (this.hasFilteredNodes()) {
1330
+ node = this.getNodeWithKey(node.key, this.filteredNodes());
1331
+ if (!node) return;
1332
+ }
1333
+ let index = this.findIndexInSelection(node);
1334
+ let selected = index >= 0;
1335
+ const currentSelection = this.selection();
1336
+ if (this.isCheckboxSelectionMode()) if (selected) {
1337
+ if (this.propagateSelectionDown()) this.propagateDown(node, false);
1338
+ else this.selection.set(currentSelection.filter((_val, i) => i != index));
1339
+ if (this.propagateSelectionUp() && node.parent) this.propagateUp(node.parent, false);
1340
+ this.onNodeUnselect.emit({
1341
+ originalEvent: event,
1342
+ node
1343
+ });
1344
+ } else {
1345
+ if (this.propagateSelectionDown()) this.propagateDown(node, true);
1346
+ else this.selection.set([...currentSelection || [], node]);
1347
+ if (this.propagateSelectionUp() && node.parent) this.propagateUp(node.parent, true);
1348
+ this.onNodeSelect.emit({
1349
+ originalEvent: event,
1350
+ node
1351
+ });
1352
+ }
1353
+ else if (this.nodeTouched ? false : this.metaKeySelection()) {
1354
+ let metaKey = event.metaKey || event.ctrlKey;
1355
+ if (selected && metaKey) {
1356
+ if (this.isSingleSelectionMode()) this.selection.set(null);
1357
+ else this.selection.set(currentSelection.filter((_val, i) => i != index));
1358
+ this.onNodeUnselect.emit({
1359
+ originalEvent: event,
1360
+ node
1361
+ });
1362
+ } else {
1363
+ if (this.isSingleSelectionMode()) this.selection.set(node);
1364
+ else if (this.isMultipleSelectionMode()) {
1365
+ const base = !metaKey ? [] : currentSelection || [];
1366
+ this.selection.set([...base, node]);
1367
+ }
1368
+ this.onNodeSelect.emit({
1369
+ originalEvent: event,
1370
+ node
1371
+ });
1372
+ }
1373
+ } else if (this.isSingleSelectionMode()) if (selected) {
1374
+ this.selection.set(null);
1375
+ this.onNodeUnselect.emit({
1376
+ originalEvent: event,
1377
+ node
1378
+ });
1379
+ } else {
1380
+ this.selection.set(node);
1381
+ setTimeout(() => {
1382
+ this.onNodeSelect.emit({
1383
+ originalEvent: event,
1384
+ node
1385
+ });
1386
+ });
1387
+ }
1388
+ else if (selected) {
1389
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1390
+ this.onNodeUnselect.emit({
1391
+ originalEvent: event,
1392
+ node
1393
+ });
1394
+ } else {
1395
+ this.selection.set([...currentSelection || [], node]);
1396
+ setTimeout(() => {
1397
+ this.onNodeSelect.emit({
1398
+ originalEvent: event,
1399
+ node
1400
+ });
1401
+ });
1402
+ }
1403
+ }
1404
+ this.nodeTouched = false;
1405
+ }
1406
+ onNodeTouchEnd() {
1407
+ this.nodeTouched = true;
1408
+ }
1409
+ onNodeRightClick(event, node) {
1410
+ if (this.contextMenu()) {
1411
+ const section = event.target.getAttribute("data-pc-section");
1412
+ if (section === "nodetogglebutton" || section === "nodetoggleicon") return;
1413
+ let isNodeSelected = this.findIndexInSelection(node) >= 0;
1414
+ const onContextMenuCallback = () => {
1415
+ this.contextMenu().show(event);
1416
+ this.contextMenu().hideCallback = () => {
1417
+ this.contextMenuSelection.set(null);
1418
+ };
1419
+ this.onNodeContextMenuSelect.emit({
1420
+ originalEvent: event,
1421
+ node
1422
+ });
1423
+ };
1424
+ const contextMenuSelectionMode = this.contextMenuSelectionMode();
1425
+ if (contextMenuSelectionMode === "separate") {
1426
+ this.contextMenuSelection.set(node);
1427
+ onContextMenuCallback();
1428
+ } else if (contextMenuSelectionMode === "joint") {
1429
+ if (!isNodeSelected) if (this.isSingleSelectionMode()) this.selection.set(node);
1430
+ else this.selection.set([node]);
1431
+ onContextMenuCallback();
1432
+ }
1433
+ }
1434
+ }
1435
+ onNodeDblClick(event, node) {
1436
+ this.onNodeDoubleClick.emit({
1437
+ originalEvent: event,
1438
+ node
1439
+ });
1440
+ }
1441
+ findIndexInSelection(node) {
1442
+ let index = -1;
1443
+ const currentSelection = this.selection();
1444
+ if (this.selectionMode() && currentSelection) if (this.isSingleSelectionMode()) {
1445
+ const sel = currentSelection;
1446
+ index = sel.key && sel.key === node.key || sel == node ? 0 : -1;
1447
+ } else {
1448
+ const selArray = currentSelection;
1449
+ for (let i = 0; i < selArray.length; i++) {
1450
+ let selectedNode = selArray[i];
1451
+ if (selectedNode.key && selectedNode.key === node.key || selectedNode == node) {
1452
+ index = i;
1453
+ break;
1454
+ }
1455
+ }
1456
+ }
1457
+ return index;
1458
+ }
1459
+ syncNodeOption(node, parentNodes, option, value) {
1460
+ const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;
1461
+ if (_node) _node[option] = value || node[option];
1462
+ }
1463
+ hasFilteredNodes() {
1464
+ const filtered = this.filteredNodes();
1465
+ return this.filter() && filtered && filtered.length > 0;
1466
+ }
1467
+ hasFilterActive() {
1468
+ return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;
1469
+ }
1470
+ getNodeWithKey(key, nodes) {
1471
+ for (let node of nodes) {
1472
+ if (node.key === key) return node;
1473
+ if (node.children) {
1474
+ let matchedNode = this.getNodeWithKey(key, node.children);
1475
+ if (matchedNode) return matchedNode;
1476
+ }
1477
+ }
1478
+ }
1479
+ propagateUp(node, select) {
1480
+ if (node.children && node.children.length) {
1481
+ let selectedCount = 0;
1482
+ let childPartialSelected = false;
1483
+ for (let child of node.children) if (this.isSelected(child)) selectedCount++;
1484
+ else if (child.partialSelected) childPartialSelected = true;
1485
+ const currentSelection = this.selection() || [];
1486
+ if (select && selectedCount == node.children.length) {
1487
+ this.selection.set([...currentSelection, node]);
1488
+ node.partialSelected = false;
1489
+ } else {
1490
+ if (!select) {
1491
+ let index = this.findIndexInSelection(node);
1492
+ if (index >= 0) this.selection.set(currentSelection.filter((_val, i) => i != index));
1493
+ }
1494
+ if (childPartialSelected || selectedCount > 0 && selectedCount != node.children.length) node.partialSelected = true;
1495
+ else node.partialSelected = false;
1496
+ }
1497
+ this.syncNodeOption(node, this.filteredNodes(), "partialSelected");
1498
+ }
1499
+ let parent = node.parent;
1500
+ if (parent) this.propagateUp(parent, select);
1501
+ }
1502
+ propagateDown(node, select) {
1503
+ let index = this.findIndexInSelection(node);
1504
+ const currentSelection = this.selection() || [];
1505
+ if (select && index == -1) this.selection.set([...currentSelection, node]);
1506
+ else if (!select && index > -1) this.selection.set(currentSelection.filter((_val, i) => i != index));
1507
+ node.partialSelected = false;
1508
+ this.syncNodeOption(node, this.filteredNodes(), "partialSelected");
1509
+ if (node.children && node.children.length) for (let child of node.children) this.propagateDown(child, select);
1510
+ }
1511
+ isSelected(node) {
1512
+ return this.findIndexInSelection(node) != -1;
1513
+ }
1514
+ isSingleSelectionMode() {
1515
+ return this.selectionMode() && this.selectionMode() == "single";
1516
+ }
1517
+ isMultipleSelectionMode() {
1518
+ return this.selectionMode() && this.selectionMode() == "multiple";
1519
+ }
1520
+ isCheckboxSelectionMode() {
1521
+ return this.selectionMode() && this.selectionMode() == "checkbox";
1522
+ }
1523
+ isNodeLeaf(node) {
1524
+ return node.leaf == false ? false : !(node.children && node.children.length);
1525
+ }
1526
+ getRootNode() {
1527
+ return this.filteredNodes() ? this.filteredNodes() : this.value();
1528
+ }
1529
+ getTemplateForNode(node) {
1530
+ if (this._templateMap()) return node.type ? this._templateMap()[node.type] : this._templateMap()["default"];
1531
+ else return null;
1532
+ }
1533
+ onDragOver(event) {
1534
+ if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1535
+ event.dataTransfer.dropEffect = "copy";
1536
+ event.preventDefault();
1537
+ }
1538
+ }
1539
+ onDrop(event) {
1540
+ if (this.droppableNodes()) {
1541
+ event.preventDefault();
1542
+ let dragNode = this.dragNode;
1543
+ if (this.isSameTreeScope(this.dragNodeScope)) return;
1544
+ if (this.allowDrop(dragNode, null, this.dragNodeScope)) {
1545
+ let dragNodeIndex = this.dragNodeIndex;
1546
+ this.value.update((v) => v || []);
1547
+ if (this.validateDrop()) this.onNodeDrop.emit({
1548
+ originalEvent: event,
1549
+ dragNode,
1550
+ dropNode: null,
1551
+ index: dragNodeIndex,
1552
+ accept: () => {
1553
+ this.processTreeDrop(dragNode, dragNodeIndex);
1554
+ }
1555
+ });
1556
+ else {
1557
+ this.onNodeDrop.emit({
1558
+ originalEvent: event,
1559
+ dragNode,
1560
+ dropNode: null,
1561
+ index: dragNodeIndex
1562
+ });
1563
+ this.processTreeDrop(dragNode, dragNodeIndex);
1564
+ }
1565
+ }
1566
+ }
1567
+ }
1568
+ processTreeDrop(dragNode, dragNodeIndex) {
1569
+ this.dragNodeSubNodes.splice(dragNodeIndex, 1);
1570
+ this.value().push(dragNode);
1571
+ this.dragDropService.stopDrag({ node: dragNode });
1572
+ }
1573
+ onDragEnter() {
1574
+ if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) this.dragHover = true;
1575
+ }
1576
+ onDragLeave(event) {
1577
+ if (this.droppableNodes()) {
1578
+ let rect = event.currentTarget.getBoundingClientRect();
1579
+ if (event.x > parseInt(rect.left) + rect.width || event.x < parseInt(rect.left) || event.y > parseInt(rect.top) + rect.height || event.y < parseInt(rect.top)) this.dragHover = false;
1580
+ }
1581
+ }
1582
+ allowDrop(dragNode, dropNode, dragNodeScope) {
1583
+ if (!dragNode) return false;
1584
+ else if (this.isValidDragScope(dragNodeScope)) {
1585
+ let allow = true;
1586
+ if (dropNode) if (dragNode === dropNode) allow = false;
1587
+ else {
1588
+ let parent = dropNode.parent;
1589
+ while (parent != null) {
1590
+ if (parent === dragNode) {
1591
+ allow = false;
1592
+ break;
1593
+ }
1594
+ parent = parent.parent;
1595
+ }
1596
+ }
1597
+ return allow;
1598
+ } else return false;
1599
+ }
1600
+ hasCommonScope(dragScope, dropScope) {
1601
+ if (typeof dropScope === "string") {
1602
+ if (typeof dragScope === "string") return dropScope === dragScope;
1603
+ else if (Array.isArray(dragScope)) return dragScope.indexOf(dropScope) != -1;
1604
+ } else if (Array.isArray(dropScope)) {
1605
+ if (typeof dragScope === "string") return dropScope.indexOf(dragScope) != -1;
1606
+ else if (Array.isArray(dragScope)) {
1607
+ for (let s of dropScope) for (let ds of dragScope) if (s === ds) return true;
1608
+ }
1609
+ }
1610
+ return false;
1611
+ }
1612
+ isSameTreeScope(dragScope) {
1613
+ return this.hasCommonScope(dragScope, this.draggableScope());
1614
+ }
1615
+ isValidDragScope(dragScope) {
1616
+ let dropScope = this.droppableScope();
1617
+ if (dropScope) return this.hasCommonScope(dragScope, dropScope);
1618
+ else return true;
1619
+ }
1620
+ _filter(value) {
1621
+ let filterValue = value;
1622
+ if (filterValue === "") this.filteredNodes.set(null);
1623
+ else {
1624
+ const filtered = [];
1625
+ const searchFields = this.filterBy().split(",");
1626
+ const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());
1627
+ const isStrictMode = this.filterMode() === "strict";
1628
+ for (let node of this.value()) {
1629
+ let copyNode = { ...node };
1630
+ let paramsWithoutNode = {
1631
+ searchFields,
1632
+ filterText,
1633
+ isStrictMode
1634
+ };
1635
+ if (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode)) || !isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode))) filtered.push(copyNode);
1636
+ }
1637
+ this.filteredNodes.set(filtered);
1638
+ }
1639
+ this.updateSerializedValue();
1640
+ this.onFilter.emit({
1641
+ filter: filterValue,
1642
+ filteredValue: this.filteredNodes()
1643
+ });
1644
+ }
1645
+ resetFilter() {
1646
+ this.filteredNodes.set(null);
1647
+ const filterViewChildEl = this.filterViewChild();
1648
+ if (filterViewChildEl?.nativeElement) filterViewChildEl.nativeElement.value = "";
1649
+ }
1650
+ scrollToVirtualIndex(index) {
1651
+ this.virtualScroll() && this.scroller()?.scrollToIndex(index);
1652
+ }
1653
+ scrollTo(options) {
1654
+ if (this.virtualScroll()) this.scroller()?.scrollTo(options);
1655
+ else {
1656
+ const wrapperEl = this.wrapperViewChild();
1657
+ if (wrapperEl?.nativeElement) if (wrapperEl.nativeElement.scrollTo) wrapperEl.nativeElement.scrollTo(options);
1658
+ else {
1659
+ wrapperEl.nativeElement.scrollLeft = options.left;
1660
+ wrapperEl.nativeElement.scrollTop = options.top;
1661
+ }
1662
+ }
1663
+ }
1664
+ findFilteredNodes(node, paramsWithoutNode) {
1665
+ if (node) {
1666
+ let matched = false;
1667
+ if (node.children) {
1668
+ let childNodes = [...node.children];
1669
+ node.children = [];
1670
+ for (let childNode of childNodes) {
1671
+ let copyChildNode = { ...childNode };
1672
+ if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {
1673
+ matched = true;
1674
+ node.children.push(copyChildNode);
1675
+ }
1676
+ }
1677
+ }
1678
+ if (matched) {
1679
+ node.expanded = true;
1680
+ return true;
1681
+ }
1682
+ }
1683
+ }
1684
+ isFilterMatched(node, params) {
1685
+ let { searchFields, filterText, isStrictMode } = params;
1686
+ let matched = false;
1687
+ for (let field of searchFields) if (removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale()).indexOf(filterText) > -1) matched = true;
1688
+ if (!matched || isStrictMode && !this.isNodeLeaf(node)) matched = this.findFilteredNodes(node, {
1689
+ searchFields,
1690
+ filterText,
1691
+ isStrictMode
1692
+ }) || matched;
1693
+ return matched;
1694
+ }
1695
+ getIndex(options, index) {
1696
+ const getItemOptions = options["getItemOptions"];
1697
+ return getItemOptions ? getItemOptions(index).index : index;
1698
+ }
1699
+ getBlockableElement() {
1700
+ return this.el.nativeElement.children[0];
1701
+ }
1702
+ onDestroy() {
1703
+ if (this.dragStartSubscription) this.dragStartSubscription.unsubscribe();
1704
+ if (this.dragStopSubscription) this.dragStopSubscription.unsubscribe();
1705
+ }
1706
+ get containerDataP() {
1707
+ return this.cn({
1708
+ loading: this.loading(),
1709
+ scrollable: this.scrollHeight() === "flex"
1710
+ });
1711
+ }
1712
+ get wrapperDataP() {
1713
+ return this.cn({ scrollable: this.scrollHeight() === "flex" });
1714
+ }
1715
+ static ɵfac = i0.ɵɵngDeclareFactory({
1716
+ minVersion: "12.0.0",
1717
+ version: "22.2.1",
1718
+ ngImport: i0,
1719
+ type: Tree,
1720
+ deps: [{
1721
+ token: i4.TreeDragDropService,
1722
+ optional: true
1723
+ }],
1724
+ target: i0.ɵɵFactoryTarget.Component
1725
+ });
1726
+ static ɵcmp = i0.ɵɵngDeclareComponent({
1727
+ minVersion: "17.0.0",
1728
+ version: "22.2.1",
1729
+ type: Tree,
1730
+ isStandalone: true,
1731
+ selector: "h-tree",
1732
+ inputs: {
1733
+ value: {
1734
+ classPropertyName: "value",
1735
+ publicName: "value",
1736
+ isSignal: true,
1737
+ isRequired: false,
1738
+ transformFunction: null
1739
+ },
1740
+ selectionMode: {
1741
+ classPropertyName: "selectionMode",
1742
+ publicName: "selectionMode",
1743
+ isSignal: true,
1744
+ isRequired: false,
1745
+ transformFunction: null
1746
+ },
1747
+ loadingMode: {
1748
+ classPropertyName: "loadingMode",
1749
+ publicName: "loadingMode",
1750
+ isSignal: true,
1751
+ isRequired: false,
1752
+ transformFunction: null
1753
+ },
1754
+ selection: {
1755
+ classPropertyName: "selection",
1756
+ publicName: "selection",
1757
+ isSignal: true,
1758
+ isRequired: false,
1759
+ transformFunction: null
1760
+ },
1761
+ styleClass: {
1762
+ classPropertyName: "styleClass",
1763
+ publicName: "styleClass",
1764
+ isSignal: true,
1765
+ isRequired: false,
1766
+ transformFunction: null
1767
+ },
1768
+ contextMenu: {
1769
+ classPropertyName: "contextMenu",
1770
+ publicName: "contextMenu",
1771
+ isSignal: true,
1772
+ isRequired: false,
1773
+ transformFunction: null
1774
+ },
1775
+ contextMenuSelectionMode: {
1776
+ classPropertyName: "contextMenuSelectionMode",
1777
+ publicName: "contextMenuSelectionMode",
1778
+ isSignal: true,
1779
+ isRequired: false,
1780
+ transformFunction: null
1781
+ },
1782
+ contextMenuSelection: {
1783
+ classPropertyName: "contextMenuSelection",
1784
+ publicName: "contextMenuSelection",
1785
+ isSignal: true,
1786
+ isRequired: false,
1787
+ transformFunction: null
1788
+ },
1789
+ draggableScope: {
1790
+ classPropertyName: "draggableScope",
1791
+ publicName: "draggableScope",
1792
+ isSignal: true,
1793
+ isRequired: false,
1794
+ transformFunction: null
1795
+ },
1796
+ droppableScope: {
1797
+ classPropertyName: "droppableScope",
1798
+ publicName: "droppableScope",
1799
+ isSignal: true,
1800
+ isRequired: false,
1801
+ transformFunction: null
1802
+ },
1803
+ draggableNodes: {
1804
+ classPropertyName: "draggableNodes",
1805
+ publicName: "draggableNodes",
1806
+ isSignal: true,
1807
+ isRequired: false,
1808
+ transformFunction: null
1809
+ },
1810
+ droppableNodes: {
1811
+ classPropertyName: "droppableNodes",
1812
+ publicName: "droppableNodes",
1813
+ isSignal: true,
1814
+ isRequired: false,
1815
+ transformFunction: null
1816
+ },
1817
+ metaKeySelection: {
1818
+ classPropertyName: "metaKeySelection",
1819
+ publicName: "metaKeySelection",
1820
+ isSignal: true,
1821
+ isRequired: false,
1822
+ transformFunction: null
1823
+ },
1824
+ propagateSelectionUp: {
1825
+ classPropertyName: "propagateSelectionUp",
1826
+ publicName: "propagateSelectionUp",
1827
+ isSignal: true,
1828
+ isRequired: false,
1829
+ transformFunction: null
1830
+ },
1831
+ propagateSelectionDown: {
1832
+ classPropertyName: "propagateSelectionDown",
1833
+ publicName: "propagateSelectionDown",
1834
+ isSignal: true,
1835
+ isRequired: false,
1836
+ transformFunction: null
1837
+ },
1838
+ loading: {
1839
+ classPropertyName: "loading",
1840
+ publicName: "loading",
1841
+ isSignal: true,
1842
+ isRequired: false,
1843
+ transformFunction: null
1844
+ },
1845
+ loadingIcon: {
1846
+ classPropertyName: "loadingIcon",
1847
+ publicName: "loadingIcon",
1848
+ isSignal: true,
1849
+ isRequired: false,
1850
+ transformFunction: null
1851
+ },
1852
+ emptyMessage: {
1853
+ classPropertyName: "emptyMessage",
1854
+ publicName: "emptyMessage",
1855
+ isSignal: true,
1856
+ isRequired: false,
1857
+ transformFunction: null
1858
+ },
1859
+ ariaLabel: {
1860
+ classPropertyName: "ariaLabel",
1861
+ publicName: "ariaLabel",
1862
+ isSignal: true,
1863
+ isRequired: false,
1864
+ transformFunction: null
1865
+ },
1866
+ togglerAriaLabel: {
1867
+ classPropertyName: "togglerAriaLabel",
1868
+ publicName: "togglerAriaLabel",
1869
+ isSignal: true,
1870
+ isRequired: false,
1871
+ transformFunction: null
1872
+ },
1873
+ ariaLabelledBy: {
1874
+ classPropertyName: "ariaLabelledBy",
1875
+ publicName: "ariaLabelledBy",
1876
+ isSignal: true,
1877
+ isRequired: false,
1878
+ transformFunction: null
1879
+ },
1880
+ validateDrop: {
1881
+ classPropertyName: "validateDrop",
1882
+ publicName: "validateDrop",
1883
+ isSignal: true,
1884
+ isRequired: false,
1885
+ transformFunction: null
1886
+ },
1887
+ filter: {
1888
+ classPropertyName: "filter",
1889
+ publicName: "filter",
1890
+ isSignal: true,
1891
+ isRequired: false,
1892
+ transformFunction: null
1893
+ },
1894
+ filterInputAutoFocus: {
1895
+ classPropertyName: "filterInputAutoFocus",
1896
+ publicName: "filterInputAutoFocus",
1897
+ isSignal: true,
1898
+ isRequired: false,
1899
+ transformFunction: null
1900
+ },
1901
+ filterBy: {
1902
+ classPropertyName: "filterBy",
1903
+ publicName: "filterBy",
1904
+ isSignal: true,
1905
+ isRequired: false,
1906
+ transformFunction: null
1907
+ },
1908
+ filterMode: {
1909
+ classPropertyName: "filterMode",
1910
+ publicName: "filterMode",
1911
+ isSignal: true,
1912
+ isRequired: false,
1913
+ transformFunction: null
1914
+ },
1915
+ filterOptions: {
1916
+ classPropertyName: "filterOptions",
1917
+ publicName: "filterOptions",
1918
+ isSignal: true,
1919
+ isRequired: false,
1920
+ transformFunction: null
1921
+ },
1922
+ filterPlaceholder: {
1923
+ classPropertyName: "filterPlaceholder",
1924
+ publicName: "filterPlaceholder",
1925
+ isSignal: true,
1926
+ isRequired: false,
1927
+ transformFunction: null
1928
+ },
1929
+ filteredNodes: {
1930
+ classPropertyName: "filteredNodes",
1931
+ publicName: "filteredNodes",
1932
+ isSignal: true,
1933
+ isRequired: false,
1934
+ transformFunction: null
1935
+ },
1936
+ filterLocale: {
1937
+ classPropertyName: "filterLocale",
1938
+ publicName: "filterLocale",
1939
+ isSignal: true,
1940
+ isRequired: false,
1941
+ transformFunction: null
1942
+ },
1943
+ scrollHeight: {
1944
+ classPropertyName: "scrollHeight",
1945
+ publicName: "scrollHeight",
1946
+ isSignal: true,
1947
+ isRequired: false,
1948
+ transformFunction: null
1949
+ },
1950
+ lazy: {
1951
+ classPropertyName: "lazy",
1952
+ publicName: "lazy",
1953
+ isSignal: true,
1954
+ isRequired: false,
1955
+ transformFunction: null
1956
+ },
1957
+ virtualScroll: {
1958
+ classPropertyName: "virtualScroll",
1959
+ publicName: "virtualScroll",
1960
+ isSignal: true,
1961
+ isRequired: false,
1962
+ transformFunction: null
1963
+ },
1964
+ virtualScrollItemSize: {
1965
+ classPropertyName: "virtualScrollItemSize",
1966
+ publicName: "virtualScrollItemSize",
1967
+ isSignal: true,
1968
+ isRequired: false,
1969
+ transformFunction: null
1970
+ },
1971
+ virtualScrollOptions: {
1972
+ classPropertyName: "virtualScrollOptions",
1973
+ publicName: "virtualScrollOptions",
1974
+ isSignal: true,
1975
+ isRequired: false,
1976
+ transformFunction: null
1977
+ },
1978
+ indentation: {
1979
+ classPropertyName: "indentation",
1980
+ publicName: "indentation",
1981
+ isSignal: true,
1982
+ isRequired: false,
1983
+ transformFunction: null
1984
+ },
1985
+ _templateMap: {
1986
+ classPropertyName: "_templateMap",
1987
+ publicName: "_templateMap",
1988
+ isSignal: true,
1989
+ isRequired: false,
1990
+ transformFunction: null
1991
+ },
1992
+ trackBy: {
1993
+ classPropertyName: "trackBy",
1994
+ publicName: "trackBy",
1995
+ isSignal: true,
1996
+ isRequired: false,
1997
+ transformFunction: null
1998
+ },
1999
+ highlightOnSelect: {
2000
+ classPropertyName: "highlightOnSelect",
2001
+ publicName: "highlightOnSelect",
2002
+ isSignal: true,
2003
+ isRequired: false,
2004
+ transformFunction: null
2005
+ }
2006
+ },
2007
+ outputs: {
2008
+ value: "valueChange",
2009
+ selectionMode: "selectionModeChange",
2010
+ selection: "selectionChange",
2011
+ contextMenuSelection: "contextMenuSelectionChange",
2012
+ filterOptions: "filterOptionsChange",
2013
+ filteredNodes: "filteredNodesChange",
2014
+ _templateMap: "_templateMapChange",
2015
+ onNodeSelect: "onNodeSelect",
2016
+ onNodeUnselect: "onNodeUnselect",
2017
+ onNodeExpand: "onNodeExpand",
2018
+ onNodeCollapse: "onNodeCollapse",
2019
+ onNodeContextMenuSelect: "onNodeContextMenuSelect",
2020
+ onNodeDoubleClick: "onNodeDoubleClick",
2021
+ onNodeDrop: "onNodeDrop",
2022
+ onLazyLoad: "onLazyLoad",
2023
+ onScroll: "onScroll",
2024
+ onScrollIndexChange: "onScrollIndexChange",
2025
+ onFilter: "onFilter"
2026
+ },
2027
+ host: {
2028
+ listeners: {
2029
+ "drop": "handleDropEvent($event)",
2030
+ "dragover": "handleDragOverEvent($event)",
2031
+ "dragenter": "handleDragEnterEvent()",
2032
+ "dragleave": "handleDragLeaveEvent($event)"
2033
+ },
2034
+ properties: {
2035
+ "class": "cn(cx('root'), styleClass())",
2036
+ "attr.data-h": "containerDataP"
2037
+ }
2038
+ },
2039
+ providers: [
2040
+ TreeStyle,
2041
+ {
2042
+ provide: TREE_INSTANCE,
2043
+ useExisting: Tree
2044
+ },
2045
+ {
2046
+ provide: PARENT_INSTANCE,
2047
+ useExisting: Tree
2048
+ }
2049
+ ],
2050
+ queries: [
2051
+ {
2052
+ propertyName: "filterTemplate",
2053
+ first: true,
2054
+ predicate: ["filter"],
2055
+ isSignal: true
2056
+ },
2057
+ {
2058
+ propertyName: "nodeTemplate",
2059
+ first: true,
2060
+ predicate: ["node"],
2061
+ isSignal: true
2062
+ },
2063
+ {
2064
+ propertyName: "headerTemplate",
2065
+ first: true,
2066
+ predicate: ["header"],
2067
+ isSignal: true
2068
+ },
2069
+ {
2070
+ propertyName: "footerTemplate",
2071
+ first: true,
2072
+ predicate: ["footer"],
2073
+ isSignal: true
2074
+ },
2075
+ {
2076
+ propertyName: "loaderTemplate",
2077
+ first: true,
2078
+ predicate: ["loader"],
2079
+ isSignal: true
2080
+ },
2081
+ {
2082
+ propertyName: "emptyTemplate",
2083
+ first: true,
2084
+ predicate: ["empty"],
2085
+ isSignal: true
2086
+ },
2087
+ {
2088
+ propertyName: "togglerIconTemplate",
2089
+ first: true,
2090
+ predicate: ["togglericon"],
2091
+ isSignal: true
2092
+ },
2093
+ {
2094
+ propertyName: "checkboxIconTemplate",
2095
+ first: true,
2096
+ predicate: ["checkboxicon"],
2097
+ isSignal: true
2098
+ },
2099
+ {
2100
+ propertyName: "loadingIconTemplate",
2101
+ first: true,
2102
+ predicate: ["loadingicon"],
2103
+ isSignal: true
2104
+ },
2105
+ {
2106
+ propertyName: "filterIconTemplate",
2107
+ first: true,
2108
+ predicate: ["filtericon"],
2109
+ isSignal: true
2110
+ },
2111
+ {
2112
+ propertyName: "templates",
2113
+ predicate: HelixTemplate,
2114
+ isSignal: true
2115
+ }
2116
+ ],
2117
+ viewQueries: [
2118
+ {
2119
+ propertyName: "filterViewChild",
2120
+ first: true,
2121
+ predicate: ["filter"],
2122
+ descendants: true,
2123
+ isSignal: true
2124
+ },
2125
+ {
2126
+ propertyName: "scroller",
2127
+ first: true,
2128
+ predicate: ["scroller"],
2129
+ descendants: true,
2130
+ isSignal: true
2131
+ },
2132
+ {
2133
+ propertyName: "wrapperViewChild",
2134
+ first: true,
2135
+ predicate: ["wrapper"],
2136
+ descendants: true,
2137
+ isSignal: true
2138
+ },
2139
+ {
2140
+ propertyName: "contentViewChild",
2141
+ first: true,
2142
+ predicate: ["content"],
2143
+ descendants: true,
2144
+ isSignal: true
2145
+ }
2146
+ ],
2147
+ usesInheritance: true,
2148
+ hostDirectives: [{ directive: i3.Bind }],
2149
+ ngImport: i0,
2150
+ template: "@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n",
2151
+ dependencies: [
2152
+ {
2153
+ kind: "ngmodule",
2154
+ type: CommonModule
2155
+ },
2156
+ {
2157
+ kind: "directive",
2158
+ type: i1.NgClass,
2159
+ selector: "[ngClass]",
2160
+ inputs: ["class", "ngClass"]
2161
+ },
2162
+ {
2163
+ kind: "directive",
2164
+ type: i1.NgTemplateOutlet,
2165
+ selector: "[ngTemplateOutlet]",
2166
+ inputs: [
2167
+ "ngTemplateOutletContext",
2168
+ "ngTemplateOutlet",
2169
+ "ngTemplateOutletInjector"
2170
+ ]
2171
+ },
2172
+ {
2173
+ kind: "component",
2174
+ type: Scroller,
2175
+ selector: "h-scroller, h-virtualscroller, h-virtual-scroller, h-virtualScroller",
2176
+ inputs: [
2177
+ "hostName",
2178
+ "id",
2179
+ "style",
2180
+ "styleClass",
2181
+ "tabindex",
2182
+ "items",
2183
+ "itemSize",
2184
+ "scrollHeight",
2185
+ "scrollWidth",
2186
+ "orientation",
2187
+ "step",
2188
+ "delay",
2189
+ "resizeDelay",
2190
+ "appendOnly",
2191
+ "inline",
2192
+ "lazy",
2193
+ "disabled",
2194
+ "loaderDisabled",
2195
+ "columns",
2196
+ "showSpacer",
2197
+ "showLoader",
2198
+ "numToleratedItems",
2199
+ "loading",
2200
+ "autoSize",
2201
+ "trackBy",
2202
+ "options"
2203
+ ],
2204
+ outputs: [
2205
+ "onLazyLoad",
2206
+ "onScroll",
2207
+ "onScrollIndexChange"
2208
+ ]
2209
+ },
2210
+ {
2211
+ kind: "ngmodule",
2212
+ type: SharedModule
2213
+ },
2214
+ {
2215
+ kind: "component",
2216
+ type: SearchIcon,
2217
+ selector: "[data-h-icon=\"search\"]"
2218
+ },
2219
+ {
2220
+ kind: "component",
2221
+ type: SpinnerIcon,
2222
+ selector: "[data-h-icon=\"spinner\"]"
2223
+ },
2224
+ {
2225
+ kind: "directive",
2226
+ type: InputText,
2227
+ selector: "[hInputText]",
2228
+ inputs: [
2229
+ "hostName",
2230
+ "ptInputText",
2231
+ "pInputTextPT",
2232
+ "pInputTextUnstyled",
2233
+ "pSize",
2234
+ "variant",
2235
+ "fluid",
2236
+ "invalid"
2237
+ ]
2238
+ },
2239
+ {
2240
+ kind: "ngmodule",
2241
+ type: FormsModule
2242
+ },
2243
+ {
2244
+ kind: "component",
2245
+ type: IconField,
2246
+ selector: "h-iconfield, h-iconField, h-icon-field",
2247
+ inputs: [
2248
+ "hostName",
2249
+ "iconPosition",
2250
+ "styleClass"
2251
+ ]
2252
+ },
2253
+ {
2254
+ kind: "component",
2255
+ type: InputIcon,
2256
+ selector: "h-inputicon, h-inputIcon",
2257
+ inputs: ["hostName", "styleClass"]
2258
+ },
2259
+ {
2260
+ kind: "component",
2261
+ type: UITreeNode,
2262
+ selector: "h-treeNode",
2263
+ inputs: [
2264
+ "rowNode",
2265
+ "node",
2266
+ "parentNode",
2267
+ "root",
2268
+ "index",
2269
+ "firstChild",
2270
+ "lastChild",
2271
+ "level",
2272
+ "indentation",
2273
+ "itemSize",
2274
+ "loadingMode"
2275
+ ]
2276
+ },
2277
+ {
2278
+ kind: "ngmodule",
2279
+ type: AutoFocusModule
2280
+ },
2281
+ {
2282
+ kind: "directive",
2283
+ type: i5.AutoFocus,
2284
+ selector: "[hAutoFocus]",
2285
+ inputs: ["hAutoFocus"]
2286
+ },
2287
+ {
2288
+ kind: "directive",
2289
+ type: Bind,
2290
+ selector: "[hBind]",
2291
+ inputs: ["hBind"]
2292
+ }
2293
+ ],
2294
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2295
+ encapsulation: i0.ViewEncapsulation.None
2296
+ });
2297
+ };
2298
+ i0.ɵɵngDeclareClassMetadata({
2299
+ minVersion: "12.0.0",
2300
+ version: "22.2.1",
2301
+ ngImport: i0,
2302
+ type: Tree,
2303
+ decorators: [{
2304
+ type: Component,
2305
+ args: [{
2306
+ selector: "h-tree",
2307
+ standalone: true,
2308
+ imports: [
2309
+ CommonModule,
2310
+ Scroller,
2311
+ SharedModule,
2312
+ SearchIcon,
2313
+ SpinnerIcon,
2314
+ InputText,
2315
+ FormsModule,
2316
+ IconField,
2317
+ InputIcon,
2318
+ UITreeNode,
2319
+ AutoFocusModule,
2320
+ Bind
2321
+ ],
2322
+ changeDetection: ChangeDetectionStrategy.OnPush,
2323
+ encapsulation: ViewEncapsulation.None,
2324
+ providers: [
2325
+ TreeStyle,
2326
+ {
2327
+ provide: TREE_INSTANCE,
2328
+ useExisting: Tree
2329
+ },
2330
+ {
2331
+ provide: PARENT_INSTANCE,
2332
+ useExisting: Tree
2333
+ }
2334
+ ],
2335
+ host: {
2336
+ "[class]": "cn(cx('root'), styleClass())",
2337
+ "[attr.data-h]": "containerDataP",
2338
+ "(drop)": "handleDropEvent($event)",
2339
+ "(dragover)": "handleDragOverEvent($event)",
2340
+ "(dragenter)": "handleDragEnterEvent()",
2341
+ "(dragleave)": "handleDragLeaveEvent($event)"
2342
+ },
2343
+ hostDirectives: [Bind],
2344
+ template: "@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\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 [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n"
2345
+ }]
2346
+ }],
2347
+ ctorParameters: () => [{
2348
+ type: i4.TreeDragDropService,
2349
+ decorators: [{ type: Optional }]
2350
+ }],
2351
+ propDecorators: {
2352
+ value: [{
2353
+ type: i0.Input,
2354
+ args: [{
2355
+ isSignal: true,
2356
+ alias: "value",
2357
+ required: false
2358
+ }]
2359
+ }, {
2360
+ type: i0.Output,
2361
+ args: ["valueChange"]
2362
+ }],
2363
+ selectionMode: [{
2364
+ type: i0.Input,
2365
+ args: [{
2366
+ isSignal: true,
2367
+ alias: "selectionMode",
2368
+ required: false
2369
+ }]
2370
+ }, {
2371
+ type: i0.Output,
2372
+ args: ["selectionModeChange"]
2373
+ }],
2374
+ loadingMode: [{
2375
+ type: i0.Input,
2376
+ args: [{
2377
+ isSignal: true,
2378
+ alias: "loadingMode",
2379
+ required: false
2380
+ }]
2381
+ }],
2382
+ selection: [{
2383
+ type: i0.Input,
2384
+ args: [{
2385
+ isSignal: true,
2386
+ alias: "selection",
2387
+ required: false
2388
+ }]
2389
+ }, {
2390
+ type: i0.Output,
2391
+ args: ["selectionChange"]
2392
+ }],
2393
+ styleClass: [{
2394
+ type: i0.Input,
2395
+ args: [{
2396
+ isSignal: true,
2397
+ alias: "styleClass",
2398
+ required: false
2399
+ }]
2400
+ }],
2401
+ contextMenu: [{
2402
+ type: i0.Input,
2403
+ args: [{
2404
+ isSignal: true,
2405
+ alias: "contextMenu",
2406
+ required: false
2407
+ }]
2408
+ }],
2409
+ contextMenuSelectionMode: [{
2410
+ type: i0.Input,
2411
+ args: [{
2412
+ isSignal: true,
2413
+ alias: "contextMenuSelectionMode",
2414
+ required: false
2415
+ }]
2416
+ }],
2417
+ contextMenuSelection: [{
2418
+ type: i0.Input,
2419
+ args: [{
2420
+ isSignal: true,
2421
+ alias: "contextMenuSelection",
2422
+ required: false
2423
+ }]
2424
+ }, {
2425
+ type: i0.Output,
2426
+ args: ["contextMenuSelectionChange"]
2427
+ }],
2428
+ draggableScope: [{
2429
+ type: i0.Input,
2430
+ args: [{
2431
+ isSignal: true,
2432
+ alias: "draggableScope",
2433
+ required: false
2434
+ }]
2435
+ }],
2436
+ droppableScope: [{
2437
+ type: i0.Input,
2438
+ args: [{
2439
+ isSignal: true,
2440
+ alias: "droppableScope",
2441
+ required: false
2442
+ }]
2443
+ }],
2444
+ draggableNodes: [{
2445
+ type: i0.Input,
2446
+ args: [{
2447
+ isSignal: true,
2448
+ alias: "draggableNodes",
2449
+ required: false
2450
+ }]
2451
+ }],
2452
+ droppableNodes: [{
2453
+ type: i0.Input,
2454
+ args: [{
2455
+ isSignal: true,
2456
+ alias: "droppableNodes",
2457
+ required: false
2458
+ }]
2459
+ }],
2460
+ metaKeySelection: [{
2461
+ type: i0.Input,
2462
+ args: [{
2463
+ isSignal: true,
2464
+ alias: "metaKeySelection",
2465
+ required: false
2466
+ }]
2467
+ }],
2468
+ propagateSelectionUp: [{
2469
+ type: i0.Input,
2470
+ args: [{
2471
+ isSignal: true,
2472
+ alias: "propagateSelectionUp",
2473
+ required: false
2474
+ }]
2475
+ }],
2476
+ propagateSelectionDown: [{
2477
+ type: i0.Input,
2478
+ args: [{
2479
+ isSignal: true,
2480
+ alias: "propagateSelectionDown",
2481
+ required: false
2482
+ }]
2483
+ }],
2484
+ loading: [{
2485
+ type: i0.Input,
2486
+ args: [{
2487
+ isSignal: true,
2488
+ alias: "loading",
2489
+ required: false
2490
+ }]
2491
+ }],
2492
+ loadingIcon: [{
2493
+ type: i0.Input,
2494
+ args: [{
2495
+ isSignal: true,
2496
+ alias: "loadingIcon",
2497
+ required: false
2498
+ }]
2499
+ }],
2500
+ emptyMessage: [{
2501
+ type: i0.Input,
2502
+ args: [{
2503
+ isSignal: true,
2504
+ alias: "emptyMessage",
2505
+ required: false
2506
+ }]
2507
+ }],
2508
+ ariaLabel: [{
2509
+ type: i0.Input,
2510
+ args: [{
2511
+ isSignal: true,
2512
+ alias: "ariaLabel",
2513
+ required: false
2514
+ }]
2515
+ }],
2516
+ togglerAriaLabel: [{
2517
+ type: i0.Input,
2518
+ args: [{
2519
+ isSignal: true,
2520
+ alias: "togglerAriaLabel",
2521
+ required: false
2522
+ }]
2523
+ }],
2524
+ ariaLabelledBy: [{
2525
+ type: i0.Input,
2526
+ args: [{
2527
+ isSignal: true,
2528
+ alias: "ariaLabelledBy",
2529
+ required: false
2530
+ }]
2531
+ }],
2532
+ validateDrop: [{
2533
+ type: i0.Input,
2534
+ args: [{
2535
+ isSignal: true,
2536
+ alias: "validateDrop",
2537
+ required: false
2538
+ }]
2539
+ }],
2540
+ filter: [{
2541
+ type: i0.Input,
2542
+ args: [{
2543
+ isSignal: true,
2544
+ alias: "filter",
2545
+ required: false
2546
+ }]
2547
+ }],
2548
+ filterInputAutoFocus: [{
2549
+ type: i0.Input,
2550
+ args: [{
2551
+ isSignal: true,
2552
+ alias: "filterInputAutoFocus",
2553
+ required: false
2554
+ }]
2555
+ }],
2556
+ filterBy: [{
2557
+ type: i0.Input,
2558
+ args: [{
2559
+ isSignal: true,
2560
+ alias: "filterBy",
2561
+ required: false
2562
+ }]
2563
+ }],
2564
+ filterMode: [{
2565
+ type: i0.Input,
2566
+ args: [{
2567
+ isSignal: true,
2568
+ alias: "filterMode",
2569
+ required: false
2570
+ }]
2571
+ }],
2572
+ filterOptions: [{
2573
+ type: i0.Input,
2574
+ args: [{
2575
+ isSignal: true,
2576
+ alias: "filterOptions",
2577
+ required: false
2578
+ }]
2579
+ }, {
2580
+ type: i0.Output,
2581
+ args: ["filterOptionsChange"]
2582
+ }],
2583
+ filterPlaceholder: [{
2584
+ type: i0.Input,
2585
+ args: [{
2586
+ isSignal: true,
2587
+ alias: "filterPlaceholder",
2588
+ required: false
2589
+ }]
2590
+ }],
2591
+ filteredNodes: [{
2592
+ type: i0.Input,
2593
+ args: [{
2594
+ isSignal: true,
2595
+ alias: "filteredNodes",
2596
+ required: false
2597
+ }]
2598
+ }, {
2599
+ type: i0.Output,
2600
+ args: ["filteredNodesChange"]
2601
+ }],
2602
+ filterLocale: [{
2603
+ type: i0.Input,
2604
+ args: [{
2605
+ isSignal: true,
2606
+ alias: "filterLocale",
2607
+ required: false
2608
+ }]
2609
+ }],
2610
+ scrollHeight: [{
2611
+ type: i0.Input,
2612
+ args: [{
2613
+ isSignal: true,
2614
+ alias: "scrollHeight",
2615
+ required: false
2616
+ }]
2617
+ }],
2618
+ lazy: [{
2619
+ type: i0.Input,
2620
+ args: [{
2621
+ isSignal: true,
2622
+ alias: "lazy",
2623
+ required: false
2624
+ }]
2625
+ }],
2626
+ virtualScroll: [{
2627
+ type: i0.Input,
2628
+ args: [{
2629
+ isSignal: true,
2630
+ alias: "virtualScroll",
2631
+ required: false
2632
+ }]
2633
+ }],
2634
+ virtualScrollItemSize: [{
2635
+ type: i0.Input,
2636
+ args: [{
2637
+ isSignal: true,
2638
+ alias: "virtualScrollItemSize",
2639
+ required: false
2640
+ }]
2641
+ }],
2642
+ virtualScrollOptions: [{
2643
+ type: i0.Input,
2644
+ args: [{
2645
+ isSignal: true,
2646
+ alias: "virtualScrollOptions",
2647
+ required: false
2648
+ }]
2649
+ }],
2650
+ indentation: [{
2651
+ type: i0.Input,
2652
+ args: [{
2653
+ isSignal: true,
2654
+ alias: "indentation",
2655
+ required: false
2656
+ }]
2657
+ }],
2658
+ _templateMap: [{
2659
+ type: i0.Input,
2660
+ args: [{
2661
+ isSignal: true,
2662
+ alias: "_templateMap",
2663
+ required: false
2664
+ }]
2665
+ }, {
2666
+ type: i0.Output,
2667
+ args: ["_templateMapChange"]
2668
+ }],
2669
+ trackBy: [{
2670
+ type: i0.Input,
2671
+ args: [{
2672
+ isSignal: true,
2673
+ alias: "trackBy",
2674
+ required: false
2675
+ }]
2676
+ }],
2677
+ highlightOnSelect: [{
2678
+ type: i0.Input,
2679
+ args: [{
2680
+ isSignal: true,
2681
+ alias: "highlightOnSelect",
2682
+ required: false
2683
+ }]
2684
+ }],
2685
+ onNodeSelect: [{
2686
+ type: i0.Output,
2687
+ args: ["onNodeSelect"]
2688
+ }],
2689
+ onNodeUnselect: [{
2690
+ type: i0.Output,
2691
+ args: ["onNodeUnselect"]
2692
+ }],
2693
+ onNodeExpand: [{
2694
+ type: i0.Output,
2695
+ args: ["onNodeExpand"]
2696
+ }],
2697
+ onNodeCollapse: [{
2698
+ type: i0.Output,
2699
+ args: ["onNodeCollapse"]
2700
+ }],
2701
+ onNodeContextMenuSelect: [{
2702
+ type: i0.Output,
2703
+ args: ["onNodeContextMenuSelect"]
2704
+ }],
2705
+ onNodeDoubleClick: [{
2706
+ type: i0.Output,
2707
+ args: ["onNodeDoubleClick"]
2708
+ }],
2709
+ onNodeDrop: [{
2710
+ type: i0.Output,
2711
+ args: ["onNodeDrop"]
2712
+ }],
2713
+ onLazyLoad: [{
2714
+ type: i0.Output,
2715
+ args: ["onLazyLoad"]
2716
+ }],
2717
+ onScroll: [{
2718
+ type: i0.Output,
2719
+ args: ["onScroll"]
2720
+ }],
2721
+ onScrollIndexChange: [{
2722
+ type: i0.Output,
2723
+ args: ["onScrollIndexChange"]
2724
+ }],
2725
+ onFilter: [{
2726
+ type: i0.Output,
2727
+ args: ["onFilter"]
2728
+ }],
2729
+ filterTemplate: [{
2730
+ type: i0.ContentChild,
2731
+ args: ["filter", {
2732
+ descendants: false,
2733
+ isSignal: true
2734
+ }]
2735
+ }],
2736
+ nodeTemplate: [{
2737
+ type: i0.ContentChild,
2738
+ args: ["node", {
2739
+ descendants: false,
2740
+ isSignal: true
2741
+ }]
2742
+ }],
2743
+ headerTemplate: [{
2744
+ type: i0.ContentChild,
2745
+ args: ["header", {
2746
+ descendants: false,
2747
+ isSignal: true
2748
+ }]
2749
+ }],
2750
+ footerTemplate: [{
2751
+ type: i0.ContentChild,
2752
+ args: ["footer", {
2753
+ descendants: false,
2754
+ isSignal: true
2755
+ }]
2756
+ }],
2757
+ loaderTemplate: [{
2758
+ type: i0.ContentChild,
2759
+ args: ["loader", {
2760
+ descendants: false,
2761
+ isSignal: true
2762
+ }]
2763
+ }],
2764
+ emptyTemplate: [{
2765
+ type: i0.ContentChild,
2766
+ args: ["empty", {
2767
+ descendants: false,
2768
+ isSignal: true
2769
+ }]
2770
+ }],
2771
+ togglerIconTemplate: [{
2772
+ type: i0.ContentChild,
2773
+ args: ["togglericon", {
2774
+ descendants: false,
2775
+ isSignal: true
2776
+ }]
2777
+ }],
2778
+ checkboxIconTemplate: [{
2779
+ type: i0.ContentChild,
2780
+ args: ["checkboxicon", {
2781
+ descendants: false,
2782
+ isSignal: true
2783
+ }]
2784
+ }],
2785
+ loadingIconTemplate: [{
2786
+ type: i0.ContentChild,
2787
+ args: ["loadingicon", {
2788
+ descendants: false,
2789
+ isSignal: true
2790
+ }]
2791
+ }],
2792
+ filterIconTemplate: [{
2793
+ type: i0.ContentChild,
2794
+ args: ["filtericon", {
2795
+ descendants: false,
2796
+ isSignal: true
2797
+ }]
2798
+ }],
2799
+ filterViewChild: [{
2800
+ type: i0.ViewChild,
2801
+ args: ["filter", { isSignal: true }]
2802
+ }],
2803
+ scroller: [{
2804
+ type: i0.ViewChild,
2805
+ args: ["scroller", { isSignal: true }]
2806
+ }],
2807
+ wrapperViewChild: [{
2808
+ type: i0.ViewChild,
2809
+ args: ["wrapper", { isSignal: true }]
2810
+ }],
2811
+ contentViewChild: [{
2812
+ type: i0.ViewChild,
2813
+ args: ["content", { isSignal: true }]
2814
+ }],
2815
+ templates: [{
2816
+ type: i0.ContentChildren,
2817
+ args: [i0.forwardRef(() => HelixTemplate), { isSignal: true }]
2818
+ }]
2819
+ }
2820
+ });
2821
+ var TreeModule = class TreeModule {
2822
+ static ɵfac = i0.ɵɵngDeclareFactory({
2823
+ minVersion: "12.0.0",
2824
+ version: "22.2.1",
2825
+ ngImport: i0,
2826
+ type: TreeModule,
2827
+ deps: [],
2828
+ target: i0.ɵɵFactoryTarget.NgModule
2829
+ });
2830
+ static ɵmod = i0.ɵɵngDeclareNgModule({
2831
+ minVersion: "14.0.0",
2832
+ version: "22.2.1",
2833
+ ngImport: i0,
2834
+ type: TreeModule,
2835
+ imports: [Tree, SharedModule],
2836
+ exports: [Tree, SharedModule]
2837
+ });
2838
+ static ɵinj = i0.ɵɵngDeclareInjector({
2839
+ minVersion: "12.0.0",
2840
+ version: "22.2.1",
2841
+ ngImport: i0,
2842
+ type: TreeModule,
2843
+ imports: [
2844
+ Tree,
2845
+ SharedModule,
2846
+ SharedModule
2847
+ ]
2848
+ });
2849
+ };
2850
+ i0.ɵɵngDeclareClassMetadata({
2851
+ minVersion: "12.0.0",
2852
+ version: "22.2.1",
2853
+ ngImport: i0,
2854
+ type: TreeModule,
2855
+ decorators: [{
2856
+ type: NgModule,
2857
+ args: [{
2858
+ imports: [Tree, SharedModule],
2859
+ exports: [Tree, SharedModule]
2860
+ }]
2861
+ }]
2862
+ });
1859
2863
  export { Tree, TreeClasses, TreeModule, TreeStyle, UITreeNode };
1860
- //# sourceMappingURL=gravionlabs-helix-core-tree.mjs.map
2864
+
2865
+ //# sourceMappingURL=gravionlabs-helix-core-tree.mjs.map