primeng 18.0.0-beta.1 → 18.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (783) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +148 -23
  3. package/accordion/public_api.d.ts +1 -1
  4. package/accordion/style/accordionstyle.d.ts +37 -0
  5. package/api/translation.d.ts +2 -0
  6. package/autocomplete/autocomplete.d.ts +2 -3
  7. package/autocomplete/public_api.d.ts +1 -0
  8. package/autocomplete/style/autocompletestyle.d.ts +69 -0
  9. package/avatar/public_api.d.ts +1 -0
  10. package/avatar/style/avatarstyle.d.ts +25 -0
  11. package/avatargroup/avatargroup.d.ts +1 -1
  12. package/avatargroup/public_api.d.ts +1 -0
  13. package/avatargroup/style/avatargroupstyle.d.ts +14 -0
  14. package/badge/badge.d.ts +20 -26
  15. package/badge/public_api.d.ts +1 -0
  16. package/badge/style/badgestyle.d.ts +17 -0
  17. package/base/style/basestyle.d.ts +8 -0
  18. package/blockui/blockui.d.ts +1 -1
  19. package/blockui/public_api.d.ts +1 -0
  20. package/blockui/style/blockuistyle.d.ts +17 -0
  21. package/breadcrumb/breadcrumb.d.ts +0 -1
  22. package/breadcrumb/public_api.d.ts +1 -0
  23. package/breadcrumb/style/breadcrumbstyle.d.ts +45 -0
  24. package/button/button.d.ts +0 -1
  25. package/button/public_api.d.ts +1 -0
  26. package/button/style/buttonstyle.d.ts +29 -0
  27. package/buttongroup/buttongroup.d.ts +1 -1
  28. package/buttongroup/public_api.d.ts +1 -0
  29. package/buttongroup/style/buttongroupstyle.d.ts +17 -0
  30. package/calendar/public_api.d.ts +1 -0
  31. package/card/public_api.d.ts +1 -0
  32. package/card/style/cardstyle.d.ts +45 -0
  33. package/carousel/public_api.d.ts +1 -0
  34. package/carousel/style/carouselstyle.d.ts +69 -0
  35. package/cascadeselect/cascadeselect.d.ts +2 -2
  36. package/cascadeselect/public_api.d.ts +1 -0
  37. package/cascadeselect/style/cascadeselectstyle.d.ts +65 -0
  38. package/chart/public_api.d.ts +1 -0
  39. package/chart/style/chartstyle.d.ts +32 -0
  40. package/checkbox/public_api.d.ts +1 -0
  41. package/checkbox/style/checkboxstyle.d.ts +29 -0
  42. package/chip/public_api.d.ts +1 -0
  43. package/chip/style/chipstyle.d.ts +33 -0
  44. package/colorpicker/colorpicker.d.ts +1 -1
  45. package/colorpicker/public_api.d.ts +1 -0
  46. package/colorpicker/style/colorpickerstyle.d.ts +45 -0
  47. package/confirmdialog/confirmdialog.d.ts +1 -1
  48. package/confirmdialog/public_api.d.ts +1 -0
  49. package/confirmdialog/style/confirmdialogstyle.d.ts +33 -0
  50. package/confirmpopup/confirmpopup.d.ts +3 -3
  51. package/confirmpopup/public_api.d.ts +1 -0
  52. package/confirmpopup/style/confirmpopupstyle.d.ts +41 -0
  53. package/contextmenu/contextmenu.d.ts +2 -2
  54. package/contextmenu/public_api.d.ts +1 -0
  55. package/contextmenu/style/contextmenustyle.d.ts +54 -0
  56. package/dataview/dataview.d.ts +1 -1
  57. package/dataview/public_api.d.ts +1 -0
  58. package/dataview/style/dataviewstyle.d.ts +37 -0
  59. package/datepicker/datepicker.d.ts +1 -1
  60. package/datepicker/public_api.d.ts +1 -0
  61. package/datepicker/style/datepickerstyle.d.ts +165 -0
  62. package/dialog/style/dialogstyle.d.ts +49 -0
  63. package/divider/style/dividerstyle.d.ts +21 -0
  64. package/dock/public_api.d.ts +1 -0
  65. package/dock/style/dockstyle.d.ts +41 -0
  66. package/drawer/public_api.d.ts +1 -0
  67. package/drawer/style/drawerstyle.d.ts +37 -0
  68. package/dropdown/public_api.d.ts +1 -0
  69. package/dropdown/style/dropdownstyle.d.ts +14 -0
  70. package/dynamicdialog/dynamicdialog.d.ts +5 -0
  71. package/dynamicdialog/public_api.d.ts +1 -0
  72. package/dynamicdialog/style/dynamicdialogstyle.d.ts +49 -0
  73. package/editor/public_api.d.ts +1 -0
  74. package/editor/style/editorstyle.d.ts +25 -0
  75. package/esm2022/accordion/accordion.mjs +431 -81
  76. package/esm2022/accordion/public_api.mjs +2 -2
  77. package/esm2022/accordion/style/accordionstyle.mjs +39 -2
  78. package/esm2022/api/primengconfig.mjs +3 -1
  79. package/esm2022/api/translation.mjs +1 -1
  80. package/esm2022/autocomplete/autocomplete.mjs +6 -6
  81. package/esm2022/autocomplete/public_api.mjs +2 -1
  82. package/esm2022/autocomplete/style/autocompletestyle.mjs +69 -1
  83. package/esm2022/avatar/avatar.mjs +3 -2
  84. package/esm2022/avatar/public_api.mjs +2 -1
  85. package/esm2022/avatar/style/avatarstyle.mjs +25 -1
  86. package/esm2022/avatargroup/avatargroup.mjs +3 -3
  87. package/esm2022/avatargroup/public_api.mjs +2 -1
  88. package/esm2022/avatargroup/style/avatargroupstyle.mjs +14 -1
  89. package/esm2022/badge/badge.mjs +39 -51
  90. package/esm2022/badge/public_api.mjs +2 -1
  91. package/esm2022/badge/style/badgestyle.mjs +17 -1
  92. package/esm2022/basecomponent/basecomponent.mjs +3 -4
  93. package/esm2022/blockui/blockui.mjs +3 -3
  94. package/esm2022/blockui/public_api.mjs +2 -1
  95. package/esm2022/blockui/style/blockuistyle.mjs +17 -1
  96. package/esm2022/breadcrumb/breadcrumb.mjs +98 -119
  97. package/esm2022/breadcrumb/public_api.mjs +2 -1
  98. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +45 -1
  99. package/esm2022/button/button.mjs +3 -7
  100. package/esm2022/button/public_api.mjs +2 -1
  101. package/esm2022/button/style/buttonstyle.mjs +29 -1
  102. package/esm2022/buttongroup/buttongroup.mjs +3 -3
  103. package/esm2022/buttongroup/public_api.mjs +2 -1
  104. package/esm2022/buttongroup/style/buttongroupstyle.mjs +17 -1
  105. package/esm2022/calendar/calendar.mjs +2 -2
  106. package/esm2022/calendar/public_api.mjs +2 -1
  107. package/esm2022/card/public_api.mjs +2 -1
  108. package/esm2022/card/style/cardstyle.mjs +45 -1
  109. package/esm2022/carousel/public_api.mjs +2 -1
  110. package/esm2022/carousel/style/carouselstyle.mjs +69 -1
  111. package/esm2022/cascadeselect/cascadeselect.mjs +15 -19
  112. package/esm2022/cascadeselect/public_api.mjs +2 -1
  113. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +65 -1
  114. package/esm2022/chart/public_api.mjs +2 -1
  115. package/esm2022/chart/style/chartstyle.mjs +36 -0
  116. package/esm2022/checkbox/checkbox.mjs +1 -1
  117. package/esm2022/checkbox/public_api.mjs +2 -1
  118. package/esm2022/checkbox/style/checkboxstyle.mjs +29 -1
  119. package/esm2022/chip/public_api.mjs +2 -1
  120. package/esm2022/chip/style/chipstyle.mjs +33 -1
  121. package/esm2022/colorpicker/colorpicker.mjs +3 -3
  122. package/esm2022/colorpicker/public_api.mjs +2 -1
  123. package/esm2022/colorpicker/style/colorpickerstyle.mjs +45 -1
  124. package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
  125. package/esm2022/confirmdialog/public_api.mjs +2 -1
  126. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +33 -1
  127. package/esm2022/confirmpopup/confirmpopup.mjs +11 -11
  128. package/esm2022/confirmpopup/public_api.mjs +2 -1
  129. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +41 -1
  130. package/esm2022/contextmenu/contextmenu.mjs +15 -15
  131. package/esm2022/contextmenu/public_api.mjs +2 -1
  132. package/esm2022/contextmenu/style/contextmenustyle.mjs +54 -1
  133. package/esm2022/dataview/dataview.mjs +3 -3
  134. package/esm2022/dataview/public_api.mjs +2 -1
  135. package/esm2022/dataview/style/dataviewstyle.mjs +37 -1
  136. package/esm2022/datepicker/datepicker.mjs +20 -8
  137. package/esm2022/datepicker/public_api.mjs +2 -1
  138. package/esm2022/datepicker/style/datepickerstyle.mjs +165 -1
  139. package/esm2022/dialog/dialog.mjs +21 -16
  140. package/esm2022/dialog/style/dialogstyle.mjs +49 -1
  141. package/esm2022/divider/divider.mjs +4 -4
  142. package/esm2022/divider/style/dividerstyle.mjs +21 -1
  143. package/esm2022/dock/public_api.mjs +2 -1
  144. package/esm2022/dock/style/dockstyle.mjs +41 -1
  145. package/esm2022/drawer/drawer.mjs +17 -13
  146. package/esm2022/drawer/public_api.mjs +2 -1
  147. package/esm2022/drawer/style/drawerstyle.mjs +37 -1
  148. package/esm2022/dropdown/dropdown.mjs +10 -10
  149. package/esm2022/dropdown/public_api.mjs +2 -1
  150. package/esm2022/dropdown/style/dropdownstyle.mjs +5 -2
  151. package/esm2022/dynamicdialog/dynamicdialog.mjs +94 -24
  152. package/esm2022/dynamicdialog/public_api.mjs +2 -1
  153. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +49 -1
  154. package/esm2022/editor/editor.mjs +6 -5
  155. package/esm2022/editor/public_api.mjs +2 -1
  156. package/esm2022/editor/style/editorstyle.mjs +25 -1
  157. package/esm2022/fieldset/fieldset.mjs +11 -21
  158. package/esm2022/fieldset/public_api.mjs +2 -1
  159. package/esm2022/fieldset/style/fieldsetstyle.mjs +37 -1
  160. package/esm2022/fileupload/fileupload.interface.mjs +1 -1
  161. package/esm2022/fileupload/fileupload.mjs +46 -13
  162. package/esm2022/fileupload/public_api.mjs +2 -1
  163. package/esm2022/fileupload/style/fileuploadstyle.mjs +73 -1
  164. package/esm2022/floatlabel/floatlabel.mjs +18 -13
  165. package/esm2022/floatlabel/public_api.mjs +2 -1
  166. package/esm2022/floatlabel/style/floatlabelstyle.mjs +79 -28
  167. package/esm2022/fluid/public_api.mjs +2 -1
  168. package/esm2022/fluid/style/fluidstyle.mjs +17 -1
  169. package/esm2022/galleria/galleria.mjs +113 -124
  170. package/esm2022/galleria/public_api.mjs +2 -1
  171. package/esm2022/galleria/style/galleriastyle.mjs +125 -1
  172. package/esm2022/iconfield/iconfield.mjs +4 -4
  173. package/esm2022/iconfield/public_api.mjs +2 -1
  174. package/esm2022/iconfield/style/iconfieldstyle.mjs +26 -17
  175. package/esm2022/iftalabel/iftalabel.mjs +43 -0
  176. package/esm2022/iftalabel/primeng-iftalabel.mjs +5 -0
  177. package/esm2022/iftalabel/public_api.mjs +3 -0
  178. package/esm2022/iftalabel/style/iftalabelstyle.mjs +96 -0
  179. package/esm2022/image/image.interface.mjs +1 -1
  180. package/esm2022/image/image.mjs +86 -42
  181. package/esm2022/image/public_api.mjs +2 -1
  182. package/esm2022/image/style/imagestyle.mjs +57 -1
  183. package/esm2022/inplace/inplace.mjs +3 -3
  184. package/esm2022/inplace/public_api.mjs +2 -1
  185. package/esm2022/inplace/style/inplacestyle.mjs +25 -1
  186. package/esm2022/inputgroup/public_api.mjs +2 -1
  187. package/esm2022/inputgroup/style/inputgroupstyle.mjs +46 -17
  188. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +15 -13
  189. package/esm2022/inputgroupaddon/public_api.mjs +2 -1
  190. package/esm2022/inputicon/inputicon.mjs +7 -4
  191. package/esm2022/inputicon/public_api.mjs +2 -1
  192. package/esm2022/inputmask/inputmask.mjs +2 -2
  193. package/esm2022/inputmask/public_api.mjs +2 -1
  194. package/esm2022/inputmask/style/inputmaskstyle.mjs +17 -1
  195. package/esm2022/inputnumber/inputnumber.mjs +219 -221
  196. package/esm2022/inputnumber/public_api.mjs +2 -1
  197. package/esm2022/inputnumber/style/inputnumberstyle.mjs +38 -1
  198. package/esm2022/inputotp/inputotp.mjs +4 -4
  199. package/esm2022/inputotp/public_api.mjs +2 -1
  200. package/esm2022/inputotp/style/inputotpstyle.mjs +21 -1
  201. package/esm2022/inputswitch/public_api.mjs +2 -1
  202. package/esm2022/inputtext/inputtext.mjs +11 -2
  203. package/esm2022/inputtext/public_api.mjs +2 -1
  204. package/esm2022/inputtext/style/inputtextstyle.mjs +17 -1
  205. package/esm2022/inputtextarea/public_api.mjs +2 -1
  206. package/esm2022/inputtextarea/style/textareastyle.mjs +17 -1
  207. package/esm2022/knob/public_api.mjs +2 -1
  208. package/esm2022/knob/style/knobstyle.mjs +29 -1
  209. package/esm2022/listbox/listbox.mjs +45 -20
  210. package/esm2022/listbox/public_api.mjs +2 -1
  211. package/esm2022/listbox/style/listboxstyle.mjs +53 -1
  212. package/esm2022/megamenu/megamenu.mjs +15 -15
  213. package/esm2022/megamenu/public_api.mjs +2 -1
  214. package/esm2022/megamenu/style/megamenustyle.mjs +81 -1
  215. package/esm2022/menu/menu.mjs +5 -3
  216. package/esm2022/menu/public_api.mjs +2 -1
  217. package/esm2022/menu/style/menustyle.mjs +57 -1
  218. package/esm2022/menubar/menubar.mjs +3 -3
  219. package/esm2022/menubar/public_api.mjs +2 -1
  220. package/esm2022/menubar/style/menubarstyle.mjs +65 -1
  221. package/esm2022/message/message.mjs +2 -34
  222. package/esm2022/message/style/messagestyle.mjs +38 -2
  223. package/esm2022/messages/public_api.mjs +2 -1
  224. package/esm2022/metergroup/metergroup.mjs +10 -10
  225. package/esm2022/metergroup/public_api.mjs +2 -1
  226. package/esm2022/metergroup/style/metergroupstyle.mjs +45 -1
  227. package/esm2022/multiselect/multiselect.mjs +683 -677
  228. package/esm2022/multiselect/public_api.mjs +2 -1
  229. package/esm2022/multiselect/style/multiselectstyle.mjs +85 -1
  230. package/esm2022/orderlist/orderlist.mjs +89 -17
  231. package/esm2022/orderlist/public_api.mjs +2 -1
  232. package/esm2022/orderlist/style/orderliststyle.mjs +21 -1
  233. package/esm2022/organizationchart/organizationchart.mjs +5 -5
  234. package/esm2022/organizationchart/public_api.mjs +2 -1
  235. package/esm2022/organizationchart/style/organizationchartstyle.mjs +53 -1
  236. package/esm2022/overlay/overlay.mjs +1 -1
  237. package/esm2022/overlay/public_api.mjs +2 -1
  238. package/esm2022/overlaybadge/overlaybadge.mjs +4 -6
  239. package/esm2022/overlaybadge/public_api.mjs +2 -1
  240. package/esm2022/overlaypanel/public_api.mjs +2 -1
  241. package/esm2022/overlaypanel/style/popoverstyle.mjs +21 -1
  242. package/esm2022/paginator/paginator.mjs +6 -6
  243. package/esm2022/paginator/public_api.mjs +2 -1
  244. package/esm2022/paginator/style/paginatorstyle.mjs +81 -1
  245. package/esm2022/panel/style/panelstyle.mjs +45 -1
  246. package/esm2022/panelmenu/panelmenu.mjs +30 -22
  247. package/esm2022/panelmenu/public_api.mjs +2 -1
  248. package/esm2022/panelmenu/style/panelmenustyle.mjs +83 -2
  249. package/esm2022/password/password.mjs +5 -3
  250. package/esm2022/password/public_api.mjs +2 -1
  251. package/esm2022/password/style/passwordstyle.mjs +45 -1
  252. package/esm2022/picklist/picklist.mjs +187 -17
  253. package/esm2022/picklist/public_api.mjs +2 -1
  254. package/esm2022/picklist/style/pickliststyle.mjs +37 -1
  255. package/esm2022/popover/public_api.mjs +2 -1
  256. package/esm2022/progressbar/progressbar.mjs +3 -3
  257. package/esm2022/progressbar/public_api.mjs +2 -1
  258. package/esm2022/progressbar/style/progressbarstyle.mjs +25 -1
  259. package/esm2022/progressspinner/progressspinner.mjs +3 -3
  260. package/esm2022/progressspinner/public_api.mjs +2 -1
  261. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +25 -1
  262. package/esm2022/radiobutton/public_api.mjs +2 -1
  263. package/esm2022/radiobutton/radiobutton.mjs +4 -4
  264. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +29 -1
  265. package/esm2022/rating/public_api.mjs +2 -1
  266. package/esm2022/rating/rating.mjs +11 -108
  267. package/esm2022/rating/style/ratingstyle.mjs +29 -1
  268. package/esm2022/ripple/public_api.mjs +2 -1
  269. package/esm2022/ripple/ripple.mjs +17 -12
  270. package/esm2022/ripple/style/ripplestyle.mjs +17 -1
  271. package/esm2022/scroller/public_api.mjs +2 -1
  272. package/esm2022/scroller/scroller.mjs +6 -6
  273. package/esm2022/scroller/style/scrollerstyle.mjs +104 -0
  274. package/esm2022/scrollpanel/public_api.mjs +2 -1
  275. package/esm2022/scrollpanel/scrollpanel.mjs +3 -3
  276. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +33 -1
  277. package/esm2022/scrolltop/public_api.mjs +2 -1
  278. package/esm2022/scrolltop/scrolltop.mjs +21 -16
  279. package/esm2022/scrolltop/style/scrolltopstyle.mjs +21 -1
  280. package/esm2022/select/public_api.mjs +2 -1
  281. package/esm2022/select/select.mjs +17 -25
  282. package/esm2022/select/style/selectstyle.mjs +86 -2
  283. package/esm2022/selectbutton/public_api.mjs +2 -1
  284. package/esm2022/selectbutton/selectbutton.mjs +8 -8
  285. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +19 -3
  286. package/esm2022/sidebar/public_api.mjs +2 -1
  287. package/esm2022/skeleton/public_api.mjs +2 -1
  288. package/esm2022/skeleton/style/skeletonstyle.mjs +17 -1
  289. package/esm2022/slider/public_api.mjs +2 -1
  290. package/esm2022/slider/style/sliderstyle.mjs +25 -1
  291. package/esm2022/speeddial/public_api.mjs +2 -1
  292. package/esm2022/speeddial/speeddial.interface.mjs +1 -1
  293. package/esm2022/speeddial/speeddial.mjs +74 -50
  294. package/esm2022/speeddial/style/speeddialstyle.mjs +42 -2
  295. package/esm2022/splitbutton/public_api.mjs +2 -1
  296. package/esm2022/splitbutton/splitbutton.mjs +25 -12
  297. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +25 -1
  298. package/esm2022/splitter/public_api.mjs +2 -1
  299. package/esm2022/splitter/style/splitterstyle.mjs +25 -1
  300. package/esm2022/stepper/public_api.mjs +2 -2
  301. package/esm2022/stepper/stepper.mjs +367 -660
  302. package/esm2022/stepper/style/stepperstyle.mjs +21 -2
  303. package/esm2022/steps/public_api.mjs +2 -1
  304. package/esm2022/steps/style/stepsstyle.mjs +37 -1
  305. package/esm2022/table/public_api.mjs +2 -1
  306. package/esm2022/table/style/tablestyle.mjs +899 -0
  307. package/esm2022/table/table.mjs +46 -42
  308. package/esm2022/tabmenu/public_api.mjs +2 -1
  309. package/esm2022/tabmenu/style/tabmenustyle.mjs +42 -2
  310. package/esm2022/tabmenu/tabmenu.mjs +11 -7
  311. package/esm2022/tabs/public_api.mjs +6 -2
  312. package/esm2022/tabs/style/tabsstyle.mjs +49 -1
  313. package/esm2022/tabs/tab.mjs +171 -0
  314. package/esm2022/tabs/tablist.mjs +256 -0
  315. package/esm2022/tabs/tabpanel.mjs +49 -0
  316. package/esm2022/tabs/tabpanels.mjs +30 -0
  317. package/esm2022/tabs/tabs.mjs +45 -948
  318. package/esm2022/tabview/public_api.mjs +2 -1
  319. package/esm2022/tabview/style/tabsstyle.mjs +49 -1
  320. package/esm2022/tag/public_api.mjs +2 -1
  321. package/esm2022/tag/style/tagstyle.mjs +25 -1
  322. package/esm2022/terminal/public_api.mjs +2 -1
  323. package/esm2022/terminal/style/terminalstyle.mjs +49 -1
  324. package/esm2022/textarea/public_api.mjs +2 -1
  325. package/esm2022/textarea/style/textareastyle.mjs +17 -1
  326. package/esm2022/textarea/textarea.mjs +1 -2
  327. package/esm2022/themes/aura/aura.mjs +7 -3
  328. package/esm2022/themes/aura/floatlabel/index.mjs +29 -1
  329. package/esm2022/themes/aura/iftalabel/index.mjs +16 -0
  330. package/esm2022/themes/lara/floatlabel/index.mjs +27 -1
  331. package/esm2022/themes/lara/iftalabel/index.mjs +16 -0
  332. package/esm2022/themes/lara/lara.mjs +7 -3
  333. package/esm2022/themes/nora/floatlabel/index.mjs +27 -1
  334. package/esm2022/themes/nora/iftalabel/index.mjs +16 -0
  335. package/esm2022/themes/nora/nora.mjs +7 -3
  336. package/esm2022/tieredmenu/public_api.mjs +2 -1
  337. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +61 -1
  338. package/esm2022/tieredmenu/tieredmenu.mjs +15 -15
  339. package/esm2022/timeline/public_api.mjs +2 -1
  340. package/esm2022/timeline/style/timelinestyle.mjs +41 -1
  341. package/esm2022/timeline/timeline.mjs +54 -68
  342. package/esm2022/toast/public_api.mjs +2 -1
  343. package/esm2022/toast/style/toaststyle.mjs +49 -1
  344. package/esm2022/togglebutton/public_api.mjs +2 -1
  345. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +26 -2
  346. package/esm2022/togglebutton/togglebutton.mjs +84 -77
  347. package/esm2022/toggleswitch/public_api.mjs +2 -1
  348. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +32 -5
  349. package/esm2022/toggleswitch/toggleswitch.mjs +44 -48
  350. package/esm2022/toolbar/public_api.mjs +2 -1
  351. package/esm2022/toolbar/style/toolbarstyle.mjs +29 -1
  352. package/esm2022/tooltip/public_api.mjs +2 -1
  353. package/esm2022/tooltip/style/tooltipstyle.mjs +25 -1
  354. package/esm2022/tree/public_api.mjs +2 -1
  355. package/esm2022/tree/style/treestyle.mjs +69 -1
  356. package/esm2022/tree/tree.mjs +15 -12
  357. package/esm2022/treeselect/public_api.mjs +2 -1
  358. package/esm2022/treeselect/style/treeselectstyle.mjs +53 -1
  359. package/esm2022/treeselect/treeselect.mjs +9 -58
  360. package/esm2022/treetable/public_api.mjs +2 -1
  361. package/esm2022/treetable/style/treetablestyle.mjs +98 -2
  362. package/esm2022/treetable/treetable.mjs +6 -6
  363. package/esm2022/utils/inpututils.mjs +7 -0
  364. package/esm2022/utils/public_api.mjs +3 -2
  365. package/fesm2022/primeng-accordion.mjs +470 -83
  366. package/fesm2022/primeng-accordion.mjs.map +1 -1
  367. package/fesm2022/primeng-api.mjs +2 -0
  368. package/fesm2022/primeng-api.mjs.map +1 -1
  369. package/fesm2022/primeng-autocomplete.mjs +74 -6
  370. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  371. package/fesm2022/primeng-avatar.mjs +27 -2
  372. package/fesm2022/primeng-avatar.mjs.map +1 -1
  373. package/fesm2022/primeng-avatargroup.mjs +16 -3
  374. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  375. package/fesm2022/primeng-badge.mjs +55 -51
  376. package/fesm2022/primeng-badge.mjs.map +1 -1
  377. package/fesm2022/primeng-basecomponent.mjs +2 -3
  378. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  379. package/fesm2022/primeng-blockui.mjs +19 -3
  380. package/fesm2022/primeng-blockui.mjs.map +1 -1
  381. package/fesm2022/primeng-breadcrumb.mjs +142 -119
  382. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  383. package/fesm2022/primeng-button.mjs +31 -7
  384. package/fesm2022/primeng-button.mjs.map +1 -1
  385. package/fesm2022/primeng-buttongroup.mjs +19 -3
  386. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  387. package/fesm2022/primeng-calendar.mjs +2 -2
  388. package/fesm2022/primeng-calendar.mjs.map +1 -1
  389. package/fesm2022/primeng-card.mjs +45 -1
  390. package/fesm2022/primeng-card.mjs.map +1 -1
  391. package/fesm2022/primeng-carousel.mjs +69 -1
  392. package/fesm2022/primeng-carousel.mjs.map +1 -1
  393. package/fesm2022/primeng-cascadeselect.mjs +79 -19
  394. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  395. package/fesm2022/primeng-chart.mjs +36 -2
  396. package/fesm2022/primeng-chart.mjs.map +1 -1
  397. package/fesm2022/primeng-checkbox.mjs +29 -1
  398. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  399. package/fesm2022/primeng-chip.mjs +33 -1
  400. package/fesm2022/primeng-chip.mjs.map +1 -1
  401. package/fesm2022/primeng-colorpicker.mjs +47 -3
  402. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  403. package/fesm2022/primeng-confirmdialog.mjs +35 -3
  404. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  405. package/fesm2022/primeng-confirmpopup.mjs +50 -10
  406. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  407. package/fesm2022/primeng-contextmenu.mjs +68 -15
  408. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  409. package/fesm2022/primeng-dataview.mjs +39 -3
  410. package/fesm2022/primeng-dataview.mjs.map +1 -1
  411. package/fesm2022/primeng-datepicker.mjs +184 -8
  412. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  413. package/fesm2022/primeng-dialog.mjs +69 -16
  414. package/fesm2022/primeng-dialog.mjs.map +1 -1
  415. package/fesm2022/primeng-divider.mjs +24 -4
  416. package/fesm2022/primeng-divider.mjs.map +1 -1
  417. package/fesm2022/primeng-dock.mjs +41 -1
  418. package/fesm2022/primeng-dock.mjs.map +1 -1
  419. package/fesm2022/primeng-drawer.mjs +53 -13
  420. package/fesm2022/primeng-drawer.mjs.map +1 -1
  421. package/fesm2022/primeng-dropdown.mjs +14 -11
  422. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  423. package/fesm2022/primeng-dynamicdialog.mjs +142 -24
  424. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  425. package/fesm2022/primeng-editor.mjs +29 -4
  426. package/fesm2022/primeng-editor.mjs.map +1 -1
  427. package/fesm2022/primeng-fieldset.mjs +47 -21
  428. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  429. package/fesm2022/primeng-fileupload.mjs +118 -13
  430. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  431. package/fesm2022/primeng-floatlabel.mjs +96 -40
  432. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  433. package/fesm2022/primeng-fluid.mjs +17 -1
  434. package/fesm2022/primeng-fluid.mjs.map +1 -1
  435. package/fesm2022/primeng-galleria.mjs +237 -124
  436. package/fesm2022/primeng-galleria.mjs.map +1 -1
  437. package/fesm2022/primeng-iconfield.mjs +29 -20
  438. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  439. package/fesm2022/primeng-iftalabel.mjs +143 -0
  440. package/fesm2022/primeng-iftalabel.mjs.map +1 -0
  441. package/fesm2022/primeng-image.mjs +141 -41
  442. package/fesm2022/primeng-image.mjs.map +1 -1
  443. package/fesm2022/primeng-inplace.mjs +27 -3
  444. package/fesm2022/primeng-inplace.mjs.map +1 -1
  445. package/fesm2022/primeng-inputgroup.mjs +46 -17
  446. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  447. package/fesm2022/primeng-inputgroupaddon.mjs +15 -13
  448. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  449. package/fesm2022/primeng-inputicon.mjs +7 -4
  450. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  451. package/fesm2022/primeng-inputmask.mjs +18 -2
  452. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  453. package/fesm2022/primeng-inputnumber.mjs +256 -221
  454. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  455. package/fesm2022/primeng-inputotp.mjs +24 -4
  456. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  457. package/fesm2022/primeng-inputswitch.mjs +1 -1
  458. package/fesm2022/primeng-inputtext.mjs +27 -2
  459. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  460. package/fesm2022/primeng-inputtextarea.mjs +17 -1
  461. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  462. package/fesm2022/primeng-knob.mjs +29 -1
  463. package/fesm2022/primeng-knob.mjs.map +1 -1
  464. package/fesm2022/primeng-listbox.mjs +97 -20
  465. package/fesm2022/primeng-listbox.mjs.map +1 -1
  466. package/fesm2022/primeng-megamenu.mjs +95 -15
  467. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  468. package/fesm2022/primeng-menu.mjs +60 -2
  469. package/fesm2022/primeng-menu.mjs.map +1 -1
  470. package/fesm2022/primeng-menubar.mjs +67 -3
  471. package/fesm2022/primeng-menubar.mjs.map +1 -1
  472. package/fesm2022/primeng-message.mjs +39 -35
  473. package/fesm2022/primeng-message.mjs.map +1 -1
  474. package/fesm2022/primeng-messages.mjs +1 -1
  475. package/fesm2022/primeng-metergroup.mjs +54 -10
  476. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  477. package/fesm2022/primeng-multiselect.mjs +767 -677
  478. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  479. package/fesm2022/primeng-orderlist.mjs +108 -16
  480. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  481. package/fesm2022/primeng-organizationchart.mjs +57 -5
  482. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  483. package/fesm2022/primeng-overlay.mjs +1 -1
  484. package/fesm2022/primeng-overlay.mjs.map +1 -1
  485. package/fesm2022/primeng-overlaybadge.mjs +4 -6
  486. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  487. package/fesm2022/primeng-overlaypanel.mjs +21 -1
  488. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  489. package/fesm2022/primeng-paginator.mjs +86 -6
  490. package/fesm2022/primeng-paginator.mjs.map +1 -1
  491. package/fesm2022/primeng-panel.mjs +45 -1
  492. package/fesm2022/primeng-panel.mjs.map +1 -1
  493. package/fesm2022/primeng-panelmenu.mjs +111 -22
  494. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  495. package/fesm2022/primeng-password.mjs +48 -2
  496. package/fesm2022/primeng-password.mjs.map +1 -1
  497. package/fesm2022/primeng-picklist.mjs +222 -16
  498. package/fesm2022/primeng-picklist.mjs.map +1 -1
  499. package/fesm2022/primeng-popover.mjs +1 -1
  500. package/fesm2022/primeng-progressbar.mjs +27 -3
  501. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  502. package/fesm2022/primeng-progressspinner.mjs +27 -3
  503. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  504. package/fesm2022/primeng-radiobutton.mjs +32 -4
  505. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  506. package/fesm2022/primeng-rating.mjs +39 -108
  507. package/fesm2022/primeng-rating.mjs.map +1 -1
  508. package/fesm2022/primeng-ripple.mjs +33 -12
  509. package/fesm2022/primeng-ripple.mjs.map +1 -1
  510. package/fesm2022/primeng-scroller.mjs +41 -9
  511. package/fesm2022/primeng-scroller.mjs.map +1 -1
  512. package/fesm2022/primeng-scrollpanel.mjs +35 -3
  513. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  514. package/fesm2022/primeng-scrolltop.mjs +41 -16
  515. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  516. package/fesm2022/primeng-select.mjs +102 -26
  517. package/fesm2022/primeng-select.mjs.map +1 -1
  518. package/fesm2022/primeng-selectbutton.mjs +26 -10
  519. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  520. package/fesm2022/primeng-sidebar.mjs +1 -1
  521. package/fesm2022/primeng-skeleton.mjs +17 -1
  522. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  523. package/fesm2022/primeng-slider.mjs +25 -1
  524. package/fesm2022/primeng-slider.mjs.map +1 -1
  525. package/fesm2022/primeng-speeddial.mjs +114 -50
  526. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  527. package/fesm2022/primeng-splitbutton.mjs +49 -12
  528. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  529. package/fesm2022/primeng-splitter.mjs +25 -1
  530. package/fesm2022/primeng-splitter.mjs.map +1 -1
  531. package/fesm2022/primeng-stepper.mjs +388 -662
  532. package/fesm2022/primeng-stepper.mjs.map +1 -1
  533. package/fesm2022/primeng-steps.mjs +37 -1
  534. package/fesm2022/primeng-steps.mjs.map +1 -1
  535. package/fesm2022/primeng-table.mjs +253 -75
  536. package/fesm2022/primeng-table.mjs.map +1 -1
  537. package/fesm2022/primeng-tabmenu.mjs +51 -7
  538. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  539. package/fesm2022/primeng-tabs.mjs +494 -872
  540. package/fesm2022/primeng-tabs.mjs.map +1 -1
  541. package/fesm2022/primeng-tabview.mjs +49 -1
  542. package/fesm2022/primeng-tabview.mjs.map +1 -1
  543. package/fesm2022/primeng-tag.mjs +25 -1
  544. package/fesm2022/primeng-tag.mjs.map +1 -1
  545. package/fesm2022/primeng-terminal.mjs +49 -1
  546. package/fesm2022/primeng-terminal.mjs.map +1 -1
  547. package/fesm2022/primeng-textarea.mjs +17 -2
  548. package/fesm2022/primeng-textarea.mjs.map +1 -1
  549. package/fesm2022/primeng-themes-aura.mjs +49 -2
  550. package/fesm2022/primeng-themes-aura.mjs.map +1 -1
  551. package/fesm2022/primeng-themes-lara.mjs +47 -2
  552. package/fesm2022/primeng-themes-lara.mjs.map +1 -1
  553. package/fesm2022/primeng-themes-nora.mjs +47 -2
  554. package/fesm2022/primeng-themes-nora.mjs.map +1 -1
  555. package/fesm2022/primeng-tieredmenu.mjs +75 -15
  556. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  557. package/fesm2022/primeng-timeline.mjs +94 -68
  558. package/fesm2022/primeng-timeline.mjs.map +1 -1
  559. package/fesm2022/primeng-toast.mjs +49 -1
  560. package/fesm2022/primeng-toast.mjs.map +1 -1
  561. package/fesm2022/primeng-togglebutton.mjs +109 -78
  562. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  563. package/fesm2022/primeng-toggleswitch.mjs +74 -51
  564. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  565. package/fesm2022/primeng-toolbar.mjs +29 -1
  566. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  567. package/fesm2022/primeng-tooltip.mjs +25 -1
  568. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  569. package/fesm2022/primeng-tree.mjs +83 -12
  570. package/fesm2022/primeng-tree.mjs.map +1 -1
  571. package/fesm2022/primeng-treeselect.mjs +61 -58
  572. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  573. package/fesm2022/primeng-treetable.mjs +102 -6
  574. package/fesm2022/primeng-treetable.mjs.map +1 -1
  575. package/fesm2022/primeng-utils.mjs +8 -1
  576. package/fesm2022/primeng-utils.mjs.map +1 -1
  577. package/fieldset/fieldset.d.ts +1 -6
  578. package/fieldset/public_api.d.ts +1 -0
  579. package/fieldset/style/fieldsetstyle.d.ts +37 -0
  580. package/fileupload/fileupload.d.ts +4 -1
  581. package/fileupload/fileupload.interface.d.ts +9 -0
  582. package/fileupload/public_api.d.ts +1 -0
  583. package/fileupload/style/fileuploadstyle.d.ts +73 -0
  584. package/floatlabel/floatlabel.d.ts +6 -1
  585. package/floatlabel/public_api.d.ts +1 -0
  586. package/floatlabel/style/floatlabelstyle.d.ts +20 -6
  587. package/fluid/public_api.d.ts +1 -0
  588. package/fluid/style/fluidstyle.d.ts +17 -0
  589. package/galleria/public_api.d.ts +1 -0
  590. package/galleria/style/galleriastyle.d.ts +125 -0
  591. package/iconfield/iconfield.d.ts +1 -1
  592. package/iconfield/public_api.d.ts +1 -0
  593. package/iconfield/style/iconfieldstyle.d.ts +17 -0
  594. package/iftalabel/iftalabel.d.ts +20 -0
  595. package/iftalabel/index.d.ts +5 -0
  596. package/iftalabel/public_api.d.ts +2 -0
  597. package/iftalabel/style/iftalabelstyle.d.ts +30 -0
  598. package/image/image.d.ts +2 -0
  599. package/image/image.interface.d.ts +32 -0
  600. package/image/public_api.d.ts +1 -0
  601. package/image/style/imagestyle.d.ts +57 -0
  602. package/inplace/public_api.d.ts +1 -0
  603. package/inplace/style/inplacestyle.d.ts +25 -0
  604. package/inputgroup/public_api.d.ts +1 -0
  605. package/inputgroup/style/inputgroupstyle.d.ts +17 -0
  606. package/inputgroupaddon/inputgroupaddon.d.ts +3 -0
  607. package/inputgroupaddon/public_api.d.ts +1 -0
  608. package/inputicon/public_api.d.ts +1 -0
  609. package/inputmask/public_api.d.ts +1 -0
  610. package/inputmask/style/inputmaskstyle.d.ts +17 -0
  611. package/inputnumber/inputnumber.d.ts +2 -1
  612. package/inputnumber/public_api.d.ts +1 -0
  613. package/inputnumber/style/inputnumberstyle.d.ts +33 -0
  614. package/inputotp/inputotp.d.ts +1 -1
  615. package/inputotp/public_api.d.ts +1 -0
  616. package/inputotp/style/inputotpstyle.d.ts +21 -0
  617. package/inputswitch/public_api.d.ts +1 -0
  618. package/inputtext/inputtext.d.ts +6 -1
  619. package/inputtext/public_api.d.ts +1 -0
  620. package/inputtext/style/inputtextstyle.d.ts +17 -0
  621. package/inputtextarea/public_api.d.ts +1 -0
  622. package/inputtextarea/style/textareastyle.d.ts +17 -0
  623. package/knob/public_api.d.ts +1 -0
  624. package/knob/style/knobstyle.d.ts +29 -0
  625. package/listbox/listbox.d.ts +14 -6
  626. package/listbox/public_api.d.ts +1 -0
  627. package/listbox/style/listboxstyle.d.ts +53 -0
  628. package/megamenu/megamenu.d.ts +2 -2
  629. package/megamenu/public_api.d.ts +1 -0
  630. package/megamenu/style/megamenustyle.d.ts +81 -0
  631. package/menu/public_api.d.ts +1 -0
  632. package/menu/style/menustyle.d.ts +57 -0
  633. package/menubar/public_api.d.ts +1 -0
  634. package/menubar/style/menubarstyle.d.ts +65 -0
  635. package/message/style/messagestyle.d.ts +37 -0
  636. package/messages/public_api.d.ts +1 -0
  637. package/metergroup/metergroup.d.ts +2 -2
  638. package/metergroup/public_api.d.ts +1 -0
  639. package/metergroup/style/metergroupstyle.d.ts +45 -0
  640. package/multiselect/multiselect.d.ts +5 -6
  641. package/multiselect/public_api.d.ts +1 -0
  642. package/multiselect/style/multiselectstyle.d.ts +85 -0
  643. package/orderlist/orderlist.d.ts +28 -1
  644. package/orderlist/public_api.d.ts +1 -0
  645. package/orderlist/style/orderliststyle.d.ts +21 -0
  646. package/organizationchart/organizationchart.d.ts +1 -1
  647. package/organizationchart/public_api.d.ts +1 -0
  648. package/organizationchart/style/organizationchartstyle.d.ts +53 -0
  649. package/overlay/public_api.d.ts +1 -0
  650. package/overlaybadge/overlaybadge.d.ts +2 -2
  651. package/overlaybadge/public_api.d.ts +1 -0
  652. package/overlaypanel/public_api.d.ts +1 -0
  653. package/overlaypanel/style/popoverstyle.d.ts +21 -0
  654. package/package.json +371 -365
  655. package/paginator/public_api.d.ts +1 -0
  656. package/paginator/style/paginatorstyle.d.ts +81 -0
  657. package/panel/style/panelstyle.d.ts +43 -0
  658. package/panelmenu/panelmenu.d.ts +4 -4
  659. package/panelmenu/public_api.d.ts +1 -0
  660. package/panelmenu/style/panelmenustyle.d.ts +82 -0
  661. package/password/password.d.ts +1 -1
  662. package/password/public_api.d.ts +1 -0
  663. package/password/style/passwordstyle.d.ts +45 -0
  664. package/picklist/picklist.d.ts +52 -5
  665. package/picklist/public_api.d.ts +1 -0
  666. package/picklist/style/pickliststyle.d.ts +37 -0
  667. package/popover/public_api.d.ts +1 -0
  668. package/progressbar/progressbar.d.ts +1 -1
  669. package/progressbar/public_api.d.ts +1 -0
  670. package/progressbar/style/progressbarstyle.d.ts +25 -0
  671. package/progressspinner/progressspinner.d.ts +1 -1
  672. package/progressspinner/public_api.d.ts +1 -0
  673. package/progressspinner/style/progressspinnerstyle.d.ts +25 -0
  674. package/radiobutton/public_api.d.ts +1 -0
  675. package/radiobutton/radiobutton.d.ts +1 -1
  676. package/radiobutton/style/radiobuttonstyle.d.ts +29 -0
  677. package/rating/public_api.d.ts +1 -0
  678. package/rating/rating.d.ts +1 -20
  679. package/rating/style/ratingstyle.d.ts +29 -0
  680. package/ripple/public_api.d.ts +1 -0
  681. package/ripple/ripple.d.ts +1 -0
  682. package/ripple/style/ripplestyle.d.ts +17 -0
  683. package/scroller/public_api.d.ts +1 -0
  684. package/scroller/scroller.d.ts +2 -2
  685. package/scroller/style/scrollerstyle.d.ts +43 -0
  686. package/scrollpanel/public_api.d.ts +1 -0
  687. package/scrollpanel/scrollpanel.d.ts +1 -1
  688. package/scrollpanel/style/scrollpanelstyle.d.ts +33 -0
  689. package/scrolltop/public_api.d.ts +1 -0
  690. package/scrolltop/scrolltop.d.ts +1 -1
  691. package/scrolltop/style/scrolltopstyle.d.ts +21 -0
  692. package/select/public_api.d.ts +1 -0
  693. package/select/style/selectstyle.d.ts +85 -0
  694. package/selectbutton/public_api.d.ts +1 -0
  695. package/selectbutton/selectbutton.d.ts +1 -1
  696. package/selectbutton/style/selectbuttonstyle.d.ts +17 -0
  697. package/sidebar/public_api.d.ts +1 -0
  698. package/skeleton/public_api.d.ts +1 -0
  699. package/skeleton/style/skeletonstyle.d.ts +17 -0
  700. package/slider/public_api.d.ts +1 -0
  701. package/slider/style/sliderstyle.d.ts +25 -0
  702. package/speeddial/public_api.d.ts +1 -0
  703. package/speeddial/speeddial.d.ts +25 -2
  704. package/speeddial/speeddial.interface.d.ts +17 -1
  705. package/speeddial/style/speeddialstyle.d.ts +41 -0
  706. package/splitbutton/public_api.d.ts +1 -0
  707. package/splitbutton/splitbutton.d.ts +6 -1
  708. package/splitbutton/style/splitbuttonstyle.d.ts +25 -0
  709. package/splitter/public_api.d.ts +1 -0
  710. package/splitter/style/splitterstyle.d.ts +25 -0
  711. package/stepper/public_api.d.ts +1 -1
  712. package/stepper/stepper.d.ts +140 -88
  713. package/stepper/style/stepperstyle.d.ts +21 -0
  714. package/steps/public_api.d.ts +1 -0
  715. package/steps/style/stepsstyle.d.ts +37 -0
  716. package/table/public_api.d.ts +1 -0
  717. package/table/style/tablestyle.d.ts +327 -0
  718. package/table/table.d.ts +5 -5
  719. package/tabmenu/public_api.d.ts +1 -0
  720. package/tabmenu/style/tabmenustyle.d.ts +41 -0
  721. package/tabmenu/tabmenu.d.ts +2 -1
  722. package/tabs/public_api.d.ts +5 -1
  723. package/tabs/style/tabsstyle.d.ts +49 -0
  724. package/tabs/tab.d.ts +47 -0
  725. package/tabs/tablist.d.ts +51 -0
  726. package/tabs/tabpanel.d.ts +20 -0
  727. package/tabs/tabpanels.d.ts +10 -0
  728. package/tabs/tabs.d.ts +31 -237
  729. package/tabview/public_api.d.ts +1 -0
  730. package/tabview/style/tabsstyle.d.ts +49 -0
  731. package/tag/public_api.d.ts +1 -0
  732. package/tag/style/tagstyle.d.ts +25 -0
  733. package/terminal/public_api.d.ts +1 -0
  734. package/terminal/style/terminalstyle.d.ts +49 -0
  735. package/textarea/public_api.d.ts +1 -0
  736. package/textarea/style/textareastyle.d.ts +17 -0
  737. package/themes/aura/aura.d.ts +45 -0
  738. package/themes/aura/floatlabel/index.d.ts +28 -0
  739. package/themes/aura/iftalabel/index.d.ts +16 -0
  740. package/themes/lara/floatlabel/index.d.ts +26 -0
  741. package/themes/lara/iftalabel/index.d.ts +16 -0
  742. package/themes/lara/lara.d.ts +43 -0
  743. package/themes/nora/floatlabel/index.d.ts +26 -0
  744. package/themes/nora/iftalabel/index.d.ts +16 -0
  745. package/themes/nora/nora.d.ts +43 -0
  746. package/tieredmenu/public_api.d.ts +1 -0
  747. package/tieredmenu/style/tieredmenustyle.d.ts +61 -0
  748. package/tieredmenu/tieredmenu.d.ts +2 -2
  749. package/timeline/public_api.d.ts +1 -0
  750. package/timeline/style/timelinestyle.d.ts +41 -0
  751. package/timeline/timeline.d.ts +1 -0
  752. package/toast/public_api.d.ts +1 -0
  753. package/toast/style/toaststyle.d.ts +49 -0
  754. package/togglebutton/public_api.d.ts +1 -0
  755. package/togglebutton/style/togglebuttonstyle.d.ts +25 -0
  756. package/togglebutton/togglebutton.d.ts +6 -7
  757. package/toggleswitch/public_api.d.ts +1 -0
  758. package/toggleswitch/style/toggleswitchstyle.d.ts +25 -0
  759. package/toolbar/public_api.d.ts +1 -0
  760. package/toolbar/style/toolbarstyle.d.ts +29 -0
  761. package/tooltip/public_api.d.ts +1 -0
  762. package/tooltip/style/tooltipstyle.d.ts +25 -0
  763. package/tree/public_api.d.ts +1 -0
  764. package/tree/style/treestyle.d.ts +69 -0
  765. package/tree/tree.d.ts +1 -0
  766. package/treeselect/public_api.d.ts +1 -0
  767. package/treeselect/style/treeselectstyle.d.ts +53 -0
  768. package/treeselect/treeselect.d.ts +1 -1
  769. package/treetable/public_api.d.ts +1 -0
  770. package/treetable/style/treetablestyle.d.ts +97 -0
  771. package/treetable/treetable.d.ts +1 -1
  772. package/utils/inpututils.d.ts +2 -0
  773. package/utils/public_api.d.ts +2 -1
  774. package/accordion/accordion.interface.d.ts +0 -49
  775. package/esm2022/accordion/accordion.interface.mjs +0 -2
  776. package/esm2022/scroller/style/virtualscrollerstyle.mjs +0 -72
  777. package/esm2022/stepper/stepper.interface.mjs +0 -2
  778. package/esm2022/table/style/datatablestyle.mjs +0 -725
  779. package/esm2022/tabs/tabs.interface.mjs +0 -2
  780. package/scroller/style/virtualscrollerstyle.d.ts +0 -10
  781. package/stepper/stepper.interface.d.ts +0 -26
  782. package/table/style/datatablestyle.d.ts +0 -124
  783. package/tabs/tabs.interface.d.ts +0 -49
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-treetable.mjs","sources":["../../src/app/components/treetable/style/treetablestyle.ts","../../src/app/components/treetable/treetable.ts","../../src/app/components/treetable/primeng-treetable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n/* For PrimeNG */\n.p-treetable {\n position: relative;\n}\n\n.p-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.p-treetable .p-sortable-column .p-column-title,\n.p-treetable .p-sortable-column .p-sortable-column-icon,\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.p-treetable-hoverable-rows .p-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.p-treetable-toggler {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Scrollable */\n.p-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.p-treetable-scrollable-header,\n.p-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.p-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.p-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.p-treetable-frozen-view .p-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.p-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.p-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,\n.p-treetable-flex-scrollable .p-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.p-treetable-resizable>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-resizable .p-treetable-thead>tr>th,\n.p-treetable-resizable .p-treetable-tfoot>tr>td,\n.p-treetable-resizable .p-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.p-treetable-resizable .p-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n display: none;\n}\n\n.p-treetable .p-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n width: ${dt('treetable.column.resizer.width')};\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n.p-treetable .p-column-resizer-helper {\n width: ${dt('treetable.resize.indicator.width')};\n position: absolute;\n z-index: 10;\n display: none;\n background: ${dt('treetable.resize.indicator.color')};\n}\n\n.p-treetable .p-row-editor-init,\n.p-treetable .p-row-editor-save,\n.p-treetable .p-row-editor-cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Reorder */\n.p-treetable-reorder-indicator-up,\n.p-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.p-treetable-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.p-treetable-loading-icon {\n font-size: ${dt('treetable.loading.icon.size')};\n width: ${dt('treetable.loading.icon.size')};\n height: ${dt('treetable.loading.icon.size')};\n}\n\n/* Virtual Scroll */\n.p-treetable .p-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.p-treetable .p-paginator-top {\n border-color: ${dt('treetable.paginator.top.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.paginator.top.border.width')};\n}\n\n.p-treetable .p-paginator-bottom {\n border-color: ${dt('treetable.paginator.bottom.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.paginator.bottom.border.width')};\n}\n\n.p-treetable .p-treetable-header {\n background: ${dt('treetable.header.background')};\n color: ${dt('treetable.header.color')};\n border-color: ${dt('treetable.header.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.header.border.width')};\n padding: ${dt('treetable.header.padding')};\n font-weight: ${dt('treetable.column.title.font.weight')};\n}\n\n.p-treetable .p-treetable-footer {\n background: ${dt('treetable.footer.background')};\n color: ${dt('treetable.footer.color')};\n border-color: ${dt('treetable.footer.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.footer.border.width')};\n padding: ${dt('treetable.footer.padding')};\n font-weight: ${dt('treetable.column.footer.font.weight')};\n}\n\n.p-treetable .p-treetable-thead>tr>th {\n padding: ${dt('treetable.header.cell.padding')};\n background: ${dt('treetable.header.cell.background')};\n border-color: ${dt('treetable.header.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('treetable.header.cell.color')};\n font-weight: ${dt('treetable.column.title.font.weight')};\n text-align: left;\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n}\n\n.p-treetable .p-treetable-tfoot>tr>td {\n text-align: left;\n padding: ${dt('treetable.footer.cell.padding')};\n border-color: ${dt('treetable.footer.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('treetable.footer.cell.color')};\n background: ${dt('treetable.footer.cell.background')};\n font-weight: ${dt('treetable.column.footer.font.weight')};\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.color')};\n transition: color ${dt('treetable.transition.duration')};\n}\n\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover {\n background: ${dt('treetable.header.cell.hover.background')};\n color: ${dt('treetable.header.cell.hover.color')};\n}\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.hover.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted {\n background: ${dt('treetable.header.cell.selected.background')};\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted .p-sortable-column-icon {\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column:focus-visible {\n box-shadow: ${dt('treetable.header.cell.focus.ring.shadow')};\n outline: ${dt('treetable.header.cell.focus.ring.width')} ${dt('treetable.header.cell.focus.ring.style')} ${dt('treetable.header.cell.focus.ring.color')};\n outline-offset: ${dt('treetable.header.cell.focus.ring.offset')};\n}\n\n.p-treetable-hoverable .p-treetable-selectable-row {\n cursor: pointer;\n}\n\n.p-treetable .p-treetable-tbody > tr {\n outline-color: transparent;\n background: ${dt('treetable.row.background')};\n color: ${dt('treetable.row.color')};\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td {\n text-align: left;\n border-color: ${dt('treetable.body.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: ${dt('treetable.body.cell.padding')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('treetable.node.toggle.button.size')};\n height: ${dt('treetable.node.toggle.button.size')};\n color: ${dt('treetable.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: ${dt('treetable.node.toggle.button.border.radius')};\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n outline-color: transparent;\n user-select: none;\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover {\n color: ${dt('treetable.node.toggle.button.hover.color')};\n background: ${dt('treetable.node.toggle.button.hover.background')};\n}\n\n.p-treetable .p-treetable-tbody>tr>tr.treetable-row-selected .p-treetable-toggler:hover {\n background: ${dt('treetable.node.toggle.button.selected.hover.background')};\n color: ${dt('treetable.node.toggle.button.selected.hover.color')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus-visible {\n box-shadow: ${dt('treetable.node.toggle.button.focus.ring.shadow')};\n 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')};\n outline-offset: ${dt('treetable.node.toggle.button.focus.ring.offset')};\n}\n\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected {\n background: ${dt('treetable.row.selected.background')};\n color: ${dt('treetable.row.selected.color')};\n}\n\n.p-treetable-tbody > tr:focus-visible,\n.p-treetable-tbody > tr.p-treetable-contextmenu-row-selected {\n box-shadow: ${dt('treetable.row.focus.ring.shadow')};\n outline: ${dt('treetable.row.focus.ring.width')} ${dt('treetable.row.focus.ring.style')} ${dt('treetable.row.focus.ring.color')};\n outline-offset: ${dt('treetable.row.focus.ring.offset')};\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler {\n color: inherit;\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler:hover {\n background: ${dt('treetable.node.toggle.button.selected.hover.background')};\n color: ${dt('treetable.node.toggle.button.selected.hover.color')};\n}\n\n.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-treetable-row-selected):hover {\n background: ${dt('treetable.row.hover.background')};\n color: ${dt('treetable.row.hover.color')};\n}\n\n.p-treetable.p-treetable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-top {\n border-width: 0 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\np-treetabletoggler + p-treetablecheckbox .p-checkbox {\n vertical-align: middle;\n}\n\np-treetabletoggler + p-treetablecheckbox + span {\n vertical-align: middle;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-treetable p-component': true,\n 'p-treetable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-treetable-resizable': instance.resizableColumns,\n 'p-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-treetable-scrollable': instance.scrollable,\n 'p-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-treetable-gridlines': instance.showGridlines,\n 'p-treetable-sm': instance.size === 'small',\n 'p-treetable-lg': instance.size === 'large',\n }),\n loading: 'p-treetable-loading', //TODO: required?\n mask: 'p-treetable-mask p-overlay-mask',\n loadingIcon: 'p-treetable-loading-icon',\n header: 'p-treetable-header',\n paginator: ({ instance }) => 'p-treetable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-treetable-table-container',\n table: ({ instance }) => ({\n 'p-treetable-table': true,\n 'p-treetable-scrollable-table': instance.scrollable,\n 'p-treetable-resizable-table': instance.resizableColumns,\n 'p-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n }),\n thead: 'p-treetable-thead',\n headerCell: ({ instance }) => ({\n 'p-treetable-header-cell': true,\n 'p-treetable-sortable-column': instance.sortable,\n 'p-treetable-resizable-column': instance.resizableColumns,\n 'p-treetable-column-sorted': instance?.sorted,\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n columnResizer: 'p-treetable-column-resizer',\n columnHeaderContent: 'p-treetable-column-header-content',\n columnTitle: 'p-treetable-column-title',\n sortIcon: 'p-treetable-sort-icon',\n pcSortBadge: 'p-treetable-sort-badge',\n tbody: 'p-treetable-tbody',\n row: ({ instance }) => ({\n 'p-treetable-row-selected': instance.selected,\n }),\n bodyCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n bodyCellContent: ({ instance }) => ({\n 'p-treetable-body-cell-content': true,\n 'p-treetable-body-cell-content-expander': instance.columnProp('expander'),\n }),\n toggler: 'p-treetable-body-cell-content-expander',\n nodeToggleButton: 'p-treetable-node-toggle-button',\n nodeToggleIcon: 'p-treetable-node-toggle-icon',\n pcNodeCheckbox: 'p-treetable-node-checkbox',\n emptyMessage: 'p-treetable-empty-message',\n tfoot: 'p-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n footer: 'p-treetable-footer',\n columnResizeIndicator: 'p-treetable-column-resize-indicator',\n};\n\nconst inlineStyles = {\n tableContainer: { overflow: 'auto' },\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' },\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n","import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport {\n BlockableUI,\n FilterMetadata,\n FilterService,\n PrimeNGConfig,\n PrimeTemplate,\n ScrollerOptions,\n SharedModule,\n SortMeta,\n TreeNode,\n TreeTableNode,\n} from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon } from 'primeng/icons/arrowdown';\nimport { ArrowUpIcon } from 'primeng/icons/arrowup';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { ChevronDownIcon } from 'primeng/icons/chevrondown';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { MinusIcon } from 'primeng/icons/minus';\nimport { SortAltIcon } from 'primeng/icons/sortalt';\nimport { SortAmountDownIcon } from 'primeng/icons/sortamountdown';\nimport { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { RippleModule } from 'primeng/ripple';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils } from 'primeng/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport {\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTableSortEvent,\n} from './treetable.interface';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { TreeTableStyle } from './style/treetablestyle';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n@Injectable()\nexport class TreeTableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n/**\n * TreeTable is used to display hierarchical data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-treeTable',\n template: `\n <div\n #container\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{\n 'p-treetable p-component': true,\n 'p-treetable-gridlines': showGridlines,\n 'p-treetable-hoverable-rows': rowHover || selectionMode === 'single' || selectionMode === 'multiple',\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': resizableColumns && columnResizeMode === 'fit',\n 'p-treetable-flex-scrollable': scrollable && scrollHeight === 'flex',\n }\"\n >\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-treetable-mask p-overlay-mask\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-treetable-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate\" class=\"p-treetable-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-treetable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-top\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"table\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </thead>\n <tbody\n class=\"p-treetable-tbody\"\n role=\"rowgroup\"\n [pTreeTableBody]=\"columns\"\n [pTreeTableBodyTemplate]=\"bodyTemplate\"\n ></tbody>\n <tfoot class=\"p-treetable-tfoot\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: columns }\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div\n class=\"p-treetable-scrollable-view p-treetable-frozen-view\"\n *ngIf=\"frozenColumns || frozenBodyTemplate\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth }\"\n [scrollHeight]=\"scrollHeight\"\n ></div>\n <div\n class=\"p-treetable-scrollable-view\"\n #scrollableView\n [ttScrollableView]=\"columns\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight\"\n [ngStyle]=\"{ left: frozenWidth, width: 'calc(100% - ' + frozenWidth + ')' }\"\n ></div>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-bottom\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"p-treetable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"p-treetable-reorder-indicator-up\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown class=\"p-treetable-reorder-indicator-down\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TreeTableService, TreeTableStyle],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTable extends BaseComponent implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n _componentStyle = inject(TreeTableStyle);\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() columns: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input({ transform: numberAttribute }) rows: number | undefined;\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input({ transform: numberAttribute }) first: number = 0;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator.\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\n /**\n * 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).\n * @group Props\n */\n @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: string | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Defines whether metaKey is should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n @Input() compareSelectionBy: string = 'deepEquals';\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * When specifies, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollDelay: number = 150;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: { [klass: string]: any } | null | undefined;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | undefined } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): TreeNode<any>[] | undefined {\n return this._value;\n }\n set value(val: TreeNode<any>[] | undefined) {\n this._value = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n @Input() get selectionKeys(): any {\n return this._selectionKeys;\n }\n set selectionKeys(value: any) {\n this._selectionKeys = value;\n this.selectionKeysChange.emit(this._selectionKeys);\n }\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean = false;\n /**\n * Callback to invoke on selected node change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null> = new EventEmitter<\n TreeTableNode<any> | TreeTableNode<any>[] | null\n >();\n /**\n * Callback to invoke on context menu selection change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeTableFilterEvent> = new EventEmitter<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeTableNodeExpandEvent> = new EventEmitter<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeTableNodeCollapseEvent> = new EventEmitter<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TreeTablePaginatorState> = new EventEmitter<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n @Output() onSort: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TreeTableLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeTableLazyLoadEvent> = new EventEmitter<TreeTableLazyLoadEvent>();\n /**\n * An event emitter to invoke on custom sorting, refer to sorting section for details.\n * @param {TreeTableSortEvent} event - Custom sort event.\n * @group Emits\n */\n @Output() sortFunction: EventEmitter<TreeTableSortEvent> = new EventEmitter<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TreeTableColResizeEvent> = new EventEmitter<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TreeTableColumnReorderEvent> = new EventEmitter<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeTableNodeUnSelectEvent> = new EventEmitter<TreeTableNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {TreeTableContextMenuSelectEvent} event - Custom context menu select event.\n * @group Emits\n */\n @Output() onContextMenuSelect: EventEmitter<TreeTableContextMenuSelectEvent> = new EventEmitter<TreeTableContextMenuSelectEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TreeTableHeaderCheckboxToggleEvent} event - Custom checkbox toggle event.\n * @group Emits\n */\n @Output() onHeaderCheckboxToggle: EventEmitter<TreeTableHeaderCheckboxToggleEvent> =\n new EventEmitter<TreeTableHeaderCheckboxToggleEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditInit: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditCancel: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n @Output() selectionKeysChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableView') scrollableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n _value: TreeNode<any>[] | undefined = [];\n\n _virtualRowHeight: number = 28;\n\n _selectionKeys: any;\n\n serializedValue: any[] | undefined | null;\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n captionTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n lastResizerHelperX: Nullable<number>;\n\n reorderIconWidth: Nullable<number>;\n\n reorderIconHeight: Nullable<number>;\n\n draggedColumn: Nullable<any[]>;\n\n dropPosition: Nullable<number>;\n\n preventSelectionSetterPropagation: Nullable<boolean>;\n\n _selection: any;\n\n selectedKeys: any = {};\n\n rowTouched: Nullable<boolean>;\n\n editingCell: Nullable<Element>;\n\n editingCellData: any | undefined | null;\n\n editingCellField: any | undefined | null;\n\n editingCellClick: Nullable<boolean>;\n\n documentEditListener: VoidListener;\n\n initialized: Nullable<boolean>;\n\n toggleRowIndex: Nullable<number>;\n\n ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit && !this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n }\n });\n }\n\n filterService = inject(FilterService);\n\n tableService = inject(TreeTableService);\n\n zone = inject(NgZone);\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && this.sortField) this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple') {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateselectedKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator) this.serializePageNodes();\n else this.serializeNodes(null, this.filteredNodes || this.value, 0, true);\n }\n\n serializeNodes(parent: Nullable<TreeTableNode>, nodes: Nullable<TreeNode[]>, level: Nullable<number>, visible: Nullable<boolean>) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = <TreeTableNode>parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true),\n };\n (<TreeNode[]>this.serializedValue).push(<TreeTableNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, <number>level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value;\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy ? 0 : this.first;\n\n for (let i = first; i < first + <number>this.rows; i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: <any>null,\n level: 0,\n visible: true,\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\n }\n\n updateselectedKeys() {\n if (this.dataKey && this._selection) {\n this.selectedKeys = {};\n if (Array.isArray(this._selection)) {\n for (let node of this._selection) {\n this.selectedKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(ObjectUtils.resolveFieldData((<any>this._selection).data, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first = <number>event.first;\n this.rows = <number>event.rows;\n\n if (this.lazy) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows,\n });\n\n this.tableService.onUIUpdate(this.value);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event: TreeTableSortEvent) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n if (this.sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{ field: <string>event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n (<SortMeta[]>this.multiSortMeta).push({ field: <string>event.field, order: this.defaultSortOrder });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField && this.sortOrder) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n this.sortNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: this.sortField,\n order: this.sortOrder,\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode,\n field: <string>this.sortField,\n order: this.sortOrder,\n });\n } else {\n nodes.sort((node1, node2) => {\n let value1 = ObjectUtils.resolveFieldData(node1.data, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(node2.data, this.sortField);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return this.sortOrder * result;\n });\n }\n\n for (let node of nodes) {\n this.sortNodes(node.children as TreeNode[]);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n this.sortMultipleNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta,\n });\n this.updateSerializedValue();\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n sortMultipleNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta,\n });\n } else {\n nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, <SortMeta[]>this.multiSortMeta, 0);\n });\n }\n\n for (let node of nodes) {\n this.sortMultipleNodes(node.children as TreeNode[]);\n }\n }\n\n multisortField(node1: TreeTableNode, node2: TreeTableNode, multiSortMeta: SortMeta[], index: number): number {\n if (ObjectUtils.isEmpty(this.multiSortMeta) || ObjectUtils.isEmpty(multiSortMeta[index])) {\n return 0;\n }\n\n let value1 = ObjectUtils.resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(node2.data, multiSortMeta[index].field);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 != value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, { numeric: true });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 == value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * <number>result;\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta,\n forceUpdate: () => this.cd.detectChanges(),\n };\n }\n\n onLazyItemLoad(event: TreeTableLazyLoadEvent) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: event.last - event.first,\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(index);\n }\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: ScrollToOptions) {\n if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n }\n\n isEmpty() {\n let data = this.filteredNodes || this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onColumnResizeBegin(event: MouseEvent) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n DomHandler.addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left =\n event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event: MouseEvent, column: any) {\n let delta = (<ElementRef>this.resizeHelperViewChild).nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n } else if (this.columnResizeMode === 'expand') {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = DomHandler.index(column);\n\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.containerViewChild?.nativeElement.offsetWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container: HTMLElement, table: HTMLElement, width: number, isContainerInViewport: boolean) => {\n if (container && table) {\n container.style.width = isContainerInViewport\n ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px'\n : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n } else {\n (<ElementRef>this.tableViewChild).nativeElement.style.width =\n this.tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.containerViewChild).nativeElement.style.width = containerWidth + 'px';\n }\n }\n\n this.onColResize.emit({\n element: column,\n delta: delta,\n });\n }\n\n (this.resizeHelperViewChild as ElementRef).nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-treetable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n\n resizeColGroup(\n table: Nullable<HTMLElement>,\n resizeColumnIndex: Nullable<number>,\n newColumnWidth: Nullable<number>,\n nextColumnWidth: Nullable<number>,\n ) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[<number>resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n (<HTMLElement>col).style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n (<HTMLElement>nextCol).style.width = nextColumnWidth + 'px';\n }\n } else {\n throw 'Scrollable tables require a colgroup to support resizable columns';\n }\n }\n }\n\n onColumnDragStart(event: DragEvent, columnElement: any) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement);\n this.draggedColumn = columnElement;\n (<any>event).dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: DragEvent, dropHeader: any) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.top =\n dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.top =\n dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left =\n targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left =\n targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left =\n targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left =\n targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'block';\n } else {\n (<any>event).dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: DragEvent) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n }\n }\n\n onColumnDrop(event: DragEvent, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (\n allowDrop &&\n ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))\n ) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n ObjectUtils.reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns,\n });\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n (this.draggedColumn as any).draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n handleRowClick(event: any) {\n let targetNode = (<HTMLElement>event.originalEvent.target).nodeName;\n if (\n targetNode == 'INPUT' ||\n targetNode == 'BUTTON' ||\n targetNode == 'A' ||\n DomHandler.hasClass(event.originalEvent.target, 'p-clickable')\n ) {\n return;\n }\n\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected((<any>rowNode).node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData((<TreeTableNode>rowNode.node).data, this.dataKey)) : null;\n\n if (metaSelection) {\n let keyboardEvent = <KeyboardEvent>event.originalEvent;\n let metaKey = keyboardEvent.metaKey || keyboardEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row',\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowNode.node;\n this.selectionChange.emit(rowNode.node);\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n } else {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this._selection = [...this.selection, rowNode.node];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: (<any>event).rowIndex,\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row',\n });\n } else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex,\n });\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n });\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex,\n });\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu) {\n const node = event.rowNode.node;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n }\n }\n }\n\n toggleNodeWithCheckbox(event: any) {\n // legacy selection support, will be removed in v18\n this.selection = this.selection || [];\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n // legacy selection support, will be removed in v18\n let data = this.filteredNodes || this.value;\n this._selection = check && data ? data.slice() : [];\n\n this.toggleAll(check);\n\n if (!check) {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n\n this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });\n }\n\n toggleAll(checked: boolean) {\n let data = this.filteredNodes || this.value;\n\n if (!this.selectionKeys) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, checked);\n }\n }\n } else {\n // legacy selection support, will be removed in v18\n if (data && data.length) {\n for (let node of data) {\n this.propagateDown(node, checked);\n }\n this.selectionKeysChange.emit(this.selectionKeys);\n }\n }\n }\n\n propagateSelectionUp(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child)) selectedChildCount++;\n else if (child.partialSelected) childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this._selection = [...(this.selection || []), node];\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this._selection = this.selection.filter((val: any, i: number) => i != index);\n\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || (selectedChildCount > 0 && selectedChildCount != node.children.length))\n node.partialSelected = true;\n else node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n node.checked = select;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n let index = this.findIndexInSelection(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...(this.selection || []), node];\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this._selection = this.selection.filter((val: any, i: number) => i != index);\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n node.checked = select;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeTableNode) {\n // legacy selection support, will be removed in v18\n if (node && this.selection) {\n if (this.dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;\n }\n } else {\n if (Array.isArray(this.selection)) return this.findIndexInSelection(node) > -1;\n else return this.equals(node, this.selection);\n }\n }\n\n return false;\n }\n\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.checked === true : false;\n }\n\n isNodePartialSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.partialChecked === true : false;\n }\n\n nodeKey(node) {\n return ObjectUtils.resolveFieldData(node, this.dataKey) || ObjectUtils.resolveFieldData(node?.data, this.dataKey);\n }\n\n toggleCheckbox(event) {\n let { rowNode, check, originalEvent } = event;\n let node = rowNode.node;\n if (this.selectionKeys) {\n this.propagateDown(node, check);\n if (node.parent) {\n this.propagateUp(node.parent, check);\n }\n\n this.selectionKeysChange.emit(this.selectionKeys);\n } else {\n this.toggleNodeWithCheckbox({ originalEvent, rowNode });\n }\n\n this.tableService.onSelectionChange();\n }\n\n propagateDown(node, check) {\n if (check) {\n this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n delete this.selectionKeys[this.nodeKey(node)];\n }\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check);\n }\n }\n }\n\n propagateUp(node, check) {\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of node.children) {\n if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].partialChecked)\n childPartialSelected = true;\n }\n\n if (check && checkedChildCount === node.children.length) {\n this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete this.selectionKeys[this.nodeKey(node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length))\n this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: true };\n else this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: false };\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, check);\n }\n }\n\n findIndexInSelection(node: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(node, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n equals(node1: TreeTableNode, node2: TreeTableNode) {\n return this.compareSelectionBy === 'equals'\n ? ObjectUtils.equals(node1, node2)\n : ObjectUtils.equals(node1.data, node2.data, this.dataKey);\n }\n\n filter(value: string | string[], field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n }\n\n filterGlobal(value: string, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = <FilterMetadata>this.filters[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n paramsWithoutNode = { filterField, filterValue, filterConstraint, isStrictMode };\n if (\n (isStrictMode &&\n !(\n this.findFilteredNodes(copyNode, paramsWithoutNode) ||\n this.isFilterMatched(copyNode, paramsWithoutNode)\n )) ||\n (!isStrictMode &&\n !(\n this.isFilterMatched(copyNode, paramsWithoutNode) ||\n this.findFilteredNodes(copyNode, paramsWithoutNode)\n ))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n let copyNodeForGlobal = { ...copyNode };\n let filterField = undefined;\n let filterValue = this.filters['global'].value;\n let filterConstraint = (<any>this.filterService).filters[(<any>this.filters)['global'].matchMode];\n paramsWithoutNode = {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray,\n };\n\n if (\n (isStrictMode &&\n (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) ||\n this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode &&\n (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) ||\n this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n\n let matches = localMatch;\n if (this.filters['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged =\n isValueChanged ||\n !localMatch ||\n globalMatch ||\n (localMatch && this.filteredNodes.length > 0) ||\n (!globalMatch && this.filteredNodes.length === 0);\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n this.cd.markForCheck();\n }\n\n this.first = 0;\n\n const filteredValue = this.filteredNodes || this.value;\n\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: filteredValue,\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node: TreeTableNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeTableNode, filterOptions: TreeTableFilterOptions) {\n let { filterField, filterValue, filterConstraint, isStrictMode, globalFilterFieldsArray } = <any>filterOptions;\n let matched = false;\n const isMatched = (field: string) =>\n filterConstraint(ObjectUtils.resolveFieldData(node.data, field), filterValue, <string>this.filterLocale);\n\n matched = globalFilterFieldsArray?.length\n ? globalFilterFieldsArray.some((globalFilterField) => isMatched(globalFilterField.field || globalFilterField))\n : isMatched(filterField);\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched =\n this.findFilteredNodes(node, {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray,\n }) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node: TreeTableNode) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n /**\n * Clears the sort and paginator state.\n * @group Method\n */\n public reset() {\n this._sortField = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\n }\n\n this.editingCellClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n template: `\n <ng-template\n ngFor\n let-serializedNode\n let-rowIndex=\"index\"\n [ngForOf]=\"serializedNodes || tt.serializedValue\"\n [ngForTrackBy]=\"tt.rowTrackBy\"\n >\n <ng-container *ngIf=\"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 </ng-container>\n </ng-template>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TTBody {\n @Input('pTreeTableBody') columns: any[] | undefined;\n\n @Input('pTreeTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input() serializedNodes: any;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.tt.virtualScroll) {\n options = options || this.scrollerOptions;\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(rowIndex).index : rowIndex;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenHeaderTemplate || tt.headerTemplate : tt.headerTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n </thead>\n </table>\n </div>\n </div>\n\n <p-scroller\n *ngIf=\"tt.virtualScroll\"\n #scroller\n [items]=\"tt.serializedValue\"\n styleClass=\"p-treetable-scrollable-body\"\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 >\n <ng-template pTemplate=\"content\" let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"loaderTemplate\">\n <ng-template pTemplate=\"loader\" let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <div\n #scrollBody\n class=\"p-treetable-scrollable-body\"\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 </ng-container>\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table\n role=\"table\"\n #scrollTable\n [class]=\"tt.tableStyleClass\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [ngStyle]=\"tt.tableStyle\"\n [style]=\"scrollerOptions.contentStyle\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <tbody\n role=\"rowgroup\"\n class=\"p-treetable-tbody\"\n [pTreeTableBody]=\"columns\"\n [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate || tt.bodyTemplate : tt.bodyTemplate\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen\"\n ></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </ng-template>\n\n <div #scrollFooter *ngIf=\"tt.footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <tfoot role=\"rowgroup\" class=\"p-treetable-tfoot\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenFooterTemplate || tt.footerTemplate : tt.footerTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n @Input('ttScrollableView') columns: any[] | undefined;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollBody') scrollBodyViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollTable') scrollTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('loadingTable') scrollLoadingTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n headerScrollListener: VoidListener;\n\n bodyScrollListener: VoidListener;\n\n footerScrollListener: VoidListener;\n\n frozenSiblingBody: Nullable<Element>;\n\n totalRecordsSubscription: Nullable<Subscription>;\n\n _scrollHeight: string | undefined | null;\n\n preventBodyScrollPropagation: boolean | undefined;\n\n @Input() get scrollHeight(): string | undefined | null {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined | null) {\n this._scrollHeight = val;\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log(\n 'Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.',\n );\n }\n }\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.frozen) {\n if (this.tt.frozenColumns || this.tt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll) this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-scroller-viewport');\n else this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-scrollable-body');\n }\n\n let scrollBarWidth = DomHandler.calculateScrollbarWidth();\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n } else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.scrollableAlignerViewChild.nativeElement.style.height = DomHandler.calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(\n this.scrollHeaderBoxViewChild?.nativeElement,\n 'scroll',\n this.onHeaderScroll.bind(this),\n );\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(\n this.scrollFooterViewChild.nativeElement,\n 'scroll',\n this.onFooterScroll.bind(this),\n );\n }\n\n if (!this.frozen) {\n if (this.tt.virtualScroll) {\n this.bodyScrollListener = this.renderer.listen(\n (this.scroller?.getElementRef() as ElementRef).nativeElement,\n 'scroll',\n this.onBodyScroll.bind(this),\n );\n } else {\n this.bodyScrollListener = this.renderer.listen(\n this.scrollBodyViewChild?.nativeElement,\n 'scroll',\n this.onBodyScroll.bind(this),\n );\n }\n }\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n if (this.scroller && this.scroller.getElementRef()) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild?.nativeElement.scrollLeft;\n\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild?.nativeElement.scrollLeft;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event: any) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n (this.scrollFooterBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n scrollToVirtualIndex(index: number): void {\n if (this.scroller) {\n this.scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n if (this.scroller) {\n this.scroller.scrollTo(options);\n } else {\n if (this.scrollBodyViewChild?.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-treetable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'ariaSorted',\n },\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n @Input('ttSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) ttSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n get ariaSorted() {\n if (this.sorted && this.tt.sortOrder < 0) return 'descending';\n else if (this.sorted && this.tt.sortOrder > 0) return 'ascending';\n else return 'none';\n }\n\n constructor(public tt: TreeTable) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.tt.isSorted(<string>this.field) as boolean;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.sort({\n originalEvent: event,\n field: this.field,\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\n template: ` <ng-container *ngIf=\"!tt.sortIconTemplate\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"tt.sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n @Input() ariaLabelDesc: string | undefined;\n\n @Input() ariaLabelAsc: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field) ? this.tt.sortOrder : 0;\n } else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[ttReorderableColumn]',\n})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragEnter.bind(this));\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n }\n\n onMouseDown(event: any) {\n if (\n event.target.nodeName === 'INPUT' ||\n event.target.nodeName === 'TEXTAREA' ||\n DomHandler.hasClass(event.target, 'p-column-resizer')\n )\n this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: DragEvent) {\n this.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDragEnter(event: DragEvent) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: DragEvent) {\n this.tt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n '[attr.aria-checked]': 'selected',\n },\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n @Input('ttSelectableRow') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n onEnterKey(event) {\n if (this.tt.selectionMode === 'checkbox') {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n } else {\n this.onClick(event);\n }\n event.preventDefault();\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n },\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n @Input('ttSelectableRowDblClick') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n host: {\n '[class.p-treetable-contextmenu-row-selected]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined',\n },\n})\nexport class TTContextMenuRow {\n @Input('ttContextMenuRow') rowNode: any | undefined;\n\n @Input({ transform: booleanAttribute }) ttContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private el: ElementRef,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n template: `\n <p-checkbox\n [ngModel]=\"checked\"\n (onChange)=\"onClick($event)\"\n [binary]=\"true\"\n [indeterminate]=\"partialChecked\"\n styleClass=\"p-treetable-node-checkbox\"\n [tabIndex]=\"-1\"\n >\n <ng-container *ngIf=\"tt.checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template\n *ngTemplateOutlet=\"tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input('value') rowNode: any;\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n if (this.tt.selectionKeys) {\n this.checked = this.tt.isNodeSelected(this.rowNode.node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);\n } else {\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.partialChecked = this.rowNode.node.partialSelected;\n }\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n if (this.tt.selectionKeys) {\n this.checked = this.tt.isNodeSelected(this.rowNode.node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);\n } else {\n // for backward compatibility\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.partialChecked = this.rowNode.node.partialSelected;\n }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.tt.selectionKeys) {\n const _check = !this.checked;\n this.tt.toggleCheckbox({\n originalEvent: event,\n check: _check,\n rowNode: this.rowNode,\n });\n } else {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\">\n <ng-container *ngIf=\"tt.headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTHeaderCheckbox {\n checked: boolean | undefined;\n\n disabled: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private cd: ChangeDetectorRef,\n ) {\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if ((this.tt.value || this.tt.filteredNodes) && (this.tt.value.length > 0 || this.tt.filteredNodes.length > 0)) {\n this.tt.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n DomHandler.clearSelection();\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n let checked!: boolean;\n const data = this.tt.filteredNodes || this.tt.value;\n\n if (data) {\n if (this.tt.selectionKeys) {\n for (let node of data) {\n if (this.tt.isNodeSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n if (!this.tt.selectionKeys) {\n // legacy selection support, will be removed in v18\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n } else {\n checked = false;\n }\n\n return checked;\n }\n}\n\n@Directive({\n selector: '[ttEditableColumn]',\n})\nexport class TTEditableColumn implements AfterViewInit {\n @Input('ttEditableColumn') data: any;\n\n @Input('ttEditableColumnField') field: any;\n\n @Input({ transform: booleanAttribute }) ttEditableColumnDisabled: boolean | undefined;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.data });\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = DomHandler.findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n DomHandler.removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n }\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: any): Element | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element): Element | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement ? cell.parentElement.nextElementSibling : null;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.ttEditableColumnDisabled !== true;\n }\n}\n\n@Component({\n selector: 'p-treeTableCellEditor',\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTableCellEditor implements AfterContentInit {\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public tt: TreeTable,\n public editableColumn: TTEditableColumn,\n ) {}\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@Directive({\n selector: '[ttRow]',\n host: {\n '[class]': `'p-element ' + styleClass`,\n '[attr.tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n '[attr.data-pc-section]': 'row',\n '[attr.role]': 'row',\n },\n})\nexport class TTRow {\n get level() {\n return this.rowNode?.['level'] + 1;\n }\n\n get styleClass() {\n return this.rowNode?.node['styleClass'] || '';\n }\n\n get expanded() {\n return this.rowNode?.node['expanded'];\n }\n\n @Input('ttRow') rowNode: any;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n let nextRow = this.el?.nativeElement?.nextElementSibling;\n if (nextRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, nextRow);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n let prevRow = this.el?.nativeElement?.previousElementSibling;\n if (prevRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, prevRow);\n }\n\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const currentTarget = <HTMLElement>event.currentTarget;\n const isHiddenIcon = DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';\n\n if (!isHiddenIcon && !this.expanded && this.rowNode.node['children']) {\n this.expand(event);\n\n currentTarget.tabIndex = -1;\n }\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const container = this.tt.containerViewChild?.nativeElement;\n const expandedRows = DomHandler.find(container, '[aria-expanded=\"true\"]');\n const lastExpandedRow = expandedRows[expandedRows.length - 1];\n\n if (this.expanded) {\n this.collapse(event);\n }\n if (lastExpandedRow) {\n this.tt.toggleRowIndex = DomHandler.index(lastExpandedRow);\n }\n this.restoreFocus();\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstElement = DomHandler.findSingle(this.tt.containerViewChild?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n firstElement && DomHandler.focus(firstElement);\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n const nodes = DomHandler.find(this.tt.containerViewChild?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n const lastElement = nodes[nodes.length - 1];\n DomHandler.focus(lastElement);\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n const rows = this.el.nativeElement ? [...DomHandler.find(this.el.nativeElement.parentNode, 'tr')] : undefined;\n\n if (rows && ObjectUtils.isNotEmpty(rows)) {\n const hasSelectedRow = rows.some(\n (row) => DomHandler.getAttribute(row, 'data-p-highlight') || row.getAttribute('aria-checked') === 'true',\n );\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter(\n (node) => DomHandler.getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === 'true',\n );\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n }\n }\n\n expand(event: Event) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.rowNode.node['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n }\n\n collapse(event: Event) {\n this.rowNode.node['expanded'] = false;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n this.tt.onNodeCollapse.emit({ originalEvent: event, node: this.rowNode.node });\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n DomHandler.focus(currentFocusedRow);\n }\n\n restoreFocus(index?) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const container = this.tt.containerViewChild?.nativeElement;\n const row = DomHandler.findSingle(container, '.p-treetable-tbody').children[<number>index || this.tt.toggleRowIndex];\n const rows = [...DomHandler.find(container, 'tr')];\n\n rows &&\n rows.forEach((r) => {\n if (!row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n row.tabIndex = 0;\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler',\n template: `\n <button\n type=\"button\"\n class=\"p-treetable-toggler\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n pRipple\n [style.visibility]=\"\n rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\n \"\n [style.marginLeft]=\"rowNode.level * 16 + 'px'\"\n [attr.data-pc-section]=\"'rowtoggler'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n <ng-container *ngIf=\"!tt.togglerIconTemplate\">\n <ChevronDownIcon *ngIf=\"rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n <ChevronRightIcon *ngIf=\"!rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate; context: { $implicit: rowNode.node.expanded }\"></ng-template>\n </button>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTableToggler {\n @Input() rowNode: any;\n\n constructor(\n public tt: TreeTable,\n private config: PrimeNGConfig,\n ) {}\n\n get toggleButtonAriaLabel() {\n return this.config.translation\n ? this.rowNode.expanded\n ? this.config.translation.aria.collapseRow\n : this.config.translation.aria.expandRow\n : undefined;\n }\n\n onClick(event: Event) {\n this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n RippleModule,\n ScrollerModule,\n SpinnerIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n MinusIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckboxModule,\n FormsModule,\n ],\n exports: [\n TreeTable,\n SharedModule,\n TreeTableToggler,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n ScrollerModule,\n ],\n declarations: [\n TreeTable,\n TreeTableToggler,\n TTScrollableView,\n TTBody,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n ],\n})\nexport class TreeTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-treetable.mjs","sources":["../../src/app/components/treetable/style/treetablestyle.ts","../../src/app/components/treetable/treetable.ts","../../src/app/components/treetable/primeng-treetable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n/* For PrimeNG */\n.p-treetable {\n position: relative;\n}\n\n.p-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.p-treetable .p-sortable-column .p-column-title,\n.p-treetable .p-sortable-column .p-sortable-column-icon,\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.p-treetable-hoverable-rows .p-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.p-treetable-toggler {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Scrollable */\n.p-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.p-treetable-scrollable-header,\n.p-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.p-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.p-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.p-treetable-frozen-view .p-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.p-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.p-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,\n.p-treetable-flex-scrollable .p-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.p-treetable-resizable>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-resizable .p-treetable-thead>tr>th,\n.p-treetable-resizable .p-treetable-tfoot>tr>td,\n.p-treetable-resizable .p-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.p-treetable-resizable .p-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n display: none;\n}\n\n.p-treetable .p-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n width: ${dt('treetable.column.resizer.width')};\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n.p-treetable .p-column-resizer-helper {\n width: ${dt('treetable.resize.indicator.width')};\n position: absolute;\n z-index: 10;\n display: none;\n background: ${dt('treetable.resize.indicator.color')};\n}\n\n.p-treetable .p-row-editor-init,\n.p-treetable .p-row-editor-save,\n.p-treetable .p-row-editor-cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Reorder */\n.p-treetable-reorder-indicator-up,\n.p-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.p-treetable-mask {\n position: absolute !important;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.p-treetable-loading-icon {\n font-size: ${dt('treetable.loading.icon.size')};\n width: ${dt('treetable.loading.icon.size')};\n height: ${dt('treetable.loading.icon.size')};\n}\n\n/* Virtual Scroll */\n.p-treetable .p-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.p-treetable .p-paginator-top {\n border-color: ${dt('treetable.paginator.top.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.paginator.top.border.width')};\n}\n\n.p-treetable .p-paginator-bottom {\n border-color: ${dt('treetable.paginator.bottom.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.paginator.bottom.border.width')};\n}\n\n.p-treetable .p-treetable-header {\n background: ${dt('treetable.header.background')};\n color: ${dt('treetable.header.color')};\n border-color: ${dt('treetable.header.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.header.border.width')};\n padding: ${dt('treetable.header.padding')};\n font-weight: ${dt('treetable.column.title.font.weight')};\n}\n\n.p-treetable .p-treetable-footer {\n background: ${dt('treetable.footer.background')};\n color: ${dt('treetable.footer.color')};\n border-color: ${dt('treetable.footer.border.color')};\n border-style: solid;\n border-width: ${dt('treetable.footer.border.width')};\n padding: ${dt('treetable.footer.padding')};\n font-weight: ${dt('treetable.column.footer.font.weight')};\n}\n\n.p-treetable .p-treetable-thead>tr>th {\n padding: ${dt('treetable.header.cell.padding')};\n background: ${dt('treetable.header.cell.background')};\n border-color: ${dt('treetable.header.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('treetable.header.cell.color')};\n font-weight: ${dt('treetable.column.title.font.weight')};\n text-align: left;\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n}\n\n.p-treetable .p-treetable-tfoot>tr>td {\n text-align: left;\n padding: ${dt('treetable.footer.cell.padding')};\n border-color: ${dt('treetable.footer.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('treetable.footer.cell.color')};\n background: ${dt('treetable.footer.cell.background')};\n font-weight: ${dt('treetable.column.footer.font.weight')};\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.color')};\n transition: color ${dt('treetable.transition.duration')};\n}\n\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover {\n background: ${dt('treetable.header.cell.hover.background')};\n color: ${dt('treetable.header.cell.hover.color')};\n}\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.hover.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted {\n background: ${dt('treetable.header.cell.selected.background')};\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted .p-sortable-column-icon {\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column:focus-visible {\n box-shadow: ${dt('treetable.header.cell.focus.ring.shadow')};\n outline: ${dt('treetable.header.cell.focus.ring.width')} ${dt('treetable.header.cell.focus.ring.style')} ${dt('treetable.header.cell.focus.ring.color')};\n outline-offset: ${dt('treetable.header.cell.focus.ring.offset')};\n}\n\n.p-treetable-hoverable .p-treetable-selectable-row {\n cursor: pointer;\n}\n\n.p-treetable .p-treetable-tbody > tr {\n outline-color: transparent;\n background: ${dt('treetable.row.background')};\n color: ${dt('treetable.row.color')};\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td {\n text-align: left;\n border-color: ${dt('treetable.body.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: ${dt('treetable.body.cell.padding')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('treetable.node.toggle.button.size')};\n height: ${dt('treetable.node.toggle.button.size')};\n color: ${dt('treetable.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: ${dt('treetable.node.toggle.button.border.radius')};\n transition: background ${dt('treetable.transition.duration')}, color ${dt('treetable.transition.duration')}, border-color ${dt('treetable.transition.duration')},\n outline-color ${dt('treetable.transition.duration')}, box-shadow ${dt('treetable.transition.duration')};\n outline-color: transparent;\n user-select: none;\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover {\n color: ${dt('treetable.node.toggle.button.hover.color')};\n background: ${dt('treetable.node.toggle.button.hover.background')};\n}\n\n.p-treetable .p-treetable-tbody>tr>tr.treetable-row-selected .p-treetable-toggler:hover {\n background: ${dt('treetable.node.toggle.button.selected.hover.background')};\n color: ${dt('treetable.node.toggle.button.selected.hover.color')};\n}\n\n.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus-visible {\n box-shadow: ${dt('treetable.node.toggle.button.focus.ring.shadow')};\n 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')};\n outline-offset: ${dt('treetable.node.toggle.button.focus.ring.offset')};\n}\n\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected {\n background: ${dt('treetable.row.selected.background')};\n color: ${dt('treetable.row.selected.color')};\n}\n\n.p-treetable-tbody > tr:focus-visible,\n.p-treetable-tbody > tr.p-treetable-contextmenu-row-selected {\n box-shadow: ${dt('treetable.row.focus.ring.shadow')};\n outline: ${dt('treetable.row.focus.ring.width')} ${dt('treetable.row.focus.ring.style')} ${dt('treetable.row.focus.ring.color')};\n outline-offset: ${dt('treetable.row.focus.ring.offset')};\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler {\n color: inherit;\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler:hover {\n background: ${dt('treetable.node.toggle.button.selected.hover.background')};\n color: ${dt('treetable.node.toggle.button.selected.hover.color')};\n}\n\n.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-treetable-row-selected):hover {\n background: ${dt('treetable.row.hover.background')};\n color: ${dt('treetable.row.hover.color')};\n}\n\n.p-treetable.p-treetable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-top {\n border-width: 0 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\np-treetabletoggler + p-treetablecheckbox .p-checkbox {\n vertical-align: middle;\n}\n\np-treetabletoggler + p-treetablecheckbox + span {\n vertical-align: middle;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-treetable p-component': true,\n 'p-treetable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-treetable-resizable': instance.resizableColumns,\n 'p-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-treetable-scrollable': instance.scrollable,\n 'p-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-treetable-gridlines': instance.showGridlines,\n 'p-treetable-sm': instance.size === 'small',\n 'p-treetable-lg': instance.size === 'large',\n }),\n loading: 'p-treetable-loading', //TODO: required?\n mask: 'p-treetable-mask p-overlay-mask',\n loadingIcon: 'p-treetable-loading-icon',\n header: 'p-treetable-header',\n paginator: ({ instance }) => 'p-treetable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-treetable-table-container',\n table: ({ instance }) => ({\n 'p-treetable-table': true,\n 'p-treetable-scrollable-table': instance.scrollable,\n 'p-treetable-resizable-table': instance.resizableColumns,\n 'p-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n }),\n thead: 'p-treetable-thead',\n headerCell: ({ instance }) => ({\n 'p-treetable-header-cell': true,\n 'p-treetable-sortable-column': instance.sortable,\n 'p-treetable-resizable-column': instance.resizableColumns,\n 'p-treetable-column-sorted': instance?.sorted,\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n columnResizer: 'p-treetable-column-resizer',\n columnHeaderContent: 'p-treetable-column-header-content',\n columnTitle: 'p-treetable-column-title',\n sortIcon: 'p-treetable-sort-icon',\n pcSortBadge: 'p-treetable-sort-badge',\n tbody: 'p-treetable-tbody',\n row: ({ instance }) => ({\n 'p-treetable-row-selected': instance.selected,\n }),\n bodyCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n bodyCellContent: ({ instance }) => ({\n 'p-treetable-body-cell-content': true,\n 'p-treetable-body-cell-content-expander': instance.columnProp('expander'),\n }),\n toggler: 'p-treetable-body-cell-content-expander',\n nodeToggleButton: 'p-treetable-node-toggle-button',\n nodeToggleIcon: 'p-treetable-node-toggle-icon',\n pcNodeCheckbox: 'p-treetable-node-checkbox',\n emptyMessage: 'p-treetable-empty-message',\n tfoot: 'p-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen'),\n }),\n footer: 'p-treetable-footer',\n columnResizeIndicator: 'p-treetable-column-resize-indicator',\n};\n\nconst inlineStyles = {\n tableContainer: { overflow: 'auto' },\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' },\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * TreeTable is used to display hierarchical data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/treetable/)\n *\n * @module treetablestyle\n *\n */\nexport enum TreeTableClasses {\n /**\n * Class name of the root element\n */\n root = 'p-treetable',\n /**\n * Class name of the loading element\n */\n loading = 'p-treetable-loading',\n /**\n * Class name of the mask element\n */\n mask = 'p-treetable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-treetable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'p-treetable-header',\n /**\n * Class name of the paginator element\n */\n paginator = 'p-treetable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'p-treetable-table-container',\n /**\n * Class name of the table element\n */\n table = 'p-treetable-table',\n /**\n * Class name of the thead element\n */\n thead = 'p-treetable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'p-treetable-column-resizer',\n /**\n * Class name of the column title element\n */\n columnTitle = 'p-treetable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'p-treetable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'p-treetable-sort-badge',\n /**\n * Class name of the tbody element\n */\n tbody = 'p-treetable-tbody',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-treetable-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'p-treetable-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n pcNodeCheckbox = 'p-treetable-node-checkbox',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-treetable-empty-message',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'p-treetable-tfoot',\n /**\n * Class name of the footer element\n */\n footer = 'p-treetable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'p-treetable-column-resize-indicator',\n}\n\nexport interface TreeTableStyle extends BaseStyle {}\n","import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n BlockableUI,\n FilterMetadata,\n FilterService,\n PrimeNGConfig,\n PrimeTemplate,\n ScrollerOptions,\n SharedModule,\n SortMeta,\n TreeNode,\n TreeTableNode,\n} from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon } from 'primeng/icons/arrowdown';\nimport { ArrowUpIcon } from 'primeng/icons/arrowup';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { ChevronDownIcon } from 'primeng/icons/chevrondown';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { MinusIcon } from 'primeng/icons/minus';\nimport { SortAltIcon } from 'primeng/icons/sortalt';\nimport { SortAmountDownIcon } from 'primeng/icons/sortamountdown';\nimport { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { RippleModule } from 'primeng/ripple';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils } from 'primeng/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport {\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTableSortEvent,\n} from './treetable.interface';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { TreeTableStyle } from './style/treetablestyle';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n@Injectable()\nexport class TreeTableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n/**\n * TreeTable is used to display hierarchical data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-treeTable, p-treetable',\n template: `\n <div\n #container\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{\n 'p-treetable p-component': true,\n 'p-treetable-gridlines': showGridlines,\n 'p-treetable-hoverable-rows': rowHover || selectionMode === 'single' || selectionMode === 'multiple',\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': resizableColumns && columnResizeMode === 'fit',\n 'p-treetable-flex-scrollable': scrollable && scrollHeight === 'flex',\n }\"\n >\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-overlay-mask p-treetable-mask\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-treetable-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate\" class=\"p-treetable-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-treetable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-top\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"table\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </thead>\n <tbody\n class=\"p-treetable-tbody\"\n role=\"rowgroup\"\n [pTreeTableBody]=\"columns\"\n [pTreeTableBodyTemplate]=\"bodyTemplate\"\n ></tbody>\n <tfoot class=\"p-treetable-tfoot\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: columns }\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div\n class=\"p-treetable-scrollable-view p-treetable-frozen-view\"\n *ngIf=\"frozenColumns || frozenBodyTemplate\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth }\"\n [scrollHeight]=\"scrollHeight\"\n ></div>\n <div\n class=\"p-treetable-scrollable-view\"\n #scrollableView\n [ttScrollableView]=\"columns\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight\"\n [ngStyle]=\"{ left: frozenWidth, width: 'calc(100% - ' + frozenWidth + ')' }\"\n ></div>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-bottom\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"p-treetable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"p-treetable-reorder-indicator-up\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown class=\"p-treetable-reorder-indicator-down\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TreeTableService, TreeTableStyle],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTable extends BaseComponent implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n _componentStyle = inject(TreeTableStyle);\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() columns: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input({ transform: numberAttribute }) rows: number | undefined;\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input({ transform: numberAttribute }) first: number = 0;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator.\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\n /**\n * 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).\n * @group Props\n */\n @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: string | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Defines whether metaKey is should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n @Input() compareSelectionBy: string = 'deepEquals';\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * When specifies, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollDelay: number = 150;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: { [klass: string]: any } | null | undefined;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | undefined } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): TreeNode<any>[] | undefined {\n return this._value;\n }\n set value(val: TreeNode<any>[] | undefined) {\n this._value = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n @Input() get selectionKeys(): any {\n return this._selectionKeys;\n }\n set selectionKeys(value: any) {\n this._selectionKeys = value;\n this.selectionKeysChange.emit(this._selectionKeys);\n }\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean = false;\n /**\n * Callback to invoke on selected node change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null> = new EventEmitter<\n TreeTableNode<any> | TreeTableNode<any>[] | null\n >();\n /**\n * Callback to invoke on context menu selection change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeTableFilterEvent> = new EventEmitter<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeTableNodeExpandEvent> = new EventEmitter<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeTableNodeCollapseEvent> = new EventEmitter<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TreeTablePaginatorState> = new EventEmitter<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n @Output() onSort: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TreeTableLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeTableLazyLoadEvent> = new EventEmitter<TreeTableLazyLoadEvent>();\n /**\n * An event emitter to invoke on custom sorting, refer to sorting section for details.\n * @param {TreeTableSortEvent} event - Custom sort event.\n * @group Emits\n */\n @Output() sortFunction: EventEmitter<TreeTableSortEvent> = new EventEmitter<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TreeTableColResizeEvent> = new EventEmitter<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TreeTableColumnReorderEvent> = new EventEmitter<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeTableNodeUnSelectEvent> = new EventEmitter<TreeTableNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {TreeTableContextMenuSelectEvent} event - Custom context menu select event.\n * @group Emits\n */\n @Output() onContextMenuSelect: EventEmitter<TreeTableContextMenuSelectEvent> = new EventEmitter<TreeTableContextMenuSelectEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TreeTableHeaderCheckboxToggleEvent} event - Custom checkbox toggle event.\n * @group Emits\n */\n @Output() onHeaderCheckboxToggle: EventEmitter<TreeTableHeaderCheckboxToggleEvent> =\n new EventEmitter<TreeTableHeaderCheckboxToggleEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditInit: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditCancel: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n @Output() selectionKeysChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableView') scrollableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n _value: TreeNode<any>[] | undefined = [];\n\n _virtualRowHeight: number = 28;\n\n _selectionKeys: any;\n\n serializedValue: any[] | undefined | null;\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n captionTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n lastResizerHelperX: Nullable<number>;\n\n reorderIconWidth: Nullable<number>;\n\n reorderIconHeight: Nullable<number>;\n\n draggedColumn: Nullable<any[]>;\n\n dropPosition: Nullable<number>;\n\n preventSelectionSetterPropagation: Nullable<boolean>;\n\n _selection: any;\n\n selectedKeys: any = {};\n\n rowTouched: Nullable<boolean>;\n\n editingCell: Nullable<Element>;\n\n editingCellData: any | undefined | null;\n\n editingCellField: any | undefined | null;\n\n editingCellClick: Nullable<boolean>;\n\n documentEditListener: VoidListener;\n\n initialized: Nullable<boolean>;\n\n toggleRowIndex: Nullable<number>;\n\n ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit && !this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n }\n });\n }\n\n filterService = inject(FilterService);\n\n tableService = inject(TreeTableService);\n\n zone = inject(NgZone);\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && this.sortField) this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple') {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateselectedKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator) this.serializePageNodes();\n else this.serializeNodes(null, this.filteredNodes || this.value, 0, true);\n }\n\n serializeNodes(parent: Nullable<TreeTableNode>, nodes: Nullable<TreeNode[]>, level: Nullable<number>, visible: Nullable<boolean>) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = <TreeTableNode>parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true),\n };\n (<TreeNode[]>this.serializedValue).push(<TreeTableNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, <number>level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value;\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy ? 0 : this.first;\n\n for (let i = first; i < first + <number>this.rows; i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: <any>null,\n level: 0,\n visible: true,\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\n }\n\n updateselectedKeys() {\n if (this.dataKey && this._selection) {\n this.selectedKeys = {};\n if (Array.isArray(this._selection)) {\n for (let node of this._selection) {\n this.selectedKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(ObjectUtils.resolveFieldData((<any>this._selection).data, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first = <number>event.first;\n this.rows = <number>event.rows;\n\n if (this.lazy) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows,\n });\n\n this.tableService.onUIUpdate(this.value);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event: TreeTableSortEvent) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n if (this.sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{ field: <string>event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n (<SortMeta[]>this.multiSortMeta).push({ field: <string>event.field, order: this.defaultSortOrder });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField && this.sortOrder) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n this.sortNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: this.sortField,\n order: this.sortOrder,\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode,\n field: <string>this.sortField,\n order: this.sortOrder,\n });\n } else {\n nodes.sort((node1, node2) => {\n let value1 = ObjectUtils.resolveFieldData(node1.data, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(node2.data, this.sortField);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return this.sortOrder * result;\n });\n }\n\n for (let node of nodes) {\n this.sortNodes(node.children as TreeNode[]);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n this.sortMultipleNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta,\n });\n this.updateSerializedValue();\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n sortMultipleNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta,\n });\n } else {\n nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, <SortMeta[]>this.multiSortMeta, 0);\n });\n }\n\n for (let node of nodes) {\n this.sortMultipleNodes(node.children as TreeNode[]);\n }\n }\n\n multisortField(node1: TreeTableNode, node2: TreeTableNode, multiSortMeta: SortMeta[], index: number): number {\n if (ObjectUtils.isEmpty(this.multiSortMeta) || ObjectUtils.isEmpty(multiSortMeta[index])) {\n return 0;\n }\n\n let value1 = ObjectUtils.resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(node2.data, multiSortMeta[index].field);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 != value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, { numeric: true });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 == value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * <number>result;\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta,\n forceUpdate: () => this.cd.detectChanges(),\n };\n }\n\n onLazyItemLoad(event: TreeTableLazyLoadEvent) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: event.last - event.first,\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(index);\n }\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: ScrollToOptions) {\n if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n }\n\n isEmpty() {\n let data = this.filteredNodes || this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onColumnResizeBegin(event: MouseEvent) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n DomHandler.addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left =\n event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event: MouseEvent, column: any) {\n let delta = (<ElementRef>this.resizeHelperViewChild).nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n } else if (this.columnResizeMode === 'expand') {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable =\n DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') ||\n DomHandler.findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = DomHandler.index(column);\n\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.containerViewChild?.nativeElement.offsetWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container: HTMLElement, table: HTMLElement, width: number, isContainerInViewport: boolean) => {\n if (container && table) {\n container.style.width = isContainerInViewport\n ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px'\n : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n } else {\n (<ElementRef>this.tableViewChild).nativeElement.style.width =\n this.tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.containerViewChild).nativeElement.style.width = containerWidth + 'px';\n }\n }\n\n this.onColResize.emit({\n element: column,\n delta: delta,\n });\n }\n\n (this.resizeHelperViewChild as ElementRef).nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-treetable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n\n resizeColGroup(\n table: Nullable<HTMLElement>,\n resizeColumnIndex: Nullable<number>,\n newColumnWidth: Nullable<number>,\n nextColumnWidth: Nullable<number>,\n ) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[<number>resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n (<HTMLElement>col).style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n (<HTMLElement>nextCol).style.width = nextColumnWidth + 'px';\n }\n } else {\n throw 'Scrollable tables require a colgroup to support resizable columns';\n }\n }\n }\n\n onColumnDragStart(event: DragEvent, columnElement: any) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement);\n this.draggedColumn = columnElement;\n (<any>event).dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: DragEvent, dropHeader: any) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.top =\n dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.top =\n dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left =\n targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left =\n targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left =\n targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left =\n targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'block';\n } else {\n (<any>event).dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: DragEvent) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n }\n }\n\n onColumnDrop(event: DragEvent, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (\n allowDrop &&\n ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))\n ) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n ObjectUtils.reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns,\n });\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n (this.draggedColumn as any).draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n handleRowClick(event: any) {\n let targetNode = (<HTMLElement>event.originalEvent.target).nodeName;\n if (\n targetNode == 'INPUT' ||\n targetNode == 'BUTTON' ||\n targetNode == 'A' ||\n DomHandler.hasClass(event.originalEvent.target, 'p-clickable')\n ) {\n return;\n }\n\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected((<any>rowNode).node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData((<TreeTableNode>rowNode.node).data, this.dataKey)) : null;\n\n if (metaSelection) {\n let keyboardEvent = <KeyboardEvent>event.originalEvent;\n let metaKey = keyboardEvent.metaKey || keyboardEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row',\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowNode.node;\n this.selectionChange.emit(rowNode.node);\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n } else {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this._selection = [...this.selection, rowNode.node];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: (<any>event).rowIndex,\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row',\n });\n } else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex,\n });\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n });\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex,\n });\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu) {\n const node = event.rowNode.node;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n }\n }\n }\n\n toggleNodeWithCheckbox(event: any) {\n // legacy selection support, will be removed in v18\n this.selection = this.selection || [];\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n // legacy selection support, will be removed in v18\n let data = this.filteredNodes || this.value;\n this._selection = check && data ? data.slice() : [];\n\n this.toggleAll(check);\n\n if (!check) {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n\n this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });\n }\n\n toggleAll(checked: boolean) {\n let data = this.filteredNodes || this.value;\n\n if (!this.selectionKeys) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, checked);\n }\n }\n } else {\n // legacy selection support, will be removed in v18\n if (data && data.length) {\n for (let node of data) {\n this.propagateDown(node, checked);\n }\n this.selectionKeysChange.emit(this.selectionKeys);\n }\n }\n }\n\n propagateSelectionUp(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child)) selectedChildCount++;\n else if (child.partialSelected) childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this._selection = [...(this.selection || []), node];\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this._selection = this.selection.filter((val: any, i: number) => i != index);\n\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || (selectedChildCount > 0 && selectedChildCount != node.children.length))\n node.partialSelected = true;\n else node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n node.checked = select;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n let index = this.findIndexInSelection(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...(this.selection || []), node];\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this._selection = this.selection.filter((val: any, i: number) => i != index);\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n node.checked = select;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeTableNode) {\n // legacy selection support, will be removed in v18\n if (node && this.selection) {\n if (this.dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;\n }\n } else {\n if (Array.isArray(this.selection)) return this.findIndexInSelection(node) > -1;\n else return this.equals(node, this.selection);\n }\n }\n\n return false;\n }\n\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.checked === true : false;\n }\n\n isNodePartialSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.partialChecked === true : false;\n }\n\n nodeKey(node) {\n return ObjectUtils.resolveFieldData(node, this.dataKey) || ObjectUtils.resolveFieldData(node?.data, this.dataKey);\n }\n\n toggleCheckbox(event) {\n let { rowNode, check, originalEvent } = event;\n let node = rowNode.node;\n if (this.selectionKeys) {\n this.propagateDown(node, check);\n if (node.parent) {\n this.propagateUp(node.parent, check);\n }\n\n this.selectionKeysChange.emit(this.selectionKeys);\n } else {\n this.toggleNodeWithCheckbox({ originalEvent, rowNode });\n }\n\n this.tableService.onSelectionChange();\n }\n\n propagateDown(node, check) {\n if (check) {\n this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n delete this.selectionKeys[this.nodeKey(node)];\n }\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check);\n }\n }\n }\n\n propagateUp(node, check) {\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of node.children) {\n if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].partialChecked)\n childPartialSelected = true;\n }\n\n if (check && checkedChildCount === node.children.length) {\n this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete this.selectionKeys[this.nodeKey(node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length))\n this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: true };\n else this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: false };\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, check);\n }\n }\n\n findIndexInSelection(node: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(node, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n equals(node1: TreeTableNode, node2: TreeTableNode) {\n return this.compareSelectionBy === 'equals'\n ? ObjectUtils.equals(node1, node2)\n : ObjectUtils.equals(node1.data, node2.data, this.dataKey);\n }\n\n filter(value: string | string[], field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n }\n\n filterGlobal(value: string, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = <FilterMetadata>this.filters[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n paramsWithoutNode = { filterField, filterValue, filterConstraint, isStrictMode };\n if (\n (isStrictMode &&\n !(\n this.findFilteredNodes(copyNode, paramsWithoutNode) ||\n this.isFilterMatched(copyNode, paramsWithoutNode)\n )) ||\n (!isStrictMode &&\n !(\n this.isFilterMatched(copyNode, paramsWithoutNode) ||\n this.findFilteredNodes(copyNode, paramsWithoutNode)\n ))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n let copyNodeForGlobal = { ...copyNode };\n let filterField = undefined;\n let filterValue = this.filters['global'].value;\n let filterConstraint = (<any>this.filterService).filters[(<any>this.filters)['global'].matchMode];\n paramsWithoutNode = {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray,\n };\n\n if (\n (isStrictMode &&\n (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) ||\n this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode &&\n (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) ||\n this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n\n let matches = localMatch;\n if (this.filters['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged =\n isValueChanged ||\n !localMatch ||\n globalMatch ||\n (localMatch && this.filteredNodes.length > 0) ||\n (!globalMatch && this.filteredNodes.length === 0);\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n this.cd.markForCheck();\n }\n\n this.first = 0;\n\n const filteredValue = this.filteredNodes || this.value;\n\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: filteredValue,\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node: TreeTableNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeTableNode, filterOptions: TreeTableFilterOptions) {\n let { filterField, filterValue, filterConstraint, isStrictMode, globalFilterFieldsArray } = <any>filterOptions;\n let matched = false;\n const isMatched = (field: string) =>\n filterConstraint(ObjectUtils.resolveFieldData(node.data, field), filterValue, <string>this.filterLocale);\n\n matched = globalFilterFieldsArray?.length\n ? globalFilterFieldsArray.some((globalFilterField) => isMatched(globalFilterField.field || globalFilterField))\n : isMatched(filterField);\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched =\n this.findFilteredNodes(node, {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray,\n }) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node: TreeTableNode) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n /**\n * Clears the sort and paginator state.\n * @group Method\n */\n public reset() {\n this._sortField = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\n }\n\n this.editingCellClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n template: `\n <ng-template\n ngFor\n let-serializedNode\n let-rowIndex=\"index\"\n [ngForOf]=\"serializedNodes || tt.serializedValue\"\n [ngForTrackBy]=\"tt.rowTrackBy\"\n >\n <ng-container *ngIf=\"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 </ng-container>\n </ng-template>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TTBody {\n @Input('pTreeTableBody') columns: any[] | undefined;\n\n @Input('pTreeTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input() serializedNodes: any;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.tt.virtualScroll) {\n options = options || this.scrollerOptions;\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(rowIndex).index : rowIndex;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenHeaderTemplate || tt.headerTemplate : tt.headerTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n </thead>\n </table>\n </div>\n </div>\n\n <p-scroller\n *ngIf=\"tt.virtualScroll\"\n #scroller\n [items]=\"tt.serializedValue\"\n styleClass=\"p-treetable-scrollable-body\"\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 >\n <ng-template pTemplate=\"content\" let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"loaderTemplate\">\n <ng-template pTemplate=\"loader\" let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <div\n #scrollBody\n class=\"p-treetable-scrollable-body\"\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 </ng-container>\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table\n role=\"table\"\n #scrollTable\n [class]=\"tt.tableStyleClass\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [ngStyle]=\"tt.tableStyle\"\n [style]=\"scrollerOptions.contentStyle\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <tbody\n role=\"rowgroup\"\n class=\"p-treetable-tbody\"\n [pTreeTableBody]=\"columns\"\n [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate || tt.bodyTemplate : tt.bodyTemplate\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen\"\n ></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </ng-template>\n\n <div #scrollFooter *ngIf=\"tt.footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n <tfoot role=\"rowgroup\" class=\"p-treetable-tfoot\">\n <ng-container\n *ngTemplateOutlet=\"\n frozen ? tt.frozenFooterTemplate || tt.footerTemplate : tt.footerTemplate;\n context: { $implicit: columns }\n \"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n @Input('ttScrollableView') columns: any[] | undefined;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollBody') scrollBodyViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollTable') scrollTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('loadingTable') scrollLoadingTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n headerScrollListener: VoidListener;\n\n bodyScrollListener: VoidListener;\n\n footerScrollListener: VoidListener;\n\n frozenSiblingBody: Nullable<Element>;\n\n totalRecordsSubscription: Nullable<Subscription>;\n\n _scrollHeight: string | undefined | null;\n\n preventBodyScrollPropagation: boolean | undefined;\n\n @Input() get scrollHeight(): string | undefined | null {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined | null) {\n this._scrollHeight = val;\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log(\n 'Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.',\n );\n }\n }\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.frozen) {\n if (this.tt.frozenColumns || this.tt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll) this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-scroller-viewport');\n else this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-scrollable-body');\n }\n\n let scrollBarWidth = DomHandler.calculateScrollbarWidth();\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n } else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.scrollableAlignerViewChild.nativeElement.style.height = DomHandler.calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(\n this.scrollHeaderBoxViewChild?.nativeElement,\n 'scroll',\n this.onHeaderScroll.bind(this),\n );\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(\n this.scrollFooterViewChild.nativeElement,\n 'scroll',\n this.onFooterScroll.bind(this),\n );\n }\n\n if (!this.frozen) {\n if (this.tt.virtualScroll) {\n this.bodyScrollListener = this.renderer.listen(\n (this.scroller?.getElementRef() as ElementRef).nativeElement,\n 'scroll',\n this.onBodyScroll.bind(this),\n );\n } else {\n this.bodyScrollListener = this.renderer.listen(\n this.scrollBodyViewChild?.nativeElement,\n 'scroll',\n this.onBodyScroll.bind(this),\n );\n }\n }\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n if (this.scroller && this.scroller.getElementRef()) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild?.nativeElement.scrollLeft;\n\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild?.nativeElement.scrollLeft;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event: any) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n (this.scrollFooterBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n scrollToVirtualIndex(index: number): void {\n if (this.scroller) {\n this.scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n if (this.scroller) {\n this.scroller.scrollTo(options);\n } else {\n if (this.scrollBodyViewChild?.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-treetable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'ariaSorted',\n },\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n @Input('ttSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) ttSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n get ariaSorted() {\n if (this.sorted && this.tt.sortOrder < 0) return 'descending';\n else if (this.sorted && this.tt.sortOrder > 0) return 'ascending';\n else return 'none';\n }\n\n constructor(public tt: TreeTable) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.tt.isSorted(<string>this.field) as boolean;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.sort({\n originalEvent: event,\n field: this.field,\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\n template: ` <ng-container *ngIf=\"!tt.sortIconTemplate\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"tt.sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n @Input() ariaLabelDesc: string | undefined;\n\n @Input() ariaLabelAsc: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field) ? this.tt.sortOrder : 0;\n } else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[ttReorderableColumn]',\n})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragEnter.bind(this));\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n }\n\n onMouseDown(event: any) {\n if (\n event.target.nodeName === 'INPUT' ||\n event.target.nodeName === 'TEXTAREA' ||\n DomHandler.hasClass(event.target, 'p-column-resizer')\n )\n this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: DragEvent) {\n this.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDragEnter(event: DragEvent) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: DragEvent) {\n this.tt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n '[attr.aria-checked]': 'selected',\n },\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n @Input('ttSelectableRow') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n onEnterKey(event) {\n if (this.tt.selectionMode === 'checkbox') {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n } else {\n this.onClick(event);\n }\n event.preventDefault();\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n },\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n @Input('ttSelectableRowDblClick') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n host: {\n '[class.p-treetable-contextmenu-row-selected]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined',\n },\n})\nexport class TTContextMenuRow {\n @Input('ttContextMenuRow') rowNode: any | undefined;\n\n @Input({ transform: booleanAttribute }) ttContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private el: ElementRef,\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n template: `\n <p-checkbox\n [ngModel]=\"checked\"\n (onChange)=\"onClick($event)\"\n [binary]=\"true\"\n [indeterminate]=\"partialChecked\"\n styleClass=\"p-treetable-node-checkbox\"\n [tabIndex]=\"-1\"\n >\n <ng-container *ngIf=\"tt.checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template\n *ngTemplateOutlet=\"tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input('value') rowNode: any;\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef,\n ) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n if (this.tt.selectionKeys) {\n this.checked = this.tt.isNodeSelected(this.rowNode.node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);\n } else {\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.partialChecked = this.rowNode.node.partialSelected;\n }\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n if (this.tt.selectionKeys) {\n this.checked = this.tt.isNodeSelected(this.rowNode.node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);\n } else {\n // for backward compatibility\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.partialChecked = this.rowNode.node.partialSelected;\n }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.tt.selectionKeys) {\n const _check = !this.checked;\n this.tt.toggleCheckbox({\n originalEvent: event,\n check: _check,\n rowNode: this.rowNode,\n });\n } else {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode,\n });\n }\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\">\n <ng-container *ngIf=\"tt.headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TTHeaderCheckbox {\n checked: boolean | undefined;\n\n disabled: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private cd: ChangeDetectorRef,\n ) {\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if ((this.tt.value || this.tt.filteredNodes) && (this.tt.value.length > 0 || this.tt.filteredNodes.length > 0)) {\n this.tt.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n DomHandler.clearSelection();\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n let checked!: boolean;\n const data = this.tt.filteredNodes || this.tt.value;\n\n if (data) {\n if (this.tt.selectionKeys) {\n for (let node of data) {\n if (this.tt.isNodeSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n if (!this.tt.selectionKeys) {\n // legacy selection support, will be removed in v18\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n } else {\n checked = false;\n }\n\n return checked;\n }\n}\n\n@Directive({\n selector: '[ttEditableColumn]',\n})\nexport class TTEditableColumn implements AfterViewInit {\n @Input('ttEditableColumn') data: any;\n\n @Input('ttEditableColumnField') field: any;\n\n @Input({ transform: booleanAttribute }) ttEditableColumnDisabled: boolean | undefined;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.data });\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = DomHandler.findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n DomHandler.removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n }\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: any): Element | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element): Element | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement ? cell.parentElement.nextElementSibling : null;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.ttEditableColumnDisabled !== true;\n }\n}\n\n@Component({\n selector: 'p-treeTableCellEditor',\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTableCellEditor implements AfterContentInit {\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public tt: TreeTable,\n public editableColumn: TTEditableColumn,\n ) {}\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@Directive({\n selector: '[ttRow]',\n host: {\n '[class]': `'p-element ' + styleClass`,\n '[attr.tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n '[attr.data-pc-section]': 'row',\n '[attr.role]': 'row',\n },\n})\nexport class TTRow {\n get level() {\n return this.rowNode?.['level'] + 1;\n }\n\n get styleClass() {\n return this.rowNode?.node['styleClass'] || '';\n }\n\n get expanded() {\n return this.rowNode?.node['expanded'];\n }\n\n @Input('ttRow') rowNode: any;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone,\n ) {}\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n let nextRow = this.el?.nativeElement?.nextElementSibling;\n if (nextRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, nextRow);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n let prevRow = this.el?.nativeElement?.previousElementSibling;\n if (prevRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, prevRow);\n }\n\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const currentTarget = <HTMLElement>event.currentTarget;\n const isHiddenIcon = DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';\n\n if (!isHiddenIcon && !this.expanded && this.rowNode.node['children']) {\n this.expand(event);\n\n currentTarget.tabIndex = -1;\n }\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const container = this.tt.containerViewChild?.nativeElement;\n const expandedRows = DomHandler.find(container, '[aria-expanded=\"true\"]');\n const lastExpandedRow = expandedRows[expandedRows.length - 1];\n\n if (this.expanded) {\n this.collapse(event);\n }\n if (lastExpandedRow) {\n this.tt.toggleRowIndex = DomHandler.index(lastExpandedRow);\n }\n this.restoreFocus();\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstElement = DomHandler.findSingle(this.tt.containerViewChild?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n firstElement && DomHandler.focus(firstElement);\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n const nodes = DomHandler.find(this.tt.containerViewChild?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n const lastElement = nodes[nodes.length - 1];\n DomHandler.focus(lastElement);\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n const rows = this.el.nativeElement ? [...DomHandler.find(this.el.nativeElement.parentNode, 'tr')] : undefined;\n\n if (rows && ObjectUtils.isNotEmpty(rows)) {\n const hasSelectedRow = rows.some(\n (row) => DomHandler.getAttribute(row, 'data-p-highlight') || row.getAttribute('aria-checked') === 'true',\n );\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter(\n (node) => DomHandler.getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === 'true',\n );\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n }\n }\n\n expand(event: Event) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.rowNode.node['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n }\n\n collapse(event: Event) {\n this.rowNode.node['expanded'] = false;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n this.tt.onNodeCollapse.emit({ originalEvent: event, node: this.rowNode.node });\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n DomHandler.focus(currentFocusedRow);\n }\n\n restoreFocus(index?) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const container = this.tt.containerViewChild?.nativeElement;\n const row = DomHandler.findSingle(container, '.p-treetable-tbody').children[<number>index || this.tt.toggleRowIndex];\n const rows = [...DomHandler.find(container, 'tr')];\n\n rows &&\n rows.forEach((r) => {\n if (!row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n row.tabIndex = 0;\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler',\n template: `\n <button\n type=\"button\"\n class=\"p-treetable-toggler\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n pRipple\n [style.visibility]=\"\n rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\n \"\n [style.marginLeft]=\"rowNode.level * 16 + 'px'\"\n [attr.data-pc-section]=\"'rowtoggler'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n <ng-container *ngIf=\"!tt.togglerIconTemplate\">\n <ChevronDownIcon *ngIf=\"rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n <ChevronRightIcon *ngIf=\"!rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate; context: { $implicit: rowNode.node.expanded }\"></ng-template>\n </button>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeTableToggler {\n @Input() rowNode: any;\n\n constructor(\n public tt: TreeTable,\n private config: PrimeNGConfig,\n ) {}\n\n get toggleButtonAriaLabel() {\n return this.config.translation\n ? this.rowNode.expanded\n ? this.config.translation.aria.collapseRow\n : this.config.translation.aria.expandRow\n : undefined;\n }\n\n onClick(event: Event) {\n this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node,\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n RippleModule,\n ScrollerModule,\n SpinnerIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n MinusIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n CheckboxModule,\n FormsModule,\n ],\n exports: [\n TreeTable,\n SharedModule,\n TreeTableToggler,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n ScrollerModule,\n ],\n declarations: [\n TreeTable,\n TreeTableToggler,\n TTScrollableView,\n TTBody,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n ],\n})\nexport class TreeTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}