@gravionlabs/helix-core 22.0.0

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 (823) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +35 -0
  3. package/VENDOR.md +74 -0
  4. package/fesm2022/gravionlabs-helix-core-accordion.mjs +684 -0
  5. package/fesm2022/gravionlabs-helix-core-accordion.mjs.map +1 -0
  6. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs +167 -0
  7. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs.map +1 -0
  8. package/fesm2022/gravionlabs-helix-core-api.mjs +839 -0
  9. package/fesm2022/gravionlabs-helix-core-api.mjs.map +1 -0
  10. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs +1956 -0
  11. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs.map +1 -0
  12. package/fesm2022/gravionlabs-helix-core-autofocus.mjs +80 -0
  13. package/fesm2022/gravionlabs-helix-core-autofocus.mjs.map +1 -0
  14. package/fesm2022/gravionlabs-helix-core-avatar.mjs +265 -0
  15. package/fesm2022/gravionlabs-helix-core-avatar.mjs.map +1 -0
  16. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs +88 -0
  17. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs.map +1 -0
  18. package/fesm2022/gravionlabs-helix-core-badge.mjs +484 -0
  19. package/fesm2022/gravionlabs-helix-core-badge.mjs.map +1 -0
  20. package/fesm2022/gravionlabs-helix-core-base.mjs +237 -0
  21. package/fesm2022/gravionlabs-helix-core-base.mjs.map +1 -0
  22. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs +445 -0
  23. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs.map +1 -0
  24. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs +70 -0
  25. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs.map +1 -0
  26. package/fesm2022/gravionlabs-helix-core-baseinput.mjs +95 -0
  27. package/fesm2022/gravionlabs-helix-core-baseinput.mjs.map +1 -0
  28. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs +27 -0
  29. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs.map +1 -0
  30. package/fesm2022/gravionlabs-helix-core-bind.mjs +99 -0
  31. package/fesm2022/gravionlabs-helix-core-bind.mjs.map +1 -0
  32. package/fesm2022/gravionlabs-helix-core-blockui.mjs +244 -0
  33. package/fesm2022/gravionlabs-helix-core-blockui.mjs.map +1 -0
  34. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs +285 -0
  35. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs.map +1 -0
  36. package/fesm2022/gravionlabs-helix-core-button.mjs +1494 -0
  37. package/fesm2022/gravionlabs-helix-core-button.mjs.map +1 -0
  38. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs +126 -0
  39. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs.map +1 -0
  40. package/fesm2022/gravionlabs-helix-core-card.mjs +246 -0
  41. package/fesm2022/gravionlabs-helix-core-card.mjs.map +1 -0
  42. package/fesm2022/gravionlabs-helix-core-carousel.mjs +1017 -0
  43. package/fesm2022/gravionlabs-helix-core-carousel.mjs.map +1 -0
  44. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs +1615 -0
  45. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs.map +1 -0
  46. package/fesm2022/gravionlabs-helix-core-chart.mjs +218 -0
  47. package/fesm2022/gravionlabs-helix-core-chart.mjs.map +1 -0
  48. package/fesm2022/gravionlabs-helix-core-checkbox.mjs +500 -0
  49. package/fesm2022/gravionlabs-helix-core-checkbox.mjs.map +1 -0
  50. package/fesm2022/gravionlabs-helix-core-chip.mjs +309 -0
  51. package/fesm2022/gravionlabs-helix-core-chip.mjs.map +1 -0
  52. package/fesm2022/gravionlabs-helix-core-classnames.mjs +49 -0
  53. package/fesm2022/gravionlabs-helix-core-classnames.mjs.map +1 -0
  54. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs +781 -0
  55. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs.map +1 -0
  56. package/fesm2022/gravionlabs-helix-core-config.mjs +309 -0
  57. package/fesm2022/gravionlabs-helix-core-config.mjs.map +1 -0
  58. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs +570 -0
  59. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs.map +1 -0
  60. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs +619 -0
  61. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs.map +1 -0
  62. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs +1175 -0
  63. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs.map +1 -0
  64. package/fesm2022/gravionlabs-helix-core-dataview.mjs +587 -0
  65. package/fesm2022/gravionlabs-helix-core-dataview.mjs.map +1 -0
  66. package/fesm2022/gravionlabs-helix-core-datepicker.mjs +3795 -0
  67. package/fesm2022/gravionlabs-helix-core-datepicker.mjs.map +1 -0
  68. package/fesm2022/gravionlabs-helix-core-dialog.mjs +1158 -0
  69. package/fesm2022/gravionlabs-helix-core-dialog.mjs.map +1 -0
  70. package/fesm2022/gravionlabs-helix-core-divider.mjs +222 -0
  71. package/fesm2022/gravionlabs-helix-core-divider.mjs.map +1 -0
  72. package/fesm2022/gravionlabs-helix-core-dock.mjs +504 -0
  73. package/fesm2022/gravionlabs-helix-core-dock.mjs.map +1 -0
  74. package/fesm2022/gravionlabs-helix-core-dom.mjs +778 -0
  75. package/fesm2022/gravionlabs-helix-core-dom.mjs.map +1 -0
  76. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs +303 -0
  77. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs.map +1 -0
  78. package/fesm2022/gravionlabs-helix-core-drawer.mjs +784 -0
  79. package/fesm2022/gravionlabs-helix-core-drawer.mjs.map +1 -0
  80. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs +932 -0
  81. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs.map +1 -0
  82. package/fesm2022/gravionlabs-helix-core-editor.mjs +1370 -0
  83. package/fesm2022/gravionlabs-helix-core-editor.mjs.map +1 -0
  84. package/fesm2022/gravionlabs-helix-core-fieldset.mjs +372 -0
  85. package/fesm2022/gravionlabs-helix-core-fieldset.mjs.map +1 -0
  86. package/fesm2022/gravionlabs-helix-core-fileupload.mjs +1085 -0
  87. package/fesm2022/gravionlabs-helix-core-fileupload.mjs.map +1 -0
  88. package/fesm2022/gravionlabs-helix-core-firsterror.mjs +24 -0
  89. package/fesm2022/gravionlabs-helix-core-firsterror.mjs.map +1 -0
  90. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs +207 -0
  91. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs.map +1 -0
  92. package/fesm2022/gravionlabs-helix-core-fluid.mjs +78 -0
  93. package/fesm2022/gravionlabs-helix-core-fluid.mjs.map +1 -0
  94. package/fesm2022/gravionlabs-helix-core-focustrap.mjs +105 -0
  95. package/fesm2022/gravionlabs-helix-core-focustrap.mjs.map +1 -0
  96. package/fesm2022/gravionlabs-helix-core-galleria.mjs +1930 -0
  97. package/fesm2022/gravionlabs-helix-core-galleria.mjs.map +1 -0
  98. package/fesm2022/gravionlabs-helix-core-iconfield.mjs +147 -0
  99. package/fesm2022/gravionlabs-helix-core-iconfield.mjs.map +1 -0
  100. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs +38 -0
  101. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs.map +1 -0
  102. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs +38 -0
  103. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs.map +1 -0
  104. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs +38 -0
  105. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs.map +1 -0
  106. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs +38 -0
  107. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs.map +1 -0
  108. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs +34 -0
  109. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs.map +1 -0
  110. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs +34 -0
  111. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs.map +1 -0
  112. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs +34 -0
  113. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs.map +1 -0
  114. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs +34 -0
  115. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs.map +1 -0
  116. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs +57 -0
  117. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs.map +1 -0
  118. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs +34 -0
  119. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs.map +1 -0
  120. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs +34 -0
  121. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs.map +1 -0
  122. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs +57 -0
  123. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs.map +1 -0
  124. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs +38 -0
  125. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs.map +1 -0
  126. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs +57 -0
  127. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs.map +1 -0
  128. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs +53 -0
  129. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs.map +1 -0
  130. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs +38 -0
  131. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs.map +1 -0
  132. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs +100 -0
  133. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs.map +1 -0
  134. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs +24 -0
  135. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs.map +1 -0
  136. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs +34 -0
  137. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs.map +1 -0
  138. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs +34 -0
  139. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs.map +1 -0
  140. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs +34 -0
  141. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs.map +1 -0
  142. package/fesm2022/gravionlabs-helix-core-icons-check.mjs +34 -0
  143. package/fesm2022/gravionlabs-helix-core-icons-check.mjs.map +1 -0
  144. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs +34 -0
  145. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs.map +1 -0
  146. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs +34 -0
  147. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs.map +1 -0
  148. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs +34 -0
  149. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs.map +1 -0
  150. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs +34 -0
  151. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs.map +1 -0
  152. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs +69 -0
  153. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs.map +1 -0
  154. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs +38 -0
  155. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs.map +1 -0
  156. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs +57 -0
  157. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs.map +1 -0
  158. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs +53 -0
  159. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs.map +1 -0
  160. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs +34 -0
  161. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs.map +1 -0
  162. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs +57 -0
  163. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs.map +1 -0
  164. package/fesm2022/gravionlabs-helix-core-icons-home.mjs +57 -0
  165. package/fesm2022/gravionlabs-helix-core-icons-home.mjs.map +1 -0
  166. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs +57 -0
  167. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs.map +1 -0
  168. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs +34 -0
  169. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs.map +1 -0
  170. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs +53 -0
  171. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs.map +1 -0
  172. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs +53 -0
  173. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs.map +1 -0
  174. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs +57 -0
  175. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs.map +1 -0
  176. package/fesm2022/gravionlabs-helix-core-icons-search.mjs +57 -0
  177. package/fesm2022/gravionlabs-helix-core-icons-search.mjs.map +1 -0
  178. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs +57 -0
  179. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs.map +1 -0
  180. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs +57 -0
  181. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs.map +1 -0
  182. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs +65 -0
  183. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs.map +1 -0
  184. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs +53 -0
  185. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs.map +1 -0
  186. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs +53 -0
  187. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs.map +1 -0
  188. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs +53 -0
  189. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs.map +1 -0
  190. package/fesm2022/gravionlabs-helix-core-icons-star.mjs +53 -0
  191. package/fesm2022/gravionlabs-helix-core-icons-star.mjs.map +1 -0
  192. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs +53 -0
  193. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs.map +1 -0
  194. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs +57 -0
  195. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs.map +1 -0
  196. package/fesm2022/gravionlabs-helix-core-icons-times.mjs +34 -0
  197. package/fesm2022/gravionlabs-helix-core-icons-times.mjs.map +1 -0
  198. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs +57 -0
  199. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs.map +1 -0
  200. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs +57 -0
  201. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs.map +1 -0
  202. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs +57 -0
  203. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs.map +1 -0
  204. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs +57 -0
  205. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs.map +1 -0
  206. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs +57 -0
  207. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs.map +1 -0
  208. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs +57 -0
  209. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs.map +1 -0
  210. package/fesm2022/gravionlabs-helix-core-icons.mjs +63 -0
  211. package/fesm2022/gravionlabs-helix-core-icons.mjs.map +1 -0
  212. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs +139 -0
  213. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs.map +1 -0
  214. package/fesm2022/gravionlabs-helix-core-image.mjs +690 -0
  215. package/fesm2022/gravionlabs-helix-core-image.mjs.map +1 -0
  216. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs +255 -0
  217. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs.map +1 -0
  218. package/fesm2022/gravionlabs-helix-core-inplace.mjs +283 -0
  219. package/fesm2022/gravionlabs-helix-core-inplace.mjs.map +1 -0
  220. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs +232 -0
  221. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs.map +1 -0
  222. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs +75 -0
  223. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs.map +1 -0
  224. package/fesm2022/gravionlabs-helix-core-inputicon.mjs +72 -0
  225. package/fesm2022/gravionlabs-helix-core-inputicon.mjs.map +1 -0
  226. package/fesm2022/gravionlabs-helix-core-inputmask.mjs +1375 -0
  227. package/fesm2022/gravionlabs-helix-core-inputmask.mjs.map +1 -0
  228. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs +1513 -0
  229. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs.map +1 -0
  230. package/fesm2022/gravionlabs-helix-core-inputotp.mjs +391 -0
  231. package/fesm2022/gravionlabs-helix-core-inputotp.mjs.map +1 -0
  232. package/fesm2022/gravionlabs-helix-core-inputtext.mjs +275 -0
  233. package/fesm2022/gravionlabs-helix-core-inputtext.mjs.map +1 -0
  234. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs +261 -0
  235. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs.map +1 -0
  236. package/fesm2022/gravionlabs-helix-core-knob.mjs +441 -0
  237. package/fesm2022/gravionlabs-helix-core-knob.mjs.map +1 -0
  238. package/fesm2022/gravionlabs-helix-core-listbox.mjs +1567 -0
  239. package/fesm2022/gravionlabs-helix-core-listbox.mjs.map +1 -0
  240. package/fesm2022/gravionlabs-helix-core-megamenu.mjs +1398 -0
  241. package/fesm2022/gravionlabs-helix-core-megamenu.mjs.map +1 -0
  242. package/fesm2022/gravionlabs-helix-core-menu.mjs +854 -0
  243. package/fesm2022/gravionlabs-helix-core-menu.mjs.map +1 -0
  244. package/fesm2022/gravionlabs-helix-core-menubar.mjs +1259 -0
  245. package/fesm2022/gravionlabs-helix-core-menubar.mjs.map +1 -0
  246. package/fesm2022/gravionlabs-helix-core-message.mjs +608 -0
  247. package/fesm2022/gravionlabs-helix-core-message.mjs.map +1 -0
  248. package/fesm2022/gravionlabs-helix-core-metergroup.mjs +417 -0
  249. package/fesm2022/gravionlabs-helix-core-metergroup.mjs.map +1 -0
  250. package/fesm2022/gravionlabs-helix-core-motion.mjs +706 -0
  251. package/fesm2022/gravionlabs-helix-core-motion.mjs.map +1 -0
  252. package/fesm2022/gravionlabs-helix-core-multiselect.mjs +2106 -0
  253. package/fesm2022/gravionlabs-helix-core-multiselect.mjs.map +1 -0
  254. package/fesm2022/gravionlabs-helix-core-orderlist.mjs +800 -0
  255. package/fesm2022/gravionlabs-helix-core-orderlist.mjs.map +1 -0
  256. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs +497 -0
  257. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs.map +1 -0
  258. package/fesm2022/gravionlabs-helix-core-overlay.mjs +686 -0
  259. package/fesm2022/gravionlabs-helix-core-overlay.mjs.map +1 -0
  260. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs +125 -0
  261. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs.map +1 -0
  262. package/fesm2022/gravionlabs-helix-core-paginator.mjs +670 -0
  263. package/fesm2022/gravionlabs-helix-core-paginator.mjs.map +1 -0
  264. package/fesm2022/gravionlabs-helix-core-panel.mjs +416 -0
  265. package/fesm2022/gravionlabs-helix-core-panel.mjs.map +1 -0
  266. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs +1070 -0
  267. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs.map +1 -0
  268. package/fesm2022/gravionlabs-helix-core-passthrough.mjs +21 -0
  269. package/fesm2022/gravionlabs-helix-core-passthrough.mjs.map +1 -0
  270. package/fesm2022/gravionlabs-helix-core-password.mjs +1047 -0
  271. package/fesm2022/gravionlabs-helix-core-password.mjs.map +1 -0
  272. package/fesm2022/gravionlabs-helix-core-picklist.mjs +1393 -0
  273. package/fesm2022/gravionlabs-helix-core-picklist.mjs.map +1 -0
  274. package/fesm2022/gravionlabs-helix-core-popover.mjs +507 -0
  275. package/fesm2022/gravionlabs-helix-core-popover.mjs.map +1 -0
  276. package/fesm2022/gravionlabs-helix-core-progressbar.mjs +292 -0
  277. package/fesm2022/gravionlabs-helix-core-progressbar.mjs.map +1 -0
  278. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs +199 -0
  279. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs.map +1 -0
  280. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs +450 -0
  281. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs.map +1 -0
  282. package/fesm2022/gravionlabs-helix-core-rating.mjs +356 -0
  283. package/fesm2022/gravionlabs-helix-core-rating.mjs.map +1 -0
  284. package/fesm2022/gravionlabs-helix-core-ripple.mjs +217 -0
  285. package/fesm2022/gravionlabs-helix-core-ripple.mjs.map +1 -0
  286. package/fesm2022/gravionlabs-helix-core-scroller.mjs +1040 -0
  287. package/fesm2022/gravionlabs-helix-core-scroller.mjs.map +1 -0
  288. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs +535 -0
  289. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs.map +1 -0
  290. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs +294 -0
  291. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs.map +1 -0
  292. package/fesm2022/gravionlabs-helix-core-select.mjs +1907 -0
  293. package/fesm2022/gravionlabs-helix-core-select.mjs.map +1 -0
  294. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs +390 -0
  295. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs.map +1 -0
  296. package/fesm2022/gravionlabs-helix-core-skeleton.mjs +214 -0
  297. package/fesm2022/gravionlabs-helix-core-skeleton.mjs.map +1 -0
  298. package/fesm2022/gravionlabs-helix-core-slider.mjs +730 -0
  299. package/fesm2022/gravionlabs-helix-core-slider.mjs.map +1 -0
  300. package/fesm2022/gravionlabs-helix-core-speeddial.mjs +775 -0
  301. package/fesm2022/gravionlabs-helix-core-speeddial.mjs.map +1 -0
  302. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs +429 -0
  303. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs.map +1 -0
  304. package/fesm2022/gravionlabs-helix-core-splitter.mjs +597 -0
  305. package/fesm2022/gravionlabs-helix-core-splitter.mjs.map +1 -0
  306. package/fesm2022/gravionlabs-helix-core-stepper.mjs +853 -0
  307. package/fesm2022/gravionlabs-helix-core-stepper.mjs.map +1 -0
  308. package/fesm2022/gravionlabs-helix-core-steps.mjs +393 -0
  309. package/fesm2022/gravionlabs-helix-core-steps.mjs.map +1 -0
  310. package/fesm2022/gravionlabs-helix-core-styleclass.mjs +345 -0
  311. package/fesm2022/gravionlabs-helix-core-styleclass.mjs.map +1 -0
  312. package/fesm2022/gravionlabs-helix-core-table.mjs +6333 -0
  313. package/fesm2022/gravionlabs-helix-core-table.mjs.map +1 -0
  314. package/fesm2022/gravionlabs-helix-core-tabs.mjs +900 -0
  315. package/fesm2022/gravionlabs-helix-core-tabs.mjs.map +1 -0
  316. package/fesm2022/gravionlabs-helix-core-tag.mjs +212 -0
  317. package/fesm2022/gravionlabs-helix-core-tag.mjs.map +1 -0
  318. package/fesm2022/gravionlabs-helix-core-terminal.mjs +259 -0
  319. package/fesm2022/gravionlabs-helix-core-terminal.mjs.map +1 -0
  320. package/fesm2022/gravionlabs-helix-core-textarea.mjs +305 -0
  321. package/fesm2022/gravionlabs-helix-core-textarea.mjs.map +1 -0
  322. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs +5649 -0
  323. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs.map +1 -0
  324. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs +5812 -0
  325. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs.map +1 -0
  326. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs +5570 -0
  327. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs.map +1 -0
  328. package/fesm2022/gravionlabs-helix-core-themes-types.mjs +700 -0
  329. package/fesm2022/gravionlabs-helix-core-themes-types.mjs.map +1 -0
  330. package/fesm2022/gravionlabs-helix-core-themes.mjs +16 -0
  331. package/fesm2022/gravionlabs-helix-core-themes.mjs.map +1 -0
  332. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs +1201 -0
  333. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs.map +1 -0
  334. package/fesm2022/gravionlabs-helix-core-timeline.mjs +346 -0
  335. package/fesm2022/gravionlabs-helix-core-timeline.mjs.map +1 -0
  336. package/fesm2022/gravionlabs-helix-core-toast.mjs +807 -0
  337. package/fesm2022/gravionlabs-helix-core-toast.mjs.map +1 -0
  338. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs +451 -0
  339. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs.map +1 -0
  340. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs +372 -0
  341. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs.map +1 -0
  342. package/fesm2022/gravionlabs-helix-core-toolbar.mjs +174 -0
  343. package/fesm2022/gravionlabs-helix-core-toolbar.mjs.map +1 -0
  344. package/fesm2022/gravionlabs-helix-core-tooltip.mjs +860 -0
  345. package/fesm2022/gravionlabs-helix-core-tooltip.mjs.map +1 -0
  346. package/fesm2022/gravionlabs-helix-core-tree.mjs +1860 -0
  347. package/fesm2022/gravionlabs-helix-core-tree.mjs.map +1 -0
  348. package/fesm2022/gravionlabs-helix-core-treeselect.mjs +1178 -0
  349. package/fesm2022/gravionlabs-helix-core-treeselect.mjs.map +1 -0
  350. package/fesm2022/gravionlabs-helix-core-treetable.mjs +4199 -0
  351. package/fesm2022/gravionlabs-helix-core-treetable.mjs.map +1 -0
  352. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs +4 -0
  353. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs.map +1 -0
  354. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs +4 -0
  355. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs.map +1 -0
  356. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs +4 -0
  357. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs.map +1 -0
  358. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs +4 -0
  359. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs.map +1 -0
  360. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs +4 -0
  361. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs.map +1 -0
  362. package/fesm2022/gravionlabs-helix-core-types-badge.mjs +4 -0
  363. package/fesm2022/gravionlabs-helix-core-types-badge.mjs.map +1 -0
  364. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs +4 -0
  365. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs.map +1 -0
  366. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs +4 -0
  367. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs.map +1 -0
  368. package/fesm2022/gravionlabs-helix-core-types-button.mjs +4 -0
  369. package/fesm2022/gravionlabs-helix-core-types-button.mjs.map +1 -0
  370. package/fesm2022/gravionlabs-helix-core-types-card.mjs +4 -0
  371. package/fesm2022/gravionlabs-helix-core-types-card.mjs.map +1 -0
  372. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs +4 -0
  373. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs.map +1 -0
  374. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs +4 -0
  375. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs.map +1 -0
  376. package/fesm2022/gravionlabs-helix-core-types-chart.mjs +4 -0
  377. package/fesm2022/gravionlabs-helix-core-types-chart.mjs.map +1 -0
  378. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs +4 -0
  379. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs.map +1 -0
  380. package/fesm2022/gravionlabs-helix-core-types-chip.mjs +4 -0
  381. package/fesm2022/gravionlabs-helix-core-types-chip.mjs.map +1 -0
  382. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs +4 -0
  383. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs.map +1 -0
  384. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs +4 -0
  385. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs.map +1 -0
  386. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs +4 -0
  387. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs.map +1 -0
  388. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs +4 -0
  389. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs.map +1 -0
  390. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs +4 -0
  391. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs.map +1 -0
  392. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs +4 -0
  393. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs.map +1 -0
  394. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs +4 -0
  395. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs.map +1 -0
  396. package/fesm2022/gravionlabs-helix-core-types-divider.mjs +4 -0
  397. package/fesm2022/gravionlabs-helix-core-types-divider.mjs.map +1 -0
  398. package/fesm2022/gravionlabs-helix-core-types-dock.mjs +4 -0
  399. package/fesm2022/gravionlabs-helix-core-types-dock.mjs.map +1 -0
  400. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs +4 -0
  401. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs.map +1 -0
  402. package/fesm2022/gravionlabs-helix-core-types-editor.mjs +4 -0
  403. package/fesm2022/gravionlabs-helix-core-types-editor.mjs.map +1 -0
  404. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs +4 -0
  405. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs.map +1 -0
  406. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs +4 -0
  407. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs.map +1 -0
  408. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs +4 -0
  409. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs.map +1 -0
  410. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs +4 -0
  411. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs.map +1 -0
  412. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs +4 -0
  413. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs.map +1 -0
  414. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs +4 -0
  415. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs.map +1 -0
  416. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs +4 -0
  417. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs.map +1 -0
  418. package/fesm2022/gravionlabs-helix-core-types-image.mjs +4 -0
  419. package/fesm2022/gravionlabs-helix-core-types-image.mjs.map +1 -0
  420. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs +4 -0
  421. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs.map +1 -0
  422. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs +4 -0
  423. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs.map +1 -0
  424. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs +4 -0
  425. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs.map +1 -0
  426. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs +4 -0
  427. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs.map +1 -0
  428. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs +4 -0
  429. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs.map +1 -0
  430. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs +4 -0
  431. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs.map +1 -0
  432. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs +4 -0
  433. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs.map +1 -0
  434. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs +4 -0
  435. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs.map +1 -0
  436. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs +4 -0
  437. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs.map +1 -0
  438. package/fesm2022/gravionlabs-helix-core-types-knob.mjs +4 -0
  439. package/fesm2022/gravionlabs-helix-core-types-knob.mjs.map +1 -0
  440. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs +4 -0
  441. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs.map +1 -0
  442. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs +4 -0
  443. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs.map +1 -0
  444. package/fesm2022/gravionlabs-helix-core-types-menu.mjs +4 -0
  445. package/fesm2022/gravionlabs-helix-core-types-menu.mjs.map +1 -0
  446. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs +4 -0
  447. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs.map +1 -0
  448. package/fesm2022/gravionlabs-helix-core-types-message.mjs +4 -0
  449. package/fesm2022/gravionlabs-helix-core-types-message.mjs.map +1 -0
  450. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs +4 -0
  451. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs.map +1 -0
  452. package/fesm2022/gravionlabs-helix-core-types-motion.mjs +4 -0
  453. package/fesm2022/gravionlabs-helix-core-types-motion.mjs.map +1 -0
  454. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs +4 -0
  455. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs.map +1 -0
  456. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs +4 -0
  457. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs.map +1 -0
  458. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs +4 -0
  459. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs.map +1 -0
  460. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs +4 -0
  461. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs.map +1 -0
  462. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs +4 -0
  463. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs.map +1 -0
  464. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs +4 -0
  465. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs.map +1 -0
  466. package/fesm2022/gravionlabs-helix-core-types-panel.mjs +4 -0
  467. package/fesm2022/gravionlabs-helix-core-types-panel.mjs.map +1 -0
  468. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs +4 -0
  469. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs.map +1 -0
  470. package/fesm2022/gravionlabs-helix-core-types-password.mjs +4 -0
  471. package/fesm2022/gravionlabs-helix-core-types-password.mjs.map +1 -0
  472. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs +4 -0
  473. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs.map +1 -0
  474. package/fesm2022/gravionlabs-helix-core-types-popover.mjs +4 -0
  475. package/fesm2022/gravionlabs-helix-core-types-popover.mjs.map +1 -0
  476. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs +4 -0
  477. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs.map +1 -0
  478. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs +4 -0
  479. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs.map +1 -0
  480. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs +4 -0
  481. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs.map +1 -0
  482. package/fesm2022/gravionlabs-helix-core-types-rating.mjs +4 -0
  483. package/fesm2022/gravionlabs-helix-core-types-rating.mjs.map +1 -0
  484. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs +4 -0
  485. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs.map +1 -0
  486. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs +4 -0
  487. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs.map +1 -0
  488. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs +4 -0
  489. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs.map +1 -0
  490. package/fesm2022/gravionlabs-helix-core-types-select.mjs +4 -0
  491. package/fesm2022/gravionlabs-helix-core-types-select.mjs.map +1 -0
  492. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs +4 -0
  493. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs.map +1 -0
  494. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs +4 -0
  495. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs.map +1 -0
  496. package/fesm2022/gravionlabs-helix-core-types-slider.mjs +4 -0
  497. package/fesm2022/gravionlabs-helix-core-types-slider.mjs.map +1 -0
  498. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs +4 -0
  499. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs.map +1 -0
  500. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs +4 -0
  501. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs.map +1 -0
  502. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs +4 -0
  503. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs.map +1 -0
  504. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs +4 -0
  505. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs.map +1 -0
  506. package/fesm2022/gravionlabs-helix-core-types-table.mjs +4 -0
  507. package/fesm2022/gravionlabs-helix-core-types-table.mjs.map +1 -0
  508. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs +4 -0
  509. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs.map +1 -0
  510. package/fesm2022/gravionlabs-helix-core-types-tag.mjs +4 -0
  511. package/fesm2022/gravionlabs-helix-core-types-tag.mjs.map +1 -0
  512. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs +4 -0
  513. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs.map +1 -0
  514. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs +4 -0
  515. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs.map +1 -0
  516. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs +4 -0
  517. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs.map +1 -0
  518. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs +4 -0
  519. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs.map +1 -0
  520. package/fesm2022/gravionlabs-helix-core-types-toast.mjs +4 -0
  521. package/fesm2022/gravionlabs-helix-core-types-toast.mjs.map +1 -0
  522. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs +4 -0
  523. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs.map +1 -0
  524. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs +4 -0
  525. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs.map +1 -0
  526. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs +4 -0
  527. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs.map +1 -0
  528. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs +4 -0
  529. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs.map +1 -0
  530. package/fesm2022/gravionlabs-helix-core-types-tree.mjs +4 -0
  531. package/fesm2022/gravionlabs-helix-core-types-tree.mjs.map +1 -0
  532. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs +4 -0
  533. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs.map +1 -0
  534. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs +4 -0
  535. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs.map +1 -0
  536. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs +304 -0
  537. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs.map +1 -0
  538. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs +871 -0
  539. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs.map +1 -0
  540. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs +1839 -0
  541. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs.map +1 -0
  542. package/fesm2022/gravionlabs-helix-core-usestyle.mjs +54 -0
  543. package/fesm2022/gravionlabs-helix-core-usestyle.mjs.map +1 -0
  544. package/fesm2022/gravionlabs-helix-core-utils.mjs +376 -0
  545. package/fesm2022/gravionlabs-helix-core-utils.mjs.map +1 -0
  546. package/fesm2022/gravionlabs-helix-core-validators.mjs +99 -0
  547. package/fesm2022/gravionlabs-helix-core-validators.mjs.map +1 -0
  548. package/fesm2022/gravionlabs-helix-core.mjs +6 -0
  549. package/fesm2022/gravionlabs-helix-core.mjs.map +1 -0
  550. package/package.json +1127 -0
  551. package/types/gravionlabs-helix-core-accordion.d.ts +289 -0
  552. package/types/gravionlabs-helix-core-animateonscroll.d.ts +68 -0
  553. package/types/gravionlabs-helix-core-api.d.ts +1976 -0
  554. package/types/gravionlabs-helix-core-autocomplete.d.ts +765 -0
  555. package/types/gravionlabs-helix-core-autofocus.d.ts +31 -0
  556. package/types/gravionlabs-helix-core-avatar.d.ts +138 -0
  557. package/types/gravionlabs-helix-core-avatargroup.d.ts +63 -0
  558. package/types/gravionlabs-helix-core-badge.d.ts +182 -0
  559. package/types/gravionlabs-helix-core-base.d.ts +54 -0
  560. package/types/gravionlabs-helix-core-basecomponent.d.ts +175 -0
  561. package/types/gravionlabs-helix-core-baseeditableholder.d.ts +45 -0
  562. package/types/gravionlabs-helix-core-baseinput.d.ts +73 -0
  563. package/types/gravionlabs-helix-core-basemodelholder.d.ts +12 -0
  564. package/types/gravionlabs-helix-core-bind.d.ts +38 -0
  565. package/types/gravionlabs-helix-core-blockui.d.ts +106 -0
  566. package/types/gravionlabs-helix-core-breadcrumb.d.ts +148 -0
  567. package/types/gravionlabs-helix-core-button.d.ts +465 -0
  568. package/types/gravionlabs-helix-core-buttongroup.d.ts +44 -0
  569. package/types/gravionlabs-helix-core-card.d.ts +151 -0
  570. package/types/gravionlabs-helix-core-carousel.d.ts +376 -0
  571. package/types/gravionlabs-helix-core-cascadeselect.d.ts +620 -0
  572. package/types/gravionlabs-helix-core-chart.d.ts +130 -0
  573. package/types/gravionlabs-helix-core-checkbox.d.ts +226 -0
  574. package/types/gravionlabs-helix-core-chip.d.ts +162 -0
  575. package/types/gravionlabs-helix-core-classnames.d.ts +32 -0
  576. package/types/gravionlabs-helix-core-colorpicker.d.ts +311 -0
  577. package/types/gravionlabs-helix-core-config.d.ts +268 -0
  578. package/types/gravionlabs-helix-core-confirmdialog.d.ts +340 -0
  579. package/types/gravionlabs-helix-core-confirmpopup.d.ts +233 -0
  580. package/types/gravionlabs-helix-core-contextmenu.d.ts +370 -0
  581. package/types/gravionlabs-helix-core-dataview.d.ts +364 -0
  582. package/types/gravionlabs-helix-core-datepicker.d.ts +969 -0
  583. package/types/gravionlabs-helix-core-dialog.d.ts +530 -0
  584. package/types/gravionlabs-helix-core-divider.d.ts +121 -0
  585. package/types/gravionlabs-helix-core-dock.d.ts +196 -0
  586. package/types/gravionlabs-helix-core-dom.d.ts +109 -0
  587. package/types/gravionlabs-helix-core-dragdrop.d.ts +117 -0
  588. package/types/gravionlabs-helix-core-drawer.d.ts +293 -0
  589. package/types/gravionlabs-helix-core-dynamicdialog.d.ts +554 -0
  590. package/types/gravionlabs-helix-core-editor.d.ts +188 -0
  591. package/types/gravionlabs-helix-core-fieldset.d.ts +185 -0
  592. package/types/gravionlabs-helix-core-fileupload.d.ts +549 -0
  593. package/types/gravionlabs-helix-core-firsterror.d.ts +11 -0
  594. package/types/gravionlabs-helix-core-floatlabel.d.ts +67 -0
  595. package/types/gravionlabs-helix-core-fluid.d.ts +54 -0
  596. package/types/gravionlabs-helix-core-focustrap.d.ts +35 -0
  597. package/types/gravionlabs-helix-core-galleria.d.ts +647 -0
  598. package/types/gravionlabs-helix-core-iconfield.d.ts +72 -0
  599. package/types/gravionlabs-helix-core-icons-angledoubledown.d.ts +9 -0
  600. package/types/gravionlabs-helix-core-icons-angledoubleleft.d.ts +9 -0
  601. package/types/gravionlabs-helix-core-icons-angledoubleright.d.ts +9 -0
  602. package/types/gravionlabs-helix-core-icons-angledoubleup.d.ts +9 -0
  603. package/types/gravionlabs-helix-core-icons-angledown.d.ts +9 -0
  604. package/types/gravionlabs-helix-core-icons-angleleft.d.ts +9 -0
  605. package/types/gravionlabs-helix-core-icons-angleright.d.ts +9 -0
  606. package/types/gravionlabs-helix-core-icons-angleup.d.ts +9 -0
  607. package/types/gravionlabs-helix-core-icons-arrowdown.d.ts +11 -0
  608. package/types/gravionlabs-helix-core-icons-arrowdownleft.d.ts +9 -0
  609. package/types/gravionlabs-helix-core-icons-arrowdownright.d.ts +9 -0
  610. package/types/gravionlabs-helix-core-icons-arrowleft.d.ts +11 -0
  611. package/types/gravionlabs-helix-core-icons-arrowright.d.ts +9 -0
  612. package/types/gravionlabs-helix-core-icons-arrowup.d.ts +11 -0
  613. package/types/gravionlabs-helix-core-icons-ban.d.ts +11 -0
  614. package/types/gravionlabs-helix-core-icons-bars.d.ts +9 -0
  615. package/types/gravionlabs-helix-core-icons-baseicon.d.ts +32 -0
  616. package/types/gravionlabs-helix-core-icons-blank.d.ts +9 -0
  617. package/types/gravionlabs-helix-core-icons-calendar.d.ts +9 -0
  618. package/types/gravionlabs-helix-core-icons-caretleft.d.ts +9 -0
  619. package/types/gravionlabs-helix-core-icons-caretright.d.ts +9 -0
  620. package/types/gravionlabs-helix-core-icons-check.d.ts +9 -0
  621. package/types/gravionlabs-helix-core-icons-chevrondown.d.ts +9 -0
  622. package/types/gravionlabs-helix-core-icons-chevronleft.d.ts +9 -0
  623. package/types/gravionlabs-helix-core-icons-chevronright.d.ts +9 -0
  624. package/types/gravionlabs-helix-core-icons-chevronup.d.ts +9 -0
  625. package/types/gravionlabs-helix-core-icons-exclamationtriangle.d.ts +11 -0
  626. package/types/gravionlabs-helix-core-icons-eye.d.ts +9 -0
  627. package/types/gravionlabs-helix-core-icons-eyeslash.d.ts +11 -0
  628. package/types/gravionlabs-helix-core-icons-filter.d.ts +11 -0
  629. package/types/gravionlabs-helix-core-icons-filterfill.d.ts +9 -0
  630. package/types/gravionlabs-helix-core-icons-filterslash.d.ts +11 -0
  631. package/types/gravionlabs-helix-core-icons-home.d.ts +11 -0
  632. package/types/gravionlabs-helix-core-icons-infocircle.d.ts +11 -0
  633. package/types/gravionlabs-helix-core-icons-minus.d.ts +9 -0
  634. package/types/gravionlabs-helix-core-icons-pencil.d.ts +11 -0
  635. package/types/gravionlabs-helix-core-icons-plus.d.ts +11 -0
  636. package/types/gravionlabs-helix-core-icons-refresh.d.ts +11 -0
  637. package/types/gravionlabs-helix-core-icons-search.d.ts +11 -0
  638. package/types/gravionlabs-helix-core-icons-searchminus.d.ts +11 -0
  639. package/types/gravionlabs-helix-core-icons-searchplus.d.ts +11 -0
  640. package/types/gravionlabs-helix-core-icons-sortalt.d.ts +11 -0
  641. package/types/gravionlabs-helix-core-icons-sortamountdown.d.ts +11 -0
  642. package/types/gravionlabs-helix-core-icons-sortamountupalt.d.ts +11 -0
  643. package/types/gravionlabs-helix-core-icons-spinner.d.ts +11 -0
  644. package/types/gravionlabs-helix-core-icons-star.d.ts +11 -0
  645. package/types/gravionlabs-helix-core-icons-starfill.d.ts +11 -0
  646. package/types/gravionlabs-helix-core-icons-thlarge.d.ts +11 -0
  647. package/types/gravionlabs-helix-core-icons-times.d.ts +9 -0
  648. package/types/gravionlabs-helix-core-icons-timescircle.d.ts +11 -0
  649. package/types/gravionlabs-helix-core-icons-trash.d.ts +11 -0
  650. package/types/gravionlabs-helix-core-icons-undo.d.ts +11 -0
  651. package/types/gravionlabs-helix-core-icons-upload.d.ts +11 -0
  652. package/types/gravionlabs-helix-core-icons-windowmaximize.d.ts +11 -0
  653. package/types/gravionlabs-helix-core-icons-windowminimize.d.ts +11 -0
  654. package/types/gravionlabs-helix-core-icons.d.ts +53 -0
  655. package/types/gravionlabs-helix-core-iftalabel.d.ts +58 -0
  656. package/types/gravionlabs-helix-core-image.d.ts +347 -0
  657. package/types/gravionlabs-helix-core-imagecompare.d.ts +99 -0
  658. package/types/gravionlabs-helix-core-inplace.d.ts +166 -0
  659. package/types/gravionlabs-helix-core-inputgroup.d.ts +65 -0
  660. package/types/gravionlabs-helix-core-inputgroupaddon.d.ts +49 -0
  661. package/types/gravionlabs-helix-core-inputicon.d.ts +44 -0
  662. package/types/gravionlabs-helix-core-inputmask.d.ts +373 -0
  663. package/types/gravionlabs-helix-core-inputnumber.d.ts +425 -0
  664. package/types/gravionlabs-helix-core-inputotp.d.ts +175 -0
  665. package/types/gravionlabs-helix-core-inputtext.d.ts +117 -0
  666. package/types/gravionlabs-helix-core-keyfilter.d.ts +58 -0
  667. package/types/gravionlabs-helix-core-knob.d.ts +203 -0
  668. package/types/gravionlabs-helix-core-listbox.d.ts +654 -0
  669. package/types/gravionlabs-helix-core-megamenu.d.ts +383 -0
  670. package/types/gravionlabs-helix-core-menu.d.ts +361 -0
  671. package/types/gravionlabs-helix-core-menubar.d.ts +380 -0
  672. package/types/gravionlabs-helix-core-message.d.ts +210 -0
  673. package/types/gravionlabs-helix-core-metergroup.d.ts +208 -0
  674. package/types/gravionlabs-helix-core-motion.d.ts +398 -0
  675. package/types/gravionlabs-helix-core-multiselect.d.ts +871 -0
  676. package/types/gravionlabs-helix-core-orderlist.d.ts +366 -0
  677. package/types/gravionlabs-helix-core-organizationchart.d.ts +221 -0
  678. package/types/gravionlabs-helix-core-overlay.d.ts +314 -0
  679. package/types/gravionlabs-helix-core-overlaybadge.d.ts +77 -0
  680. package/types/gravionlabs-helix-core-paginator.d.ts +351 -0
  681. package/types/gravionlabs-helix-core-panel.d.ts +241 -0
  682. package/types/gravionlabs-helix-core-panelmenu.d.ts +359 -0
  683. package/types/gravionlabs-helix-core-passthrough.d.ts +14 -0
  684. package/types/gravionlabs-helix-core-password.d.ts +487 -0
  685. package/types/gravionlabs-helix-core-picklist.d.ts +662 -0
  686. package/types/gravionlabs-helix-core-popover.d.ts +197 -0
  687. package/types/gravionlabs-helix-core-progressbar.d.ts +121 -0
  688. package/types/gravionlabs-helix-core-progressspinner.d.ts +91 -0
  689. package/types/gravionlabs-helix-core-radiobutton.d.ts +190 -0
  690. package/types/gravionlabs-helix-core-rating.d.ts +193 -0
  691. package/types/gravionlabs-helix-core-ripple.d.ts +63 -0
  692. package/types/gravionlabs-helix-core-scroller.d.ts +399 -0
  693. package/types/gravionlabs-helix-core-scrollpanel.d.ts +156 -0
  694. package/types/gravionlabs-helix-core-scrolltop.d.ts +155 -0
  695. package/types/gravionlabs-helix-core-select.d.ts +765 -0
  696. package/types/gravionlabs-helix-core-selectbutton.d.ts +180 -0
  697. package/types/gravionlabs-helix-core-skeleton.d.ts +103 -0
  698. package/types/gravionlabs-helix-core-slider.d.ts +216 -0
  699. package/types/gravionlabs-helix-core-speeddial.d.ts +408 -0
  700. package/types/gravionlabs-helix-core-splitbutton.d.ts +283 -0
  701. package/types/gravionlabs-helix-core-splitter.d.ts +208 -0
  702. package/types/gravionlabs-helix-core-stepper.d.ts +337 -0
  703. package/types/gravionlabs-helix-core-steps.d.ts +149 -0
  704. package/types/gravionlabs-helix-core-styleclass.d.ts +112 -0
  705. package/types/gravionlabs-helix-core-table.d.ts +1995 -0
  706. package/types/gravionlabs-helix-core-tabs.d.ts +359 -0
  707. package/types/gravionlabs-helix-core-tag.d.ts +113 -0
  708. package/types/gravionlabs-helix-core-terminal.d.ts +140 -0
  709. package/types/gravionlabs-helix-core-textarea.d.ts +125 -0
  710. package/types/gravionlabs-helix-core-themes-aura.d.ts +965 -0
  711. package/types/gravionlabs-helix-core-themes-lara.d.ts +978 -0
  712. package/types/gravionlabs-helix-core-themes-nora.d.ts +962 -0
  713. package/types/gravionlabs-helix-core-themes-types.d.ts +20358 -0
  714. package/types/gravionlabs-helix-core-themes.d.ts +11 -0
  715. package/types/gravionlabs-helix-core-tieredmenu.d.ts +414 -0
  716. package/types/gravionlabs-helix-core-timeline.d.ts +140 -0
  717. package/types/gravionlabs-helix-core-toast.d.ts +293 -0
  718. package/types/gravionlabs-helix-core-togglebutton.d.ts +203 -0
  719. package/types/gravionlabs-helix-core-toggleswitch.d.ts +165 -0
  720. package/types/gravionlabs-helix-core-toolbar.d.ts +105 -0
  721. package/types/gravionlabs-helix-core-tooltip.d.ts +273 -0
  722. package/types/gravionlabs-helix-core-tree.d.ts +646 -0
  723. package/types/gravionlabs-helix-core-treeselect.d.ts +574 -0
  724. package/types/gravionlabs-helix-core-treetable.d.ts +1236 -0
  725. package/types/gravionlabs-helix-core-ts-helpers.d.ts +6 -0
  726. package/types/gravionlabs-helix-core-types-accordion.d.ts +97 -0
  727. package/types/gravionlabs-helix-core-types-autocomplete.d.ts +312 -0
  728. package/types/gravionlabs-helix-core-types-avatar.d.ts +40 -0
  729. package/types/gravionlabs-helix-core-types-avatargroup.d.ts +28 -0
  730. package/types/gravionlabs-helix-core-types-badge.d.ts +26 -0
  731. package/types/gravionlabs-helix-core-types-blockui.d.ts +39 -0
  732. package/types/gravionlabs-helix-core-types-breadcrumb.d.ts +96 -0
  733. package/types/gravionlabs-helix-core-types-button.d.ts +124 -0
  734. package/types/gravionlabs-helix-core-types-card.d.ts +75 -0
  735. package/types/gravionlabs-helix-core-types-carousel.d.ts +143 -0
  736. package/types/gravionlabs-helix-core-types-cascadeselect.d.ts +215 -0
  737. package/types/gravionlabs-helix-core-types-chart.d.ts +32 -0
  738. package/types/gravionlabs-helix-core-types-checkbox.d.ts +81 -0
  739. package/types/gravionlabs-helix-core-types-chip.d.ts +71 -0
  740. package/types/gravionlabs-helix-core-types-colorpicker.d.ts +78 -0
  741. package/types/gravionlabs-helix-core-types-confirmdialog.d.ts +147 -0
  742. package/types/gravionlabs-helix-core-types-confirmpopup.d.ts +105 -0
  743. package/types/gravionlabs-helix-core-types-contextmenu.d.ts +102 -0
  744. package/types/gravionlabs-helix-core-types-dataview.d.ts +253 -0
  745. package/types/gravionlabs-helix-core-types-datepicker.d.ts +521 -0
  746. package/types/gravionlabs-helix-core-types-dialog.d.ts +107 -0
  747. package/types/gravionlabs-helix-core-types-divider.d.ts +28 -0
  748. package/types/gravionlabs-helix-core-types-dock.d.ts +70 -0
  749. package/types/gravionlabs-helix-core-types-drawer.d.ts +82 -0
  750. package/types/gravionlabs-helix-core-types-editor.d.ts +210 -0
  751. package/types/gravionlabs-helix-core-types-fieldset.d.ts +101 -0
  752. package/types/gravionlabs-helix-core-types-fileupload.d.ts +360 -0
  753. package/types/gravionlabs-helix-core-types-floatlabel.d.ts +26 -0
  754. package/types/gravionlabs-helix-core-types-fluid.d.ts +28 -0
  755. package/types/gravionlabs-helix-core-types-galleria.d.ts +250 -0
  756. package/types/gravionlabs-helix-core-types-iconfield.d.ts +26 -0
  757. package/types/gravionlabs-helix-core-types-iftalabel.d.ts +26 -0
  758. package/types/gravionlabs-helix-core-types-image.d.ts +144 -0
  759. package/types/gravionlabs-helix-core-types-imagecompare.d.ts +43 -0
  760. package/types/gravionlabs-helix-core-types-inplace.d.ts +72 -0
  761. package/types/gravionlabs-helix-core-types-inputgroup.d.ts +28 -0
  762. package/types/gravionlabs-helix-core-types-inputgroupaddon.d.ts +28 -0
  763. package/types/gravionlabs-helix-core-types-inputicon.d.ts +26 -0
  764. package/types/gravionlabs-helix-core-types-inputmask.d.ts +56 -0
  765. package/types/gravionlabs-helix-core-types-inputnumber.d.ts +95 -0
  766. package/types/gravionlabs-helix-core-types-inputotp.d.ts +101 -0
  767. package/types/gravionlabs-helix-core-types-inputtext.d.ts +24 -0
  768. package/types/gravionlabs-helix-core-types-knob.d.ts +40 -0
  769. package/types/gravionlabs-helix-core-types-listbox.d.ts +359 -0
  770. package/types/gravionlabs-helix-core-types-megamenu.d.ts +138 -0
  771. package/types/gravionlabs-helix-core-types-menu.d.ts +114 -0
  772. package/types/gravionlabs-helix-core-types-menubar.d.ts +124 -0
  773. package/types/gravionlabs-helix-core-types-message.d.ts +87 -0
  774. package/types/gravionlabs-helix-core-types-metergroup.d.ts +176 -0
  775. package/types/gravionlabs-helix-core-types-motion.d.ts +26 -0
  776. package/types/gravionlabs-helix-core-types-multiselect.d.ts +414 -0
  777. package/types/gravionlabs-helix-core-types-orderlist.d.ts +173 -0
  778. package/types/gravionlabs-helix-core-types-organizationchart.d.ts +138 -0
  779. package/types/gravionlabs-helix-core-types-overlay.d.ts +60 -0
  780. package/types/gravionlabs-helix-core-types-overlaybadge.d.ts +34 -0
  781. package/types/gravionlabs-helix-core-types-paginator.d.ts +167 -0
  782. package/types/gravionlabs-helix-core-types-panel.d.ts +129 -0
  783. package/types/gravionlabs-helix-core-types-panelmenu.d.ts +131 -0
  784. package/types/gravionlabs-helix-core-types-password.d.ts +120 -0
  785. package/types/gravionlabs-helix-core-types-picklist.d.ts +348 -0
  786. package/types/gravionlabs-helix-core-types-popover.d.ts +59 -0
  787. package/types/gravionlabs-helix-core-types-progressbar.d.ts +58 -0
  788. package/types/gravionlabs-helix-core-types-progressspinner.d.ts +36 -0
  789. package/types/gravionlabs-helix-core-types-radiobutton.d.ts +51 -0
  790. package/types/gravionlabs-helix-core-types-rating.d.ts +94 -0
  791. package/types/gravionlabs-helix-core-types-scroller.d.ts +231 -0
  792. package/types/gravionlabs-helix-core-types-scrollpanel.d.ts +51 -0
  793. package/types/gravionlabs-helix-core-types-scrolltop.d.ts +61 -0
  794. package/types/gravionlabs-helix-core-types-select.d.ts +319 -0
  795. package/types/gravionlabs-helix-core-types-selectbutton.d.ts +92 -0
  796. package/types/gravionlabs-helix-core-types-skeleton.d.ts +28 -0
  797. package/types/gravionlabs-helix-core-types-slider.d.ts +78 -0
  798. package/types/gravionlabs-helix-core-types-speeddial.d.ts +100 -0
  799. package/types/gravionlabs-helix-core-types-splitbutton.d.ts +70 -0
  800. package/types/gravionlabs-helix-core-types-splitter.d.ts +70 -0
  801. package/types/gravionlabs-helix-core-types-stepper.d.ts +162 -0
  802. package/types/gravionlabs-helix-core-types-table.d.ts +893 -0
  803. package/types/gravionlabs-helix-core-types-tabs.d.ts +119 -0
  804. package/types/gravionlabs-helix-core-types-tag.d.ts +47 -0
  805. package/types/gravionlabs-helix-core-types-terminal.d.ts +60 -0
  806. package/types/gravionlabs-helix-core-types-textarea.d.ts +28 -0
  807. package/types/gravionlabs-helix-core-types-tieredmenu.d.ts +95 -0
  808. package/types/gravionlabs-helix-core-types-timeline.d.ts +85 -0
  809. package/types/gravionlabs-helix-core-types-toast.d.ts +131 -0
  810. package/types/gravionlabs-helix-core-types-togglebutton.d.ts +86 -0
  811. package/types/gravionlabs-helix-core-types-toggleswitch.d.ts +73 -0
  812. package/types/gravionlabs-helix-core-types-toolbar.d.ts +55 -0
  813. package/types/gravionlabs-helix-core-types-tooltip.d.ts +32 -0
  814. package/types/gravionlabs-helix-core-types-tree.d.ts +342 -0
  815. package/types/gravionlabs-helix-core-types-treeselect.d.ts +251 -0
  816. package/types/gravionlabs-helix-core-types-treetable.d.ts +629 -0
  817. package/types/gravionlabs-helix-core-uix-motion.d.ts +276 -0
  818. package/types/gravionlabs-helix-core-uix-styled.d.ts +309 -0
  819. package/types/gravionlabs-helix-core-uix-utils.d.ts +387 -0
  820. package/types/gravionlabs-helix-core-usestyle.d.ts +15 -0
  821. package/types/gravionlabs-helix-core-utils.d.ts +54 -0
  822. package/types/gravionlabs-helix-core-validators.d.ts +40 -0
  823. package/types/gravionlabs-helix-core.d.ts +2 -0
@@ -0,0 +1,4199 @@
1
+ export * from '@gravionlabs/helix-core/types/treetable';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable, InjectionToken, inject, input, booleanAttribute, model, numberAttribute, output, viewChild, contentChild, contentChildren, NgZone, effect, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, NgModule } from '@angular/core';
4
+ import { BaseStyle } from '@gravionlabs/helix-core/base';
5
+ import * as i2 from '@angular/common';
6
+ import { isPlatformBrowser, CommonModule } from '@angular/common';
7
+ import * as i6 from '@angular/forms';
8
+ import { FormsModule } from '@angular/forms';
9
+ import { resolveFieldData, isEmpty, getOffset, addStyle, findSingle, getIndex, calculateScrollbarWidth, getHiddenElementOuterWidth, getHiddenElementOuterHeight, reorderArray, isClickable, equals, find, removeClass, addClass, calculateScrollbarHeight, clearSelection, invokeElementMethod, focus, isNotEmpty, getAttribute } from '@gravionlabs/helix-core/uix/utils';
10
+ import * as i4 from '@gravionlabs/helix-core/api';
11
+ import { HelixTemplate, FilterService, SharedModule } from '@gravionlabs/helix-core/api';
12
+ import * as i5 from '@gravionlabs/helix-core/badge';
13
+ import { BadgeModule } from '@gravionlabs/helix-core/badge';
14
+ import { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';
15
+ import * as i1 from '@gravionlabs/helix-core/bind';
16
+ import { Bind, BindModule } from '@gravionlabs/helix-core/bind';
17
+ import { Checkbox } from '@gravionlabs/helix-core/checkbox';
18
+ import { DomHandler } from '@gravionlabs/helix-core/dom';
19
+ import { SpinnerIcon, ArrowDownIcon, ArrowUpIcon, SortAltIcon, SortAmountUpAltIcon, SortAmountDownIcon, ChevronDownIcon, ChevronRightIcon, CheckIcon } from '@gravionlabs/helix-core/icons';
20
+ import * as i3 from '@gravionlabs/helix-core/paginator';
21
+ import { PaginatorModule } from '@gravionlabs/helix-core/paginator';
22
+ import { Ripple } from '@gravionlabs/helix-core/ripple';
23
+ import { Scroller } from '@gravionlabs/helix-core/scroller';
24
+ import { Subject } from 'rxjs';
25
+
26
+ const style = /*css*/ `
27
+ /* For Helix */
28
+ .h-treetable {
29
+ position: relative;
30
+ }
31
+
32
+ .h-treetable table {
33
+ border-collapse: collapse;
34
+ width: 100%;
35
+ table-layout: fixed;
36
+ }
37
+
38
+ .h-treetable .h-sortable-column {
39
+ cursor: pointer;
40
+ user-select: none;
41
+ }
42
+
43
+ .h-treetable .h-sortable-column .h-column-title,
44
+ .h-treetable .h-sortable-column .h-sortable-column-icon,
45
+ .h-treetable .h-sortable-column .h-sortable-column-badge {
46
+ vertical-align: middle;
47
+ }
48
+
49
+ .h-treetable-sort-icon {
50
+ color: dt('treetable.sort.icon.color');
51
+ font-size: dt('treetable.sort.icon.size');
52
+ width: dt('treetable.sort.icon.size');
53
+ height: dt('treetable.sort.icon.size');
54
+ transition: color dt('treetable.transition.duration');
55
+ }
56
+
57
+ .h-treetable .h-sortable-column .h-sortable-column-badge {
58
+ display: inline-flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ }
62
+
63
+ .h-treetable-auto-layout>.h-treetable-wrapper {
64
+ overflow-x: auto;
65
+ }
66
+
67
+ .h-treetable-auto-layout>.h-treetable-wrapper>table {
68
+ table-layout: auto;
69
+ }
70
+
71
+ .h-treetable-hoverable-rows .h-treetable-tbody>tr {
72
+ cursor: pointer;
73
+ }
74
+
75
+ .h-treetable-toggler {
76
+ cursor: pointer;
77
+ user-select: none;
78
+ display: inline-flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ vertical-align: middle;
82
+ overflow: hidden;
83
+ position: relative;
84
+ }
85
+
86
+
87
+ /* Scrollable */
88
+ .h-treetable-scrollable-wrapper {
89
+ position: relative;
90
+ }
91
+
92
+ .h-treetable-scrollable-header,
93
+ .h-treetable-scrollable-footer {
94
+ overflow: hidden;
95
+ flex-shrink: 0;
96
+ }
97
+
98
+ .h-treetable-scrollable-body {
99
+ overflow: auto;
100
+ position: relative;
101
+ }
102
+
103
+ .h-treetable-virtual-table {
104
+ position: absolute;
105
+ }
106
+
107
+ /* Frozen Columns */
108
+ .h-treetable-frozen-view .h-treetable-scrollable-body {
109
+ overflow: hidden;
110
+ }
111
+
112
+ .h-treetable-frozen-view>.h-treetable-scrollable-body>table>.h-treetable-tbody>tr>td:last-child {
113
+ border-right: 0 none;
114
+ }
115
+
116
+ .h-treetable-unfrozen-view {
117
+ position: absolute;
118
+ top: 0;
119
+ }
120
+
121
+ /* Flex Scrollable */
122
+ .h-treetable-flex-scrollable {
123
+ display: flex;
124
+ flex-direction: column;
125
+ flex: 1;
126
+ height: 100%;
127
+ }
128
+
129
+ .h-treetable-flex-scrollable .h-treetable-scrollable-wrapper,
130
+ .h-treetable-flex-scrollable .h-treetable-scrollable-view {
131
+ display: flex;
132
+ flex-direction: column;
133
+ flex: 1;
134
+ height: 100%;
135
+ }
136
+
137
+ .h-treetable-flex-scrollable .h-treetable-virtual-scrollable-body {
138
+ flex: 1;
139
+ }
140
+
141
+ /* Resizable */
142
+ .h-treetable-resizable>.h-treetable-wrapper {
143
+ overflow-x: auto;
144
+ }
145
+
146
+ .h-treetable-resizable .h-treetable-thead>tr>th,
147
+ .h-treetable-resizable .h-treetable-tfoot>tr>td,
148
+ .h-treetable-resizable .h-treetable-tbody>tr>td {
149
+ overflow: hidden;
150
+ }
151
+
152
+ .h-treetable-resizable .h-resizable-column {
153
+ background-clip: padding-box;
154
+ position: relative;
155
+ }
156
+
157
+ .h-treetable-resizable-fit .h-resizable-column:last-child .h-column-resizer {
158
+ display: none;
159
+ }
160
+
161
+ .h-treetable .h-column-resizer {
162
+ display: block;
163
+ position: absolute;
164
+ top: 0;
165
+ right: 0;
166
+ margin: 0;
167
+ width: dt('treetable.column.resizer.width');
168
+ height: 100%;
169
+ padding: 0px;
170
+ cursor: col-resize;
171
+ border: 1px solid transparent;
172
+ }
173
+
174
+ .h-treetable .h-column-resizer-helper {
175
+ width: dt('treetable.resize.indicator.width');
176
+ position: absolute;
177
+ z-index: 10;
178
+ display: none;
179
+ background: dt('treetable.resize.indicator.color');
180
+ }
181
+
182
+ .h-treetable .h-row-editor-init,
183
+ .h-treetable .h-row-editor-save,
184
+ .h-treetable .h-row-editor-cancel {
185
+ display: inline-flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ overflow: hidden;
189
+ position: relative;
190
+ }
191
+
192
+
193
+ /* Reorder */
194
+ .h-treetable-reorder-indicator-up,
195
+ .h-treetable-reorder-indicator-down {
196
+ position: absolute;
197
+ display: none;
198
+ }
199
+
200
+ [ttReorderableColumn] {
201
+ cursor: move;
202
+ }
203
+
204
+ /* Loader */
205
+ .h-treetable-mask {
206
+ position: absolute !important;
207
+ display: flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ z-index: 2;
211
+ }
212
+
213
+ .h-treetable-loading-icon {
214
+ font-size: dt('treetable.loading.icon.size');
215
+ width: dt('treetable.loading.icon.size');
216
+ height: dt('treetable.loading.icon.size');
217
+ }
218
+
219
+ /* Virtual Scroll */
220
+ .h-treetable .h-scroller-loading {
221
+ transform: none !important;
222
+ min-height: 0;
223
+ position: sticky;
224
+ top: 0;
225
+ left: 0;
226
+ }
227
+
228
+ .h-treetable .h-paginator-top {
229
+ border-color: dt('treetable.paginator.top.border.color');
230
+ border-style: solid;
231
+ border-width: dt('treetable.paginator.top.border.width');
232
+ }
233
+
234
+ .h-treetable .h-paginator-bottom {
235
+ border-color: dt('treetable.paginator.bottom.border.color');
236
+ border-style: solid;
237
+ border-width: dt('treetable.paginator.bottom.border.width');
238
+ }
239
+
240
+ .h-treetable .h-treetable-header {
241
+ background: dt('treetable.header.background');
242
+ color: dt('treetable.header.color');
243
+ border-color: dt('treetable.header.border.color');
244
+ border-style: solid;
245
+ border-width: dt('treetable.header.border.width');
246
+ padding: dt('treetable.header.padding');
247
+ font-weight: dt('treetable.column.title.font.weight');
248
+ }
249
+
250
+ .h-treetable .h-treetable-footer {
251
+ background: dt('treetable.footer.background');
252
+ color: dt('treetable.footer.color');
253
+ border-color: dt('treetable.footer.border.color');
254
+ border-style: solid;
255
+ border-width: dt('treetable.footer.border.width');
256
+ padding: dt('treetable.footer.padding');
257
+ font-weight: dt('treetable.column.footer.font.weight');
258
+ }
259
+
260
+ .h-treetable .h-treetable-thead>tr>th {
261
+ padding: dt('treetable.header.cell.padding');
262
+ background: dt('treetable.header.cell.background');
263
+ border-color: dt('treetable.header.cell.border.color');
264
+ border-style: solid;
265
+ border-width: 0 0 1px 0;
266
+ color: dt('treetable.header.cell.color');
267
+ font-weight: dt('treetable.column.title.font.weight');
268
+ text-align: start;
269
+ transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),
270
+ outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');
271
+ }
272
+
273
+ .h-treetable .h-treetable-tfoot>tr>td {
274
+ text-align: start;
275
+ padding: dt('treetable.footer.cell.padding');
276
+ border-color: dt('treetable.footer.cell.border.color');
277
+ border-style: solid;
278
+ border-width: 0 0 1px 0;
279
+ color: dt('treetable.footer.cell.color');
280
+ background: dt('treetable.footer.cell.background');
281
+ font-weight: dt('treetable.column.footer.font.weight');
282
+ }
283
+
284
+ .h-treetable .h-sortable-column {
285
+ cursor: pointer;
286
+ user-select: none;
287
+ outline-color: transparent;
288
+ vertical-align: middle;
289
+ }
290
+
291
+ .h-treetable .h-sortable-column .h-sortable-column-icon {
292
+ color: dt('treetable.sort.icon.color');
293
+ transition: color dt('treetable.transition.duration');
294
+ }
295
+
296
+
297
+ .h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover {
298
+ background: dt('treetable.header.cell.hover.background');
299
+ color: dt('treetable.header.cell.hover.color');
300
+ }
301
+
302
+ .h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover .h-treetable-sort-icon {
303
+ color: dt('treetable.sort.icon.hover.color');
304
+ }
305
+
306
+ .h-treetable .h-sortable-column.h-treetable-column-sorted {
307
+ background: dt('treetable.header.cell.selected.background');
308
+ color: dt('treetable.header.cell.selected.color');
309
+ }
310
+
311
+ .h-treetable .h-sortable-column.h-treetable-column-sorted .h-treetable-sort-icon {
312
+ color: dt('treetable.header.cell.selected.color');
313
+ }
314
+
315
+ .h-treetable .h-sortable-column:focus-visible {
316
+ box-shadow: dt('treetable.header.cell.focus.ring.shadow');
317
+ outline: dt('treetable.header.cell.focus.ring.width') dt('treetable.header.cell.focus.ring.style') dt('treetable.header.cell.focus.ring.color');
318
+ outline-offset: dt('treetable.header.cell.focus.ring.offset');
319
+ }
320
+
321
+ .h-treetable-hoverable .h-treetable-selectable-row {
322
+ cursor: pointer;
323
+ }
324
+
325
+ .h-treetable .h-treetable-tbody > tr {
326
+ outline-color: transparent;
327
+ background: dt('treetable.row.background');
328
+ color: dt('treetable.row.color');
329
+ }
330
+
331
+ .h-treetable .h-treetable-tbody>tr>td {
332
+ text-align: start;
333
+ border-color: dt('treetable.body.cell.border.color');
334
+ border-style: solid;
335
+ border-width: 0 0 1px 0;
336
+ padding: dt('treetable.body.cell.padding');
337
+ }
338
+
339
+ .h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ justify-content: center;
343
+ overflow: hidden;
344
+ position: relative;
345
+ width: dt('treetable.node.toggle.button.size');
346
+ height: dt('treetable.node.toggle.button.size');
347
+ color: dt('treetable.node.toggle.button.color');
348
+ border: 0 none;
349
+ background: transparent;
350
+ cursor: pointer;
351
+ border-radius: dt('treetable.node.toggle.button.border.radius');
352
+ transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),
353
+ outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');
354
+ outline-color: transparent;
355
+ user-select: none;
356
+ }
357
+
358
+ .h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:enabled:hover {
359
+ color: dt('treetable.node.toggle.button.hover.color');
360
+ background: dt('treetable.node.toggle.button.hover.background');
361
+ }
362
+
363
+ .h-treetable .h-treetable-tbody>tr>tr.treetable-row-selected .h-treetable-toggler:hover {
364
+ background: dt('treetable.node.toggle.button.selected.hover.background');
365
+ color: dt('treetable.node.toggle.button.selected.hover.color');
366
+ }
367
+
368
+ .h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:focus-visible {
369
+ box-shadow: dt('treetable.node.toggle.button.focus.ring.shadow');
370
+ outline: dt('treetable.node.toggle.button.focus.ring.width') dt('treetable.node.toggle.button.focus.ring.style') dt('treetable.node.toggle.button.focus.ring.color');
371
+ outline-offset: dt('treetable.node.toggle.button.focus.ring.offset');
372
+ }
373
+
374
+
375
+ .h-treetable .h-treetable-tbody>tr.h-treetable-row-selected {
376
+ background: dt('treetable.row.selected.background');
377
+ color: dt('treetable.row.selected.color');
378
+ }
379
+
380
+ .h-treetable-tbody > tr:focus-visible,
381
+ .h-treetable-tbody > tr.h-treetable-contextmenu-row-selected {
382
+ box-shadow: dt('treetable.row.focus.ring.shadow');
383
+ outline: dt('treetable.row.focus.ring.width') dt('treetable.row.focus.ring.style') dt('treetable.row.focus.ring.color');
384
+ outline-offset: dt('treetable.row.focus.ring.offset');
385
+ }
386
+
387
+ .h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler {
388
+ color: inherit;
389
+ }
390
+
391
+ .h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler:hover {
392
+ background: dt('treetable.node.toggle.button.selected.hover.background');
393
+ color: dt('treetable.node.toggle.button.selected.hover.color');
394
+ }
395
+
396
+ .h-treetable.h-treetable-hoverable-rows .h-treetable-tbody>tr:not(.h-treetable-row-selected):hover {
397
+ background: dt('treetable.row.hover.background');
398
+ color: dt('treetable.row.hover.color');
399
+ }
400
+
401
+ .h-treetable-gridlines .h-treetable-header {
402
+ border-width: 1px 1px 0 1px;
403
+ }
404
+
405
+ .h-treetable-gridlines .h-treetable-footer {
406
+ border-width: 0 1px 1px 1px;
407
+ }
408
+
409
+ .h-treetable-gridlines .h-treetable-paginator-top {
410
+ border-width: 1px 1px 0 1px;
411
+ }
412
+
413
+ .h-treetable-gridlines .h-treetable-paginator-bottom {
414
+ border-width: 0 1px 1px 1px;
415
+ }
416
+
417
+ .h-treetable-gridlines .h-treetable-thead > tr > th {
418
+ border-width: 1px 0 1px 1px;
419
+ }
420
+
421
+ .h-treetable-gridlines .h-treetable-thead > tr > th:last-child {
422
+ border-width: 1px;
423
+ }
424
+
425
+ .h-treetable-gridlines .h-treetable-tbody > tr > td {
426
+ border-width: 1px 0 0 1px;
427
+ }
428
+
429
+ .h-treetable-gridlines .h-treetable-tbody > tr > td:last-child {
430
+ border-width: 1px 1px 0 1px;
431
+ }
432
+
433
+ .h-treetable-gridlines .h-treetable-tbody > tr:last-child > td {
434
+ border-width: 1px 0 1px 1px;
435
+ }
436
+
437
+ .h-treetable-gridlines .h-treetable-tbody > tr:last-child > td:last-child {
438
+ border-width: 1px;
439
+ }
440
+
441
+ .h-treetable-gridlines .h-treetable-tfoot > tr > td {
442
+ border-width: 1px 0 1px 1px;
443
+ }
444
+
445
+ .h-treetable-gridlines .h-treetable-tfoot > tr > td:last-child {
446
+ border-width: 1px 1px 1px 1px;
447
+ }
448
+
449
+ .h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td {
450
+ border-width: 0 0 1px 1px;
451
+ }
452
+
453
+ .h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td:last-child {
454
+ border-width: 0 1px 1px 1px;
455
+ }
456
+
457
+ .h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td {
458
+ border-width: 0 0 1px 1px;
459
+ }
460
+
461
+ .h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td:last-child {
462
+ border-width: 0 1px 1px 1px;
463
+ }
464
+
465
+ .h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td {
466
+ border-width: 0 0 0 1px;
467
+ }
468
+
469
+ .h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td:last-child {
470
+ border-width: 0 1px 0 1px;
471
+ }
472
+
473
+ .h-treetable.h-treetable-sm .h-treetable-header {
474
+ padding: 0.65625rem 0.875rem;
475
+ }
476
+
477
+ .h-treetable.h-treetable-sm .h-treetable-thead>tr>th {
478
+ padding: 0.375rem 0.5rem;
479
+ }
480
+
481
+ .h-treetable.h-treetable-sm .h-treetable-tbody>tr>td {
482
+ padding: 0.375rem 0.5rem;
483
+ }
484
+
485
+ .h-treetable.h-treetable-sm .h-treetable-tfoot>tr>td {
486
+ padding: 0.375rem 0.5rem;
487
+ }
488
+
489
+ .h-treetable.h-treetable-sm .h-treetable-footer {
490
+ padding: 0.375rem 0.5rem;
491
+ }
492
+
493
+ .h-treetable.h-treetable-lg .h-treetable-header {
494
+ padding: 0.9375rem 1.25rem;
495
+ }
496
+
497
+ .h-treetable.h-treetable-lg .h-treetable-thead>tr>th {
498
+ padding: 0.9375rem 1.25rem;
499
+ }
500
+
501
+ .h-treetable.h-treetable-lg .h-treetable-tbody>tr>td {
502
+ padding: 0.9375rem 1.25rem;
503
+ }
504
+
505
+ .h-treetable.h-treetable-lg .h-treetable-tfoot>tr>td {
506
+ padding: 0.9375rem 1.25rem;
507
+ }
508
+
509
+ .h-treetable.h-treetable-lg .h-treetable-footer {
510
+ padding: 0.9375rem 1.25rem;
511
+ }
512
+
513
+ h-treetabletoggler + h-treetablecheckbox .h-checkbox,
514
+ h-treetable-toggler + h-treetable-checkbox .h-checkbox,
515
+ h-tree-table-toggler + h-tree-table-checkbox .h-checkbox {
516
+ vertical-align: middle;
517
+ }
518
+
519
+ h-treetabletoggler + h-treetablecheckbox + span,
520
+ h-treetable-toggler + h-treetable-checkbox + span,
521
+ h-tree-table-toggler + h-tree-table-checkbox + span {
522
+ vertical-align: middle;
523
+ }
524
+
525
+ h-treetable-sort-icon {
526
+ display: inline-flex;
527
+ align-items: center;
528
+ gap: dt('treetable.header.cell.gap');
529
+ }
530
+ `;
531
+ const classes = {
532
+ root: ({ instance }) => [
533
+ 'h-treetable h-component',
534
+ {
535
+ 'h-treetable-gridlines': instance.showGridlines,
536
+ 'h-treetable-hoverable-rows': instance.rowHover || instance.selectionMode === 'single' || instance.selectionMode === 'multiple',
537
+ 'h-treetable-auto-layout': instance.autoLayout,
538
+ 'h-treetable-resizable': instance.resizableColumns,
539
+ 'h-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',
540
+ 'h-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex'
541
+ }
542
+ ],
543
+ loading: 'h-treetable-loading',
544
+ mask: 'h-treetable-mask h-overlay-mask',
545
+ loadingIcon: 'h-treetable-loading-icon',
546
+ header: 'h-treetable-header',
547
+ pcPaginator: ({ instance }) => ['h-treetable-paginator-' + instance.paginatorPosition, instance.paginatorStyleClass],
548
+ tableContainer: 'h-treetable-table-container',
549
+ table: ({ instance }) => ({
550
+ 'h-treetable-table': true,
551
+ 'h-treetable-scrollable-table': instance.scrollable,
552
+ 'h-treetable-resizable-table': instance.resizableColumns,
553
+ 'h-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'
554
+ }),
555
+ thead: 'h-treetable-thead',
556
+ sortableColumn: ({ instance }) => ({
557
+ 'h-sortable-column': instance.isEnabled(),
558
+ 'h-treetable-column-sorted': instance.sorted
559
+ }),
560
+ sortableColumnIcon: 'h-treetable-sort-icon',
561
+ sortableColumnBadge: 'h-sortable-column-badge',
562
+ columnResizer: 'h-treetable-column-resizer',
563
+ columnHeaderContent: 'h-treetable-column-header-content',
564
+ columnTitle: 'h-treetable-column-title',
565
+ sortIcon: 'h-treetable-sort-icon',
566
+ pcSortBadge: 'h-treetable-sort-badge',
567
+ tbody: 'h-treetable-tbody',
568
+ row: ({ instance }) => ({
569
+ 'h-treetable-row-selected': instance.selected
570
+ }),
571
+ contextMenuRow: ({ instance }) => ({
572
+ 'h-treetable-contextmenu-row-selected': instance.selected
573
+ }),
574
+ toggler: 'h-treetable-toggler',
575
+ nodeToggleButton: 'h-treetable-node-toggle-button',
576
+ nodeToggleIcon: 'h-treetable-node-toggle-icon',
577
+ pcNodeCheckbox: 'h-treetable-node-checkbox',
578
+ tfoot: 'h-treetable-tfoot',
579
+ footerCell: ({ instance }) => ({
580
+ 'h-treetable-frozen-column': instance.columnProp('frozen')
581
+ }),
582
+ footer: 'h-treetable-footer',
583
+ columnResizeIndicator: 'h-treetable-column-resize-indicator',
584
+ wrapper: 'h-treetable-wrapper',
585
+ scrollableWrapper: 'h-treetable-scrollable-wrapper',
586
+ scrollableView: 'h-treetable-scrollable-view',
587
+ frozenView: 'h-treetable-frozen-view',
588
+ columnResizerHelper: 'h-column-resizer-helper',
589
+ reorderIndicatorUp: 'h-treetable-reorder-indicator-up',
590
+ reorderIndicatorDown: 'h-treetable-reorder-indicator-down',
591
+ scrollableHeader: 'h-treetable-scrollable-header',
592
+ scrollableHeaderBox: 'h-treetable-scrollable-header-box',
593
+ scrollableHeaderTable: 'h-treetable-scrollable-header-table',
594
+ scrollableBody: 'h-treetable-scrollable-body',
595
+ scrollableFooter: 'h-treetable-scrollable-footer',
596
+ scrollableFooterBox: 'h-treetable-scrollable-footer-box',
597
+ scrollableFooterTable: 'h-treetable-scrollable-footer-table'
598
+ };
599
+ class TreeTableStyle extends BaseStyle {
600
+ name = 'treetable';
601
+ style = style;
602
+ classes = classes;
603
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
604
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableStyle });
605
+ }
606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableStyle, decorators: [{
607
+ type: Injectable
608
+ }] });
609
+ /**
610
+ *
611
+ * TreeTable is used to display hierarchical data in tabular format.
612
+ *
613
+ * [Live Demo](https://www.primeng.org/treetable/)
614
+ *
615
+ * @module treetablestyle
616
+ *
617
+ */
618
+ var TreeTableClasses;
619
+ (function (TreeTableClasses) {
620
+ /**
621
+ * Class name of the root element
622
+ */
623
+ TreeTableClasses["root"] = "h-treetable";
624
+ /**
625
+ * Class name of the loading element
626
+ */
627
+ TreeTableClasses["loading"] = "h-treetable-loading";
628
+ /**
629
+ * Class name of the mask element
630
+ */
631
+ TreeTableClasses["mask"] = "h-treetable-mask";
632
+ /**
633
+ * Class name of the loading icon element
634
+ */
635
+ TreeTableClasses["loadingIcon"] = "h-treetable-loading-icon";
636
+ /**
637
+ * Class name of the header element
638
+ */
639
+ TreeTableClasses["header"] = "h-treetable-header";
640
+ /**
641
+ * Class name of the paginator element
642
+ */
643
+ TreeTableClasses["pcPaginator"] = "h-treetable-paginator-[position]";
644
+ /**
645
+ * Class name of the table container element
646
+ */
647
+ TreeTableClasses["tableContainer"] = "h-treetable-table-container";
648
+ /**
649
+ * Class name of the table element
650
+ */
651
+ TreeTableClasses["table"] = "h-treetable-table";
652
+ /**
653
+ * Class name of the thead element
654
+ */
655
+ TreeTableClasses["thead"] = "h-treetable-thead";
656
+ /**
657
+ * Class name of the column resizer element
658
+ */
659
+ TreeTableClasses["columnResizer"] = "h-treetable-column-resizer";
660
+ /**
661
+ * Class name of the column title element
662
+ */
663
+ TreeTableClasses["columnTitle"] = "h-treetable-column-title";
664
+ /**
665
+ * Class name of the sort icon element
666
+ */
667
+ TreeTableClasses["sortIcon"] = "h-treetable-sort-icon";
668
+ /**
669
+ * Class name of the sort badge element
670
+ */
671
+ TreeTableClasses["pcSortBadge"] = "h-treetable-sort-badge";
672
+ /**
673
+ * Class name of the tbody element
674
+ */
675
+ TreeTableClasses["tbody"] = "h-treetable-tbody";
676
+ /**
677
+ * Class name of the node toggle button element
678
+ */
679
+ TreeTableClasses["nodeToggleButton"] = "h-treetable-node-toggle-button";
680
+ /**
681
+ * Class name of the node toggle icon element
682
+ */
683
+ TreeTableClasses["nodeToggleIcon"] = "h-treetable-node-toggle-icon";
684
+ /**
685
+ * Class name of the node checkbox element
686
+ */
687
+ TreeTableClasses["pcNodeCheckbox"] = "h-treetable-node-checkbox";
688
+ /**
689
+ * Class name of the empty message element
690
+ */
691
+ TreeTableClasses["emptyMessage"] = "h-treetable-empty-message";
692
+ /**
693
+ * Class name of the tfoot element
694
+ */
695
+ TreeTableClasses["tfoot"] = "h-treetable-tfoot";
696
+ /**
697
+ * Class name of the footer element
698
+ */
699
+ TreeTableClasses["footer"] = "h-treetable-footer";
700
+ /**
701
+ * Class name of the column resize indicator element
702
+ */
703
+ TreeTableClasses["columnResizeIndicator"] = "h-treetable-column-resize-indicator";
704
+ /**
705
+ * Class name of the wrapper element
706
+ */
707
+ TreeTableClasses["wrapper"] = "h-treetable-wrapper";
708
+ /**
709
+ * Class name of the scrollable wrapper element
710
+ */
711
+ TreeTableClasses["scrollableWrapper"] = "h-treetable-scrollable-wrapper";
712
+ /**
713
+ * Class name of the scrollable view element
714
+ */
715
+ TreeTableClasses["scrollableView"] = "h-treetable-scrollable-view";
716
+ /**
717
+ * Class name of the frozen view element
718
+ */
719
+ TreeTableClasses["frozenView"] = "h-treetable-frozen-view";
720
+ /**
721
+ * Class name of the column resizer helper element
722
+ */
723
+ TreeTableClasses["columnResizerHelper"] = "h-treetable-column-resizer-helper";
724
+ /**
725
+ * Class name of the reorder indicator up element
726
+ */
727
+ TreeTableClasses["reorderIndicatorUp"] = "h-treetable-reorder-indicator-up";
728
+ /**
729
+ * Class name of the reorder indicator down element
730
+ */
731
+ TreeTableClasses["reorderIndicatorDown"] = "h-treetable-reorder-indicator-down";
732
+ /**
733
+ * Class name of the scrollable header element
734
+ */
735
+ TreeTableClasses["scrollableHeader"] = "h-treetable-scrollable-header";
736
+ /**
737
+ * Class name of the scrollable header box element
738
+ */
739
+ TreeTableClasses["scrollableHeaderBox"] = "h-treetable-scrollable-header-box";
740
+ /**
741
+ * Class name of the scrollable header table element
742
+ */
743
+ TreeTableClasses["scrollableHeaderTable"] = "h-treetable-scrollable-header-table";
744
+ /**
745
+ * Class name of the scrollable body element
746
+ */
747
+ TreeTableClasses["scrollableBody"] = "h-treetable-scrollable-body";
748
+ /**
749
+ * Class name of the scrollable footer element
750
+ */
751
+ TreeTableClasses["scrollableFooter"] = "h-treetable-scrollable-footer";
752
+ /**
753
+ * Class name of the scrollable footer box element
754
+ */
755
+ TreeTableClasses["scrollableFooterBox"] = "h-treetable-scrollable-footer-box";
756
+ /**
757
+ * Class name of the scrollable footer table element
758
+ */
759
+ TreeTableClasses["scrollableFooterTable"] = "h-treetable-scrollable-footer-table";
760
+ /**
761
+ * Class name of the sortable column icon element
762
+ */
763
+ TreeTableClasses["sortableColumnIcon"] = "h-sortable-column-icon";
764
+ })(TreeTableClasses || (TreeTableClasses = {}));
765
+
766
+ const TREETABLE_INSTANCE = new InjectionToken('TREETABLE_INSTANCE');
767
+ class TreeTableService {
768
+ sortSource = new Subject();
769
+ selectionSource = new Subject();
770
+ contextMenuSource = new Subject();
771
+ uiUpdateSource = new Subject();
772
+ totalRecordsSource = new Subject();
773
+ sortSource$ = this.sortSource.asObservable();
774
+ selectionSource$ = this.selectionSource.asObservable();
775
+ contextMenuSource$ = this.contextMenuSource.asObservable();
776
+ uiUpdateSource$ = this.uiUpdateSource.asObservable();
777
+ totalRecordsSource$ = this.totalRecordsSource.asObservable();
778
+ onSort(sortMeta) {
779
+ this.sortSource.next(sortMeta);
780
+ }
781
+ onSelectionChange() {
782
+ this.selectionSource.next(null);
783
+ }
784
+ onContextMenu(node) {
785
+ this.contextMenuSource.next(node);
786
+ }
787
+ onUIUpdate(value) {
788
+ this.uiUpdateSource.next(value);
789
+ }
790
+ onTotalRecordsChange(value) {
791
+ this.totalRecordsSource.next(value);
792
+ }
793
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
794
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableService });
795
+ }
796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableService, decorators: [{
797
+ type: Injectable
798
+ }] });
799
+ /**
800
+ * TreeTable is used to display hierarchical data in tabular format.
801
+ * @group Components
802
+ */
803
+ class TreeTable extends BaseComponent {
804
+ componentName = 'TreeTable';
805
+ _componentStyle = inject(TreeTableStyle);
806
+ bindDirectiveInstance = inject(Bind, { self: true });
807
+ onAfterViewChecked() {
808
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
809
+ }
810
+ /**
811
+ * An array of objects to represent dynamic columns.
812
+ * @group Props
813
+ */
814
+ columns = input(/* @ts-ignore */
815
+ ...(ngDevMode ? [undefined, { debugName: "columns" }] : /* istanbul ignore next */ []));
816
+ /**
817
+ * Style class of the component.
818
+ * @deprecated since v20.0.0, use `class` instead.
819
+ * @group Props
820
+ */
821
+ styleClass = input(/* @ts-ignore */
822
+ ...(ngDevMode ? [undefined, { debugName: "styleClass" }] : /* istanbul ignore next */ []));
823
+ /**
824
+ * Inline style of the table.
825
+ * @group Props
826
+ */
827
+ tableStyle = input(/* @ts-ignore */
828
+ ...(ngDevMode ? [undefined, { debugName: "tableStyle" }] : /* istanbul ignore next */ []));
829
+ /**
830
+ * Style class of the table.
831
+ * @group Props
832
+ */
833
+ tableStyleClass = input(/* @ts-ignore */
834
+ ...(ngDevMode ? [undefined, { debugName: "tableStyleClass" }] : /* istanbul ignore next */ []));
835
+ /**
836
+ * Whether the cell widths scale according to their content or not.
837
+ * @group Props
838
+ */
839
+ autoLayout = input(undefined, { ...(ngDevMode ? { debugName: "autoLayout" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
840
+ /**
841
+ * Defines if data is loaded and interacted with in lazy manner.
842
+ * @group Props
843
+ */
844
+ lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
845
+ /**
846
+ * Whether to call lazy loading on initialization.
847
+ * @group Props
848
+ */
849
+ lazyLoadOnInit = input(true, { ...(ngDevMode ? { debugName: "lazyLoadOnInit" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
850
+ /**
851
+ * When specified as true, enables the pagination.
852
+ * @group Props
853
+ */
854
+ paginator = input(undefined, { ...(ngDevMode ? { debugName: "paginator" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
855
+ /**
856
+ * Number of rows to display per page.
857
+ * @group Props
858
+ */
859
+ rows = model(undefined, /* @ts-ignore */
860
+ ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
861
+ /**
862
+ * Index of the first row to be displayed.
863
+ * @group Props
864
+ */
865
+ first = model(0, /* @ts-ignore */
866
+ ...(ngDevMode ? [{ debugName: "first" }] : /* istanbul ignore next */ []));
867
+ /**
868
+ * Number of page links to display in paginator.
869
+ * @group Props
870
+ */
871
+ pageLinks = input(5, { ...(ngDevMode ? { debugName: "pageLinks" } : /* istanbul ignore next */ {}), transform: numberAttribute });
872
+ /**
873
+ * Array of integer/object values to display inside rows per page dropdown of paginator
874
+ * @group Props
875
+ */
876
+ rowsPerPageOptions = input(/* @ts-ignore */
877
+ ...(ngDevMode ? [undefined, { debugName: "rowsPerPageOptions" }] : /* istanbul ignore next */ []));
878
+ /**
879
+ * Whether to show it even there is only one page.
880
+ * @group Props
881
+ */
882
+ alwaysShowPaginator = input(true, { ...(ngDevMode ? { debugName: "alwaysShowPaginator" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
883
+ /**
884
+ * Position of the paginator.
885
+ * @group Props
886
+ */
887
+ paginatorPosition = input('bottom', /* @ts-ignore */
888
+ ...(ngDevMode ? [{ debugName: "paginatorPosition" }] : /* istanbul ignore next */ []));
889
+ /**
890
+ * Custom style class for paginator
891
+ * @group Props
892
+ */
893
+ paginatorStyleClass = input(/* @ts-ignore */
894
+ ...(ngDevMode ? [undefined, { debugName: "paginatorStyleClass" }] : /* istanbul ignore next */ []));
895
+ /**
896
+ * Target element to attach the paginator dropdown overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
897
+ * @group Props
898
+ */
899
+ paginatorDropdownAppendTo = input(/* @ts-ignore */
900
+ ...(ngDevMode ? [undefined, { debugName: "paginatorDropdownAppendTo" }] : /* istanbul ignore next */ []));
901
+ /**
902
+ * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}
903
+ * @group Props
904
+ */
905
+ currentPageReportTemplate = input('{currentPage} of {totalPages}', /* @ts-ignore */
906
+ ...(ngDevMode ? [{ debugName: "currentPageReportTemplate" }] : /* istanbul ignore next */ []));
907
+ /**
908
+ * Whether to display current page report.
909
+ * @group Props
910
+ */
911
+ showCurrentPageReport = input(undefined, { ...(ngDevMode ? { debugName: "showCurrentPageReport" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
912
+ /**
913
+ * Whether to display a dropdown to navigate to any page.
914
+ * @group Props
915
+ */
916
+ showJumpToPageDropdown = input(undefined, { ...(ngDevMode ? { debugName: "showJumpToPageDropdown" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
917
+ /**
918
+ * When enabled, icons are displayed on paginator to go first and last page.
919
+ * @group Props
920
+ */
921
+ showFirstLastIcon = input(true, { ...(ngDevMode ? { debugName: "showFirstLastIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
922
+ /**
923
+ * Whether to show page links.
924
+ * @group Props
925
+ */
926
+ showPageLinks = input(true, { ...(ngDevMode ? { debugName: "showPageLinks" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
927
+ /**
928
+ * Sort order to use when an unsorted column gets sorted by user interaction.
929
+ * @group Props
930
+ */
931
+ defaultSortOrder = input(1, { ...(ngDevMode ? { debugName: "defaultSortOrder" } : /* istanbul ignore next */ {}), transform: numberAttribute });
932
+ /**
933
+ * Defines whether sorting works on single column or on multiple columns.
934
+ * @group Props
935
+ */
936
+ sortMode = input('single', /* @ts-ignore */
937
+ ...(ngDevMode ? [{ debugName: "sortMode" }] : /* istanbul ignore next */ []));
938
+ /**
939
+ * When true, resets paginator to first page after sorting.
940
+ * @group Props
941
+ */
942
+ resetPageOnSort = input(true, { ...(ngDevMode ? { debugName: "resetPageOnSort" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
943
+ /**
944
+ * Whether to use the default sorting or a custom one using sortFunction.
945
+ * @group Props
946
+ */
947
+ customSort = input(undefined, { ...(ngDevMode ? { debugName: "customSort" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
948
+ /**
949
+ * Specifies the selection mode, valid values are "single" and "multiple".
950
+ * @group Props
951
+ */
952
+ selectionMode = input(/* @ts-ignore */
953
+ ...(ngDevMode ? [undefined, { debugName: "selectionMode" }] : /* istanbul ignore next */ []));
954
+ /**
955
+ * Selected row with a context menu.
956
+ * @group Props
957
+ */
958
+ contextMenuSelection = model(undefined, /* @ts-ignore */
959
+ ...(ngDevMode ? [{ debugName: "contextMenuSelection" }] : /* istanbul ignore next */ []));
960
+ /**
961
+ * Mode of the contet menu selection.
962
+ * @group Props
963
+ */
964
+ contextMenuSelectionMode = input('separate', /* @ts-ignore */
965
+ ...(ngDevMode ? [{ debugName: "contextMenuSelectionMode" }] : /* istanbul ignore next */ []));
966
+ /**
967
+ * A property to uniquely identify a record in data.
968
+ * @group Props
969
+ */
970
+ dataKey = input(/* @ts-ignore */
971
+ ...(ngDevMode ? [undefined, { debugName: "dataKey" }] : /* istanbul ignore next */ []));
972
+ /**
973
+ * Defines whether metaKey is should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.
974
+ * @group Props
975
+ */
976
+ metaKeySelection = input(false, { ...(ngDevMode ? { debugName: "metaKeySelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
977
+ /**
978
+ * Algorithm to define if a row is selected, valid values are "equals" that compares by reference and "deepEquals" that compares all fields.
979
+ * @group Props
980
+ */
981
+ compareSelectionBy = input('deepEquals', /* @ts-ignore */
982
+ ...(ngDevMode ? [{ debugName: "compareSelectionBy" }] : /* istanbul ignore next */ []));
983
+ /**
984
+ * Adds hover effect to rows without the need for selectionMode.
985
+ * @group Props
986
+ */
987
+ rowHover = input(undefined, { ...(ngDevMode ? { debugName: "rowHover" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
988
+ /**
989
+ * Displays a loader to indicate data load is in progress.
990
+ * @group Props
991
+ */
992
+ loading = input(undefined, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
993
+ /**
994
+ * The icon to show while indicating data load is in progress.
995
+ * @group Props
996
+ */
997
+ loadingIcon = input(/* @ts-ignore */
998
+ ...(ngDevMode ? [undefined, { debugName: "loadingIcon" }] : /* istanbul ignore next */ []));
999
+ /**
1000
+ * Whether to show the loading mask when loading property is true.
1001
+ * @group Props
1002
+ */
1003
+ showLoader = input(true, { ...(ngDevMode ? { debugName: "showLoader" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1004
+ /**
1005
+ * When specified, enables horizontal and/or vertical scrolling.
1006
+ * @group Props
1007
+ */
1008
+ scrollable = input(undefined, { ...(ngDevMode ? { debugName: "scrollable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1009
+ /**
1010
+ * Height of the scroll viewport in fixed pixels or the "flex" keyword for a dynamic size.
1011
+ * @group Props
1012
+ */
1013
+ scrollHeight = input(/* @ts-ignore */
1014
+ ...(ngDevMode ? [undefined, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []));
1015
+ /**
1016
+ * Whether the data should be loaded on demand during scroll.
1017
+ * @group Props
1018
+ */
1019
+ virtualScroll = input(undefined, { ...(ngDevMode ? { debugName: "virtualScroll" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1020
+ /**
1021
+ * Height of a row to use in calculations of virtual scrolling.
1022
+ * @group Props
1023
+ */
1024
+ virtualScrollItemSize = input(undefined, { ...(ngDevMode ? { debugName: "virtualScrollItemSize" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1025
+ /**
1026
+ * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
1027
+ * @group Props
1028
+ */
1029
+ virtualScrollOptions = input(/* @ts-ignore */
1030
+ ...(ngDevMode ? [undefined, { debugName: "virtualScrollOptions" }] : /* istanbul ignore next */ []));
1031
+ /**
1032
+ * The delay (in milliseconds) before triggering the virtual scroll. This determines the time gap between the user's scroll action and the actual rendering of the next set of items in the virtual scroll.
1033
+ * @group Props
1034
+ */
1035
+ virtualScrollDelay = input(150, { ...(ngDevMode ? { debugName: "virtualScrollDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1036
+ /**
1037
+ * Width of the frozen columns container.
1038
+ * @group Props
1039
+ */
1040
+ frozenWidth = input(/* @ts-ignore */
1041
+ ...(ngDevMode ? [undefined, { debugName: "frozenWidth" }] : /* istanbul ignore next */ []));
1042
+ /**
1043
+ * An array of objects to represent dynamic columns that are frozen.
1044
+ * @group Props
1045
+ */
1046
+ frozenColumns = input(/* @ts-ignore */
1047
+ ...(ngDevMode ? [undefined, { debugName: "frozenColumns" }] : /* istanbul ignore next */ []));
1048
+ /**
1049
+ * When enabled, columns can be resized using drag and drop.
1050
+ * @group Props
1051
+ */
1052
+ resizableColumns = input(undefined, { ...(ngDevMode ? { debugName: "resizableColumns" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1053
+ /**
1054
+ * Defines whether the overall table width should change on column resize, valid values are "fit" and "expand".
1055
+ * @group Props
1056
+ */
1057
+ columnResizeMode = input('fit', /* @ts-ignore */
1058
+ ...(ngDevMode ? [{ debugName: "columnResizeMode" }] : /* istanbul ignore next */ []));
1059
+ /**
1060
+ * When enabled, columns can be reordered using drag and drop.
1061
+ * @group Props
1062
+ */
1063
+ reorderableColumns = input(undefined, { ...(ngDevMode ? { debugName: "reorderableColumns" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1064
+ /**
1065
+ * Local ng-template varilable of a ContextMenu.
1066
+ * @group Props
1067
+ */
1068
+ contextMenu = input(/* @ts-ignore */
1069
+ ...(ngDevMode ? [undefined, { debugName: "contextMenu" }] : /* istanbul ignore next */ []));
1070
+ /**
1071
+ * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.
1072
+ * @group Props
1073
+ */
1074
+ rowTrackBy = input((index, item) => item, /* @ts-ignore */
1075
+ ...(ngDevMode ? [{ debugName: "rowTrackBy" }] : /* istanbul ignore next */ []));
1076
+ /**
1077
+ * An array of FilterMetadata objects to provide external filters.
1078
+ * @group Props
1079
+ */
1080
+ filters = input({}, /* @ts-ignore */
1081
+ ...(ngDevMode ? [{ debugName: "filters" }] : /* istanbul ignore next */ []));
1082
+ /**
1083
+ * An array of fields as string to use in global filtering.
1084
+ * @group Props
1085
+ */
1086
+ globalFilterFields = input(/* @ts-ignore */
1087
+ ...(ngDevMode ? [undefined, { debugName: "globalFilterFields" }] : /* istanbul ignore next */ []));
1088
+ /**
1089
+ * Delay in milliseconds before filtering the data.
1090
+ * @group Props
1091
+ */
1092
+ filterDelay = input(300, { ...(ngDevMode ? { debugName: "filterDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1093
+ /**
1094
+ * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
1095
+ * @group Props
1096
+ */
1097
+ filterMode = input('lenient', /* @ts-ignore */
1098
+ ...(ngDevMode ? [{ debugName: "filterMode" }] : /* istanbul ignore next */ []));
1099
+ /**
1100
+ * Locale to use in filtering. The default locale is the host environment's current locale.
1101
+ * @group Props
1102
+ */
1103
+ filterLocale = input(/* @ts-ignore */
1104
+ ...(ngDevMode ? [undefined, { debugName: "filterLocale" }] : /* istanbul ignore next */ []));
1105
+ /**
1106
+ * Locale to be used in paginator formatting.
1107
+ * @group Props
1108
+ */
1109
+ paginatorLocale = input(/* @ts-ignore */
1110
+ ...(ngDevMode ? [undefined, { debugName: "paginatorLocale" }] : /* istanbul ignore next */ []));
1111
+ /**
1112
+ * Number of total records, defaults to length of value when not defined.
1113
+ * @group Props
1114
+ */
1115
+ totalRecords = model(0, /* @ts-ignore */
1116
+ ...(ngDevMode ? [{ debugName: "totalRecords" }] : /* istanbul ignore next */ []));
1117
+ /**
1118
+ * Name of the field to sort data by default.
1119
+ * @group Props
1120
+ */
1121
+ sortField = model(undefined, /* @ts-ignore */
1122
+ ...(ngDevMode ? [{ debugName: "sortField" }] : /* istanbul ignore next */ []));
1123
+ /**
1124
+ * Order to sort when default sorting is enabled.
1125
+ * @defaultValue 1
1126
+ * @group Props
1127
+ */
1128
+ sortOrder = model(1, /* @ts-ignore */
1129
+ ...(ngDevMode ? [{ debugName: "sortOrder" }] : /* istanbul ignore next */ []));
1130
+ /**
1131
+ * An array of SortMeta objects to sort the data by default in multiple sort mode.
1132
+ * @defaultValue null
1133
+ * @group Props
1134
+ */
1135
+ multiSortMeta = model(undefined, /* @ts-ignore */
1136
+ ...(ngDevMode ? [{ debugName: "multiSortMeta" }] : /* istanbul ignore next */ []));
1137
+ /**
1138
+ * Selected row in single mode or an array of values in multiple mode.
1139
+ * @defaultValue null
1140
+ * @group Props
1141
+ */
1142
+ selection = model(undefined, /* @ts-ignore */
1143
+ ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
1144
+ /**
1145
+ * An array of objects to display.
1146
+ * @defaultValue null
1147
+ * @group Props
1148
+ */
1149
+ value = model([], /* @ts-ignore */
1150
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
1151
+ /**
1152
+ * Indicates the height of rows to be scrolled.
1153
+ * @defaultValue 28
1154
+ * @group Props
1155
+ * @deprecated use virtualScrollItemSize property instead.
1156
+ */
1157
+ virtualRowHeight = input(28, /* @ts-ignore */
1158
+ ...(ngDevMode ? [{ debugName: "virtualRowHeight" }] : /* istanbul ignore next */ []));
1159
+ /**
1160
+ * A map of keys to control the selection state.
1161
+ * @group Props
1162
+ */
1163
+ selectionKeys = model(undefined, /* @ts-ignore */
1164
+ ...(ngDevMode ? [{ debugName: "selectionKeys" }] : /* istanbul ignore next */ []));
1165
+ /**
1166
+ * Whether to show grid lines between cells.
1167
+ * @defaultValue false
1168
+ * @group Props
1169
+ */
1170
+ showGridlines = input(false, { ...(ngDevMode ? { debugName: "showGridlines" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1171
+ /**
1172
+ * Callback to invoke on selected node change.
1173
+ * Emitted automatically as `selectionChange` via the `selection` model.
1174
+ * @param {TreeTableNode} object - Node instance.
1175
+ * @group Emits
1176
+ */
1177
+ /**
1178
+ * Callback to invoke on context menu selection change.
1179
+ * Emitted automatically as `contextMenuSelectionChange` via the `contextMenuSelection` model.
1180
+ * @param {TreeTableNode} object - Node instance.
1181
+ * @group Emits
1182
+ */
1183
+ /**
1184
+ * Callback to invoke when data is filtered.
1185
+ * @param {TreeTableFilterEvent} event - Custom filter event.
1186
+ * @group Emits
1187
+ */
1188
+ onFilter = output();
1189
+ /**
1190
+ * Callback to invoke when a node is expanded.
1191
+ * @param {TreeTableNodeExpandEvent} event - Node expand event.
1192
+ * @group Emits
1193
+ */
1194
+ onNodeExpand = output();
1195
+ /**
1196
+ * Callback to invoke when a node is collapsed.
1197
+ * @param {TreeTableNodeCollapseEvent} event - Node collapse event.
1198
+ * @group Emits
1199
+ */
1200
+ onNodeCollapse = output();
1201
+ /**
1202
+ * Callback to invoke when pagination occurs.
1203
+ * @param {TreeTablePaginatorState} object - Paginator state.
1204
+ * @group Emits
1205
+ */
1206
+ onPage = output();
1207
+ /**
1208
+ * Callback to invoke when a column gets sorted.
1209
+ * @param {Object} Object - Sort data.
1210
+ * @group Emits
1211
+ */
1212
+ onSort = output();
1213
+ /**
1214
+ * Callback to invoke when paging, sorting or filtering happens in lazy mode.
1215
+ * @param {TreeTableLazyLoadEvent} event - Custom lazy load event.
1216
+ * @group Emits
1217
+ */
1218
+ onLazyLoad = output();
1219
+ /**
1220
+ * An event emitter to invoke on custom sorting, refer to sorting section for details.
1221
+ * @param {TreeTableSortEvent} event - Custom sort event.
1222
+ * @group Emits
1223
+ */
1224
+ sortFunction = output();
1225
+ /**
1226
+ * Callback to invoke when a column is resized.
1227
+ * @param {TreeTableColResizeEvent} event - Custom column resize event.
1228
+ * @group Emits
1229
+ */
1230
+ onColResize = output();
1231
+ /**
1232
+ * Callback to invoke when a column is reordered.
1233
+ * @param {TreeTableColumnReorderEvent} event - Custom column reorder.
1234
+ * @group Emits
1235
+ */
1236
+ onColReorder = output();
1237
+ /**
1238
+ * Callback to invoke when a node is selected.
1239
+ * @param {TreeTableNode} object - Node instance.
1240
+ * @group Emits
1241
+ */
1242
+ onNodeSelect = output();
1243
+ /**
1244
+ * Callback to invoke when a node is unselected.
1245
+ * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.
1246
+ * @group Emits
1247
+ */
1248
+ onNodeUnselect = output();
1249
+ /**
1250
+ * Callback to invoke when a node is selected with right click.
1251
+ * @param {TreeTableContextMenuSelectEvent} event - Custom context menu select event.
1252
+ * @group Emits
1253
+ */
1254
+ onContextMenuSelect = output();
1255
+ /**
1256
+ * Callback to invoke when state of header checkbox changes.
1257
+ * @param {TreeTableHeaderCheckboxToggleEvent} event - Custom checkbox toggle event.
1258
+ * @group Emits
1259
+ */
1260
+ onHeaderCheckboxToggle = output();
1261
+ /**
1262
+ * Callback to invoke when a cell switches to edit mode.
1263
+ * @param {TreeTableEditEvent} event - Custom edit event.
1264
+ * @group Emits
1265
+ */
1266
+ onEditInit = output();
1267
+ /**
1268
+ * Callback to invoke when cell edit is completed.
1269
+ * @param {TreeTableEditEvent} event - Custom edit event.
1270
+ * @group Emits
1271
+ */
1272
+ onEditComplete = output();
1273
+ /**
1274
+ * Callback to invoke when cell edit is cancelled with escape key.
1275
+ * @param {TreeTableEditEvent} event - Custom edit event.
1276
+ * @group Emits
1277
+ */
1278
+ onEditCancel = output();
1279
+ /**
1280
+ * Callback to invoke when selectionKeys are changed.
1281
+ * Emitted automatically as `selectionKeysChange` via the `selectionKeys` model.
1282
+ * @param {Object} object - updated value of the selectionKeys.
1283
+ * @group Emits
1284
+ */
1285
+ resizeHelperViewChild = viewChild('resizeHelper', /* @ts-ignore */
1286
+ ...(ngDevMode ? [{ debugName: "resizeHelperViewChild" }] : /* istanbul ignore next */ []));
1287
+ reorderIndicatorUpViewChild = viewChild('reorderIndicatorUp', /* @ts-ignore */
1288
+ ...(ngDevMode ? [{ debugName: "reorderIndicatorUpViewChild" }] : /* istanbul ignore next */ []));
1289
+ reorderIndicatorDownViewChild = viewChild('reorderIndicatorDown', /* @ts-ignore */
1290
+ ...(ngDevMode ? [{ debugName: "reorderIndicatorDownViewChild" }] : /* istanbul ignore next */ []));
1291
+ tableViewChild = viewChild('table', /* @ts-ignore */
1292
+ ...(ngDevMode ? [{ debugName: "tableViewChild" }] : /* istanbul ignore next */ []));
1293
+ scrollableViewChild = viewChild('scrollableView', /* @ts-ignore */
1294
+ ...(ngDevMode ? [{ debugName: "scrollableViewChild" }] : /* istanbul ignore next */ []));
1295
+ scrollableFrozenViewChild = viewChild('scrollableFrozenView', /* @ts-ignore */
1296
+ ...(ngDevMode ? [{ debugName: "scrollableFrozenViewChild" }] : /* istanbul ignore next */ []));
1297
+ serializedValue;
1298
+ filteredNodes;
1299
+ filterTimeout;
1300
+ _colGroupTemplate = contentChild('colgroup', { ...(ngDevMode ? { debugName: "_colGroupTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1301
+ colGroupTemplate;
1302
+ _captionTemplateSignal = contentChild('caption', { ...(ngDevMode ? { debugName: "_captionTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1303
+ get _captionTemplate() { return this._captionTemplateSignal(); }
1304
+ captionTemplate;
1305
+ _headerTemplate = contentChild('header', { ...(ngDevMode ? { debugName: "_headerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1306
+ headerTemplate;
1307
+ _bodyTemplate = contentChild('body', { ...(ngDevMode ? { debugName: "_bodyTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1308
+ bodyTemplate;
1309
+ _footerTemplateSignal = contentChild('footer', { ...(ngDevMode ? { debugName: "_footerTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1310
+ get _footerTemplate() { return this._footerTemplateSignal(); }
1311
+ footerTemplate;
1312
+ _summaryTemplateSignal = contentChild('summary', { ...(ngDevMode ? { debugName: "_summaryTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1313
+ get _summaryTemplate() { return this._summaryTemplateSignal(); }
1314
+ summaryTemplate;
1315
+ _emptyMessageTemplate = contentChild('emptymessage', { ...(ngDevMode ? { debugName: "_emptyMessageTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1316
+ emptyMessageTemplate;
1317
+ _paginatorLeftTemplate = contentChild('paginatorleft', { ...(ngDevMode ? { debugName: "_paginatorLeftTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1318
+ paginatorLeftTemplate;
1319
+ _paginatorRightTemplate = contentChild('paginatorright', { ...(ngDevMode ? { debugName: "_paginatorRightTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1320
+ paginatorRightTemplate;
1321
+ _paginatorDropdownItemTemplate = contentChild('paginatordropdownitem', { ...(ngDevMode ? { debugName: "_paginatorDropdownItemTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1322
+ paginatorDropdownItemTemplate;
1323
+ _frozenHeaderTemplate = contentChild('frozenheader', { ...(ngDevMode ? { debugName: "_frozenHeaderTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1324
+ frozenHeaderTemplate;
1325
+ _frozenBodyTemplate = contentChild('frozenbody', { ...(ngDevMode ? { debugName: "_frozenBodyTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1326
+ frozenBodyTemplate;
1327
+ _frozenFooterTemplate = contentChild('frozenfooter', { ...(ngDevMode ? { debugName: "_frozenFooterTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1328
+ frozenFooterTemplate;
1329
+ _frozenColGroupTemplate = contentChild('frozencolgroup', { ...(ngDevMode ? { debugName: "_frozenColGroupTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1330
+ frozenColGroupTemplate;
1331
+ _loadingIconTemplateSignal = contentChild('loadingicon', { ...(ngDevMode ? { debugName: "_loadingIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1332
+ get _loadingIconTemplate() { return this._loadingIconTemplateSignal(); }
1333
+ loadingIconTemplate;
1334
+ _reorderIndicatorUpIconTemplate = contentChild('reorderindicatorupicon', { ...(ngDevMode ? { debugName: "_reorderIndicatorUpIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1335
+ reorderIndicatorUpIconTemplate;
1336
+ _reorderIndicatorDownIconTemplate = contentChild('reorderindicatordownicon', { ...(ngDevMode ? { debugName: "_reorderIndicatorDownIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1337
+ reorderIndicatorDownIconTemplate;
1338
+ _sortIconTemplateSignal = contentChild('sorticon', { ...(ngDevMode ? { debugName: "_sortIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1339
+ get _sortIconTemplate() { return this._sortIconTemplateSignal(); }
1340
+ sortIconTemplate;
1341
+ _checkboxIconTemplateSignal = contentChild('checkboxicon', { ...(ngDevMode ? { debugName: "_checkboxIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1342
+ get _checkboxIconTemplate() { return this._checkboxIconTemplateSignal(); }
1343
+ checkboxIconTemplate;
1344
+ _headerCheckboxIconTemplateSignal = contentChild('headercheckboxicon', { ...(ngDevMode ? { debugName: "_headerCheckboxIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1345
+ get _headerCheckboxIconTemplate() { return this._headerCheckboxIconTemplateSignal(); }
1346
+ headerCheckboxIconTemplate;
1347
+ _togglerIconTemplate = contentChild('togglericon', { ...(ngDevMode ? { debugName: "_togglerIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1348
+ togglerIconTemplate;
1349
+ _paginatorFirstPageLinkIconTemplateSignal = contentChild('paginatorfirstpagelinkicon', { ...(ngDevMode ? { debugName: "_paginatorFirstPageLinkIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1350
+ get _paginatorFirstPageLinkIconTemplate() { return this._paginatorFirstPageLinkIconTemplateSignal(); }
1351
+ paginatorFirstPageLinkIconTemplate;
1352
+ _paginatorLastPageLinkIconTemplateSignal = contentChild('paginatorlastpagelinkicon', { ...(ngDevMode ? { debugName: "_paginatorLastPageLinkIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1353
+ get _paginatorLastPageLinkIconTemplate() { return this._paginatorLastPageLinkIconTemplateSignal(); }
1354
+ paginatorLastPageLinkIconTemplate;
1355
+ _paginatorPreviousPageLinkIconTemplateSignal = contentChild('paginatorpreviouspagelinkicon', { ...(ngDevMode ? { debugName: "_paginatorPreviousPageLinkIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1356
+ get _paginatorPreviousPageLinkIconTemplate() { return this._paginatorPreviousPageLinkIconTemplateSignal(); }
1357
+ paginatorPreviousPageLinkIconTemplate;
1358
+ _paginatorNextPageLinkIconTemplateSignal = contentChild('paginatornextpagelinkicon', { ...(ngDevMode ? { debugName: "_paginatorNextPageLinkIconTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1359
+ get _paginatorNextPageLinkIconTemplate() { return this._paginatorNextPageLinkIconTemplateSignal(); }
1360
+ paginatorNextPageLinkIconTemplate;
1361
+ _loaderTemplateSignal = contentChild('loader', { ...(ngDevMode ? { debugName: "_loaderTemplateSignal" } : /* istanbul ignore next */ {}), descendants: false });
1362
+ get _loaderTemplate() { return this._loaderTemplateSignal(); }
1363
+ loaderTemplate;
1364
+ lastResizerHelperX;
1365
+ reorderIconWidth;
1366
+ reorderIconHeight;
1367
+ draggedColumn;
1368
+ dropPosition;
1369
+ preventSelectionSetterPropagation;
1370
+ selectedKeys = {};
1371
+ rowTouched;
1372
+ editingCell;
1373
+ editingCellData;
1374
+ editingCellField;
1375
+ editingCellClick;
1376
+ documentEditListener;
1377
+ initialized;
1378
+ toggleRowIndex;
1379
+ onInit() {
1380
+ if (this.lazy() && this.lazyLoadOnInit() && !this.virtualScroll()) {
1381
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
1382
+ }
1383
+ this.initialized = true;
1384
+ }
1385
+ templates = contentChildren(HelixTemplate, /* @ts-ignore */
1386
+ ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
1387
+ onAfterContentInit() {
1388
+ this.templates().forEach((item) => {
1389
+ switch (item.getType()) {
1390
+ case 'caption':
1391
+ this.captionTemplate = item.template;
1392
+ break;
1393
+ case 'header':
1394
+ this.headerTemplate = item.template;
1395
+ break;
1396
+ case 'body':
1397
+ this.bodyTemplate = item.template;
1398
+ break;
1399
+ case 'footer':
1400
+ this.footerTemplate = item.template;
1401
+ break;
1402
+ case 'summary':
1403
+ this.summaryTemplate = item.template;
1404
+ break;
1405
+ case 'colgroup':
1406
+ this.colGroupTemplate = item.template;
1407
+ break;
1408
+ case 'emptymessage':
1409
+ this.emptyMessageTemplate = item.template;
1410
+ break;
1411
+ case 'paginatorleft':
1412
+ this.paginatorLeftTemplate = item.template;
1413
+ break;
1414
+ case 'paginatorright':
1415
+ this.paginatorRightTemplate = item.template;
1416
+ break;
1417
+ case 'paginatordropdownitem':
1418
+ this.paginatorDropdownItemTemplate = item.template;
1419
+ break;
1420
+ case 'frozenheader':
1421
+ this.frozenHeaderTemplate = item.template;
1422
+ break;
1423
+ case 'frozenbody':
1424
+ this.frozenBodyTemplate = item.template;
1425
+ break;
1426
+ case 'frozenfooter':
1427
+ this.frozenFooterTemplate = item.template;
1428
+ break;
1429
+ case 'frozencolgroup':
1430
+ this.frozenColGroupTemplate = item.template;
1431
+ break;
1432
+ case 'loadingicon':
1433
+ this.loadingIconTemplate = item.template;
1434
+ break;
1435
+ case 'reorderindicatorupicon':
1436
+ this.reorderIndicatorUpIconTemplate = item.template;
1437
+ break;
1438
+ case 'reorderindicatordownicon':
1439
+ this.reorderIndicatorDownIconTemplate = item.template;
1440
+ break;
1441
+ case 'sorticon':
1442
+ this.sortIconTemplate = item.template;
1443
+ break;
1444
+ case 'checkboxicon':
1445
+ this.checkboxIconTemplate = item.template;
1446
+ break;
1447
+ case 'headercheckboxicon':
1448
+ this.headerCheckboxIconTemplate = item.template;
1449
+ break;
1450
+ case 'togglericon':
1451
+ this.togglerIconTemplate = item.template;
1452
+ break;
1453
+ case 'paginatorfirstpagelinkicon':
1454
+ this.paginatorFirstPageLinkIconTemplate = item.template;
1455
+ break;
1456
+ case 'paginatorlastpagelinkicon':
1457
+ this.paginatorLastPageLinkIconTemplate = item.template;
1458
+ break;
1459
+ case 'paginatorpreviouspagelinkicon':
1460
+ this.paginatorPreviousPageLinkIconTemplate = item.template;
1461
+ break;
1462
+ case 'paginatornextpagelinkicon':
1463
+ this.paginatorNextPageLinkIconTemplate = item.template;
1464
+ break;
1465
+ case 'loader':
1466
+ this.loaderTemplate = item.template;
1467
+ break;
1468
+ }
1469
+ });
1470
+ }
1471
+ filterService = inject(FilterService);
1472
+ tableService = inject(TreeTableService);
1473
+ zone = inject(NgZone);
1474
+ // The `totalRecords` setter used to notify TreeTableService on every write; `totalRecords` is
1475
+ // now a model() signal, so the notification is reproduced as an effect (rule 3).
1476
+ _totalRecordsEffect = effect(() => {
1477
+ this.tableService.onTotalRecordsChange(this.totalRecords());
1478
+ }, /* @ts-ignore */
1479
+ ...(ngDevMode ? [{ debugName: "_totalRecordsEffect" }] : /* istanbul ignore next */ []));
1480
+ // NOTE: `virtualRowHeight`'s setter used to log a one-time deprecation console.log whenever a
1481
+ // consumer explicitly bound the (deprecated) property. It is now a plain input() (rule 1/3); the
1482
+ // console.log side effect was intentionally dropped rather than reproduced via effect(), because
1483
+ // an effect reading virtualRowHeight() fires once for every TreeTable instance at initialization
1484
+ // regardless of whether the consumer ever set the input (signals don't distinguish "default value"
1485
+ // from "explicitly bound to the default"), which would make the warning fire unconditionally for
1486
+ // every consumer instead of only those actually using the deprecated property.
1487
+ // Removed onChanges method (dead code with signal inputs): `value`, `sortField`, `sortOrder`,
1488
+ // `multiSortMeta`, and `selection` are now signal-based (model()), so Angular no longer routes
1489
+ // their changes through ngOnChanges/onChanges. Internal mutation paths (sort(), onPageChange(),
1490
+ // filter methods, selection handlers, etc.) already call updateSerializedValue()/sortSingle()/
1491
+ // sortMultiple()/updateselectedKeys() explicitly where needed. Mirrors table.ts (PR #391).
1492
+ updateSerializedValue() {
1493
+ this.serializedValue = [];
1494
+ if (this.paginator())
1495
+ this.serializePageNodes();
1496
+ else
1497
+ this.serializeNodes(null, this.filteredNodes || this.value(), 0, true);
1498
+ }
1499
+ serializeNodes(parent, nodes, level, visible) {
1500
+ if (nodes && nodes.length) {
1501
+ for (let node of nodes) {
1502
+ node.parent = parent;
1503
+ const rowNode = {
1504
+ node: node,
1505
+ parent: parent,
1506
+ level: level,
1507
+ visible: visible && (parent ? parent.expanded : true)
1508
+ };
1509
+ this.serializedValue.push(rowNode);
1510
+ if (rowNode.visible && node.expanded) {
1511
+ this.serializeNodes(node, node.children, level + 1, rowNode.visible);
1512
+ }
1513
+ }
1514
+ }
1515
+ }
1516
+ serializePageNodes() {
1517
+ let data = this.filteredNodes || this.value();
1518
+ this.serializedValue = [];
1519
+ if (data && data.length) {
1520
+ const first = this.lazy() ? 0 : this.first();
1521
+ for (let i = first; i < first + this.rows(); i++) {
1522
+ let node = data[i];
1523
+ if (node) {
1524
+ this.serializedValue.push({
1525
+ node: node,
1526
+ parent: null,
1527
+ level: 0,
1528
+ visible: true
1529
+ });
1530
+ this.serializeNodes(node, node.children, 1, true);
1531
+ }
1532
+ }
1533
+ }
1534
+ }
1535
+ updateselectedKeys() {
1536
+ const dataKey = this.dataKey();
1537
+ if (dataKey && this.selection()) {
1538
+ this.selectedKeys = {};
1539
+ if (Array.isArray(this.selection())) {
1540
+ for (let node of this.selection()) {
1541
+ this.selectedKeys[String(resolveFieldData(node.data, dataKey))] = 1;
1542
+ }
1543
+ }
1544
+ else {
1545
+ this.selectedKeys[String(resolveFieldData(this.selection().data, dataKey))] = 1;
1546
+ }
1547
+ }
1548
+ }
1549
+ onPageChange(event) {
1550
+ this.first.set(event.first);
1551
+ this.rows.set(event.rows);
1552
+ if (this.lazy())
1553
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
1554
+ else
1555
+ this.serializePageNodes();
1556
+ this.onPage.emit({
1557
+ first: this.first(),
1558
+ rows: this.rows()
1559
+ });
1560
+ this.tableService.onUIUpdate(this.value());
1561
+ if (this.scrollable()) {
1562
+ this.resetScrollTop();
1563
+ }
1564
+ }
1565
+ sort(event) {
1566
+ let originalEvent = event.originalEvent;
1567
+ const sortMode = this.sortMode();
1568
+ const scrollable = this.scrollable();
1569
+ const resetPageOnSort = this.resetPageOnSort();
1570
+ if (sortMode === 'single') {
1571
+ this.sortOrder.set(this.sortField() === event.field ? this.sortOrder() * -1 : this.defaultSortOrder());
1572
+ this.sortField.set(event.field);
1573
+ this.sortSingle();
1574
+ if (resetPageOnSort && scrollable) {
1575
+ this.resetScrollTop();
1576
+ }
1577
+ }
1578
+ if (sortMode === 'multiple') {
1579
+ let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;
1580
+ let sortMeta = this.getSortMeta(event.field);
1581
+ if (sortMeta) {
1582
+ if (!metaKey) {
1583
+ this.multiSortMeta.set([{ field: event.field, order: sortMeta.order * -1 }]);
1584
+ if (resetPageOnSort && scrollable) {
1585
+ this.resetScrollTop();
1586
+ }
1587
+ }
1588
+ else {
1589
+ sortMeta.order = sortMeta.order * -1;
1590
+ }
1591
+ }
1592
+ else {
1593
+ if (!metaKey || !this.multiSortMeta()) {
1594
+ this.multiSortMeta.set([]);
1595
+ if (resetPageOnSort && scrollable) {
1596
+ this.resetScrollTop();
1597
+ }
1598
+ }
1599
+ this.multiSortMeta().push({ field: event.field, order: this.defaultSortOrder() });
1600
+ }
1601
+ this.sortMultiple();
1602
+ }
1603
+ }
1604
+ sortSingle() {
1605
+ if (this.sortField() && this.sortOrder()) {
1606
+ if (this.lazy()) {
1607
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
1608
+ }
1609
+ else if (this.value()) {
1610
+ this.sortNodes(this.value());
1611
+ if (this.hasFilter()) {
1612
+ this._filter();
1613
+ }
1614
+ }
1615
+ let sortMeta = {
1616
+ field: this.sortField(),
1617
+ order: this.sortOrder()
1618
+ };
1619
+ this.onSort.emit(sortMeta);
1620
+ this.tableService.onSort(sortMeta);
1621
+ this.updateSerializedValue();
1622
+ }
1623
+ }
1624
+ sortNodes(nodes) {
1625
+ if (!nodes || nodes.length === 0) {
1626
+ return;
1627
+ }
1628
+ if (this.customSort()) {
1629
+ this.sortFunction.emit({
1630
+ data: nodes,
1631
+ mode: this.sortMode(),
1632
+ field: this.sortField(),
1633
+ order: this.sortOrder()
1634
+ });
1635
+ }
1636
+ else {
1637
+ nodes.sort((node1, node2) => {
1638
+ let value1 = resolveFieldData(node1.data, this.sortField());
1639
+ let value2 = resolveFieldData(node2.data, this.sortField());
1640
+ let result = 0;
1641
+ if (value1 == null && value2 != null)
1642
+ result = -1;
1643
+ else if (value1 != null && value2 == null)
1644
+ result = 1;
1645
+ else if (value1 == null && value2 == null)
1646
+ result = 0;
1647
+ else if (typeof value1 === 'string' && typeof value2 === 'string')
1648
+ result = value1.localeCompare(value2, undefined, { numeric: true });
1649
+ else
1650
+ result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;
1651
+ return this.sortOrder() * result;
1652
+ });
1653
+ }
1654
+ for (let node of nodes) {
1655
+ this.sortNodes(node.children);
1656
+ }
1657
+ }
1658
+ sortMultiple() {
1659
+ if (this.multiSortMeta()) {
1660
+ if (this.lazy()) {
1661
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
1662
+ }
1663
+ else if (this.value()) {
1664
+ this.sortMultipleNodes(this.value());
1665
+ if (this.hasFilter()) {
1666
+ this._filter();
1667
+ }
1668
+ }
1669
+ this.onSort.emit({
1670
+ multisortmeta: this.multiSortMeta()
1671
+ });
1672
+ this.updateSerializedValue();
1673
+ this.tableService.onSort(this.multiSortMeta());
1674
+ }
1675
+ }
1676
+ sortMultipleNodes(nodes) {
1677
+ if (!nodes || nodes.length === 0) {
1678
+ return;
1679
+ }
1680
+ if (this.customSort()) {
1681
+ this.sortFunction.emit({
1682
+ data: this.value(),
1683
+ mode: this.sortMode(),
1684
+ multiSortMeta: this.multiSortMeta()
1685
+ });
1686
+ }
1687
+ else {
1688
+ nodes.sort((node1, node2) => {
1689
+ return this.multisortField(node1, node2, this.multiSortMeta(), 0);
1690
+ });
1691
+ }
1692
+ for (let node of nodes) {
1693
+ this.sortMultipleNodes(node.children);
1694
+ }
1695
+ }
1696
+ multisortField(node1, node2, multiSortMeta, index) {
1697
+ if (isEmpty(this.multiSortMeta()) || isEmpty(multiSortMeta[index])) {
1698
+ return 0;
1699
+ }
1700
+ let value1 = resolveFieldData(node1.data, multiSortMeta[index].field);
1701
+ let value2 = resolveFieldData(node2.data, multiSortMeta[index].field);
1702
+ let result = 0;
1703
+ if (value1 == null && value2 != null)
1704
+ result = -1;
1705
+ else if (value1 != null && value2 == null)
1706
+ result = 1;
1707
+ else if (value1 == null && value2 == null)
1708
+ result = 0;
1709
+ if (typeof value1 == 'string' || value1 instanceof String) {
1710
+ if (value1.localeCompare && value1 != value2) {
1711
+ return multiSortMeta[index].order * value1.localeCompare(value2, undefined, { numeric: true });
1712
+ }
1713
+ }
1714
+ else {
1715
+ result = value1 < value2 ? -1 : 1;
1716
+ }
1717
+ if (value1 == value2) {
1718
+ return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;
1719
+ }
1720
+ return multiSortMeta[index].order * result;
1721
+ }
1722
+ getSortMeta(field) {
1723
+ const multiSortMeta = this.multiSortMeta();
1724
+ if (multiSortMeta && multiSortMeta.length) {
1725
+ for (let i = 0; i < multiSortMeta.length; i++) {
1726
+ if (multiSortMeta[i].field === field) {
1727
+ return multiSortMeta[i];
1728
+ }
1729
+ }
1730
+ }
1731
+ return null;
1732
+ }
1733
+ isSorted(field) {
1734
+ const sortMode = this.sortMode();
1735
+ if (sortMode === 'single') {
1736
+ return this.sortField() && this.sortField() === field;
1737
+ }
1738
+ else if (sortMode === 'multiple') {
1739
+ let sorted = false;
1740
+ const multiSortMeta = this.multiSortMeta();
1741
+ if (multiSortMeta) {
1742
+ for (let i = 0; i < multiSortMeta.length; i++) {
1743
+ if (multiSortMeta[i].field == field) {
1744
+ sorted = true;
1745
+ break;
1746
+ }
1747
+ }
1748
+ }
1749
+ return sorted;
1750
+ }
1751
+ }
1752
+ createLazyLoadMetadata() {
1753
+ return {
1754
+ first: this.first(),
1755
+ rows: this.rows(),
1756
+ sortField: this.sortField(),
1757
+ sortOrder: this.sortOrder(),
1758
+ filters: this.filters(),
1759
+ globalFilter: this.filters() && this.filters()['global'] ? this.filters()['global'].value : null,
1760
+ multiSortMeta: this.multiSortMeta(),
1761
+ forceUpdate: () => this.cd.detectChanges()
1762
+ };
1763
+ }
1764
+ onLazyItemLoad(event) {
1765
+ this.onLazyLoad.emit({
1766
+ ...this.createLazyLoadMetadata(),
1767
+ ...event,
1768
+ rows: event.last - event.first
1769
+ });
1770
+ }
1771
+ /**
1772
+ * Resets scroll to top.
1773
+ * @group Method
1774
+ */
1775
+ resetScrollTop() {
1776
+ if (this.virtualScroll())
1777
+ this.scrollToVirtualIndex(0);
1778
+ else
1779
+ this.scrollTo({ top: 0 });
1780
+ }
1781
+ /**
1782
+ * Scrolls to given index when using virtual scroll.
1783
+ * @param {number} index - index of the element.
1784
+ * @group Method
1785
+ */
1786
+ scrollToVirtualIndex(index) {
1787
+ const scrollableViewChild = this.scrollableViewChild();
1788
+ if (scrollableViewChild) {
1789
+ scrollableViewChild.scrollToVirtualIndex(index);
1790
+ }
1791
+ if (this.scrollableFrozenViewChild()) {
1792
+ scrollableViewChild.scrollToVirtualIndex(index);
1793
+ }
1794
+ }
1795
+ /**
1796
+ * Scrolls to given index.
1797
+ * @param {ScrollToOptions} options - Scroll options.
1798
+ * @group Method
1799
+ */
1800
+ scrollTo(options) {
1801
+ const scrollableViewChild = this.scrollableViewChild();
1802
+ if (scrollableViewChild) {
1803
+ scrollableViewChild.scrollTo(options);
1804
+ }
1805
+ if (this.scrollableFrozenViewChild()) {
1806
+ scrollableViewChild.scrollTo(options);
1807
+ }
1808
+ }
1809
+ isEmpty() {
1810
+ let data = this.filteredNodes || this.value();
1811
+ return data == null || data.length == 0;
1812
+ }
1813
+ getBlockableElement() {
1814
+ return this.el.nativeElement.children[0];
1815
+ }
1816
+ onColumnResizeBegin(event) {
1817
+ let containerLeft = getOffset(this.el?.nativeElement).left;
1818
+ this.lastResizerHelperX = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft;
1819
+ event.preventDefault();
1820
+ }
1821
+ onColumnResize(event) {
1822
+ let containerLeft = getOffset(this.el?.nativeElement).left;
1823
+ this.el?.nativeElement.setAttribute('data-h-unselectable-text', 'true');
1824
+ !this.$unstyled() && addStyle(this.el.nativeElement, { 'user-select': 'none' });
1825
+ this.resizeHelperViewChild().nativeElement.style.height = this.el?.nativeElement.offsetHeight + 'px';
1826
+ this.resizeHelperViewChild().nativeElement.style.top = 0 + 'px';
1827
+ this.resizeHelperViewChild().nativeElement.style.left = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';
1828
+ this.resizeHelperViewChild().nativeElement.style.display = 'block';
1829
+ }
1830
+ onColumnResizeEnd(event, column) {
1831
+ let delta = this.resizeHelperViewChild().nativeElement.offsetLeft - this.lastResizerHelperX;
1832
+ let columnWidth = column.offsetWidth;
1833
+ let newColumnWidth = columnWidth + delta;
1834
+ let minWidth = column.style.minWidth || 15;
1835
+ if (columnWidth + delta > parseInt(minWidth)) {
1836
+ const columnResizeMode = this.columnResizeMode();
1837
+ if (columnResizeMode === 'fit') {
1838
+ let nextColumn = column.nextElementSibling;
1839
+ while (!nextColumn.offsetParent) {
1840
+ nextColumn = nextColumn.nextElementSibling;
1841
+ }
1842
+ if (nextColumn) {
1843
+ let nextColumnWidth = nextColumn.offsetWidth - delta;
1844
+ let nextColumnMinWidth = nextColumn.style.minWidth || 15;
1845
+ if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {
1846
+ if (this.scrollable()) {
1847
+ let scrollableView = this.findParentScrollableView(column);
1848
+ let scrollableBodyTable = findSingle(scrollableView, '[data-pc-section="scrollablebody"] table') || findSingle(scrollableView, '[data-pc-name="virtualscroller"] table');
1849
+ let scrollableHeaderTable = findSingle(scrollableView, '[data-pc-section="scrollableheadertable"]');
1850
+ let scrollableFooterTable = findSingle(scrollableView, '[data-pc-section="scrollablefootertable"]');
1851
+ let resizeColumnIndex = getIndex(column);
1852
+ this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
1853
+ this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
1854
+ this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
1855
+ }
1856
+ else {
1857
+ column.style.width = newColumnWidth + 'px';
1858
+ if (nextColumn) {
1859
+ nextColumn.style.width = nextColumnWidth + 'px';
1860
+ }
1861
+ }
1862
+ }
1863
+ }
1864
+ }
1865
+ else if (columnResizeMode === 'expand') {
1866
+ if (this.scrollable()) {
1867
+ let scrollableView = this.findParentScrollableView(column);
1868
+ let scrollableBody = findSingle(scrollableView, '[data-pc-section="scrollablebody"]') || findSingle(scrollableView, '[data-pc-name="virtualscroller"]');
1869
+ let scrollableHeader = findSingle(scrollableView, '[data-pc-section="scrollableheader"]');
1870
+ let scrollableFooter = findSingle(scrollableView, '[data-pc-section="scrollablefooter"]');
1871
+ let scrollableBodyTable = findSingle(scrollableView, '[data-pc-section="scrollablebody"] table') || findSingle(scrollableView, '[data-pc-name="virtualscroller"] table');
1872
+ let scrollableHeaderTable = findSingle(scrollableView, '[data-pc-section="scrollableheadertable"]');
1873
+ let scrollableFooterTable = findSingle(scrollableView, '[data-pc-section="scrollablefootertable"]');
1874
+ scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';
1875
+ scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';
1876
+ if (scrollableFooterTable) {
1877
+ scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';
1878
+ }
1879
+ let resizeColumnIndex = getIndex(column);
1880
+ const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;
1881
+ const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;
1882
+ const isContainerInViewport = this.el?.nativeElement.offsetWidth >= scrollableBodyTableWidth;
1883
+ let setWidth = (container, table, width, isContainerInViewport) => {
1884
+ if (container && table) {
1885
+ container.style.width = isContainerInViewport ? width + calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';
1886
+ table.style.width = width + 'px';
1887
+ }
1888
+ };
1889
+ setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);
1890
+ setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);
1891
+ setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);
1892
+ this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);
1893
+ this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);
1894
+ this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);
1895
+ }
1896
+ else {
1897
+ const tableViewChild = this.tableViewChild();
1898
+ this.tableViewChild().nativeElement.style.width = tableViewChild?.nativeElement.offsetWidth + delta + 'px';
1899
+ column.style.width = newColumnWidth + 'px';
1900
+ let containerWidth = tableViewChild?.nativeElement.style.width;
1901
+ this.el.nativeElement.style.width = containerWidth + 'px';
1902
+ }
1903
+ }
1904
+ this.onColResize.emit({
1905
+ element: column,
1906
+ delta: delta
1907
+ });
1908
+ }
1909
+ this.resizeHelperViewChild().nativeElement.style.display = 'none';
1910
+ this.el.nativeElement.removeAttribute('data-h-unselectable-text');
1911
+ !this.$unstyled() && (this.el.nativeElement.style['user-select'] = '');
1912
+ }
1913
+ findParentScrollableView(column) {
1914
+ if (column) {
1915
+ let parent = column.parentElement;
1916
+ while (parent && !findSingle(parent, '[data-pc-section="scrollableview"]')) {
1917
+ parent = parent.parentElement;
1918
+ }
1919
+ return parent;
1920
+ }
1921
+ else {
1922
+ return null;
1923
+ }
1924
+ }
1925
+ resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {
1926
+ if (table) {
1927
+ let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;
1928
+ if (colGroup) {
1929
+ let col = colGroup.children[resizeColumnIndex];
1930
+ let nextCol = col.nextElementSibling;
1931
+ col.style.width = newColumnWidth + 'px';
1932
+ if (nextCol && nextColumnWidth) {
1933
+ nextCol.style.width = nextColumnWidth + 'px';
1934
+ }
1935
+ }
1936
+ else {
1937
+ throw 'Scrollable tables require a colgroup to support resizable columns';
1938
+ }
1939
+ }
1940
+ }
1941
+ onColumnDragStart(event, columnElement) {
1942
+ this.reorderIconWidth = getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild()?.nativeElement);
1943
+ this.reorderIconHeight = getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild()?.nativeElement);
1944
+ this.draggedColumn = columnElement;
1945
+ event.dataTransfer.setData('text', 'b'); // For firefox
1946
+ }
1947
+ onColumnDragEnter(event, dropHeader) {
1948
+ if (this.reorderableColumns() && this.draggedColumn && dropHeader) {
1949
+ event.preventDefault();
1950
+ let containerOffset = getOffset(this.el?.nativeElement);
1951
+ let dropHeaderOffset = getOffset(dropHeader);
1952
+ if (this.draggedColumn != dropHeader) {
1953
+ let targetLeft = dropHeaderOffset.left - containerOffset.left;
1954
+ let targetTop = containerOffset.top - dropHeaderOffset.top;
1955
+ let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;
1956
+ this.reorderIndicatorUpViewChild().nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (this.reorderIconHeight - 1) + 'px';
1957
+ this.reorderIndicatorDownViewChild().nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';
1958
+ if (event.pageX > columnCenter) {
1959
+ this.reorderIndicatorUpViewChild().nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';
1960
+ this.reorderIndicatorDownViewChild().nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';
1961
+ this.dropPosition = 1;
1962
+ }
1963
+ else {
1964
+ this.reorderIndicatorUpViewChild().nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';
1965
+ this.reorderIndicatorDownViewChild().nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';
1966
+ this.dropPosition = -1;
1967
+ }
1968
+ this.reorderIndicatorUpViewChild().nativeElement.style.display = 'block';
1969
+ this.reorderIndicatorDownViewChild().nativeElement.style.display = 'block';
1970
+ }
1971
+ else {
1972
+ event.dataTransfer.dropEffect = 'none';
1973
+ }
1974
+ }
1975
+ }
1976
+ onColumnDragLeave(event) {
1977
+ if (this.reorderableColumns() && this.draggedColumn) {
1978
+ event.preventDefault();
1979
+ this.reorderIndicatorUpViewChild().nativeElement.style.display = 'none';
1980
+ this.reorderIndicatorDownViewChild().nativeElement.style.display = 'none';
1981
+ }
1982
+ }
1983
+ onColumnDrop(event, dropColumn) {
1984
+ event.preventDefault();
1985
+ if (this.draggedColumn) {
1986
+ let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'ttreorderablecolumn');
1987
+ let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');
1988
+ let allowDrop = dragIndex != dropIndex;
1989
+ if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {
1990
+ allowDrop = false;
1991
+ }
1992
+ if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {
1993
+ dropIndex = dropIndex + 1;
1994
+ }
1995
+ if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {
1996
+ dropIndex = dropIndex - 1;
1997
+ }
1998
+ if (allowDrop) {
1999
+ const columns = this.columns();
2000
+ reorderArray(columns, dragIndex, dropIndex);
2001
+ this.onColReorder.emit({
2002
+ dragIndex: dragIndex,
2003
+ dropIndex: dropIndex,
2004
+ columns: columns
2005
+ });
2006
+ }
2007
+ this.reorderIndicatorUpViewChild().nativeElement.style.display = 'none';
2008
+ this.reorderIndicatorDownViewChild().nativeElement.style.display = 'none';
2009
+ this.draggedColumn.draggable = false;
2010
+ this.draggedColumn = null;
2011
+ this.dropPosition = null;
2012
+ }
2013
+ }
2014
+ handleRowClick(event) {
2015
+ let targetNode = event.originalEvent.target.nodeName;
2016
+ if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || isClickable(event.originalEvent.target)) {
2017
+ return;
2018
+ }
2019
+ const selectionMode = this.selectionMode();
2020
+ if (selectionMode) {
2021
+ this.preventSelectionSetterPropagation = true;
2022
+ let rowNode = event.rowNode;
2023
+ let selected = this.isSelected(rowNode.node);
2024
+ let metaSelection = this.rowTouched ? false : this.metaKeySelection();
2025
+ const dataKey = this.dataKey();
2026
+ let dataKeyValue = dataKey ? String(resolveFieldData(rowNode.node.data, dataKey)) : null;
2027
+ if (metaSelection) {
2028
+ let keyboardEvent = event.originalEvent;
2029
+ let metaKey = keyboardEvent.metaKey || keyboardEvent.ctrlKey;
2030
+ if (selected && metaKey) {
2031
+ if (this.isSingleSelectionMode()) {
2032
+ this.selection.set(null);
2033
+ this.selectedKeys = {};
2034
+ }
2035
+ else {
2036
+ let selectionIndex = this.findIndexInSelection(rowNode.node);
2037
+ this.selection.set(this.selection().filter((val, i) => i != selectionIndex));
2038
+ if (dataKeyValue) {
2039
+ delete this.selectedKeys[dataKeyValue];
2040
+ }
2041
+ }
2042
+ this.onNodeUnselect.emit({
2043
+ originalEvent: event.originalEvent,
2044
+ node: rowNode.node,
2045
+ type: 'row'
2046
+ });
2047
+ }
2048
+ else {
2049
+ if (this.isSingleSelectionMode()) {
2050
+ this.selection.set(rowNode.node);
2051
+ if (dataKeyValue) {
2052
+ this.selectedKeys = {};
2053
+ this.selectedKeys[dataKeyValue] = 1;
2054
+ }
2055
+ }
2056
+ else if (this.isMultipleSelectionMode()) {
2057
+ if (metaKey) {
2058
+ this.selection.set(this.selection() || []);
2059
+ }
2060
+ else {
2061
+ this.selection.set([]);
2062
+ this.selectedKeys = {};
2063
+ }
2064
+ this.selection.set([...this.selection(), rowNode.node]);
2065
+ if (dataKeyValue) {
2066
+ this.selectedKeys[dataKeyValue] = 1;
2067
+ }
2068
+ }
2069
+ this.onNodeSelect.emit({
2070
+ originalEvent: event.originalEvent,
2071
+ node: rowNode.node,
2072
+ type: 'row',
2073
+ index: event.rowIndex
2074
+ });
2075
+ }
2076
+ }
2077
+ else {
2078
+ if (selectionMode === 'single') {
2079
+ if (selected) {
2080
+ this.selection.set(null);
2081
+ this.selectedKeys = {};
2082
+ this.onNodeUnselect.emit({
2083
+ originalEvent: event.originalEvent,
2084
+ node: rowNode.node,
2085
+ type: 'row'
2086
+ });
2087
+ }
2088
+ else {
2089
+ this.selection.set(rowNode.node);
2090
+ this.onNodeSelect.emit({
2091
+ originalEvent: event.originalEvent,
2092
+ node: rowNode.node,
2093
+ type: 'row',
2094
+ index: event.rowIndex
2095
+ });
2096
+ if (dataKeyValue) {
2097
+ this.selectedKeys = {};
2098
+ this.selectedKeys[dataKeyValue] = 1;
2099
+ }
2100
+ }
2101
+ }
2102
+ else if (selectionMode === 'multiple') {
2103
+ if (selected) {
2104
+ let selectionIndex = this.findIndexInSelection(rowNode.node);
2105
+ this.selection.set(this.selection().filter((val, i) => i != selectionIndex));
2106
+ this.onNodeUnselect.emit({
2107
+ originalEvent: event.originalEvent,
2108
+ node: rowNode.node,
2109
+ type: 'row'
2110
+ });
2111
+ if (dataKeyValue) {
2112
+ delete this.selectedKeys[dataKeyValue];
2113
+ }
2114
+ }
2115
+ else {
2116
+ this.selection.set(this.selection() ? [...this.selection(), rowNode.node] : [rowNode.node]);
2117
+ this.onNodeSelect.emit({
2118
+ originalEvent: event.originalEvent,
2119
+ node: rowNode.node,
2120
+ type: 'row',
2121
+ index: event.rowIndex
2122
+ });
2123
+ if (dataKeyValue) {
2124
+ this.selectedKeys[dataKeyValue] = 1;
2125
+ }
2126
+ }
2127
+ }
2128
+ }
2129
+ this.tableService.onSelectionChange();
2130
+ }
2131
+ this.rowTouched = false;
2132
+ }
2133
+ handleRowTouchEnd(event) {
2134
+ this.rowTouched = true;
2135
+ }
2136
+ handleRowRightClick(event) {
2137
+ if (this.contextMenu()) {
2138
+ const node = event.rowNode.node;
2139
+ const showContextMenu = () => {
2140
+ this.contextMenu().show(event.originalEvent);
2141
+ this.contextMenu().hideCallback = () => {
2142
+ this.contextMenuSelection.set(null);
2143
+ this.tableService.onContextMenu(null);
2144
+ };
2145
+ };
2146
+ const contextMenuSelectionMode = this.contextMenuSelectionMode();
2147
+ if (contextMenuSelectionMode === 'separate') {
2148
+ this.contextMenuSelection.set(node);
2149
+ this.tableService.onContextMenu(node);
2150
+ showContextMenu();
2151
+ this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });
2152
+ }
2153
+ else if (contextMenuSelectionMode === 'joint') {
2154
+ this.preventSelectionSetterPropagation = true;
2155
+ let selected = this.isSelected(node);
2156
+ const dataKey = this.dataKey();
2157
+ let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;
2158
+ if (!selected) {
2159
+ if (this.isSingleSelectionMode()) {
2160
+ this.selection.set(node);
2161
+ }
2162
+ else if (this.isMultipleSelectionMode()) {
2163
+ this.selection.set([node]);
2164
+ }
2165
+ if (dataKeyValue) {
2166
+ this.selectedKeys[dataKeyValue] = 1;
2167
+ }
2168
+ }
2169
+ this.contextMenuSelection.set(node);
2170
+ this.tableService.onContextMenu(node);
2171
+ showContextMenu();
2172
+ this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });
2173
+ }
2174
+ }
2175
+ }
2176
+ toggleNodeWithCheckbox(event) {
2177
+ // legacy selection support, will be removed in v18
2178
+ this.selection.set(this.selection() || []);
2179
+ this.preventSelectionSetterPropagation = true;
2180
+ let node = event.rowNode.node;
2181
+ let selected = this.isSelected(node);
2182
+ if (selected) {
2183
+ this.propagateSelectionDown(node, false);
2184
+ if (event.rowNode.parent) {
2185
+ this.propagateSelectionUp(node.parent, false);
2186
+ }
2187
+ this.onNodeUnselect.emit({ originalEvent: event, node: node });
2188
+ }
2189
+ else {
2190
+ this.propagateSelectionDown(node, true);
2191
+ if (event.rowNode.parent) {
2192
+ this.propagateSelectionUp(node.parent, true);
2193
+ }
2194
+ this.onNodeSelect.emit({ originalEvent: event, node: node });
2195
+ }
2196
+ this.tableService.onSelectionChange();
2197
+ }
2198
+ toggleNodesWithCheckbox(event, check) {
2199
+ // legacy selection support, will be removed in v18
2200
+ let data = this.filteredNodes || this.value();
2201
+ this.selection.set(check && data ? data.slice() : []);
2202
+ this.toggleAll(check);
2203
+ if (!check) {
2204
+ this.selection.set([]);
2205
+ this.selectedKeys = {};
2206
+ }
2207
+ this.preventSelectionSetterPropagation = true;
2208
+ this.tableService.onSelectionChange();
2209
+ this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });
2210
+ }
2211
+ toggleAll(checked) {
2212
+ let data = this.filteredNodes || this.value();
2213
+ if (!this.selectionKeys()) {
2214
+ if (data && data.length) {
2215
+ for (let node of data) {
2216
+ this.propagateSelectionDown(node, checked);
2217
+ }
2218
+ }
2219
+ }
2220
+ else {
2221
+ // legacy selection support, will be removed in v18
2222
+ if (data && data.length) {
2223
+ for (let node of data) {
2224
+ this.propagateDown(node, checked);
2225
+ }
2226
+ // selectionKeys is mutated in place above; re-set with a shallow clone so the
2227
+ // selectionKeys model signal detects the change and emits selectionKeysChange.
2228
+ this.selectionKeys.set({ ...this.selectionKeys() });
2229
+ }
2230
+ }
2231
+ }
2232
+ propagateSelectionUp(node, select) {
2233
+ // legacy selection support, will be removed in v18
2234
+ if (node.children && node.children.length) {
2235
+ let selectedChildCount = 0;
2236
+ let childPartialSelected = false;
2237
+ const dataKey = this.dataKey();
2238
+ let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;
2239
+ for (let child of node.children) {
2240
+ if (this.isSelected(child))
2241
+ selectedChildCount++;
2242
+ else if (child.partialSelected)
2243
+ childPartialSelected = true;
2244
+ }
2245
+ if (select && selectedChildCount == node.children.length) {
2246
+ this.selection.set([...(this.selection() || []), node]);
2247
+ node.partialSelected = false;
2248
+ if (dataKeyValue) {
2249
+ this.selectedKeys[dataKeyValue] = 1;
2250
+ }
2251
+ }
2252
+ else {
2253
+ if (!select) {
2254
+ let index = this.findIndexInSelection(node);
2255
+ if (index >= 0) {
2256
+ this.selection.set(this.selection().filter((val, i) => i != index));
2257
+ if (dataKeyValue) {
2258
+ delete this.selectedKeys[dataKeyValue];
2259
+ }
2260
+ }
2261
+ }
2262
+ if (childPartialSelected || (selectedChildCount > 0 && selectedChildCount != node.children.length))
2263
+ node.partialSelected = true;
2264
+ else
2265
+ node.partialSelected = false;
2266
+ }
2267
+ }
2268
+ let parent = node.parent;
2269
+ node.checked = select;
2270
+ if (parent) {
2271
+ this.propagateSelectionUp(parent, select);
2272
+ }
2273
+ }
2274
+ propagateSelectionDown(node, select) {
2275
+ // legacy selection support, will be removed in v18
2276
+ let index = this.findIndexInSelection(node);
2277
+ const dataKey = this.dataKey();
2278
+ let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;
2279
+ if (select && index == -1) {
2280
+ this.selection.set([...(this.selection() || []), node]);
2281
+ if (dataKeyValue) {
2282
+ this.selectedKeys[dataKeyValue] = 1;
2283
+ }
2284
+ }
2285
+ else if (!select && index > -1) {
2286
+ this.selection.set(this.selection().filter((val, i) => i != index));
2287
+ if (dataKeyValue) {
2288
+ delete this.selectedKeys[dataKeyValue];
2289
+ }
2290
+ }
2291
+ node.partialSelected = false;
2292
+ node.checked = select;
2293
+ if (node.children && node.children.length) {
2294
+ for (let child of node.children) {
2295
+ this.propagateSelectionDown(child, select);
2296
+ }
2297
+ }
2298
+ }
2299
+ isSelected(node) {
2300
+ // legacy selection support, will be removed in v18
2301
+ if (node && this.selection()) {
2302
+ const dataKey = this.dataKey();
2303
+ if (dataKey) {
2304
+ if (node.hasOwnProperty('checked')) {
2305
+ return node['checked'];
2306
+ }
2307
+ else {
2308
+ return this.selectedKeys[resolveFieldData(node.data, dataKey)] !== undefined;
2309
+ }
2310
+ }
2311
+ else {
2312
+ if (Array.isArray(this.selection()))
2313
+ return this.findIndexInSelection(node) > -1;
2314
+ else
2315
+ return this.equals(node, this.selection());
2316
+ }
2317
+ }
2318
+ return false;
2319
+ }
2320
+ isNodeSelected(node) {
2321
+ return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.checked === true : false;
2322
+ }
2323
+ isNodePartialSelected(node) {
2324
+ return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.partialChecked === true : false;
2325
+ }
2326
+ nodeKey(node) {
2327
+ const dataKey = this.dataKey();
2328
+ return resolveFieldData(node, dataKey) || resolveFieldData(node?.data, dataKey);
2329
+ }
2330
+ toggleCheckbox(event) {
2331
+ let { rowNode, check, originalEvent } = event;
2332
+ let node = rowNode.node;
2333
+ if (this.selectionKeys()) {
2334
+ this.propagateDown(node, check);
2335
+ if (node.parent) {
2336
+ this.propagateUp(node.parent, check);
2337
+ }
2338
+ // selectionKeys is mutated in place above; re-set with a shallow clone so the
2339
+ // selectionKeys model signal detects the change and emits selectionKeysChange.
2340
+ this.selectionKeys.set({ ...this.selectionKeys() });
2341
+ }
2342
+ else {
2343
+ this.toggleNodeWithCheckbox({ originalEvent, rowNode });
2344
+ }
2345
+ this.tableService.onSelectionChange();
2346
+ }
2347
+ propagateDown(node, check) {
2348
+ if (check) {
2349
+ this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };
2350
+ }
2351
+ else {
2352
+ delete this.selectionKeys()[this.nodeKey(node)];
2353
+ }
2354
+ if (node.children && node.children.length) {
2355
+ for (let child of node.children) {
2356
+ this.propagateDown(child, check);
2357
+ }
2358
+ }
2359
+ }
2360
+ propagateUp(node, check) {
2361
+ let checkedChildCount = 0;
2362
+ let childPartialSelected = false;
2363
+ for (let child of node.children) {
2364
+ if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].checked)
2365
+ checkedChildCount++;
2366
+ else if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].partialChecked)
2367
+ childPartialSelected = true;
2368
+ }
2369
+ if (check && checkedChildCount === node.children.length) {
2370
+ this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };
2371
+ }
2372
+ else {
2373
+ if (!check) {
2374
+ delete this.selectionKeys()[this.nodeKey(node)];
2375
+ }
2376
+ if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length))
2377
+ this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: true };
2378
+ else
2379
+ this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: false };
2380
+ }
2381
+ let parent = node.parent;
2382
+ if (parent) {
2383
+ this.propagateUp(parent, check);
2384
+ }
2385
+ }
2386
+ findIndexInSelection(node) {
2387
+ let index = -1;
2388
+ if (this.selection() && this.selection().length) {
2389
+ for (let i = 0; i < this.selection().length; i++) {
2390
+ if (this.equals(node, this.selection()[i])) {
2391
+ index = i;
2392
+ break;
2393
+ }
2394
+ }
2395
+ }
2396
+ return index;
2397
+ }
2398
+ isSingleSelectionMode() {
2399
+ return this.selectionMode() === 'single';
2400
+ }
2401
+ isMultipleSelectionMode() {
2402
+ return this.selectionMode() === 'multiple';
2403
+ }
2404
+ equals(node1, node2) {
2405
+ return this.compareSelectionBy() === 'equals' ? equals(node1, node2) : equals(node1.data, node2.data, this.dataKey());
2406
+ }
2407
+ filter(value, field, matchMode) {
2408
+ if (this.filterTimeout) {
2409
+ clearTimeout(this.filterTimeout);
2410
+ }
2411
+ if (!this.isFilterBlank(value)) {
2412
+ this.filters()[field] = { value: value, matchMode: matchMode };
2413
+ }
2414
+ else if (this.filters()[field]) {
2415
+ delete this.filters()[field];
2416
+ }
2417
+ this.filterTimeout = setTimeout(() => {
2418
+ this._filter();
2419
+ this.filterTimeout = null;
2420
+ }, this.filterDelay());
2421
+ }
2422
+ filterGlobal(value, matchMode) {
2423
+ this.filter(value, 'global', matchMode);
2424
+ }
2425
+ isFilterBlank(filter) {
2426
+ if (filter !== null && filter !== undefined) {
2427
+ if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0))
2428
+ return true;
2429
+ else
2430
+ return false;
2431
+ }
2432
+ return true;
2433
+ }
2434
+ _filter() {
2435
+ if (this.lazy()) {
2436
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
2437
+ }
2438
+ else {
2439
+ const value = this.value();
2440
+ if (!value) {
2441
+ return;
2442
+ }
2443
+ if (!this.hasFilter()) {
2444
+ this.filteredNodes = null;
2445
+ if (this.paginator()) {
2446
+ this.totalRecords.set(value ? value.length : 0);
2447
+ }
2448
+ }
2449
+ else {
2450
+ let globalFilterFieldsArray;
2451
+ if (this.filters()['global']) {
2452
+ const columns = this.columns();
2453
+ const globalFilterFields = this.globalFilterFields();
2454
+ if (!columns && !globalFilterFields)
2455
+ throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');
2456
+ else
2457
+ globalFilterFieldsArray = globalFilterFields || columns;
2458
+ }
2459
+ this.filteredNodes = [];
2460
+ const isStrictMode = this.filterMode() === 'strict';
2461
+ let isValueChanged = false;
2462
+ for (let node of value) {
2463
+ let copyNode = { ...node };
2464
+ let localMatch = true;
2465
+ let globalMatch = false;
2466
+ let paramsWithoutNode;
2467
+ for (let prop in this.filters()) {
2468
+ if (this.filters().hasOwnProperty(prop) && prop !== 'global') {
2469
+ let filterMeta = this.filters()[prop];
2470
+ let filterField = prop;
2471
+ let filterValue = filterMeta.value;
2472
+ let filterMatchMode = filterMeta.matchMode || 'startsWith';
2473
+ let filterConstraint = this.filterService.filters[filterMatchMode];
2474
+ paramsWithoutNode = { filterField, filterValue, filterConstraint, isStrictMode };
2475
+ if ((isStrictMode && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||
2476
+ (!isStrictMode && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {
2477
+ localMatch = false;
2478
+ }
2479
+ if (!localMatch) {
2480
+ break;
2481
+ }
2482
+ }
2483
+ }
2484
+ if (this.filters()['global'] && !globalMatch && globalFilterFieldsArray) {
2485
+ let copyNodeForGlobal = { ...copyNode };
2486
+ let filterField = undefined;
2487
+ let filterValue = this.filters()['global'].value;
2488
+ let filterConstraint = this.filterService.filters[this.filters()['global'].matchMode];
2489
+ paramsWithoutNode = {
2490
+ filterField,
2491
+ filterValue,
2492
+ filterConstraint,
2493
+ isStrictMode,
2494
+ globalFilterFieldsArray
2495
+ };
2496
+ if ((isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||
2497
+ (!isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))) {
2498
+ globalMatch = true;
2499
+ copyNode = copyNodeForGlobal;
2500
+ }
2501
+ }
2502
+ let matches = localMatch;
2503
+ if (this.filters()['global']) {
2504
+ matches = localMatch && globalMatch;
2505
+ }
2506
+ if (matches) {
2507
+ this.filteredNodes.push(copyNode);
2508
+ }
2509
+ isValueChanged = isValueChanged || !localMatch || globalMatch || (localMatch && this.filteredNodes.length > 0) || (!globalMatch && this.filteredNodes.length === 0);
2510
+ }
2511
+ if (!isValueChanged) {
2512
+ this.filteredNodes = null;
2513
+ }
2514
+ if (this.paginator()) {
2515
+ this.totalRecords.set(this.filteredNodes ? this.filteredNodes.length : value ? value.length : 0);
2516
+ }
2517
+ }
2518
+ this.cd.markForCheck();
2519
+ }
2520
+ this.first.set(0);
2521
+ const filteredValue = this.filteredNodes || this.value();
2522
+ this.onFilter.emit({
2523
+ filters: this.filters(),
2524
+ filteredValue: filteredValue
2525
+ });
2526
+ this.tableService.onUIUpdate(filteredValue);
2527
+ this.updateSerializedValue();
2528
+ if (this.scrollable()) {
2529
+ this.resetScrollTop();
2530
+ }
2531
+ }
2532
+ findFilteredNodes(node, paramsWithoutNode) {
2533
+ if (node) {
2534
+ let matched = false;
2535
+ if (node.children) {
2536
+ let childNodes = [...node.children];
2537
+ node.children = [];
2538
+ for (let childNode of childNodes) {
2539
+ let copyChildNode = { ...childNode };
2540
+ if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {
2541
+ matched = true;
2542
+ node.children.push(copyChildNode);
2543
+ }
2544
+ }
2545
+ }
2546
+ if (matched) {
2547
+ return true;
2548
+ }
2549
+ }
2550
+ }
2551
+ isFilterMatched(node, filterOptions) {
2552
+ let { filterField, filterValue, filterConstraint, isStrictMode, globalFilterFieldsArray } = filterOptions;
2553
+ let matched = false;
2554
+ const isMatched = (field) => filterConstraint(resolveFieldData(node.data, field), filterValue, this.filterLocale());
2555
+ matched = globalFilterFieldsArray?.length ? globalFilterFieldsArray.some((globalFilterField) => isMatched(globalFilterField.field || globalFilterField)) : isMatched(filterField);
2556
+ if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {
2557
+ matched =
2558
+ this.findFilteredNodes(node, {
2559
+ filterField,
2560
+ filterValue,
2561
+ filterConstraint,
2562
+ isStrictMode,
2563
+ globalFilterFieldsArray
2564
+ }) || matched;
2565
+ }
2566
+ return matched;
2567
+ }
2568
+ isNodeLeaf(node) {
2569
+ return node.leaf === false ? false : !(node.children && node.children.length);
2570
+ }
2571
+ hasFilter() {
2572
+ let empty = true;
2573
+ for (let prop in this.filters()) {
2574
+ if (this.filters().hasOwnProperty(prop)) {
2575
+ empty = false;
2576
+ break;
2577
+ }
2578
+ }
2579
+ return !empty;
2580
+ }
2581
+ /**
2582
+ * Clears the sort and paginator state.
2583
+ * @group Method
2584
+ */
2585
+ reset() {
2586
+ this.sortField.set(null);
2587
+ this.sortOrder.set(1);
2588
+ this.multiSortMeta.set(null);
2589
+ this.tableService.onSort(null);
2590
+ this.filteredNodes = null;
2591
+ // `filters` is a plain input() (no filtersChange output), so it cannot be reassigned;
2592
+ // clear it in place instead, mirroring table.ts's approach for its filters input.
2593
+ for (const key of Object.keys(this.filters())) {
2594
+ delete this.filters()[key];
2595
+ }
2596
+ this.first.set(0);
2597
+ if (this.lazy()) {
2598
+ this.onLazyLoad.emit(this.createLazyLoadMetadata());
2599
+ }
2600
+ else {
2601
+ const value = this.value();
2602
+ this.totalRecords.set(value ? value.length : 0);
2603
+ }
2604
+ }
2605
+ updateEditingCell(cell, data, field) {
2606
+ this.editingCell = cell;
2607
+ this.editingCellData = data;
2608
+ this.editingCellField = field;
2609
+ this.bindDocumentEditListener();
2610
+ }
2611
+ isEditingCellValid() {
2612
+ return this.editingCell && find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;
2613
+ }
2614
+ bindDocumentEditListener() {
2615
+ if (!this.documentEditListener) {
2616
+ this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {
2617
+ if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {
2618
+ !this.$unstyled() && removeClass(this.editingCell, 'h-cell-editing');
2619
+ this.editingCell = null;
2620
+ this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData });
2621
+ this.editingCellField = null;
2622
+ this.editingCellData = null;
2623
+ this.unbindDocumentEditListener();
2624
+ }
2625
+ this.editingCellClick = false;
2626
+ });
2627
+ }
2628
+ }
2629
+ unbindDocumentEditListener() {
2630
+ if (this.documentEditListener) {
2631
+ this.documentEditListener();
2632
+ this.documentEditListener = null;
2633
+ }
2634
+ }
2635
+ onDestroy() {
2636
+ this.unbindDocumentEditListener();
2637
+ this.editingCell = null;
2638
+ this.editingCellField = null;
2639
+ this.editingCellData = null;
2640
+ this.initialized = null;
2641
+ }
2642
+ get dataP() {
2643
+ return this.cn({
2644
+ scrollable: this.scrollable(),
2645
+ 'flex-scrollable': this.scrollable() && this.scrollHeight() === 'flex',
2646
+ loading: this.loading(),
2647
+ empty: this.isEmpty()
2648
+ });
2649
+ }
2650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTable, deps: null, target: i0.ɵɵFactoryTarget.Component });
2651
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TreeTable, isStandalone: false, selector: "h-treeTable, h-treetable, h-tree-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, tableStyleClass: { classPropertyName: "tableStyleClass", publicName: "tableStyleClass", isSignal: true, isRequired: false, transformFunction: null }, autoLayout: { classPropertyName: "autoLayout", publicName: "autoLayout", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, lazyLoadOnInit: { classPropertyName: "lazyLoadOnInit", publicName: "lazyLoadOnInit", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, pageLinks: { classPropertyName: "pageLinks", publicName: "pageLinks", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, alwaysShowPaginator: { classPropertyName: "alwaysShowPaginator", publicName: "alwaysShowPaginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorPosition: { classPropertyName: "paginatorPosition", publicName: "paginatorPosition", isSignal: true, isRequired: false, transformFunction: null }, paginatorStyleClass: { classPropertyName: "paginatorStyleClass", publicName: "paginatorStyleClass", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, currentPageReportTemplate: { classPropertyName: "currentPageReportTemplate", publicName: "currentPageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, showCurrentPageReport: { classPropertyName: "showCurrentPageReport", publicName: "showCurrentPageReport", isSignal: true, isRequired: false, transformFunction: null }, showJumpToPageDropdown: { classPropertyName: "showJumpToPageDropdown", publicName: "showJumpToPageDropdown", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastIcon: { classPropertyName: "showFirstLastIcon", publicName: "showFirstLastIcon", isSignal: true, isRequired: false, transformFunction: null }, showPageLinks: { classPropertyName: "showPageLinks", publicName: "showPageLinks", isSignal: true, isRequired: false, transformFunction: null }, defaultSortOrder: { classPropertyName: "defaultSortOrder", publicName: "defaultSortOrder", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, resetPageOnSort: { classPropertyName: "resetPageOnSort", publicName: "resetPageOnSort", isSignal: true, isRequired: false, transformFunction: null }, customSort: { classPropertyName: "customSort", publicName: "customSort", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, contextMenuSelection: { classPropertyName: "contextMenuSelection", publicName: "contextMenuSelection", isSignal: true, isRequired: false, transformFunction: null }, contextMenuSelectionMode: { classPropertyName: "contextMenuSelectionMode", publicName: "contextMenuSelectionMode", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: true, isRequired: false, transformFunction: null }, compareSelectionBy: { classPropertyName: "compareSelectionBy", publicName: "compareSelectionBy", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", 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 }, showLoader: { classPropertyName: "showLoader", publicName: "showLoader", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", 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 }, virtualScrollDelay: { classPropertyName: "virtualScrollDelay", publicName: "virtualScrollDelay", isSignal: true, isRequired: false, transformFunction: null }, frozenWidth: { classPropertyName: "frozenWidth", publicName: "frozenWidth", isSignal: true, isRequired: false, transformFunction: null }, frozenColumns: { classPropertyName: "frozenColumns", publicName: "frozenColumns", isSignal: true, isRequired: false, transformFunction: null }, resizableColumns: { classPropertyName: "resizableColumns", publicName: "resizableColumns", isSignal: true, isRequired: false, transformFunction: null }, columnResizeMode: { classPropertyName: "columnResizeMode", publicName: "columnResizeMode", isSignal: true, isRequired: false, transformFunction: null }, reorderableColumns: { classPropertyName: "reorderableColumns", publicName: "reorderableColumns", isSignal: true, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, rowTrackBy: { classPropertyName: "rowTrackBy", publicName: "rowTrackBy", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, globalFilterFields: { classPropertyName: "globalFilterFields", publicName: "globalFilterFields", isSignal: true, isRequired: false, transformFunction: null }, filterDelay: { classPropertyName: "filterDelay", publicName: "filterDelay", isSignal: true, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: true, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: true, isRequired: false, transformFunction: null }, paginatorLocale: { classPropertyName: "paginatorLocale", publicName: "paginatorLocale", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, sortField: { classPropertyName: "sortField", publicName: "sortField", isSignal: true, isRequired: false, transformFunction: null }, sortOrder: { classPropertyName: "sortOrder", publicName: "sortOrder", isSignal: true, isRequired: false, transformFunction: null }, multiSortMeta: { classPropertyName: "multiSortMeta", publicName: "multiSortMeta", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, virtualRowHeight: { classPropertyName: "virtualRowHeight", publicName: "virtualRowHeight", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, showGridlines: { classPropertyName: "showGridlines", publicName: "showGridlines", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rows: "rowsChange", first: "firstChange", contextMenuSelection: "contextMenuSelectionChange", totalRecords: "totalRecordsChange", sortField: "sortFieldChange", sortOrder: "sortOrderChange", multiSortMeta: "multiSortMetaChange", selection: "selectionChange", value: "valueChange", selectionKeys: "selectionKeysChange", onFilter: "onFilter", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onPage: "onPage", onSort: "onSort", onLazyLoad: "onLazyLoad", sortFunction: "sortFunction", onColResize: "onColResize", onColReorder: "onColReorder", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onContextMenuSelect: "onContextMenuSelect", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel" }, host: { properties: { "class": "cn(cx('root'), styleClass())", "attr.data-h": "dataP", "attr.data-scrollselectors": "'.h-treetable-scrollable-body'" } }, providers: [TreeTableService, TreeTableStyle, { provide: TREETABLE_INSTANCE, useExisting: TreeTable }, { provide: PARENT_INSTANCE, useExisting: TreeTable }], queries: [{ propertyName: "_colGroupTemplate", first: true, predicate: ["colgroup"], isSignal: true }, { propertyName: "_captionTemplateSignal", first: true, predicate: ["caption"], isSignal: true }, { propertyName: "_headerTemplate", first: true, predicate: ["header"], isSignal: true }, { propertyName: "_bodyTemplate", first: true, predicate: ["body"], isSignal: true }, { propertyName: "_footerTemplateSignal", first: true, predicate: ["footer"], isSignal: true }, { propertyName: "_summaryTemplateSignal", first: true, predicate: ["summary"], isSignal: true }, { propertyName: "_emptyMessageTemplate", first: true, predicate: ["emptymessage"], isSignal: true }, { propertyName: "_paginatorLeftTemplate", first: true, predicate: ["paginatorleft"], isSignal: true }, { propertyName: "_paginatorRightTemplate", first: true, predicate: ["paginatorright"], isSignal: true }, { propertyName: "_paginatorDropdownItemTemplate", first: true, predicate: ["paginatordropdownitem"], isSignal: true }, { propertyName: "_frozenHeaderTemplate", first: true, predicate: ["frozenheader"], isSignal: true }, { propertyName: "_frozenBodyTemplate", first: true, predicate: ["frozenbody"], isSignal: true }, { propertyName: "_frozenFooterTemplate", first: true, predicate: ["frozenfooter"], isSignal: true }, { propertyName: "_frozenColGroupTemplate", first: true, predicate: ["frozencolgroup"], isSignal: true }, { propertyName: "_loadingIconTemplateSignal", first: true, predicate: ["loadingicon"], isSignal: true }, { propertyName: "_reorderIndicatorUpIconTemplate", first: true, predicate: ["reorderindicatorupicon"], isSignal: true }, { propertyName: "_reorderIndicatorDownIconTemplate", first: true, predicate: ["reorderindicatordownicon"], isSignal: true }, { propertyName: "_sortIconTemplateSignal", first: true, predicate: ["sorticon"], isSignal: true }, { propertyName: "_checkboxIconTemplateSignal", first: true, predicate: ["checkboxicon"], isSignal: true }, { propertyName: "_headerCheckboxIconTemplateSignal", first: true, predicate: ["headercheckboxicon"], isSignal: true }, { propertyName: "_togglerIconTemplate", first: true, predicate: ["togglericon"], isSignal: true }, { propertyName: "_paginatorFirstPageLinkIconTemplateSignal", first: true, predicate: ["paginatorfirstpagelinkicon"], isSignal: true }, { propertyName: "_paginatorLastPageLinkIconTemplateSignal", first: true, predicate: ["paginatorlastpagelinkicon"], isSignal: true }, { propertyName: "_paginatorPreviousPageLinkIconTemplateSignal", first: true, predicate: ["paginatorpreviouspagelinkicon"], isSignal: true }, { propertyName: "_paginatorNextPageLinkIconTemplateSignal", first: true, predicate: ["paginatornextpagelinkicon"], isSignal: true }, { propertyName: "_loaderTemplateSignal", first: true, predicate: ["loader"], isSignal: true }, { propertyName: "templates", predicate: HelixTemplate, isSignal: true }], viewQueries: [{ propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true, isSignal: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true, isSignal: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true, isSignal: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "scrollableViewChild", first: true, predicate: ["scrollableView"], descendants: true, isSignal: true }, { propertyName: "scrollableFrozenViewChild", first: true, predicate: ["scrollableFrozenView"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.Bind }], ngImport: i0, template: "@if (loading() && showLoader()) {\n <div [hBind]=\"ptm('mask')\" [class]=\"cx('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())\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" [spin]=\"true\" [class]=\"cx('loadingIcon')\" />\n }\n @if (loadingIconTemplate || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n@if (captionTemplate || _captionTemplate) {\n <div [hBind]=\"ptm('header')\" [class]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n}\n@if (paginator() && (paginatorPosition() === 'top' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n\n@if (!scrollable()) {\n <div [hBind]=\"ptm('wrapper')\" [class]=\"cx('wrapper')\">\n <table role=\"treegrid\" [hBind]=\"ptm('table')\" #table [ngClass]=\"tableStyleClass()\" [ngStyle]=\"tableStyle()\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate(); context: { $implicit: columns() }\"></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate(); context: { $implicit: columns() }\"></ng-container>\n </thead>\n <tbody [class]=\"cx('tbody')\" [hBind]=\"ptm('tbody')\" role=\"rowgroup\" [unstyled]=\"unstyled()\" [hTreeTableBody]=\"columns()\" [pTreeTableBodyTemplate]=\"bodyTemplate ?? _bodyTemplate()\"></tbody>\n <tfoot [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: columns() }\"></ng-container>\n </tfoot>\n </table>\n </div>\n}\n\n@if (scrollable()) {\n <div [hBind]=\"ptm('scrollableWrapper')\" [class]=\"cx('scrollableWrapper')\">\n @if (frozenColumns() || frozenBodyTemplate || _frozenBodyTemplate()) {\n <div\n [ngClass]=\"[cx('scrollableView'), cx('frozenView')]\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth() }\"\n [scrollHeight]=\"scrollHeight()\"\n [hBind]=\"ptm('scrollableView')\"\n ></div>\n }\n <div\n [class]=\"cx('scrollableView')\"\n [hBind]=\"ptm('scrollableView')\"\n #scrollableView\n [ttScrollableView]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight()\"\n [ngStyle]=\"{ left: frozenWidth(), width: 'calc(100% - ' + frozenWidth() + ')' }\"\n ></div>\n </div>\n}\n\n@if (paginator() && (paginatorPosition() === 'bottom' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n@if (summaryTemplate || _summaryTemplate) {\n <div [hBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n}\n\n@if (resizableColumns()) {\n <div [hBind]=\"ptm('columnResizerHelper')\" #resizeHelper [class]=\"cx('columnResizerHelper')\" [style.display]=\"'none'\"></div>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorUp')\" #reorderIndicatorUp [class]=\"cx('reorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate()) {\n <svg data-h-icon=\"arrow-down\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorDown')\" #reorderIndicatorDown [class]=\"cx('reorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate()) {\n <svg data-h-icon=\"arrow-up\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n}\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => i3.Paginator), selector: "h-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["rowsChange", "firstChange", "onPageChange"] }, { kind: "directive", type: i0.forwardRef(() => i4.HelixTemplate), selector: "[hTemplate]", inputs: ["type", "hTemplate"] }, { kind: "component", type: i0.forwardRef(() => SpinnerIcon), selector: "[data-h-icon=\"spinner\"]" }, { kind: "component", type: i0.forwardRef(() => ArrowDownIcon), selector: "[data-h-icon=\"arrow-down\"]" }, { kind: "component", type: i0.forwardRef(() => ArrowUpIcon), selector: "[data-h-icon=\"arrow-up\"]" }, { kind: "directive", type: i0.forwardRef(() => i1.Bind), selector: "[hBind]", inputs: ["hBind"] }, { kind: "component", type: i0.forwardRef(() => TTScrollableView), selector: "[ttScrollableView]", inputs: ["ttScrollableView", "frozen", "scrollHeight"] }, { kind: "component", type: i0.forwardRef(() => TTBody), selector: "[hTreeTableBody]", inputs: ["hTreeTableBody", "pTreeTableBodyTemplate", "frozen", "serializedNodes", "scrollerOptions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
2652
+ }
2653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTable, decorators: [{
2654
+ type: Component,
2655
+ args: [{ selector: 'h-treeTable, h-treetable, h-tree-table', standalone: false, providers: [TreeTableService, TreeTableStyle, { provide: TREETABLE_INSTANCE, useExisting: TreeTable }, { provide: PARENT_INSTANCE, useExisting: TreeTable }], encapsulation: ViewEncapsulation.None, host: {
2656
+ '[class]': "cn(cx('root'), styleClass())",
2657
+ '[attr.data-h]': 'dataP',
2658
+ '[attr.data-scrollselectors]': "'.h-treetable-scrollable-body'"
2659
+ }, changeDetection: ChangeDetectionStrategy.Eager, hostDirectives: [Bind], template: "@if (loading() && showLoader()) {\n <div [hBind]=\"ptm('mask')\" [class]=\"cx('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())\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" [spin]=\"true\" [class]=\"cx('loadingIcon')\" />\n }\n @if (loadingIconTemplate || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n@if (captionTemplate || _captionTemplate) {\n <div [hBind]=\"ptm('header')\" [class]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n}\n@if (paginator() && (paginatorPosition() === 'top' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n\n@if (!scrollable()) {\n <div [hBind]=\"ptm('wrapper')\" [class]=\"cx('wrapper')\">\n <table role=\"treegrid\" [hBind]=\"ptm('table')\" #table [ngClass]=\"tableStyleClass()\" [ngStyle]=\"tableStyle()\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate(); context: { $implicit: columns() }\"></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate(); context: { $implicit: columns() }\"></ng-container>\n </thead>\n <tbody [class]=\"cx('tbody')\" [hBind]=\"ptm('tbody')\" role=\"rowgroup\" [unstyled]=\"unstyled()\" [hTreeTableBody]=\"columns()\" [pTreeTableBodyTemplate]=\"bodyTemplate ?? _bodyTemplate()\"></tbody>\n <tfoot [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: columns() }\"></ng-container>\n </tfoot>\n </table>\n </div>\n}\n\n@if (scrollable()) {\n <div [hBind]=\"ptm('scrollableWrapper')\" [class]=\"cx('scrollableWrapper')\">\n @if (frozenColumns() || frozenBodyTemplate || _frozenBodyTemplate()) {\n <div\n [ngClass]=\"[cx('scrollableView'), cx('frozenView')]\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth() }\"\n [scrollHeight]=\"scrollHeight()\"\n [hBind]=\"ptm('scrollableView')\"\n ></div>\n }\n <div\n [class]=\"cx('scrollableView')\"\n [hBind]=\"ptm('scrollableView')\"\n #scrollableView\n [ttScrollableView]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight()\"\n [ngStyle]=\"{ left: frozenWidth(), width: 'calc(100% - ' + frozenWidth() + ')' }\"\n ></div>\n </div>\n}\n\n@if (paginator() && (paginatorPosition() === 'bottom' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n@if (summaryTemplate || _summaryTemplate) {\n <div [hBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n}\n\n@if (resizableColumns()) {\n <div [hBind]=\"ptm('columnResizerHelper')\" #resizeHelper [class]=\"cx('columnResizerHelper')\" [style.display]=\"'none'\"></div>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorUp')\" #reorderIndicatorUp [class]=\"cx('reorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate()) {\n <svg data-h-icon=\"arrow-down\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorDown')\" #reorderIndicatorDown [class]=\"cx('reorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate()) {\n <svg data-h-icon=\"arrow-up\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n}\n" }]
2660
+ }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], tableStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableStyle", required: false }] }], tableStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableStyleClass", required: false }] }], autoLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoLayout", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], lazyLoadOnInit: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyLoadOnInit", required: false }] }], paginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginator", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }, { type: i0.Output, args: ["rowsChange"] }], first: [{ type: i0.Input, args: [{ isSignal: true, alias: "first", required: false }] }, { type: i0.Output, args: ["firstChange"] }], pageLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinks", required: false }] }], rowsPerPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageOptions", required: false }] }], alwaysShowPaginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysShowPaginator", required: false }] }], paginatorPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginatorPosition", required: false }] }], paginatorStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginatorStyleClass", required: false }] }], paginatorDropdownAppendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginatorDropdownAppendTo", required: false }] }], currentPageReportTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPageReportTemplate", required: false }] }], showCurrentPageReport: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentPageReport", required: false }] }], showJumpToPageDropdown: [{ type: i0.Input, args: [{ isSignal: true, alias: "showJumpToPageDropdown", required: false }] }], showFirstLastIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastIcon", required: false }] }], showPageLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageLinks", required: false }] }], defaultSortOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSortOrder", required: false }] }], sortMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortMode", required: false }] }], resetPageOnSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "resetPageOnSort", required: false }] }], customSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "customSort", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], contextMenuSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelection", required: false }] }, { type: i0.Output, args: ["contextMenuSelectionChange"] }], contextMenuSelectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelectionMode", required: false }] }], dataKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataKey", required: false }] }], metaKeySelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaKeySelection", required: false }] }], compareSelectionBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareSelectionBy", required: false }] }], rowHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHover", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingIcon", required: false }] }], showLoader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLoader", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", 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 }] }], virtualScrollDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollDelay", required: false }] }], frozenWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "frozenWidth", required: false }] }], frozenColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "frozenColumns", required: false }] }], resizableColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizableColumns", required: false }] }], columnResizeMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnResizeMode", required: false }] }], reorderableColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderableColumns", required: false }] }], contextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenu", required: false }] }], rowTrackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowTrackBy", required: false }] }], filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], globalFilterFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "globalFilterFields", required: false }] }], filterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterDelay", required: false }] }], filterMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterMode", required: false }] }], filterLocale: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterLocale", required: false }] }], paginatorLocale: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginatorLocale", required: false }] }], totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }, { type: i0.Output, args: ["totalRecordsChange"] }], sortField: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortField", required: false }] }, { type: i0.Output, args: ["sortFieldChange"] }], sortOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortOrder", required: false }] }, { type: i0.Output, args: ["sortOrderChange"] }], multiSortMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSortMeta", required: false }] }, { type: i0.Output, args: ["multiSortMetaChange"] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], virtualRowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualRowHeight", required: false }] }], selectionKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionKeys", required: false }] }, { type: i0.Output, args: ["selectionKeysChange"] }], showGridlines: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGridlines", required: false }] }], onFilter: [{ type: i0.Output, args: ["onFilter"] }], onNodeExpand: [{ type: i0.Output, args: ["onNodeExpand"] }], onNodeCollapse: [{ type: i0.Output, args: ["onNodeCollapse"] }], onPage: [{ type: i0.Output, args: ["onPage"] }], onSort: [{ type: i0.Output, args: ["onSort"] }], onLazyLoad: [{ type: i0.Output, args: ["onLazyLoad"] }], sortFunction: [{ type: i0.Output, args: ["sortFunction"] }], onColResize: [{ type: i0.Output, args: ["onColResize"] }], onColReorder: [{ type: i0.Output, args: ["onColReorder"] }], onNodeSelect: [{ type: i0.Output, args: ["onNodeSelect"] }], onNodeUnselect: [{ type: i0.Output, args: ["onNodeUnselect"] }], onContextMenuSelect: [{ type: i0.Output, args: ["onContextMenuSelect"] }], onHeaderCheckboxToggle: [{ type: i0.Output, args: ["onHeaderCheckboxToggle"] }], onEditInit: [{ type: i0.Output, args: ["onEditInit"] }], onEditComplete: [{ type: i0.Output, args: ["onEditComplete"] }], onEditCancel: [{ type: i0.Output, args: ["onEditCancel"] }], resizeHelperViewChild: [{ type: i0.ViewChild, args: ['resizeHelper', { isSignal: true }] }], reorderIndicatorUpViewChild: [{ type: i0.ViewChild, args: ['reorderIndicatorUp', { isSignal: true }] }], reorderIndicatorDownViewChild: [{ type: i0.ViewChild, args: ['reorderIndicatorDown', { isSignal: true }] }], tableViewChild: [{ type: i0.ViewChild, args: ['table', { isSignal: true }] }], scrollableViewChild: [{ type: i0.ViewChild, args: ['scrollableView', { isSignal: true }] }], scrollableFrozenViewChild: [{ type: i0.ViewChild, args: ['scrollableFrozenView', { isSignal: true }] }], _colGroupTemplate: [{ type: i0.ContentChild, args: ['colgroup', { ...{ descendants: false }, isSignal: true }] }], _captionTemplateSignal: [{ type: i0.ContentChild, args: ['caption', { ...{ descendants: false }, isSignal: true }] }], _headerTemplate: [{ type: i0.ContentChild, args: ['header', { ...{ descendants: false }, isSignal: true }] }], _bodyTemplate: [{ type: i0.ContentChild, args: ['body', { ...{ descendants: false }, isSignal: true }] }], _footerTemplateSignal: [{ type: i0.ContentChild, args: ['footer', { ...{ descendants: false }, isSignal: true }] }], _summaryTemplateSignal: [{ type: i0.ContentChild, args: ['summary', { ...{ descendants: false }, isSignal: true }] }], _emptyMessageTemplate: [{ type: i0.ContentChild, args: ['emptymessage', { ...{ descendants: false }, isSignal: true }] }], _paginatorLeftTemplate: [{ type: i0.ContentChild, args: ['paginatorleft', { ...{ descendants: false }, isSignal: true }] }], _paginatorRightTemplate: [{ type: i0.ContentChild, args: ['paginatorright', { ...{ descendants: false }, isSignal: true }] }], _paginatorDropdownItemTemplate: [{ type: i0.ContentChild, args: ['paginatordropdownitem', { ...{ descendants: false }, isSignal: true }] }], _frozenHeaderTemplate: [{ type: i0.ContentChild, args: ['frozenheader', { ...{ descendants: false }, isSignal: true }] }], _frozenBodyTemplate: [{ type: i0.ContentChild, args: ['frozenbody', { ...{ descendants: false }, isSignal: true }] }], _frozenFooterTemplate: [{ type: i0.ContentChild, args: ['frozenfooter', { ...{ descendants: false }, isSignal: true }] }], _frozenColGroupTemplate: [{ type: i0.ContentChild, args: ['frozencolgroup', { ...{ descendants: false }, isSignal: true }] }], _loadingIconTemplateSignal: [{ type: i0.ContentChild, args: ['loadingicon', { ...{ descendants: false }, isSignal: true }] }], _reorderIndicatorUpIconTemplate: [{ type: i0.ContentChild, args: ['reorderindicatorupicon', { ...{ descendants: false }, isSignal: true }] }], _reorderIndicatorDownIconTemplate: [{ type: i0.ContentChild, args: ['reorderindicatordownicon', { ...{ descendants: false }, isSignal: true }] }], _sortIconTemplateSignal: [{ type: i0.ContentChild, args: ['sorticon', { ...{ descendants: false }, isSignal: true }] }], _checkboxIconTemplateSignal: [{ type: i0.ContentChild, args: ['checkboxicon', { ...{ descendants: false }, isSignal: true }] }], _headerCheckboxIconTemplateSignal: [{ type: i0.ContentChild, args: ['headercheckboxicon', { ...{ descendants: false }, isSignal: true }] }], _togglerIconTemplate: [{ type: i0.ContentChild, args: ['togglericon', { ...{ descendants: false }, isSignal: true }] }], _paginatorFirstPageLinkIconTemplateSignal: [{ type: i0.ContentChild, args: ['paginatorfirstpagelinkicon', { ...{ descendants: false }, isSignal: true }] }], _paginatorLastPageLinkIconTemplateSignal: [{ type: i0.ContentChild, args: ['paginatorlastpagelinkicon', { ...{ descendants: false }, isSignal: true }] }], _paginatorPreviousPageLinkIconTemplateSignal: [{ type: i0.ContentChild, args: ['paginatorpreviouspagelinkicon', { ...{ descendants: false }, isSignal: true }] }], _paginatorNextPageLinkIconTemplateSignal: [{ type: i0.ContentChild, args: ['paginatornextpagelinkicon', { ...{ descendants: false }, isSignal: true }] }], _loaderTemplateSignal: [{ type: i0.ContentChild, args: ['loader', { ...{ descendants: false }, isSignal: true }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => HelixTemplate), { isSignal: true }] }] } });
2661
+ class TTBody extends BaseComponent {
2662
+ tt;
2663
+ treeTableService;
2664
+ columns = input(undefined, { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), alias: "hTreeTableBody" });
2665
+ template = input(undefined, { ...(ngDevMode ? { debugName: "template" } : /* istanbul ignore next */ {}), alias: "pTreeTableBodyTemplate" });
2666
+ frozen = input(undefined, { ...(ngDevMode ? { debugName: "frozen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
2667
+ serializedNodes = input(/* @ts-ignore */
2668
+ ...(ngDevMode ? [undefined, { debugName: "serializedNodes" }] : /* istanbul ignore next */ []));
2669
+ scrollerOptions = input(/* @ts-ignore */
2670
+ ...(ngDevMode ? [undefined, { debugName: "scrollerOptions" }] : /* istanbul ignore next */ []));
2671
+ subscription;
2672
+ constructor(tt, treeTableService) {
2673
+ super();
2674
+ this.tt = tt;
2675
+ this.treeTableService = treeTableService;
2676
+ this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {
2677
+ if (this.tt.virtualScroll()) {
2678
+ this.cd.detectChanges();
2679
+ }
2680
+ });
2681
+ }
2682
+ getScrollerOption(option, options) {
2683
+ if (this.tt.virtualScroll()) {
2684
+ options = options || this.scrollerOptions();
2685
+ return options ? options[option] : null;
2686
+ }
2687
+ return null;
2688
+ }
2689
+ getRowIndex(rowIndex) {
2690
+ const getItemOptions = this.getScrollerOption('getItemOptions');
2691
+ return getItemOptions ? getItemOptions(rowIndex).index : rowIndex;
2692
+ }
2693
+ onDestroy() {
2694
+ if (this.subscription) {
2695
+ this.subscription.unsubscribe();
2696
+ }
2697
+ }
2698
+ get dataP() {
2699
+ return this.cn({
2700
+ hoverable: this.tt.rowHover() || this.tt.selectionMode(),
2701
+ frozen: this.frozen()
2702
+ });
2703
+ }
2704
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTBody, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Component });
2705
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TTBody, isStandalone: false, selector: "[hTreeTableBody]", inputs: { columns: { classPropertyName: "columns", publicName: "hTreeTableBody", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "pTreeTableBodyTemplate", isSignal: true, isRequired: false, transformFunction: null }, frozen: { classPropertyName: "frozen", publicName: "frozen", isSignal: true, isRequired: false, transformFunction: null }, serializedNodes: { classPropertyName: "serializedNodes", publicName: "serializedNodes", isSignal: true, isRequired: false, transformFunction: null }, scrollerOptions: { classPropertyName: "scrollerOptions", publicName: "scrollerOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-h": "dataP" } }, usesInheritance: true, ngImport: i0, template: "@for (serializedNode of serializedNodes() || tt.serializedValue; track tt.rowTrackBy()(rowIndex, serializedNode); let rowIndex = $index) {\n @if (serializedNode.visible) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: serializedNode,\n node: serializedNode.node,\n rowData: serializedNode.node.data,\n columns: columns()\n }\n \"\n ></ng-container>\n}\n}\n@if (tt.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate || tt._emptyMessageTemplate(); context: { $implicit: columns(), frozen: frozen() }\"></ng-container>\n}\n", dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
2706
+ }
2707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTBody, decorators: [{
2708
+ type: Component,
2709
+ args: [{ selector: '[hTreeTableBody]', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, host: {
2710
+ '[attr.data-h]': 'dataP'
2711
+ }, template: "@for (serializedNode of serializedNodes() || tt.serializedValue; track tt.rowTrackBy()(rowIndex, serializedNode); let rowIndex = $index) {\n @if (serializedNode.visible) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: serializedNode,\n node: serializedNode.node,\n rowData: serializedNode.node.data,\n columns: columns()\n }\n \"\n ></ng-container>\n}\n}\n@if (tt.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate || tt._emptyMessageTemplate(); context: { $implicit: columns(), frozen: frozen() }\"></ng-container>\n}\n" }]
2712
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "hTreeTableBody", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "pTreeTableBodyTemplate", required: false }] }], frozen: [{ type: i0.Input, args: [{ isSignal: true, alias: "frozen", required: false }] }], serializedNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "serializedNodes", required: false }] }], scrollerOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollerOptions", required: false }] }] } });
2713
+ class TTScrollableView extends BaseComponent {
2714
+ tt;
2715
+ zone;
2716
+ hostName = 'TreeTable';
2717
+ columns = input(undefined, { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), alias: "ttScrollableView" });
2718
+ frozen = input(undefined, { ...(ngDevMode ? { debugName: "frozen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
2719
+ scrollHeaderViewChild = viewChild('scrollHeader', /* @ts-ignore */
2720
+ ...(ngDevMode ? [{ debugName: "scrollHeaderViewChild" }] : /* istanbul ignore next */ []));
2721
+ scrollHeaderBoxViewChild = viewChild('scrollHeaderBox', /* @ts-ignore */
2722
+ ...(ngDevMode ? [{ debugName: "scrollHeaderBoxViewChild" }] : /* istanbul ignore next */ []));
2723
+ scrollBodyViewChild = viewChild('scrollBody', /* @ts-ignore */
2724
+ ...(ngDevMode ? [{ debugName: "scrollBodyViewChild" }] : /* istanbul ignore next */ []));
2725
+ scrollTableViewChild = viewChild('scrollTable', /* @ts-ignore */
2726
+ ...(ngDevMode ? [{ debugName: "scrollTableViewChild" }] : /* istanbul ignore next */ []));
2727
+ scrollLoadingTableViewChild = viewChild('loadingTable', /* @ts-ignore */
2728
+ ...(ngDevMode ? [{ debugName: "scrollLoadingTableViewChild" }] : /* istanbul ignore next */ []));
2729
+ scrollFooterViewChild = viewChild('scrollFooter', /* @ts-ignore */
2730
+ ...(ngDevMode ? [{ debugName: "scrollFooterViewChild" }] : /* istanbul ignore next */ []));
2731
+ scrollFooterBoxViewChild = viewChild('scrollFooterBox', /* @ts-ignore */
2732
+ ...(ngDevMode ? [{ debugName: "scrollFooterBoxViewChild" }] : /* istanbul ignore next */ []));
2733
+ scrollableAlignerViewChild = viewChild('scrollableAligner', /* @ts-ignore */
2734
+ ...(ngDevMode ? [{ debugName: "scrollableAlignerViewChild" }] : /* istanbul ignore next */ []));
2735
+ scroller = viewChild('scroller', /* @ts-ignore */
2736
+ ...(ngDevMode ? [{ debugName: "scroller" }] : /* istanbul ignore next */ []));
2737
+ headerScrollListener;
2738
+ bodyScrollListener;
2739
+ footerScrollListener;
2740
+ frozenSiblingBody;
2741
+ totalRecordsSubscription;
2742
+ scrollHeight = input(/* @ts-ignore */
2743
+ ...(ngDevMode ? [undefined, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []));
2744
+ preventBodyScrollPropagation;
2745
+ _componentStyle = inject(TreeTableStyle);
2746
+ // The `scrollHeight` setter used to log a deprecation console.log when a percentage/calc value
2747
+ // was provided; `scrollHeight` is now a plain input(), so the warning is reproduced as an effect
2748
+ // (rule 3).
2749
+ _scrollHeightEffect = effect(() => {
2750
+ const val = this.scrollHeight();
2751
+ if (val != null && (val.includes('%') || val.includes('calc'))) {
2752
+ console.log('Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight="flex" instead.');
2753
+ }
2754
+ }, /* @ts-ignore */
2755
+ ...(ngDevMode ? [{ debugName: "_scrollHeightEffect" }] : /* istanbul ignore next */ []));
2756
+ constructor(tt, zone) {
2757
+ super();
2758
+ this.tt = tt;
2759
+ this.zone = zone;
2760
+ }
2761
+ onAfterViewInit() {
2762
+ if (isPlatformBrowser(this.platformId)) {
2763
+ if (!this.frozen()) {
2764
+ if (this.tt.frozenColumns() || this.tt.frozenBodyTemplate || this.tt._frozenBodyTemplate()) {
2765
+ addClass(this.el.nativeElement, 'h-treetable-unfrozen-view');
2766
+ }
2767
+ let frozenView = this.el.nativeElement.previousElementSibling;
2768
+ if (frozenView) {
2769
+ if (this.tt.virtualScroll())
2770
+ this.frozenSiblingBody = findSingle(frozenView, '[data-pc-name="virtualscroller"]');
2771
+ else
2772
+ this.frozenSiblingBody = findSingle(frozenView, '[data-pc-section="scrollablebody"]');
2773
+ }
2774
+ if (this.scrollHeight()) {
2775
+ let scrollBarWidth = calculateScrollbarWidth();
2776
+ const scrollHeaderBoxViewChild = this.scrollHeaderBoxViewChild();
2777
+ if (scrollHeaderBoxViewChild?.nativeElement) {
2778
+ scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';
2779
+ }
2780
+ const scrollFooterBoxViewChild = this.scrollFooterBoxViewChild();
2781
+ if (scrollFooterBoxViewChild && scrollFooterBoxViewChild.nativeElement) {
2782
+ scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';
2783
+ }
2784
+ }
2785
+ }
2786
+ else {
2787
+ const scrollableAlignerViewChild = this.scrollableAlignerViewChild();
2788
+ if (scrollableAlignerViewChild && scrollableAlignerViewChild.nativeElement) {
2789
+ scrollableAlignerViewChild.nativeElement.style.height = calculateScrollbarHeight() + 'px';
2790
+ }
2791
+ }
2792
+ this.bindEvents();
2793
+ }
2794
+ }
2795
+ bindEvents() {
2796
+ if (isPlatformBrowser(this.platformId)) {
2797
+ this.zone.runOutsideAngular(() => {
2798
+ const scrollHeaderViewChild = this.scrollHeaderViewChild();
2799
+ if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {
2800
+ this.headerScrollListener = this.renderer.listen(this.scrollHeaderBoxViewChild()?.nativeElement, 'scroll', this.onHeaderScroll.bind(this));
2801
+ }
2802
+ const scrollFooterViewChild = this.scrollFooterViewChild();
2803
+ if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {
2804
+ this.footerScrollListener = this.renderer.listen(scrollFooterViewChild.nativeElement, 'scroll', this.onFooterScroll.bind(this));
2805
+ }
2806
+ if (!this.frozen()) {
2807
+ if (this.tt.virtualScroll()) {
2808
+ this.bodyScrollListener = this.renderer.listen((this.scroller()?.getElementRef()).nativeElement, 'scroll', this.onBodyScroll.bind(this));
2809
+ }
2810
+ else {
2811
+ this.bodyScrollListener = this.renderer.listen(this.scrollBodyViewChild()?.nativeElement, 'scroll', this.onBodyScroll.bind(this));
2812
+ }
2813
+ }
2814
+ });
2815
+ }
2816
+ }
2817
+ unbindEvents() {
2818
+ if (isPlatformBrowser(this.platformId)) {
2819
+ const scrollHeaderViewChild = this.scrollHeaderViewChild();
2820
+ if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {
2821
+ if (this.headerScrollListener) {
2822
+ this.headerScrollListener();
2823
+ this.headerScrollListener = null;
2824
+ }
2825
+ }
2826
+ const scrollFooterViewChild = this.scrollFooterViewChild();
2827
+ if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {
2828
+ if (this.footerScrollListener) {
2829
+ this.footerScrollListener();
2830
+ this.footerScrollListener = null;
2831
+ }
2832
+ }
2833
+ const scrollBodyViewChild = this.scrollBodyViewChild();
2834
+ if (scrollBodyViewChild && scrollBodyViewChild.nativeElement) {
2835
+ if (this.bodyScrollListener) {
2836
+ this.bodyScrollListener();
2837
+ this.bodyScrollListener = null;
2838
+ }
2839
+ }
2840
+ const scroller = this.scroller();
2841
+ if (scroller && scroller.getElementRef()) {
2842
+ if (this.bodyScrollListener) {
2843
+ this.bodyScrollListener();
2844
+ this.bodyScrollListener = null;
2845
+ }
2846
+ }
2847
+ }
2848
+ }
2849
+ onHeaderScroll() {
2850
+ const scrollLeft = this.scrollHeaderViewChild()?.nativeElement.scrollLeft;
2851
+ this.scrollBodyViewChild().nativeElement.scrollLeft = scrollLeft;
2852
+ const scrollFooterViewChild = this.scrollFooterViewChild();
2853
+ if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {
2854
+ scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;
2855
+ }
2856
+ this.preventBodyScrollPropagation = true;
2857
+ }
2858
+ onFooterScroll() {
2859
+ const scrollLeft = this.scrollFooterViewChild()?.nativeElement.scrollLeft;
2860
+ this.scrollBodyViewChild().nativeElement.scrollLeft = scrollLeft;
2861
+ const scrollHeaderViewChild = this.scrollHeaderViewChild();
2862
+ if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {
2863
+ scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;
2864
+ }
2865
+ this.preventBodyScrollPropagation = true;
2866
+ }
2867
+ onBodyScroll(event) {
2868
+ if (this.preventBodyScrollPropagation) {
2869
+ this.preventBodyScrollPropagation = false;
2870
+ return;
2871
+ }
2872
+ const scrollHeaderViewChild = this.scrollHeaderViewChild();
2873
+ if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {
2874
+ this.scrollHeaderBoxViewChild().nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';
2875
+ }
2876
+ const scrollFooterViewChild = this.scrollFooterViewChild();
2877
+ if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {
2878
+ this.scrollFooterBoxViewChild().nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';
2879
+ }
2880
+ if (this.frozenSiblingBody) {
2881
+ this.frozenSiblingBody.scrollTop = event.target.scrollTop;
2882
+ }
2883
+ }
2884
+ scrollToVirtualIndex(index) {
2885
+ const scroller = this.scroller();
2886
+ if (scroller) {
2887
+ scroller.scrollToIndex(index);
2888
+ }
2889
+ }
2890
+ scrollTo(options) {
2891
+ const scroller = this.scroller();
2892
+ if (scroller) {
2893
+ scroller.scrollTo(options);
2894
+ }
2895
+ else {
2896
+ const scrollBodyViewChild = this.scrollBodyViewChild();
2897
+ if (scrollBodyViewChild?.nativeElement.scrollTo) {
2898
+ scrollBodyViewChild.nativeElement.scrollTo(options);
2899
+ }
2900
+ else {
2901
+ scrollBodyViewChild.nativeElement.scrollLeft = options.left;
2902
+ scrollBodyViewChild.nativeElement.scrollTop = options.top;
2903
+ }
2904
+ }
2905
+ }
2906
+ onDestroy() {
2907
+ this.unbindEvents();
2908
+ this.frozenSiblingBody = null;
2909
+ }
2910
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTScrollableView, deps: [{ token: TreeTable }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2911
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TTScrollableView, isStandalone: false, selector: "[ttScrollableView]", inputs: { columns: { classPropertyName: "columns", publicName: "ttScrollableView", isSignal: true, isRequired: false, transformFunction: null }, frozen: { classPropertyName: "frozen", publicName: "frozen", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeTableStyle], viewQueries: [{ propertyName: "scrollHeaderViewChild", first: true, predicate: ["scrollHeader"], descendants: true, isSignal: true }, { propertyName: "scrollHeaderBoxViewChild", first: true, predicate: ["scrollHeaderBox"], descendants: true, isSignal: true }, { propertyName: "scrollBodyViewChild", first: true, predicate: ["scrollBody"], descendants: true, isSignal: true }, { propertyName: "scrollTableViewChild", first: true, predicate: ["scrollTable"], descendants: true, isSignal: true }, { propertyName: "scrollLoadingTableViewChild", first: true, predicate: ["loadingTable"], descendants: true, isSignal: true }, { propertyName: "scrollFooterViewChild", first: true, predicate: ["scrollFooter"], descendants: true, isSignal: true }, { propertyName: "scrollFooterBoxViewChild", first: true, predicate: ["scrollFooterBox"], descendants: true, isSignal: true }, { propertyName: "scrollableAlignerViewChild", first: true, predicate: ["scrollableAligner"], descendants: true, isSignal: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #scrollHeader [class]=\"cx('scrollableHeader')\" [hBind]=\"ptm('scrollableHeader')\">\n <div #scrollHeaderBox [class]=\"cx('scrollableHeaderBox')\" [hBind]=\"ptm('scrollableHeaderBox')\">\n <table [class]=\"cn(cx('scrollableHeaderTable'), tt.tableStyleClass())\" [hBind]=\"ptm('scrollableHeaderTable')\" [ngStyle]=\"tt.tableStyle()\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenHeaderTemplate || tt._frozenHeaderTemplate() || tt.headerTemplate || tt._headerTemplate() : tt.headerTemplate || tt._headerTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n </thead>\n </table>\n </div>\n</div>\n\n@if (tt.virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"tt.serializedValue\"\n [styleClass]=\"cx('scrollableBody')\"\n [style]=\"{ height: tt.scrollHeight() !== 'flex' ? tt.scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"tt.virtualScrollItemSize() || tt.virtualRowHeight()\"\n [lazy]=\"tt.lazy()\"\n (onLazyLoad)=\"tt.onLazyItemLoad($event)\"\n [options]=\"tt.virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (tt.loaderTemplate || tt._loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"tt.loaderTemplate || tt._loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n}\n@if (!tt.virtualScroll()) {\n <div\n #scrollBody\n [class]=\"cx('scrollableBody')\"\n [hBind]=\"ptm('scrollableBody')\"\n [ngStyle]=\"{\n 'max-height': tt.scrollHeight() !== 'flex' ? scrollHeight() : undefined,\n 'overflow-y': !frozen() && tt.scrollHeight() ? 'scroll' : undefined\n }\"\n >\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: serializedValue, options: {} }\"></ng-container>\n </div>\n}\n\n<ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"treegrid\" #scrollTable [hBind]=\"ptm('table')\" [class]=\"tt.tableStyleClass()\" [ngClass]=\"scrollerOptions.contentStyleClass\" [ngStyle]=\"tt.tableStyle()\" [style]=\"scrollerOptions.contentStyle\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tbody\n [hBind]=\"ptm('tbody')\"\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [hBind]=\"ptm('tbody')\"\n [hTreeTableBody]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [pTreeTableBodyTemplate]=\"frozen() ? tt.frozenBodyTemplate || tt._frozenBodyTemplate() || tt.bodyTemplate || tt._bodyTemplate() : tt.bodyTemplate || tt._bodyTemplate()\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen()\"\n ></tbody>\n </table>\n @if (frozen()) {\n <div #scrollableAligner [style.background-color]=\"'transparent'\"></div>\n }\n</ng-template>\n\n@if (tt.footerTemplate || tt._footerTemplate) {\n <div #scrollFooter [class]=\"cx('scrollableFooter')\" [hBind]=\"ptm('scrollableFooter')\">\n <div #scrollFooterBox [class]=\"cx('scrollableFooterBox')\" [hBind]=\"ptm('scrollableFooterBox')\">\n <table [class]=\"cx('scrollableFooterTable')\" [ngClass]=\"tt.tableStyleClass()\" [ngStyle]=\"tt.tableStyle()\" [hBind]=\"ptm('scrollableFooterTable')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tfoot role=\"rowgroup\" [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenFooterTemplate || tt._frozenFooterTemplate() || tt.footerTemplate || tt._footerTemplate : tt.footerTemplate || tt._footerTemplate; context: { $implicit: columns() }\"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => 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: "directive", type: i0.forwardRef(() => i1.Bind), selector: "[hBind]", inputs: ["hBind"] }, { kind: "component", type: i0.forwardRef(() => TTBody), selector: "[hTreeTableBody]", inputs: ["hTreeTableBody", "pTreeTableBodyTemplate", "frozen", "serializedNodes", "scrollerOptions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
2912
+ }
2913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTScrollableView, decorators: [{
2914
+ type: Component,
2915
+ args: [{ selector: '[ttScrollableView]', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, providers: [TreeTableStyle], template: "<div #scrollHeader [class]=\"cx('scrollableHeader')\" [hBind]=\"ptm('scrollableHeader')\">\n <div #scrollHeaderBox [class]=\"cx('scrollableHeaderBox')\" [hBind]=\"ptm('scrollableHeaderBox')\">\n <table [class]=\"cn(cx('scrollableHeaderTable'), tt.tableStyleClass())\" [hBind]=\"ptm('scrollableHeaderTable')\" [ngStyle]=\"tt.tableStyle()\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenHeaderTemplate || tt._frozenHeaderTemplate() || tt.headerTemplate || tt._headerTemplate() : tt.headerTemplate || tt._headerTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n </thead>\n </table>\n </div>\n</div>\n\n@if (tt.virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"tt.serializedValue\"\n [styleClass]=\"cx('scrollableBody')\"\n [style]=\"{ height: tt.scrollHeight() !== 'flex' ? tt.scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"tt.virtualScrollItemSize() || tt.virtualRowHeight()\"\n [lazy]=\"tt.lazy()\"\n (onLazyLoad)=\"tt.onLazyItemLoad($event)\"\n [options]=\"tt.virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (tt.loaderTemplate || tt._loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"tt.loaderTemplate || tt._loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n}\n@if (!tt.virtualScroll()) {\n <div\n #scrollBody\n [class]=\"cx('scrollableBody')\"\n [hBind]=\"ptm('scrollableBody')\"\n [ngStyle]=\"{\n 'max-height': tt.scrollHeight() !== 'flex' ? scrollHeight() : undefined,\n 'overflow-y': !frozen() && tt.scrollHeight() ? 'scroll' : undefined\n }\"\n >\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: serializedValue, options: {} }\"></ng-container>\n </div>\n}\n\n<ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"treegrid\" #scrollTable [hBind]=\"ptm('table')\" [class]=\"tt.tableStyleClass()\" [ngClass]=\"scrollerOptions.contentStyleClass\" [ngStyle]=\"tt.tableStyle()\" [style]=\"scrollerOptions.contentStyle\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tbody\n [hBind]=\"ptm('tbody')\"\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [hBind]=\"ptm('tbody')\"\n [hTreeTableBody]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [pTreeTableBodyTemplate]=\"frozen() ? tt.frozenBodyTemplate || tt._frozenBodyTemplate() || tt.bodyTemplate || tt._bodyTemplate() : tt.bodyTemplate || tt._bodyTemplate()\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen()\"\n ></tbody>\n </table>\n @if (frozen()) {\n <div #scrollableAligner [style.background-color]=\"'transparent'\"></div>\n }\n</ng-template>\n\n@if (tt.footerTemplate || tt._footerTemplate) {\n <div #scrollFooter [class]=\"cx('scrollableFooter')\" [hBind]=\"ptm('scrollableFooter')\">\n <div #scrollFooterBox [class]=\"cx('scrollableFooterBox')\" [hBind]=\"ptm('scrollableFooterBox')\">\n <table [class]=\"cx('scrollableFooterTable')\" [ngClass]=\"tt.tableStyleClass()\" [ngStyle]=\"tt.tableStyle()\" [hBind]=\"ptm('scrollableFooterTable')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tfoot role=\"rowgroup\" [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenFooterTemplate || tt._frozenFooterTemplate() || tt.footerTemplate || tt._footerTemplate : tt.footerTemplate || tt._footerTemplate; context: { $implicit: columns() }\"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n}\n" }]
2916
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.NgZone }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttScrollableView", required: false }] }], frozen: [{ type: i0.Input, args: [{ isSignal: true, alias: "frozen", required: false }] }], scrollHeaderViewChild: [{ type: i0.ViewChild, args: ['scrollHeader', { isSignal: true }] }], scrollHeaderBoxViewChild: [{ type: i0.ViewChild, args: ['scrollHeaderBox', { isSignal: true }] }], scrollBodyViewChild: [{ type: i0.ViewChild, args: ['scrollBody', { isSignal: true }] }], scrollTableViewChild: [{ type: i0.ViewChild, args: ['scrollTable', { isSignal: true }] }], scrollLoadingTableViewChild: [{ type: i0.ViewChild, args: ['loadingTable', { isSignal: true }] }], scrollFooterViewChild: [{ type: i0.ViewChild, args: ['scrollFooter', { isSignal: true }] }], scrollFooterBoxViewChild: [{ type: i0.ViewChild, args: ['scrollFooterBox', { isSignal: true }] }], scrollableAlignerViewChild: [{ type: i0.ViewChild, args: ['scrollableAligner', { isSignal: true }] }], scroller: [{ type: i0.ViewChild, args: ['scroller', { isSignal: true }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }] } });
2917
+ class TTSortableColumn extends BaseComponent {
2918
+ tt;
2919
+ hostName = 'TreeTable ';
2920
+ bindDirectiveInstance = inject(Bind, { self: true });
2921
+ onAfterViewChecked() {
2922
+ this.bindDirectiveInstance.setAttrs(this.ptm('sortableColumn', { context: { sorted: this.sorted } }));
2923
+ }
2924
+ field = input(undefined, { ...(ngDevMode ? { debugName: "field" } : /* istanbul ignore next */ {}), alias: "ttSortableColumn" });
2925
+ ttSortableColumnDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttSortableColumnDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
2926
+ sorted;
2927
+ subscription;
2928
+ _componentStyle = inject(TreeTableStyle);
2929
+ get ariaSorted() {
2930
+ if (this.sorted && this.tt.sortOrder() < 0)
2931
+ return 'descending';
2932
+ else if (this.sorted && this.tt.sortOrder() > 0)
2933
+ return 'ascending';
2934
+ else
2935
+ return 'none';
2936
+ }
2937
+ constructor(tt) {
2938
+ super();
2939
+ this.tt = tt;
2940
+ if (this.isEnabled()) {
2941
+ this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {
2942
+ this.updateSortState();
2943
+ });
2944
+ }
2945
+ }
2946
+ onInit() {
2947
+ if (this.isEnabled()) {
2948
+ this.updateSortState();
2949
+ }
2950
+ }
2951
+ updateSortState() {
2952
+ this.sorted = this.tt.isSorted(this.field());
2953
+ }
2954
+ onClick(event) {
2955
+ if (this.isEnabled()) {
2956
+ this.updateSortState();
2957
+ this.tt.sort({
2958
+ originalEvent: event,
2959
+ field: this.field()
2960
+ });
2961
+ clearSelection();
2962
+ }
2963
+ }
2964
+ onEnterKey(event) {
2965
+ this.onClick(event);
2966
+ }
2967
+ isEnabled() {
2968
+ return this.ttSortableColumnDisabled() !== true;
2969
+ }
2970
+ onDestroy() {
2971
+ if (this.subscription) {
2972
+ this.subscription.unsubscribe();
2973
+ }
2974
+ }
2975
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSortableColumn, deps: [{ token: TreeTable }], target: i0.ɵɵFactoryTarget.Directive });
2976
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTSortableColumn, isStandalone: false, selector: "[ttSortableColumn]", inputs: { field: { classPropertyName: "field", publicName: "ttSortableColumn", isSignal: true, isRequired: false, transformFunction: null }, ttSortableColumnDisabled: { classPropertyName: "ttSortableColumnDisabled", publicName: "ttSortableColumnDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "columnheader" }, listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKey($event)" }, properties: { "class": "cx(\"sortableColumn\")", "tabindex": "isEnabled() ? \"0\" : null", "attr.aria-sort": "ariaSorted" } }, providers: [TreeTableStyle], usesInheritance: true, hostDirectives: [{ directive: i1.Bind }], ngImport: i0 });
2977
+ }
2978
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSortableColumn, decorators: [{
2979
+ type: Directive,
2980
+ args: [{
2981
+ selector: '[ttSortableColumn]',
2982
+ standalone: false,
2983
+ host: {
2984
+ '[class]': 'cx("sortableColumn")',
2985
+ '[tabindex]': 'isEnabled() ? "0" : null',
2986
+ role: 'columnheader',
2987
+ '[attr.aria-sort]': 'ariaSorted',
2988
+ '(click)': 'onClick($event)',
2989
+ '(keydown.enter)': 'onEnterKey($event)'
2990
+ },
2991
+ providers: [TreeTableStyle],
2992
+ hostDirectives: [Bind]
2993
+ }]
2994
+ }], ctorParameters: () => [{ type: TreeTable }], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSortableColumn", required: false }] }], ttSortableColumnDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSortableColumnDisabled", required: false }] }] } });
2995
+ class TTSortIcon extends BaseComponent {
2996
+ tt;
2997
+ cd;
2998
+ hostName = 'TreeTable';
2999
+ field = input(/* @ts-ignore */
3000
+ ...(ngDevMode ? [undefined, { debugName: "field" }] : /* istanbul ignore next */ []));
3001
+ ariaLabelDesc = input(/* @ts-ignore */
3002
+ ...(ngDevMode ? [undefined, { debugName: "ariaLabelDesc" }] : /* istanbul ignore next */ []));
3003
+ ariaLabelAsc = input(/* @ts-ignore */
3004
+ ...(ngDevMode ? [undefined, { debugName: "ariaLabelAsc" }] : /* istanbul ignore next */ []));
3005
+ subscription;
3006
+ sortOrder;
3007
+ _componentStyle = inject(TreeTableStyle);
3008
+ constructor(tt, cd) {
3009
+ super();
3010
+ this.tt = tt;
3011
+ this.cd = cd;
3012
+ this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {
3013
+ this.updateSortState();
3014
+ this.cd.markForCheck();
3015
+ });
3016
+ }
3017
+ onInit() {
3018
+ this.updateSortState();
3019
+ }
3020
+ onClick(event) {
3021
+ event.preventDefault();
3022
+ }
3023
+ getMultiSortMetaIndex() {
3024
+ let multiSortMeta = this.tt.multiSortMeta();
3025
+ let index = -1;
3026
+ if (multiSortMeta && this.tt.sortMode() === 'multiple' && multiSortMeta.length > 1) {
3027
+ for (let i = 0; i < multiSortMeta.length; i++) {
3028
+ let meta = multiSortMeta[i];
3029
+ const field = this.field();
3030
+ if (meta.field === field || meta.field === field) {
3031
+ index = i;
3032
+ break;
3033
+ }
3034
+ }
3035
+ }
3036
+ return index;
3037
+ }
3038
+ updateSortState() {
3039
+ const sortMode = this.tt.sortMode();
3040
+ if (sortMode === 'single') {
3041
+ this.sortOrder = this.tt.isSorted(this.field()) ? this.tt.sortOrder() : 0;
3042
+ }
3043
+ else if (sortMode === 'multiple') {
3044
+ let sortMeta = this.tt.getSortMeta(this.field());
3045
+ this.sortOrder = sortMeta ? sortMeta.order : 0;
3046
+ }
3047
+ }
3048
+ getBadgeValue() {
3049
+ return this.getMultiSortMetaIndex() + 1;
3050
+ }
3051
+ isMultiSorted() {
3052
+ return this.tt.sortMode() === 'multiple' && this.getMultiSortMetaIndex() > -1;
3053
+ }
3054
+ onDestroy() {
3055
+ if (this.subscription) {
3056
+ this.subscription.unsubscribe();
3057
+ }
3058
+ }
3059
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSortIcon, deps: [{ token: TreeTable }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3060
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TTSortIcon, isStandalone: false, selector: "h-treeTableSortIcon, h-treetable-sort-icon, h-tree-table-sort-icon", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelDesc: { classPropertyName: "ariaLabelDesc", publicName: "ariaLabelDesc", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelAsc: { classPropertyName: "ariaLabelAsc", publicName: "ariaLabelAsc", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeTableStyle], usesInheritance: true, ngImport: i0, template: "@if (!tt.sortIconTemplate && !tt._sortIconTemplate) {\n @if (sortOrder === 0) {\n <svg data-h-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === 1) {\n <svg data-h-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === -1) {\n <svg data-h-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n}\n@if (tt.sortIconTemplate || tt._sortIconTemplate) {\n <span [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate || tt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n}\n@if (isMultiSorted()) {\n <h-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" [pt]=\"ptm('pcSortableColumnBadge')\" [unstyled]=\"unstyled()\"></h-badge>\n}\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SortAltIcon), selector: "[data-h-icon=\"sort-alt\"]" }, { kind: "component", type: i0.forwardRef(() => SortAmountUpAltIcon), selector: "[data-h-icon=\"sort-amount-up-alt\"]" }, { kind: "component", type: i0.forwardRef(() => SortAmountDownIcon), selector: "[data-h-icon=\"sort-amount-down\"]" }, { kind: "component", type: i0.forwardRef(() => i5.Badge), selector: "h-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "directive", type: i0.forwardRef(() => i1.Bind), selector: "[hBind]", inputs: ["hBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3061
+ }
3062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSortIcon, decorators: [{
3063
+ type: Component,
3064
+ args: [{ selector: 'h-treeTableSortIcon, h-treetable-sort-icon, h-tree-table-sort-icon', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TreeTableStyle], template: "@if (!tt.sortIconTemplate && !tt._sortIconTemplate) {\n @if (sortOrder === 0) {\n <svg data-h-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === 1) {\n <svg data-h-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === -1) {\n <svg data-h-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n}\n@if (tt.sortIconTemplate || tt._sortIconTemplate) {\n <span [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate || tt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n}\n@if (isMultiSorted()) {\n <h-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" [pt]=\"ptm('pcSortableColumnBadge')\" [unstyled]=\"unstyled()\"></h-badge>\n}\n" }]
3065
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.ChangeDetectorRef }], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: false }] }], ariaLabelDesc: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelDesc", required: false }] }], ariaLabelAsc: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelAsc", required: false }] }] } });
3066
+ class TTResizableColumn extends BaseComponent {
3067
+ tt;
3068
+ zone;
3069
+ hostName = 'TreeTable';
3070
+ ttResizableColumnDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttResizableColumnDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3071
+ resizer;
3072
+ resizerMouseDownListener;
3073
+ documentMouseMoveListener;
3074
+ documentMouseUpListener;
3075
+ constructor(tt, zone) {
3076
+ super();
3077
+ this.tt = tt;
3078
+ this.zone = zone;
3079
+ }
3080
+ onAfterViewInit() {
3081
+ if (isPlatformBrowser(this.platformId)) {
3082
+ if (this.isEnabled()) {
3083
+ addClass(this.el.nativeElement, 'h-resizable-column');
3084
+ this.resizer = this.renderer.createElement('span');
3085
+ !this.$unstyled() && this.renderer.addClass(this.resizer, 'h-column-resizer');
3086
+ this.resizer.setAttribute('data-pc-section', 'columnresizer');
3087
+ this.renderer.appendChild(this.el.nativeElement, this.resizer);
3088
+ this.zone.runOutsideAngular(() => {
3089
+ this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));
3090
+ });
3091
+ }
3092
+ }
3093
+ }
3094
+ bindDocumentEvents() {
3095
+ this.zone.runOutsideAngular(() => {
3096
+ this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));
3097
+ this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));
3098
+ });
3099
+ }
3100
+ unbindDocumentEvents() {
3101
+ if (this.documentMouseMoveListener) {
3102
+ this.documentMouseMoveListener();
3103
+ this.documentMouseMoveListener = null;
3104
+ }
3105
+ if (this.documentMouseUpListener) {
3106
+ this.documentMouseUpListener();
3107
+ this.documentMouseUpListener = null;
3108
+ }
3109
+ }
3110
+ onMouseDown(event) {
3111
+ this.tt.onColumnResizeBegin(event);
3112
+ this.bindDocumentEvents();
3113
+ }
3114
+ onDocumentMouseMove(event) {
3115
+ this.tt.onColumnResize(event);
3116
+ }
3117
+ onDocumentMouseUp(event) {
3118
+ this.tt.onColumnResizeEnd(event, this.el.nativeElement);
3119
+ this.unbindDocumentEvents();
3120
+ }
3121
+ isEnabled() {
3122
+ return this.ttResizableColumnDisabled() !== true;
3123
+ }
3124
+ onDestroy() {
3125
+ if (this.resizerMouseDownListener) {
3126
+ this.resizerMouseDownListener();
3127
+ this.resizerMouseDownListener = null;
3128
+ }
3129
+ this.unbindDocumentEvents();
3130
+ }
3131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTResizableColumn, deps: [{ token: TreeTable }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
3132
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTResizableColumn, isStandalone: false, selector: "[ttResizableColumn]", inputs: { ttResizableColumnDisabled: { classPropertyName: "ttResizableColumnDisabled", publicName: "ttResizableColumnDisabled", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
3133
+ }
3134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTResizableColumn, decorators: [{
3135
+ type: Directive,
3136
+ args: [{
3137
+ selector: '[ttResizableColumn]',
3138
+ standalone: false
3139
+ }]
3140
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.NgZone }], propDecorators: { ttResizableColumnDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttResizableColumnDisabled", required: false }] }] } });
3141
+ class TTReorderableColumn extends BaseComponent {
3142
+ tt;
3143
+ zone;
3144
+ hostName = 'TreeTable';
3145
+ ttReorderableColumnDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttReorderableColumnDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3146
+ dragStartListener;
3147
+ dragOverListener;
3148
+ dragEnterListener;
3149
+ dragLeaveListener;
3150
+ mouseDownListener;
3151
+ constructor(tt, zone) {
3152
+ super();
3153
+ this.tt = tt;
3154
+ this.zone = zone;
3155
+ }
3156
+ onAfterViewInit() {
3157
+ if (this.isEnabled()) {
3158
+ this.bindEvents();
3159
+ }
3160
+ }
3161
+ bindEvents() {
3162
+ if (isPlatformBrowser(this.platformId)) {
3163
+ this.zone.runOutsideAngular(() => {
3164
+ this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));
3165
+ this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));
3166
+ this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragEnter.bind(this));
3167
+ this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));
3168
+ this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));
3169
+ });
3170
+ }
3171
+ }
3172
+ unbindEvents() {
3173
+ if (isPlatformBrowser(this.platformId)) {
3174
+ if (this.mouseDownListener) {
3175
+ this.mouseDownListener();
3176
+ this.mouseDownListener = null;
3177
+ }
3178
+ if (this.dragOverListener) {
3179
+ this.dragOverListener();
3180
+ this.dragOverListener = null;
3181
+ }
3182
+ if (this.dragEnterListener) {
3183
+ this.dragEnterListener();
3184
+ this.dragEnterListener = null;
3185
+ }
3186
+ if (this.dragLeaveListener) {
3187
+ this.dragLeaveListener();
3188
+ this.dragLeaveListener = null;
3189
+ }
3190
+ }
3191
+ }
3192
+ onMouseDown(event) {
3193
+ if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || findSingle(event.target, '[data-pc-section="columnresizer"]'))
3194
+ this.el.nativeElement.draggable = false;
3195
+ else
3196
+ this.el.nativeElement.draggable = true;
3197
+ }
3198
+ onDragStart(event) {
3199
+ this.tt.onColumnDragStart(event, this.el.nativeElement);
3200
+ }
3201
+ onDragOver(event) {
3202
+ event.preventDefault();
3203
+ }
3204
+ onDragEnter(event) {
3205
+ this.tt.onColumnDragEnter(event, this.el.nativeElement);
3206
+ }
3207
+ onDragLeave(event) {
3208
+ this.tt.onColumnDragLeave(event);
3209
+ }
3210
+ onDrop(event) {
3211
+ if (this.isEnabled()) {
3212
+ this.tt.onColumnDrop(event, this.el.nativeElement);
3213
+ }
3214
+ }
3215
+ isEnabled() {
3216
+ return this.ttReorderableColumnDisabled() !== true;
3217
+ }
3218
+ onDestroy() {
3219
+ this.unbindEvents();
3220
+ }
3221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTReorderableColumn, deps: [{ token: TreeTable }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
3222
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTReorderableColumn, isStandalone: false, selector: "[ttReorderableColumn]", inputs: { ttReorderableColumnDisabled: { classPropertyName: "ttReorderableColumnDisabled", publicName: "ttReorderableColumnDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "drop": "onDrop($event)" } }, usesInheritance: true, ngImport: i0 });
3223
+ }
3224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTReorderableColumn, decorators: [{
3225
+ type: Directive,
3226
+ args: [{
3227
+ selector: '[ttReorderableColumn]',
3228
+ standalone: false,
3229
+ host: {
3230
+ '(drop)': 'onDrop($event)'
3231
+ }
3232
+ }]
3233
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.NgZone }], propDecorators: { ttReorderableColumnDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttReorderableColumnDisabled", required: false }] }] } });
3234
+ class TTSelectableRow extends BaseComponent {
3235
+ tt;
3236
+ tableService;
3237
+ rowNode = input(undefined, { ...(ngDevMode ? { debugName: "rowNode" } : /* istanbul ignore next */ {}), alias: "ttSelectableRow" });
3238
+ ttSelectableRowDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttSelectableRowDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3239
+ selected;
3240
+ subscription;
3241
+ _componentStyle = inject(TreeTableStyle);
3242
+ constructor(tt, tableService) {
3243
+ super();
3244
+ this.tt = tt;
3245
+ this.tableService = tableService;
3246
+ if (this.isEnabled()) {
3247
+ this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {
3248
+ this.selected = this.tt.isSelected(this.rowNode().node);
3249
+ });
3250
+ }
3251
+ }
3252
+ onInit() {
3253
+ if (this.isEnabled()) {
3254
+ this.selected = this.tt.isSelected(this.rowNode().node);
3255
+ }
3256
+ }
3257
+ onClick(event) {
3258
+ if (this.isEnabled()) {
3259
+ this.tt.handleRowClick({
3260
+ originalEvent: event,
3261
+ rowNode: this.rowNode()
3262
+ });
3263
+ }
3264
+ }
3265
+ onKeyDown(event) {
3266
+ switch (event.code) {
3267
+ case 'Enter':
3268
+ case 'Space':
3269
+ this.onEnterKey(event);
3270
+ break;
3271
+ default:
3272
+ break;
3273
+ }
3274
+ }
3275
+ onTouchEnd(event) {
3276
+ if (this.isEnabled()) {
3277
+ this.tt.handleRowTouchEnd(event);
3278
+ }
3279
+ }
3280
+ onEnterKey(event) {
3281
+ if (this.tt.selectionMode() === 'checkbox') {
3282
+ this.tt.toggleNodeWithCheckbox({
3283
+ originalEvent: event,
3284
+ rowNode: this.rowNode()
3285
+ });
3286
+ }
3287
+ else {
3288
+ this.onClick(event);
3289
+ }
3290
+ event.preventDefault();
3291
+ }
3292
+ isEnabled() {
3293
+ return this.ttSelectableRowDisabled() !== true;
3294
+ }
3295
+ onDestroy() {
3296
+ if (this.subscription) {
3297
+ this.subscription.unsubscribe();
3298
+ }
3299
+ }
3300
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSelectableRow, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Directive });
3301
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTSelectableRow, isStandalone: false, selector: "[ttSelectableRow]", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "ttSelectableRow", isSignal: true, isRequired: false, transformFunction: null }, ttSelectableRowDisabled: { classPropertyName: "ttSelectableRowDisabled", publicName: "ttSelectableRowDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "cx(\"row\")", "attr.aria-selected": "selected" } }, providers: [TreeTableStyle], usesInheritance: true, ngImport: i0 });
3302
+ }
3303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSelectableRow, decorators: [{
3304
+ type: Directive,
3305
+ args: [{
3306
+ selector: '[ttSelectableRow]',
3307
+ standalone: false,
3308
+ host: {
3309
+ '[class]': 'cx("row")',
3310
+ '[attr.aria-selected]': 'selected',
3311
+ '(click)': 'onClick($event)',
3312
+ '(keydown)': 'onKeyDown($event)',
3313
+ '(touchend)': 'onTouchEnd($event)'
3314
+ },
3315
+ providers: [TreeTableStyle]
3316
+ }]
3317
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSelectableRow", required: false }] }], ttSelectableRowDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSelectableRowDisabled", required: false }] }] } });
3318
+ class TTSelectableRowDblClick extends BaseComponent {
3319
+ tt;
3320
+ tableService;
3321
+ rowNode = input(undefined, { ...(ngDevMode ? { debugName: "rowNode" } : /* istanbul ignore next */ {}), alias: "ttSelectableRowDblClick" });
3322
+ ttSelectableRowDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttSelectableRowDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3323
+ selected;
3324
+ subscription;
3325
+ _componentStyle = inject(TreeTableStyle);
3326
+ constructor(tt, tableService) {
3327
+ super();
3328
+ this.tt = tt;
3329
+ this.tableService = tableService;
3330
+ if (this.isEnabled()) {
3331
+ this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {
3332
+ this.selected = this.tt.isSelected(this.rowNode().node);
3333
+ });
3334
+ }
3335
+ }
3336
+ onInit() {
3337
+ if (this.isEnabled()) {
3338
+ this.selected = this.tt.isSelected(this.rowNode().node);
3339
+ }
3340
+ }
3341
+ onClick(event) {
3342
+ if (this.isEnabled()) {
3343
+ this.tt.handleRowClick({
3344
+ originalEvent: event,
3345
+ rowNode: this.rowNode()
3346
+ });
3347
+ }
3348
+ }
3349
+ isEnabled() {
3350
+ return this.ttSelectableRowDisabled() !== true;
3351
+ }
3352
+ onDestroy() {
3353
+ if (this.subscription) {
3354
+ this.subscription.unsubscribe();
3355
+ }
3356
+ }
3357
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSelectableRowDblClick, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Directive });
3358
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTSelectableRowDblClick, isStandalone: false, selector: "[ttSelectableRowDblClick]", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "ttSelectableRowDblClick", isSignal: true, isRequired: false, transformFunction: null }, ttSelectableRowDisabled: { classPropertyName: "ttSelectableRowDisabled", publicName: "ttSelectableRowDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "dblclick": "onClick($event)" }, properties: { "class": "cx(\"row\")" } }, providers: [TreeTableStyle], usesInheritance: true, ngImport: i0 });
3359
+ }
3360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTSelectableRowDblClick, decorators: [{
3361
+ type: Directive,
3362
+ args: [{
3363
+ selector: '[ttSelectableRowDblClick]',
3364
+ standalone: false,
3365
+ host: {
3366
+ '[class]': 'cx("row")',
3367
+ '(dblclick)': 'onClick($event)'
3368
+ },
3369
+ providers: [TreeTableStyle]
3370
+ }]
3371
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSelectableRowDblClick", required: false }] }], ttSelectableRowDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttSelectableRowDisabled", required: false }] }] } });
3372
+ class TTContextMenuRow extends BaseComponent {
3373
+ tt;
3374
+ tableService;
3375
+ rowNode = input(undefined, { ...(ngDevMode ? { debugName: "rowNode" } : /* istanbul ignore next */ {}), alias: "ttContextMenuRow" });
3376
+ ttContextMenuRowDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttContextMenuRowDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3377
+ selected;
3378
+ subscription;
3379
+ _componentStyle = inject(TreeTableStyle);
3380
+ constructor(tt, tableService) {
3381
+ super();
3382
+ this.tt = tt;
3383
+ this.tableService = tableService;
3384
+ if (this.isEnabled()) {
3385
+ this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {
3386
+ this.selected = node ? this.tt.equals(this.rowNode().node, node) : false;
3387
+ });
3388
+ }
3389
+ }
3390
+ onContextMenu(event) {
3391
+ if (this.isEnabled()) {
3392
+ this.tt.handleRowRightClick({
3393
+ originalEvent: event,
3394
+ rowNode: this.rowNode()
3395
+ });
3396
+ this.el.nativeElement.focus();
3397
+ event.preventDefault();
3398
+ }
3399
+ }
3400
+ isEnabled() {
3401
+ return this.ttContextMenuRowDisabled() !== true;
3402
+ }
3403
+ onDestroy() {
3404
+ if (this.subscription) {
3405
+ this.subscription.unsubscribe();
3406
+ }
3407
+ }
3408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTContextMenuRow, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Directive });
3409
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTContextMenuRow, isStandalone: false, selector: "[ttContextMenuRow]", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "ttContextMenuRow", isSignal: true, isRequired: false, transformFunction: null }, ttContextMenuRowDisabled: { classPropertyName: "ttContextMenuRowDisabled", publicName: "ttContextMenuRowDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "contextmenu": "onContextMenu($event)" }, properties: { "class": "cx(\"contextMenuRow\")", "tabindex": "isEnabled() ? 0 : undefined" } }, providers: [TreeTableStyle], usesInheritance: true, ngImport: i0 });
3410
+ }
3411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTContextMenuRow, decorators: [{
3412
+ type: Directive,
3413
+ args: [{
3414
+ selector: '[ttContextMenuRow]',
3415
+ standalone: false,
3416
+ host: {
3417
+ '[class]': 'cx("contextMenuRow")',
3418
+ '[tabindex]': 'isEnabled() ? 0 : undefined',
3419
+ '(contextmenu)': 'onContextMenu($event)'
3420
+ },
3421
+ providers: [TreeTableStyle]
3422
+ }]
3423
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttContextMenuRow", required: false }] }], ttContextMenuRowDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttContextMenuRowDisabled", required: false }] }] } });
3424
+ class TTCheckbox extends BaseComponent {
3425
+ tt;
3426
+ tableService;
3427
+ cd;
3428
+ hostName = 'TreeTable';
3429
+ disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3430
+ rowNode = input(undefined, { ...(ngDevMode ? { debugName: "rowNode" } : /* istanbul ignore next */ {}), alias: "value" });
3431
+ checked;
3432
+ partialChecked;
3433
+ focused;
3434
+ subscription;
3435
+ _componentStyle = inject(TreeTableStyle);
3436
+ constructor(tt, tableService, cd) {
3437
+ super();
3438
+ this.tt = tt;
3439
+ this.tableService = tableService;
3440
+ this.cd = cd;
3441
+ this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {
3442
+ if (this.tt.selectionKeys()) {
3443
+ this.checked = this.tt.isNodeSelected(this.rowNode().node);
3444
+ this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);
3445
+ }
3446
+ else {
3447
+ this.checked = this.tt.isSelected(this.rowNode().node);
3448
+ this.partialChecked = this.rowNode().node.partialSelected;
3449
+ }
3450
+ this.cd.markForCheck();
3451
+ });
3452
+ }
3453
+ onInit() {
3454
+ if (this.tt.selectionKeys()) {
3455
+ this.checked = this.tt.isNodeSelected(this.rowNode().node);
3456
+ this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);
3457
+ }
3458
+ else {
3459
+ // for backward compatibility
3460
+ this.checked = this.tt.isSelected(this.rowNode().node);
3461
+ this.partialChecked = this.rowNode().node.partialSelected;
3462
+ }
3463
+ }
3464
+ onClick(event) {
3465
+ if (!this.disabled()) {
3466
+ if (this.tt.selectionKeys()) {
3467
+ const _check = !this.checked;
3468
+ this.tt.toggleCheckbox({
3469
+ originalEvent: event,
3470
+ check: _check,
3471
+ rowNode: this.rowNode()
3472
+ });
3473
+ }
3474
+ else {
3475
+ this.tt.toggleNodeWithCheckbox({
3476
+ originalEvent: event,
3477
+ rowNode: this.rowNode()
3478
+ });
3479
+ }
3480
+ }
3481
+ clearSelection();
3482
+ }
3483
+ onFocus() {
3484
+ this.focused = true;
3485
+ }
3486
+ onBlur() {
3487
+ this.focused = false;
3488
+ }
3489
+ onDestroy() {
3490
+ if (this.subscription) {
3491
+ this.subscription.unsubscribe();
3492
+ }
3493
+ }
3494
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTCheckbox, deps: [{ token: TreeTable }, { token: TreeTableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3495
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TTCheckbox, isStandalone: false, selector: "h-treeTableCheckbox, h-treetable-checkbox, h-tree-table-checkbox", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, rowNode: { classPropertyName: "rowNode", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeTableStyle], usesInheritance: true, ngImport: i0, template: `
3496
+ <h-checkbox [ngModel]="checked" [pt]="ptm('pcRowCheckbox')" (onChange)="onClick($event)" [binary]="true" [disabled]="disabled()" [indeterminate]="partialChecked" [styleClass]="cx('pcNodeCheckbox')" [tabIndex]="-1" [unstyled]="unstyled()">
3497
+ @if (tt.checkboxIconTemplate || tt._checkboxIconTemplate) {
3498
+ <ng-template hTemplate="icon">
3499
+ <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate || tt._checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }"></ng-template>
3500
+ </ng-template>
3501
+ }
3502
+ </h-checkbox>
3503
+ `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i4.HelixTemplate), selector: "[hTemplate]", inputs: ["type", "hTemplate"] }, { kind: "component", type: i0.forwardRef(() => 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: "directive", type: i0.forwardRef(() => i6.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i6.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3504
+ }
3505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTCheckbox, decorators: [{
3506
+ type: Component,
3507
+ args: [{
3508
+ selector: 'h-treeTableCheckbox, h-treetable-checkbox, h-tree-table-checkbox',
3509
+ standalone: false,
3510
+ template: `
3511
+ <h-checkbox [ngModel]="checked" [pt]="ptm('pcRowCheckbox')" (onChange)="onClick($event)" [binary]="true" [disabled]="disabled()" [indeterminate]="partialChecked" [styleClass]="cx('pcNodeCheckbox')" [tabIndex]="-1" [unstyled]="unstyled()">
3512
+ @if (tt.checkboxIconTemplate || tt._checkboxIconTemplate) {
3513
+ <ng-template hTemplate="icon">
3514
+ <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate || tt._checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }"></ng-template>
3515
+ </ng-template>
3516
+ }
3517
+ </h-checkbox>
3518
+ `,
3519
+ encapsulation: ViewEncapsulation.None,
3520
+ changeDetection: ChangeDetectionStrategy.OnPush,
3521
+ providers: [TreeTableStyle]
3522
+ }]
3523
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
3524
+ class TTHeaderCheckbox extends BaseComponent {
3525
+ tt;
3526
+ tableService;
3527
+ checked;
3528
+ disabled;
3529
+ selectionChangeSubscription;
3530
+ valueChangeSubscription;
3531
+ constructor(tt, tableService) {
3532
+ super();
3533
+ this.tt = tt;
3534
+ this.tableService = tableService;
3535
+ this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {
3536
+ this.checked = this.updateCheckedState();
3537
+ });
3538
+ this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {
3539
+ this.checked = this.updateCheckedState();
3540
+ });
3541
+ }
3542
+ onInit() {
3543
+ this.checked = this.updateCheckedState();
3544
+ }
3545
+ onClick(event) {
3546
+ const value = this.tt?.value();
3547
+ if ((value || this.tt?.filteredNodes) && ((value && value.length > 0) || (this.tt?.filteredNodes && this.tt.filteredNodes.length > 0))) {
3548
+ this.tt?.toggleNodesWithCheckbox(event, !this.checked);
3549
+ }
3550
+ clearSelection();
3551
+ }
3552
+ onDestroy() {
3553
+ if (this.selectionChangeSubscription) {
3554
+ this.selectionChangeSubscription.unsubscribe();
3555
+ }
3556
+ if (this.valueChangeSubscription) {
3557
+ this.valueChangeSubscription.unsubscribe();
3558
+ }
3559
+ }
3560
+ updateCheckedState() {
3561
+ this.cd.markForCheck();
3562
+ let checked;
3563
+ const data = this.tt.filteredNodes || this.tt.value();
3564
+ if (data) {
3565
+ if (this.tt.selectionKeys()) {
3566
+ for (let node of data) {
3567
+ if (this.tt.isNodeSelected(node)) {
3568
+ checked = true;
3569
+ }
3570
+ else {
3571
+ checked = false;
3572
+ break;
3573
+ }
3574
+ }
3575
+ }
3576
+ if (!this.tt.selectionKeys()) {
3577
+ // legacy selection support, will be removed in v18
3578
+ for (let node of data) {
3579
+ if (this.tt.isSelected(node)) {
3580
+ checked = true;
3581
+ }
3582
+ else {
3583
+ checked = false;
3584
+ break;
3585
+ }
3586
+ }
3587
+ }
3588
+ }
3589
+ else {
3590
+ checked = false;
3591
+ }
3592
+ return checked;
3593
+ }
3594
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTHeaderCheckbox, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Component });
3595
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TTHeaderCheckbox, isStandalone: false, selector: "h-treeTableHeaderCheckbox", usesInheritance: true, ngImport: i0, template: `
3596
+ <h-checkbox [ngModel]="checked" [pt]="ptm('pcHeaderCheckbox')" (onChange)="onClick($event)" [binary]="true" [disabled]="!tt.value || tt.value.length === 0" [unstyled]="unstyled()">
3597
+ @if (tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate) {
3598
+ <ng-template hTemplate="icon">
3599
+ <ng-template *ngTemplateOutlet="tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate; context: { $implicit: checked }"></ng-template>
3600
+ </ng-template>
3601
+ }
3602
+ </h-checkbox>
3603
+ `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i4.HelixTemplate), selector: "[hTemplate]", inputs: ["type", "hTemplate"] }, { kind: "component", type: i0.forwardRef(() => 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: "directive", type: i0.forwardRef(() => i6.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i6.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3604
+ }
3605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTHeaderCheckbox, decorators: [{
3606
+ type: Component,
3607
+ args: [{
3608
+ selector: 'h-treeTableHeaderCheckbox',
3609
+ standalone: false,
3610
+ template: `
3611
+ <h-checkbox [ngModel]="checked" [pt]="ptm('pcHeaderCheckbox')" (onChange)="onClick($event)" [binary]="true" [disabled]="!tt.value || tt.value.length === 0" [unstyled]="unstyled()">
3612
+ @if (tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate) {
3613
+ <ng-template hTemplate="icon">
3614
+ <ng-template *ngTemplateOutlet="tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate; context: { $implicit: checked }"></ng-template>
3615
+ </ng-template>
3616
+ }
3617
+ </h-checkbox>
3618
+ `,
3619
+ encapsulation: ViewEncapsulation.None,
3620
+ changeDetection: ChangeDetectionStrategy.OnPush
3621
+ }]
3622
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }] });
3623
+ class TTEditableColumn extends BaseComponent {
3624
+ tt;
3625
+ zone;
3626
+ data = input(undefined, { ...(ngDevMode ? { debugName: "data" } : /* istanbul ignore next */ {}), alias: "ttEditableColumn" });
3627
+ field = input(undefined, { ...(ngDevMode ? { debugName: "field" } : /* istanbul ignore next */ {}), alias: "ttEditableColumnField" });
3628
+ ttEditableColumnDisabled = input(undefined, { ...(ngDevMode ? { debugName: "ttEditableColumnDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
3629
+ constructor(tt, zone) {
3630
+ super();
3631
+ this.tt = tt;
3632
+ this.zone = zone;
3633
+ }
3634
+ onAfterViewInit() {
3635
+ if (this.isEnabled()) {
3636
+ !this.$unstyled() && addClass(this.el.nativeElement, 'h-editable-column');
3637
+ this.el?.nativeElement.setAttribute('data-h-editable-column', 'true');
3638
+ }
3639
+ }
3640
+ onClick(event) {
3641
+ if (this.isEnabled()) {
3642
+ this.tt.editingCellClick = true;
3643
+ if (this.tt.editingCell) {
3644
+ if (this.tt.editingCell !== this.el.nativeElement) {
3645
+ if (!this.tt.isEditingCellValid()) {
3646
+ return;
3647
+ }
3648
+ if (this.tt.editingCell)
3649
+ !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');
3650
+ this.openCell();
3651
+ }
3652
+ }
3653
+ else {
3654
+ this.openCell();
3655
+ }
3656
+ }
3657
+ }
3658
+ openCell() {
3659
+ const data = this.data();
3660
+ const field = this.field();
3661
+ this.tt.updateEditingCell(this.el.nativeElement, data, field);
3662
+ !this.$unstyled() && addClass(this.el.nativeElement, 'h-cell-editing');
3663
+ this.el?.nativeElement.setAttribute('data-h-cell-editing', 'true');
3664
+ this.tt.onEditInit.emit({ field: field, data: data });
3665
+ this.tt.editingCellClick = true;
3666
+ this.zone.runOutsideAngular(() => {
3667
+ setTimeout(() => {
3668
+ let focusable = findSingle(this.el.nativeElement, 'input, textarea');
3669
+ if (focusable) {
3670
+ focusable.focus();
3671
+ }
3672
+ }, 50);
3673
+ });
3674
+ }
3675
+ closeEditingCell() {
3676
+ if (this.tt.editingCell)
3677
+ !this.$unstyled() && removeClass(this.tt.editingCell, 'h-checkbox-icon');
3678
+ this.tt.editingCell = null;
3679
+ this.tt.unbindDocumentEditListener();
3680
+ }
3681
+ onKeyDown(event) {
3682
+ if (this.isEnabled()) {
3683
+ //enter
3684
+ if (event.keyCode == 13 && !event.shiftKey) {
3685
+ if (this.tt.isEditingCellValid()) {
3686
+ if (this.tt.editingCell) {
3687
+ !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');
3688
+ this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');
3689
+ }
3690
+ this.closeEditingCell();
3691
+ this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });
3692
+ }
3693
+ event.preventDefault();
3694
+ }
3695
+ //escape
3696
+ else if (event.keyCode == 27) {
3697
+ if (this.tt.isEditingCellValid()) {
3698
+ if (this.tt.editingCell) {
3699
+ !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');
3700
+ this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');
3701
+ }
3702
+ this.closeEditingCell();
3703
+ this.tt.onEditCancel.emit({ field: this.field(), data: this.data() });
3704
+ }
3705
+ event.preventDefault();
3706
+ }
3707
+ //tab
3708
+ else if (event.keyCode == 9) {
3709
+ this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });
3710
+ if (event.shiftKey)
3711
+ this.moveToPreviousCell(event);
3712
+ else
3713
+ this.moveToNextCell(event);
3714
+ }
3715
+ }
3716
+ }
3717
+ findCell(element) {
3718
+ if (element) {
3719
+ let cell = element;
3720
+ while (cell && !findSingle(cell, '[data-h-cell-editing="true"]')) {
3721
+ cell = cell.parentElement;
3722
+ }
3723
+ return cell;
3724
+ }
3725
+ else {
3726
+ return null;
3727
+ }
3728
+ }
3729
+ moveToPreviousCell(event) {
3730
+ let currentCell = this.findCell(event.target);
3731
+ let row = currentCell.parentElement;
3732
+ let targetCell = this.findPreviousEditableColumn(currentCell);
3733
+ if (targetCell) {
3734
+ // @ts-ignore
3735
+ invokeElementMethod(targetCell, 'click', undefined);
3736
+ event.preventDefault();
3737
+ }
3738
+ }
3739
+ moveToNextCell(event) {
3740
+ let currentCell = this.findCell(event.target);
3741
+ let row = currentCell.parentElement;
3742
+ let targetCell = this.findNextEditableColumn(currentCell);
3743
+ if (targetCell) {
3744
+ // @ts-ignore
3745
+ invokeElementMethod(targetCell, 'click', undefined);
3746
+ event.preventDefault();
3747
+ }
3748
+ }
3749
+ findPreviousEditableColumn(cell) {
3750
+ let prevCell = cell.previousElementSibling;
3751
+ if (!prevCell) {
3752
+ let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;
3753
+ if (previousRow) {
3754
+ prevCell = previousRow.lastElementChild;
3755
+ }
3756
+ }
3757
+ if (prevCell) {
3758
+ if (findSingle(prevCell, '[data-h-editable-column="true"]'))
3759
+ return prevCell;
3760
+ else
3761
+ return this.findPreviousEditableColumn(prevCell);
3762
+ }
3763
+ else {
3764
+ return null;
3765
+ }
3766
+ }
3767
+ findNextEditableColumn(cell) {
3768
+ let nextCell = cell.nextElementSibling;
3769
+ if (!nextCell) {
3770
+ let nextRow = cell.parentElement ? cell.parentElement.nextElementSibling : null;
3771
+ if (nextRow) {
3772
+ nextCell = nextRow.firstElementChild;
3773
+ }
3774
+ }
3775
+ if (nextCell) {
3776
+ if (findSingle(nextCell, '[data-h-editable-column="true"]'))
3777
+ return nextCell;
3778
+ else
3779
+ return this.findNextEditableColumn(nextCell);
3780
+ }
3781
+ else {
3782
+ return null;
3783
+ }
3784
+ }
3785
+ isEnabled() {
3786
+ return this.ttEditableColumnDisabled() !== true;
3787
+ }
3788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTEditableColumn, deps: [{ token: TreeTable }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
3789
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTEditableColumn, isStandalone: false, selector: "[ttEditableColumn]", inputs: { data: { classPropertyName: "data", publicName: "ttEditableColumn", isSignal: true, isRequired: false, transformFunction: null }, field: { classPropertyName: "field", publicName: "ttEditableColumnField", isSignal: true, isRequired: false, transformFunction: null }, ttEditableColumnDisabled: { classPropertyName: "ttEditableColumnDisabled", publicName: "ttEditableColumnDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, usesInheritance: true, ngImport: i0 });
3790
+ }
3791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTEditableColumn, decorators: [{
3792
+ type: Directive,
3793
+ args: [{
3794
+ selector: '[ttEditableColumn]',
3795
+ standalone: false,
3796
+ host: {
3797
+ '(click)': 'onClick($event)',
3798
+ '(keydown)': 'onKeyDown($event)'
3799
+ }
3800
+ }]
3801
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.NgZone }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttEditableColumn", required: false }] }], field: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttEditableColumnField", required: false }] }], ttEditableColumnDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttEditableColumnDisabled", required: false }] }] } });
3802
+ class TreeTableCellEditor extends BaseComponent {
3803
+ tt;
3804
+ editableColumn;
3805
+ hostName = 'TreeTable';
3806
+ bindDirectiveInstance = inject(Bind, { self: true });
3807
+ onAfterViewChecked() {
3808
+ this.bindDirectiveInstance.setAttrs(this.ptm('cellEditor'));
3809
+ }
3810
+ templates = contentChildren(HelixTemplate, /* @ts-ignore */
3811
+ ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
3812
+ inputTemplate;
3813
+ outputTemplate;
3814
+ constructor(tt, editableColumn) {
3815
+ super();
3816
+ this.tt = tt;
3817
+ this.editableColumn = editableColumn;
3818
+ }
3819
+ onAfterContentInit() {
3820
+ this.templates().forEach((item) => {
3821
+ switch (item.getType()) {
3822
+ case 'input':
3823
+ this.inputTemplate = item.template;
3824
+ break;
3825
+ case 'output':
3826
+ this.outputTemplate = item.template;
3827
+ break;
3828
+ }
3829
+ });
3830
+ }
3831
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableCellEditor, deps: [{ token: TreeTable }, { token: TTEditableColumn }], target: i0.ɵɵFactoryTarget.Component });
3832
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TreeTableCellEditor, isStandalone: false, selector: "h-treeTableCellEditor, h-treetablecelleditor, h-treetable-cell-editor", queries: [{ propertyName: "templates", predicate: HelixTemplate, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.Bind }], ngImport: i0, template: `
3833
+ @if (tt.editingCell === editableColumn.el.nativeElement) {
3834
+ <ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
3835
+ }
3836
+ @if (!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement) {
3837
+ <ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
3838
+ }
3839
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
3840
+ }
3841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableCellEditor, decorators: [{
3842
+ type: Component,
3843
+ args: [{
3844
+ selector: 'h-treeTableCellEditor, h-treetablecelleditor, h-treetable-cell-editor',
3845
+ standalone: false,
3846
+ template: `
3847
+ @if (tt.editingCell === editableColumn.el.nativeElement) {
3848
+ <ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
3849
+ }
3850
+ @if (!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement) {
3851
+ <ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
3852
+ }
3853
+ `,
3854
+ encapsulation: ViewEncapsulation.None,
3855
+ changeDetection: ChangeDetectionStrategy.Eager,
3856
+ hostDirectives: [Bind]
3857
+ }]
3858
+ }], ctorParameters: () => [{ type: TreeTable }, { type: TTEditableColumn }], propDecorators: { templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => HelixTemplate), { isSignal: true }] }] } });
3859
+ class TTRow extends BaseComponent {
3860
+ tt;
3861
+ el;
3862
+ zone;
3863
+ hostName = 'TreeTable';
3864
+ bindDirectiveInstance = inject(Bind, { self: true });
3865
+ treeTable = inject(TreeTable);
3866
+ onAfterViewChecked() {
3867
+ this.bindDirectiveInstance.setAttrs(this.ptm('row', this.ptmOptions()));
3868
+ }
3869
+ get level() {
3870
+ return this.rowNode()?.['level'] + 1;
3871
+ }
3872
+ get styleClass() {
3873
+ return this.rowNode()?.node['styleClass'] || '';
3874
+ }
3875
+ get expanded() {
3876
+ return this.rowNode()?.node['expanded'];
3877
+ }
3878
+ rowNode = input(undefined, { ...(ngDevMode ? { debugName: "rowNode" } : /* istanbul ignore next */ {}), alias: "ttRow" });
3879
+ _componentStyle = inject(TreeTableStyle);
3880
+ constructor(tt, el, zone) {
3881
+ super();
3882
+ this.tt = tt;
3883
+ this.el = el;
3884
+ this.zone = zone;
3885
+ }
3886
+ onKeyDown(event) {
3887
+ switch (event.code) {
3888
+ case 'ArrowDown':
3889
+ this.onArrowDownKey(event);
3890
+ break;
3891
+ case 'ArrowUp':
3892
+ this.onArrowUpKey(event);
3893
+ break;
3894
+ case 'ArrowRight':
3895
+ this.onArrowRightKey(event);
3896
+ break;
3897
+ case 'ArrowLeft':
3898
+ this.onArrowLeftKey(event);
3899
+ break;
3900
+ case 'Tab':
3901
+ this.onTabKey(event);
3902
+ break;
3903
+ case 'Home':
3904
+ this.onHomeKey(event);
3905
+ break;
3906
+ case 'End':
3907
+ this.onEndKey(event);
3908
+ break;
3909
+ default:
3910
+ break;
3911
+ }
3912
+ }
3913
+ onArrowDownKey(event) {
3914
+ let nextRow = this.el?.nativeElement?.nextElementSibling;
3915
+ if (nextRow) {
3916
+ this.focusRowChange(event.currentTarget, nextRow);
3917
+ }
3918
+ event.preventDefault();
3919
+ }
3920
+ onArrowUpKey(event) {
3921
+ let prevRow = this.el?.nativeElement?.previousElementSibling;
3922
+ if (prevRow) {
3923
+ this.focusRowChange(event.currentTarget, prevRow);
3924
+ }
3925
+ event.preventDefault();
3926
+ }
3927
+ onArrowRightKey(event) {
3928
+ const currentTarget = event.currentTarget;
3929
+ const isHiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';
3930
+ if (!isHiddenIcon && !this.expanded && this.rowNode().node['children']) {
3931
+ this.expand(event);
3932
+ currentTarget.tabIndex = -1;
3933
+ }
3934
+ event.preventDefault();
3935
+ }
3936
+ onArrowLeftKey(event) {
3937
+ const container = this.tt.el?.nativeElement;
3938
+ const expandedRows = find(container, '[aria-expanded="true"]');
3939
+ const lastExpandedRow = expandedRows[expandedRows.length - 1];
3940
+ if (this.expanded) {
3941
+ this.collapse(event);
3942
+ }
3943
+ if (lastExpandedRow) {
3944
+ this.tt.toggleRowIndex = getIndex(lastExpandedRow);
3945
+ }
3946
+ this.restoreFocus();
3947
+ event.preventDefault();
3948
+ }
3949
+ onHomeKey(event) {
3950
+ const firstElement = findSingle(this.tt.el?.nativeElement, `tr[aria-level="${this.level}"]`);
3951
+ firstElement && focus(firstElement);
3952
+ event.preventDefault();
3953
+ }
3954
+ onEndKey(event) {
3955
+ const nodes = find(this.tt.el?.nativeElement, `tr[aria-level="${this.level}"]`);
3956
+ const lastElement = nodes[nodes.length - 1];
3957
+ focus(lastElement);
3958
+ event.preventDefault();
3959
+ }
3960
+ onTabKey(event) {
3961
+ const rows = this.el.nativeElement ? [...find(this.el.nativeElement.parentNode, 'tr')] : undefined;
3962
+ if (rows && isNotEmpty(rows)) {
3963
+ const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-h-highlight') || row.getAttribute('aria-selected') === 'true');
3964
+ rows.forEach((row) => {
3965
+ row.tabIndex = -1;
3966
+ });
3967
+ if (hasSelectedRow) {
3968
+ const selectedNodes = rows.filter((node) => getAttribute(node, 'data-h-highlight') || node.getAttribute('aria-selected') === 'true');
3969
+ selectedNodes[0].tabIndex = 0;
3970
+ return;
3971
+ }
3972
+ rows[0].tabIndex = 0;
3973
+ }
3974
+ }
3975
+ expand(event) {
3976
+ this.tt.toggleRowIndex = getIndex(this.el.nativeElement);
3977
+ const node = this.rowNode()?.node;
3978
+ if (node)
3979
+ node['expanded'] = true;
3980
+ this.tt.updateSerializedValue();
3981
+ this.tt.tableService.onUIUpdate(this.tt.value());
3982
+ node?.['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();
3983
+ this.tt.onNodeExpand.emit({
3984
+ originalEvent: event,
3985
+ node
3986
+ });
3987
+ }
3988
+ collapse(event) {
3989
+ const node = this.rowNode()?.node;
3990
+ if (node)
3991
+ node['expanded'] = false;
3992
+ this.tt.updateSerializedValue();
3993
+ this.tt.tableService.onUIUpdate(this.tt.value());
3994
+ this.tt.onNodeCollapse.emit({ originalEvent: event, node });
3995
+ }
3996
+ focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {
3997
+ firstFocusableRow.tabIndex = '-1';
3998
+ currentFocusedRow.tabIndex = '0';
3999
+ focus(currentFocusedRow);
4000
+ }
4001
+ restoreFocus(index) {
4002
+ this.zone.runOutsideAngular(() => {
4003
+ setTimeout(() => {
4004
+ const container = this.tt.el?.nativeElement;
4005
+ const tbody = findSingle(container, '[data-pc-section="tbody"]');
4006
+ const row = tbody?.children?.[index || this.tt.toggleRowIndex || 0];
4007
+ const rows = [...find(container, 'tr')];
4008
+ rows &&
4009
+ rows.forEach((r) => {
4010
+ if (row && !row.isSameNode(r)) {
4011
+ r.tabIndex = -1;
4012
+ }
4013
+ });
4014
+ if (row) {
4015
+ row.tabIndex = 0;
4016
+ row.focus();
4017
+ }
4018
+ }, 25);
4019
+ });
4020
+ }
4021
+ ptmOptions() {
4022
+ return {
4023
+ context: {
4024
+ selectable: this.treeTable?.rowHover() || this.treeTable.selectionMode() === 'row',
4025
+ selected: this.treeTable.isSelected(this.rowNode()?.node),
4026
+ scrollable: this.treeTable?.scrollable(),
4027
+ rowNode: this.rowNode()
4028
+ }
4029
+ };
4030
+ }
4031
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTRow, deps: [{ token: TreeTable }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4032
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: TTRow, isStandalone: false, selector: "[ttRow]", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "ttRow", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "row" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "class": "'h-element ' + styleClass", "tabindex": "'0'", "attr.aria-expanded": "expanded", "attr.aria-level": "level" } }, providers: [TreeTableStyle], usesInheritance: true, hostDirectives: [{ directive: i1.Bind }], ngImport: i0 });
4033
+ }
4034
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TTRow, decorators: [{
4035
+ type: Directive,
4036
+ args: [{
4037
+ selector: '[ttRow]',
4038
+ standalone: false,
4039
+ host: {
4040
+ '[class]': `'h-element ' + styleClass`,
4041
+ '[tabindex]': "'0'",
4042
+ '[attr.aria-expanded]': 'expanded',
4043
+ '[attr.aria-level]': 'level',
4044
+ role: 'row',
4045
+ '(keydown)': 'onKeyDown($event)'
4046
+ },
4047
+ providers: [TreeTableStyle],
4048
+ hostDirectives: [Bind]
4049
+ }]
4050
+ }], ctorParameters: () => [{ type: TreeTable }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "ttRow", required: false }] }] } });
4051
+ class TreeTableToggler extends BaseComponent {
4052
+ tt;
4053
+ hostName = 'TreeTable';
4054
+ bindDirectiveInstance = inject(Bind, { self: true });
4055
+ onAfterViewChecked() {
4056
+ this.bindDirectiveInstance.setAttrs(this.ptm('toggler'));
4057
+ }
4058
+ rowNode = input(/* @ts-ignore */
4059
+ ...(ngDevMode ? [undefined, { debugName: "rowNode" }] : /* istanbul ignore next */ []));
4060
+ _componentStyle = inject(TreeTableStyle);
4061
+ constructor(tt) {
4062
+ super();
4063
+ this.tt = tt;
4064
+ }
4065
+ get toggleButtonAriaLabel() {
4066
+ return this.config.translation ? (this.rowNode().expanded ? this.config.translation?.aria?.collapseRow : this.config.translation?.aria?.expandRow) : undefined;
4067
+ }
4068
+ onClick(event) {
4069
+ const node = this.rowNode();
4070
+ node.node.expanded = !node.node.expanded;
4071
+ if (node.node.expanded) {
4072
+ this.tt.onNodeExpand.emit({
4073
+ originalEvent: event,
4074
+ node: node.node
4075
+ });
4076
+ }
4077
+ else {
4078
+ this.tt.onNodeCollapse.emit({
4079
+ originalEvent: event,
4080
+ node: node.node
4081
+ });
4082
+ }
4083
+ this.tt.updateSerializedValue();
4084
+ this.tt.tableService.onUIUpdate(this.tt.value());
4085
+ event.preventDefault();
4086
+ }
4087
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableToggler, deps: [{ token: TreeTable }], target: i0.ɵɵFactoryTarget.Component });
4088
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: TreeTableToggler, isStandalone: false, selector: "h-treeTableToggler, h-treetabletoggler, h-treetable-toggler", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "rowNode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeTableStyle], usesInheritance: true, hostDirectives: [{ directive: i1.Bind }], ngImport: i0, template: "<button\n type=\"button\"\n [class]=\"cx('toggler')\"\n [hBind]=\"ptm('rowToggleButton')\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n hRipple\n [style.visibility]=\"rowNode().node.leaf === false || (rowNode().node.children && rowNode().node.children.length) ? 'visible' : 'hidden'\"\n [style.marginInlineStart]=\"rowNode().level * 16 + 'px'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n @if (!tt.togglerIconTemplate && !tt._togglerIconTemplate()) {\n @if (rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n @if (!rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-right\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n }\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate || tt._togglerIconTemplate(); context: { $implicit: rowNode().node.expanded }\"></ng-template>\n</button>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => Ripple), selector: "[hRipple]" }, { kind: "component", type: i0.forwardRef(() => ChevronDownIcon), selector: "[data-h-icon=\"chevron-down\"]" }, { kind: "component", type: i0.forwardRef(() => ChevronRightIcon), selector: "[data-h-icon=\"chevron-right\"]" }, { kind: "directive", type: i0.forwardRef(() => i1.Bind), selector: "[hBind]", inputs: ["hBind"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
4089
+ }
4090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableToggler, decorators: [{
4091
+ type: Component,
4092
+ args: [{ selector: 'h-treeTableToggler, h-treetabletoggler, h-treetable-toggler', standalone: false, encapsulation: ViewEncapsulation.None, providers: [TreeTableStyle], changeDetection: ChangeDetectionStrategy.Eager, hostDirectives: [Bind], template: "<button\n type=\"button\"\n [class]=\"cx('toggler')\"\n [hBind]=\"ptm('rowToggleButton')\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n hRipple\n [style.visibility]=\"rowNode().node.leaf === false || (rowNode().node.children && rowNode().node.children.length) ? 'visible' : 'hidden'\"\n [style.marginInlineStart]=\"rowNode().level * 16 + 'px'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n @if (!tt.togglerIconTemplate && !tt._togglerIconTemplate()) {\n @if (rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n @if (!rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-right\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n }\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate || tt._togglerIconTemplate(); context: { $implicit: rowNode().node.expanded }\"></ng-template>\n</button>\n" }]
4093
+ }], ctorParameters: () => [{ type: TreeTable }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowNode", required: false }] }] } });
4094
+ class TreeTableModule {
4095
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4096
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: TreeTableModule, declarations: [TreeTable, TreeTableToggler, TTScrollableView, TTBody, TTSortableColumn, TTSortIcon, TTResizableColumn, TTRow, TTReorderableColumn, TTSelectableRow, TTSelectableRowDblClick, TTContextMenuRow, TTCheckbox, TTHeaderCheckbox, TTEditableColumn, TreeTableCellEditor], imports: [CommonModule,
4097
+ PaginatorModule,
4098
+ Ripple,
4099
+ Scroller,
4100
+ SpinnerIcon,
4101
+ ArrowDownIcon,
4102
+ ArrowUpIcon,
4103
+ SortAltIcon,
4104
+ SortAmountUpAltIcon,
4105
+ SortAmountDownIcon,
4106
+ BadgeModule,
4107
+ CheckIcon,
4108
+ ChevronDownIcon,
4109
+ ChevronRightIcon,
4110
+ Checkbox,
4111
+ SharedModule,
4112
+ FormsModule,
4113
+ BindModule], exports: [TreeTable, SharedModule, TreeTableToggler, TTSortableColumn, TTSortIcon, TTResizableColumn, TTRow, TTReorderableColumn, TTSelectableRow, TTSelectableRowDblClick, TTContextMenuRow, TTCheckbox, TTHeaderCheckbox, TTEditableColumn, TreeTableCellEditor, Scroller] });
4114
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableModule, imports: [CommonModule,
4115
+ PaginatorModule,
4116
+ Scroller,
4117
+ SpinnerIcon,
4118
+ ArrowDownIcon,
4119
+ ArrowUpIcon,
4120
+ SortAltIcon,
4121
+ SortAmountUpAltIcon,
4122
+ SortAmountDownIcon,
4123
+ BadgeModule,
4124
+ CheckIcon,
4125
+ ChevronDownIcon,
4126
+ ChevronRightIcon,
4127
+ Checkbox,
4128
+ SharedModule,
4129
+ FormsModule,
4130
+ BindModule, SharedModule] });
4131
+ }
4132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: TreeTableModule, decorators: [{
4133
+ type: NgModule,
4134
+ args: [{
4135
+ imports: [
4136
+ CommonModule,
4137
+ PaginatorModule,
4138
+ Ripple,
4139
+ Scroller,
4140
+ SpinnerIcon,
4141
+ ArrowDownIcon,
4142
+ ArrowUpIcon,
4143
+ SortAltIcon,
4144
+ SortAmountUpAltIcon,
4145
+ SortAmountDownIcon,
4146
+ BadgeModule,
4147
+ CheckIcon,
4148
+ ChevronDownIcon,
4149
+ ChevronRightIcon,
4150
+ Checkbox,
4151
+ SharedModule,
4152
+ FormsModule,
4153
+ BindModule
4154
+ ],
4155
+ exports: [
4156
+ TreeTable,
4157
+ SharedModule,
4158
+ TreeTableToggler,
4159
+ TTSortableColumn,
4160
+ TTSortIcon,
4161
+ TTResizableColumn,
4162
+ TTRow,
4163
+ TTReorderableColumn,
4164
+ TTSelectableRow,
4165
+ TTSelectableRowDblClick,
4166
+ TTContextMenuRow,
4167
+ TTCheckbox,
4168
+ TTHeaderCheckbox,
4169
+ TTEditableColumn,
4170
+ TreeTableCellEditor,
4171
+ Scroller
4172
+ ],
4173
+ declarations: [
4174
+ TreeTable,
4175
+ TreeTableToggler,
4176
+ TTScrollableView,
4177
+ TTBody,
4178
+ TTSortableColumn,
4179
+ TTSortIcon,
4180
+ TTResizableColumn,
4181
+ TTRow,
4182
+ TTReorderableColumn,
4183
+ TTSelectableRow,
4184
+ TTSelectableRowDblClick,
4185
+ TTContextMenuRow,
4186
+ TTCheckbox,
4187
+ TTHeaderCheckbox,
4188
+ TTEditableColumn,
4189
+ TreeTableCellEditor
4190
+ ]
4191
+ }]
4192
+ }] });
4193
+
4194
+ /**
4195
+ * Generated bundle index. Do not edit.
4196
+ */
4197
+
4198
+ export { TTBody, TTCheckbox, TTContextMenuRow, TTEditableColumn, TTHeaderCheckbox, TTReorderableColumn, TTResizableColumn, TTRow, TTScrollableView, TTSelectableRow, TTSelectableRowDblClick, TTSortIcon, TTSortableColumn, TreeTable, TreeTableCellEditor, TreeTableClasses, TreeTableModule, TreeTableService, TreeTableStyle, TreeTableToggler };
4199
+ //# sourceMappingURL=gravionlabs-helix-core-treetable.mjs.map