primeng 17.12.0 → 17.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/accordion/accordion.d.ts +5 -0
  2. package/animateonscroll/animateonscroll.d.ts +2 -0
  3. package/api/messageservice.d.ts +1 -1
  4. package/api/translation.d.ts +2 -0
  5. package/api/translationkeys.d.ts +1 -0
  6. package/api/treenode.d.ts +1 -0
  7. package/autocomplete/autocomplete.d.ts +27 -0
  8. package/autocomplete/autocomplete.interface.d.ts +1 -1
  9. package/autofocus/autofocus.d.ts +2 -1
  10. package/badge/badge.d.ts +34 -23
  11. package/baseicon/baseicon.d.ts +1 -0
  12. package/blockui/blockui.d.ts +2 -0
  13. package/button/button.d.ts +67 -6
  14. package/calendar/calendar.d.ts +47 -9
  15. package/carousel/carousel.d.ts +4 -0
  16. package/cascadeselect/cascadeselect.d.ts +23 -8
  17. package/chart/chart.d.ts +1 -0
  18. package/checkbox/checkbox.d.ts +16 -4
  19. package/chip/chip.d.ts +1 -0
  20. package/chips/chips.d.ts +19 -4
  21. package/colorpicker/colorpicker.d.ts +13 -2
  22. package/confirmdialog/confirmdialog.d.ts +10 -0
  23. package/confirmpopup/confirmpopup.d.ts +2 -0
  24. package/contextmenu/contextmenu.d.ts +11 -0
  25. package/dataview/dataview.d.ts +15 -0
  26. package/dialog/dialog.d.ts +20 -3
  27. package/dom/domhandler.d.ts +2 -0
  28. package/dragdrop/dragdrop.d.ts +1 -0
  29. package/dropdown/dropdown.d.ts +23 -0
  30. package/dynamicdialog/dialogservice.d.ts +3 -3
  31. package/dynamicdialog/dynamicdialog-config.d.ts +5 -0
  32. package/dynamicdialog/dynamicdialog-ref.d.ts +8 -2
  33. package/dynamicdialog/dynamicdialog.d.ts +6 -5
  34. package/editor/editor.d.ts +8 -8
  35. package/esm2022/accordion/accordion.mjs +14 -9
  36. package/esm2022/animateonscroll/animateonscroll.mjs +7 -5
  37. package/esm2022/api/messageservice.mjs +2 -2
  38. package/esm2022/api/primengconfig.mjs +4 -2
  39. package/esm2022/api/translation.mjs +1 -1
  40. package/esm2022/api/translationkeys.mjs +2 -1
  41. package/esm2022/api/treenode.mjs +1 -1
  42. package/esm2022/autocomplete/autocomplete.interface.mjs +1 -1
  43. package/esm2022/autocomplete/autocomplete.mjs +65 -38
  44. package/esm2022/autofocus/autofocus.mjs +13 -5
  45. package/esm2022/badge/badge.mjs +128 -82
  46. package/esm2022/baseicon/baseicon.mjs +5 -4
  47. package/esm2022/blockui/blockui.mjs +7 -5
  48. package/esm2022/button/button.mjs +130 -17
  49. package/esm2022/calendar/calendar.mjs +137 -106
  50. package/esm2022/carousel/carousel.mjs +11 -7
  51. package/esm2022/cascadeselect/cascadeselect.mjs +50 -27
  52. package/esm2022/chart/chart.mjs +5 -4
  53. package/esm2022/checkbox/checkbox.mjs +31 -12
  54. package/esm2022/chip/chip.mjs +5 -4
  55. package/esm2022/chips/chips.mjs +37 -15
  56. package/esm2022/colorpicker/colorpicker.mjs +29 -11
  57. package/esm2022/confirmdialog/confirmdialog.mjs +24 -14
  58. package/esm2022/confirmpopup/confirmpopup.mjs +8 -6
  59. package/esm2022/contextmenu/contextmenu.mjs +26 -15
  60. package/esm2022/dataview/dataview.mjs +34 -19
  61. package/esm2022/dialog/dialog.mjs +59 -56
  62. package/esm2022/dom/domhandler.mjs +22 -8
  63. package/esm2022/dragdrop/dragdrop.mjs +5 -4
  64. package/esm2022/dropdown/dropdown.mjs +69 -39
  65. package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
  66. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +6 -1
  67. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +7 -1
  68. package/esm2022/dynamicdialog/dynamicdialog.mjs +46 -70
  69. package/esm2022/editor/editor.mjs +49 -45
  70. package/esm2022/fieldset/fieldset.mjs +7 -5
  71. package/esm2022/fileupload/fileupload.mjs +76 -19
  72. package/esm2022/focustrap/focustrap.mjs +5 -4
  73. package/esm2022/galleria/galleria.mjs +57 -32
  74. package/esm2022/image/image.mjs +5 -4
  75. package/esm2022/inplace/inplace.mjs +12 -8
  76. package/esm2022/inputmask/inputmask.mjs +40 -17
  77. package/esm2022/inputnumber/inputnumber.interface.mjs +1 -1
  78. package/esm2022/inputnumber/inputnumber.mjs +63 -23
  79. package/esm2022/inputotp/inputotp.mjs +35 -16
  80. package/esm2022/inputswitch/inputswitch.mjs +27 -10
  81. package/esm2022/inputtextarea/inputtextarea.mjs +5 -4
  82. package/esm2022/keyfilter/keyfilter.mjs +16 -6
  83. package/esm2022/knob/knob.mjs +21 -12
  84. package/esm2022/listbox/listbox.mjs +41 -19
  85. package/esm2022/megamenu/megamenu.mjs +16 -10
  86. package/esm2022/menu/menu.mjs +11 -17
  87. package/esm2022/menubar/menubar.mjs +26 -15
  88. package/esm2022/message/message.mjs +5 -4
  89. package/esm2022/messages/messages.mjs +15 -11
  90. package/esm2022/metergroup/metergroup.interface.mjs +1 -1
  91. package/esm2022/metergroup/metergroup.mjs +12 -9
  92. package/esm2022/multiselect/multiselect.mjs +107 -54
  93. package/esm2022/orderlist/orderlist.mjs +16 -10
  94. package/esm2022/organizationchart/organizationchart.mjs +12 -8
  95. package/esm2022/overlaypanel/overlaypanel.mjs +13 -8
  96. package/esm2022/paginator/paginator.mjs +43 -13
  97. package/esm2022/panel/panel.mjs +9 -6
  98. package/esm2022/panelmenu/panelmenu.mjs +33 -16
  99. package/esm2022/password/password.mjs +34 -14
  100. package/esm2022/picklist/picklist.mjs +34 -19
  101. package/esm2022/progressbar/progressbar.mjs +7 -5
  102. package/esm2022/radiobutton/radiobutton.mjs +25 -9
  103. package/esm2022/rating/rating.mjs +38 -16
  104. package/esm2022/scroller/scroller.mjs +2 -2
  105. package/esm2022/scrollpanel/scrollpanel.mjs +5 -4
  106. package/esm2022/scrolltop/scrolltop.mjs +5 -4
  107. package/esm2022/selectbutton/selectbutton.mjs +31 -12
  108. package/esm2022/sidebar/sidebar.mjs +17 -10
  109. package/esm2022/slidemenu/slidemenu.mjs +40 -22
  110. package/esm2022/slider/slider.mjs +39 -14
  111. package/esm2022/speeddial/speeddial.interface.mjs +1 -1
  112. package/esm2022/speeddial/speeddial.mjs +94 -74
  113. package/esm2022/spinner/spinner.mjs +23 -13
  114. package/esm2022/splitbutton/splitbutton.mjs +173 -21
  115. package/esm2022/splitter/splitter.mjs +9 -6
  116. package/esm2022/steps/steps.mjs +13 -10
  117. package/esm2022/styleclass/styleclass.mjs +7 -5
  118. package/esm2022/table/table.mjs +146 -84
  119. package/esm2022/tabmenu/tabmenu.mjs +8 -6
  120. package/esm2022/tabview/tabview.mjs +18 -11
  121. package/esm2022/tag/tag.mjs +19 -7
  122. package/esm2022/tieredmenu/tieredmenu.mjs +35 -29
  123. package/esm2022/toast/toast.mjs +18 -11
  124. package/esm2022/togglebutton/togglebutton.mjs +27 -11
  125. package/esm2022/tooltip/tooltip.mjs +21 -12
  126. package/esm2022/tree/tree.mjs +42 -23
  127. package/esm2022/treeselect/treeselect.mjs +63 -18
  128. package/esm2022/treetable/treetable.mjs +288 -102
  129. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +27 -10
  130. package/esm2022/virtualscroller/virtualscroller.mjs +9 -6
  131. package/fesm2022/primeng-accordion.mjs +13 -8
  132. package/fesm2022/primeng-accordion.mjs.map +1 -1
  133. package/fesm2022/primeng-animateonscroll.mjs +6 -4
  134. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  135. package/fesm2022/primeng-api.mjs +5 -2
  136. package/fesm2022/primeng-api.mjs.map +1 -1
  137. package/fesm2022/primeng-autocomplete.mjs +64 -37
  138. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  139. package/fesm2022/primeng-autofocus.mjs +12 -4
  140. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  141. package/fesm2022/primeng-badge.mjs +127 -81
  142. package/fesm2022/primeng-badge.mjs.map +1 -1
  143. package/fesm2022/primeng-baseicon.mjs +4 -3
  144. package/fesm2022/primeng-baseicon.mjs.map +1 -1
  145. package/fesm2022/primeng-blockui.mjs +6 -4
  146. package/fesm2022/primeng-blockui.mjs.map +1 -1
  147. package/fesm2022/primeng-button.mjs +129 -16
  148. package/fesm2022/primeng-button.mjs.map +1 -1
  149. package/fesm2022/primeng-calendar.mjs +136 -105
  150. package/fesm2022/primeng-calendar.mjs.map +1 -1
  151. package/fesm2022/primeng-carousel.mjs +10 -6
  152. package/fesm2022/primeng-carousel.mjs.map +1 -1
  153. package/fesm2022/primeng-cascadeselect.mjs +49 -26
  154. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  155. package/fesm2022/primeng-chart.mjs +4 -3
  156. package/fesm2022/primeng-chart.mjs.map +1 -1
  157. package/fesm2022/primeng-checkbox.mjs +30 -11
  158. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  159. package/fesm2022/primeng-chip.mjs +4 -3
  160. package/fesm2022/primeng-chip.mjs.map +1 -1
  161. package/fesm2022/primeng-chips.mjs +36 -14
  162. package/fesm2022/primeng-chips.mjs.map +1 -1
  163. package/fesm2022/primeng-colorpicker.mjs +28 -10
  164. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  165. package/fesm2022/primeng-confirmdialog.mjs +23 -13
  166. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  167. package/fesm2022/primeng-confirmpopup.mjs +7 -5
  168. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  169. package/fesm2022/primeng-contextmenu.mjs +25 -14
  170. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  171. package/fesm2022/primeng-dataview.mjs +33 -18
  172. package/fesm2022/primeng-dataview.mjs.map +1 -1
  173. package/fesm2022/primeng-dialog.mjs +58 -55
  174. package/fesm2022/primeng-dialog.mjs.map +1 -1
  175. package/fesm2022/primeng-dom.mjs +21 -7
  176. package/fesm2022/primeng-dom.mjs.map +1 -1
  177. package/fesm2022/primeng-dragdrop.mjs +4 -3
  178. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  179. package/fesm2022/primeng-dropdown.mjs +68 -38
  180. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  181. package/fesm2022/primeng-dynamicdialog.mjs +58 -71
  182. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  183. package/fesm2022/primeng-editor.mjs +48 -43
  184. package/fesm2022/primeng-editor.mjs.map +1 -1
  185. package/fesm2022/primeng-fieldset.mjs +6 -4
  186. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  187. package/fesm2022/primeng-fileupload.mjs +75 -18
  188. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  189. package/fesm2022/primeng-focustrap.mjs +4 -3
  190. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  191. package/fesm2022/primeng-galleria.mjs +56 -31
  192. package/fesm2022/primeng-galleria.mjs.map +1 -1
  193. package/fesm2022/primeng-image.mjs +4 -3
  194. package/fesm2022/primeng-image.mjs.map +1 -1
  195. package/fesm2022/primeng-inplace.mjs +11 -7
  196. package/fesm2022/primeng-inplace.mjs.map +1 -1
  197. package/fesm2022/primeng-inputmask.mjs +39 -16
  198. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  199. package/fesm2022/primeng-inputnumber.mjs +62 -22
  200. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  201. package/fesm2022/primeng-inputotp.mjs +34 -15
  202. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  203. package/fesm2022/primeng-inputswitch.mjs +26 -9
  204. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  205. package/fesm2022/primeng-inputtextarea.mjs +4 -3
  206. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  207. package/fesm2022/primeng-keyfilter.mjs +15 -5
  208. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  209. package/fesm2022/primeng-knob.mjs +20 -11
  210. package/fesm2022/primeng-knob.mjs.map +1 -1
  211. package/fesm2022/primeng-listbox.mjs +40 -18
  212. package/fesm2022/primeng-listbox.mjs.map +1 -1
  213. package/fesm2022/primeng-megamenu.mjs +15 -9
  214. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  215. package/fesm2022/primeng-menu.mjs +10 -16
  216. package/fesm2022/primeng-menu.mjs.map +1 -1
  217. package/fesm2022/primeng-menubar.mjs +25 -14
  218. package/fesm2022/primeng-menubar.mjs.map +1 -1
  219. package/fesm2022/primeng-message.mjs +4 -3
  220. package/fesm2022/primeng-message.mjs.map +1 -1
  221. package/fesm2022/primeng-messages.mjs +14 -10
  222. package/fesm2022/primeng-messages.mjs.map +1 -1
  223. package/fesm2022/primeng-metergroup.mjs +11 -8
  224. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  225. package/fesm2022/primeng-multiselect.mjs +106 -53
  226. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  227. package/fesm2022/primeng-orderlist.mjs +15 -9
  228. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  229. package/fesm2022/primeng-organizationchart.mjs +11 -7
  230. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  231. package/fesm2022/primeng-overlaypanel.mjs +12 -7
  232. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  233. package/fesm2022/primeng-paginator.mjs +42 -12
  234. package/fesm2022/primeng-paginator.mjs.map +1 -1
  235. package/fesm2022/primeng-panel.mjs +8 -5
  236. package/fesm2022/primeng-panel.mjs.map +1 -1
  237. package/fesm2022/primeng-panelmenu.mjs +32 -15
  238. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  239. package/fesm2022/primeng-password.mjs +33 -13
  240. package/fesm2022/primeng-password.mjs.map +1 -1
  241. package/fesm2022/primeng-picklist.mjs +33 -18
  242. package/fesm2022/primeng-picklist.mjs.map +1 -1
  243. package/fesm2022/primeng-progressbar.mjs +6 -4
  244. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  245. package/fesm2022/primeng-radiobutton.mjs +24 -8
  246. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  247. package/fesm2022/primeng-rating.mjs +37 -15
  248. package/fesm2022/primeng-rating.mjs.map +1 -1
  249. package/fesm2022/primeng-scroller.mjs +1 -1
  250. package/fesm2022/primeng-scroller.mjs.map +1 -1
  251. package/fesm2022/primeng-scrollpanel.mjs +4 -3
  252. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  253. package/fesm2022/primeng-scrolltop.mjs +4 -3
  254. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  255. package/fesm2022/primeng-selectbutton.mjs +30 -11
  256. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  257. package/fesm2022/primeng-sidebar.mjs +16 -9
  258. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  259. package/fesm2022/primeng-slidemenu.mjs +39 -21
  260. package/fesm2022/primeng-slidemenu.mjs.map +1 -1
  261. package/fesm2022/primeng-slider.mjs +38 -13
  262. package/fesm2022/primeng-slider.mjs.map +1 -1
  263. package/fesm2022/primeng-speeddial.mjs +93 -73
  264. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  265. package/fesm2022/primeng-spinner.mjs +22 -12
  266. package/fesm2022/primeng-spinner.mjs.map +1 -1
  267. package/fesm2022/primeng-splitbutton.mjs +172 -20
  268. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  269. package/fesm2022/primeng-splitter.mjs +8 -5
  270. package/fesm2022/primeng-splitter.mjs.map +1 -1
  271. package/fesm2022/primeng-steps.mjs +12 -9
  272. package/fesm2022/primeng-steps.mjs.map +1 -1
  273. package/fesm2022/primeng-styleclass.mjs +6 -4
  274. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  275. package/fesm2022/primeng-table.mjs +145 -83
  276. package/fesm2022/primeng-table.mjs.map +1 -1
  277. package/fesm2022/primeng-tabmenu.mjs +7 -5
  278. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  279. package/fesm2022/primeng-tabview.mjs +17 -10
  280. package/fesm2022/primeng-tabview.mjs.map +1 -1
  281. package/fesm2022/primeng-tag.mjs +18 -6
  282. package/fesm2022/primeng-tag.mjs.map +1 -1
  283. package/fesm2022/primeng-tieredmenu.mjs +34 -28
  284. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  285. package/fesm2022/primeng-toast.mjs +17 -10
  286. package/fesm2022/primeng-toast.mjs.map +1 -1
  287. package/fesm2022/primeng-togglebutton.mjs +26 -10
  288. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  289. package/fesm2022/primeng-tooltip.mjs +20 -11
  290. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  291. package/fesm2022/primeng-tree.mjs +41 -22
  292. package/fesm2022/primeng-tree.mjs.map +1 -1
  293. package/fesm2022/primeng-treeselect.mjs +62 -17
  294. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  295. package/fesm2022/primeng-treetable.mjs +287 -101
  296. package/fesm2022/primeng-treetable.mjs.map +1 -1
  297. package/fesm2022/primeng-tristatecheckbox.mjs +26 -9
  298. package/fesm2022/primeng-tristatecheckbox.mjs.map +1 -1
  299. package/fesm2022/primeng-virtualscroller.mjs +8 -5
  300. package/fesm2022/primeng-virtualscroller.mjs.map +1 -1
  301. package/fieldset/fieldset.d.ts +2 -0
  302. package/fileupload/fileupload.d.ts +11 -0
  303. package/focustrap/focustrap.d.ts +1 -0
  304. package/galleria/galleria.d.ts +25 -0
  305. package/image/image.d.ts +1 -0
  306. package/inplace/inplace.d.ts +4 -0
  307. package/inputmask/inputmask.d.ts +20 -2
  308. package/inputnumber/inputnumber.d.ts +30 -6
  309. package/inputnumber/inputnumber.interface.d.ts +1 -1
  310. package/inputotp/inputotp.d.ts +10 -2
  311. package/inputswitch/inputswitch.d.ts +12 -2
  312. package/inputtextarea/inputtextarea.d.ts +1 -0
  313. package/keyfilter/keyfilter.d.ts +1 -0
  314. package/knob/knob.d.ts +9 -0
  315. package/listbox/listbox.d.ts +22 -2
  316. package/megamenu/megamenu.d.ts +6 -0
  317. package/menu/menu.d.ts +4 -0
  318. package/menubar/menubar.d.ts +11 -0
  319. package/message/message.d.ts +1 -0
  320. package/messages/messages.d.ts +3 -0
  321. package/metergroup/metergroup.d.ts +2 -2
  322. package/metergroup/metergroup.interface.d.ts +16 -0
  323. package/multiselect/multiselect.d.ts +37 -8
  324. package/orderlist/orderlist.d.ts +6 -0
  325. package/organizationchart/organizationchart.d.ts +4 -0
  326. package/overlaypanel/overlaypanel.d.ts +5 -0
  327. package/package.json +134 -134
  328. package/paginator/paginator.d.ts +19 -2
  329. package/panel/panel.d.ts +3 -0
  330. package/panelmenu/panelmenu.d.ts +11 -0
  331. package/password/password.d.ts +19 -6
  332. package/picklist/picklist.d.ts +11 -0
  333. package/progressbar/progressbar.d.ts +2 -0
  334. package/radiobutton/radiobutton.d.ts +11 -2
  335. package/rating/rating.d.ts +17 -6
  336. package/resources/components/calendar/calendar.css +1 -0
  337. package/resources/components/cascadeselect/cascadeselect.css +1 -0
  338. package/resources/components/rating/rating.css +2 -0
  339. package/resources/themes/arya-blue/fonts/Inter-italic.var.woff2 +0 -0
  340. package/resources/themes/arya-blue/fonts/Inter-roman.var.woff2 +0 -0
  341. package/resources/themes/arya-blue/theme.css +420 -584
  342. package/resources/themes/arya-green/fonts/Inter-italic.var.woff2 +0 -0
  343. package/resources/themes/arya-green/fonts/Inter-roman.var.woff2 +0 -0
  344. package/resources/themes/arya-green/theme.css +420 -584
  345. package/resources/themes/arya-orange/fonts/Inter-italic.var.woff2 +0 -0
  346. package/resources/themes/arya-orange/fonts/Inter-roman.var.woff2 +0 -0
  347. package/resources/themes/arya-orange/theme.css +420 -584
  348. package/resources/themes/arya-purple/fonts/Inter-italic.var.woff2 +0 -0
  349. package/resources/themes/arya-purple/fonts/Inter-roman.var.woff2 +0 -0
  350. package/resources/themes/arya-purple/theme.css +420 -584
  351. package/resources/themes/aura-dark-amber/fonts/Inter-italic.var.woff2 +0 -0
  352. package/resources/themes/aura-dark-amber/fonts/Inter-roman.var.woff2 +0 -0
  353. package/resources/themes/aura-dark-amber/theme.css +7658 -0
  354. package/resources/themes/aura-dark-blue/fonts/Inter-italic.var.woff2 +0 -0
  355. package/resources/themes/aura-dark-blue/fonts/Inter-roman.var.woff2 +0 -0
  356. package/resources/themes/aura-dark-blue/theme.css +7658 -0
  357. package/resources/themes/aura-dark-cyan/fonts/Inter-italic.var.woff2 +0 -0
  358. package/resources/themes/aura-dark-cyan/fonts/Inter-roman.var.woff2 +0 -0
  359. package/resources/themes/aura-dark-cyan/theme.css +7658 -0
  360. package/resources/themes/aura-dark-green/fonts/Inter-italic.var.woff2 +0 -0
  361. package/resources/themes/aura-dark-green/fonts/Inter-roman.var.woff2 +0 -0
  362. package/resources/themes/aura-dark-green/theme.css +7658 -0
  363. package/resources/themes/aura-dark-indigo/fonts/Inter-italic.var.woff2 +0 -0
  364. package/resources/themes/aura-dark-indigo/fonts/Inter-roman.var.woff2 +0 -0
  365. package/resources/themes/aura-dark-indigo/theme.css +7658 -0
  366. package/resources/themes/aura-dark-lime/fonts/Inter-italic.var.woff2 +0 -0
  367. package/resources/themes/aura-dark-lime/fonts/Inter-roman.var.woff2 +0 -0
  368. package/resources/themes/aura-dark-lime/theme.css +7658 -0
  369. package/resources/themes/aura-dark-noir/fonts/Inter-italic.var.woff2 +0 -0
  370. package/resources/themes/aura-dark-noir/fonts/Inter-roman.var.woff2 +0 -0
  371. package/resources/themes/aura-dark-noir/theme.css +7658 -0
  372. package/resources/themes/aura-dark-pink/fonts/Inter-italic.var.woff2 +0 -0
  373. package/resources/themes/aura-dark-pink/fonts/Inter-roman.var.woff2 +0 -0
  374. package/resources/themes/aura-dark-pink/theme.css +7658 -0
  375. package/resources/themes/aura-dark-purple/fonts/Inter-italic.var.woff2 +0 -0
  376. package/resources/themes/aura-dark-purple/fonts/Inter-roman.var.woff2 +0 -0
  377. package/resources/themes/aura-dark-purple/theme.css +7658 -0
  378. package/resources/themes/aura-dark-teal/fonts/Inter-italic.var.woff2 +0 -0
  379. package/resources/themes/aura-dark-teal/fonts/Inter-roman.var.woff2 +0 -0
  380. package/resources/themes/aura-dark-teal/theme.css +7658 -0
  381. package/resources/themes/aura-light-amber/fonts/Inter-italic.var.woff2 +0 -0
  382. package/resources/themes/aura-light-amber/fonts/Inter-roman.var.woff2 +0 -0
  383. package/resources/themes/aura-light-amber/theme.css +7660 -0
  384. package/resources/themes/aura-light-blue/fonts/Inter-italic.var.woff2 +0 -0
  385. package/resources/themes/aura-light-blue/fonts/Inter-roman.var.woff2 +0 -0
  386. package/resources/themes/aura-light-blue/theme.css +7660 -0
  387. package/resources/themes/aura-light-cyan/fonts/Inter-italic.var.woff2 +0 -0
  388. package/resources/themes/aura-light-cyan/fonts/Inter-roman.var.woff2 +0 -0
  389. package/resources/themes/aura-light-cyan/theme.css +7660 -0
  390. package/resources/themes/aura-light-green/fonts/Inter-italic.var.woff2 +0 -0
  391. package/resources/themes/aura-light-green/fonts/Inter-roman.var.woff2 +0 -0
  392. package/resources/themes/aura-light-green/theme.css +7660 -0
  393. package/resources/themes/aura-light-indigo/fonts/Inter-italic.var.woff2 +0 -0
  394. package/resources/themes/aura-light-indigo/fonts/Inter-roman.var.woff2 +0 -0
  395. package/resources/themes/aura-light-indigo/theme.css +7660 -0
  396. package/resources/themes/aura-light-lime/fonts/Inter-italic.var.woff2 +0 -0
  397. package/resources/themes/aura-light-lime/fonts/Inter-roman.var.woff2 +0 -0
  398. package/resources/themes/aura-light-lime/theme.css +7660 -0
  399. package/resources/themes/aura-light-noir/fonts/Inter-italic.var.woff2 +0 -0
  400. package/resources/themes/aura-light-noir/fonts/Inter-roman.var.woff2 +0 -0
  401. package/resources/themes/aura-light-noir/theme.css +7668 -0
  402. package/resources/themes/aura-light-pink/fonts/Inter-italic.var.woff2 +0 -0
  403. package/resources/themes/aura-light-pink/fonts/Inter-roman.var.woff2 +0 -0
  404. package/resources/themes/aura-light-pink/theme.css +7660 -0
  405. package/resources/themes/aura-light-purple/fonts/Inter-italic.var.woff2 +0 -0
  406. package/resources/themes/aura-light-purple/fonts/Inter-roman.var.woff2 +0 -0
  407. package/resources/themes/aura-light-purple/theme.css +7660 -0
  408. package/resources/themes/aura-light-teal/fonts/Inter-italic.var.woff2 +0 -0
  409. package/resources/themes/aura-light-teal/fonts/Inter-roman.var.woff2 +0 -0
  410. package/resources/themes/aura-light-teal/theme.css +7660 -0
  411. package/resources/themes/bootstrap4-dark-blue/theme.css +421 -584
  412. package/resources/themes/bootstrap4-dark-purple/theme.css +421 -584
  413. package/resources/themes/bootstrap4-light-blue/theme.css +421 -584
  414. package/resources/themes/bootstrap4-light-purple/theme.css +421 -584
  415. package/resources/themes/fluent-light/theme.css +447 -595
  416. package/resources/themes/lara-dark-amber/theme.css +649 -448
  417. package/resources/themes/lara-dark-blue/theme.css +485 -586
  418. package/resources/themes/lara-dark-cyan/theme.css +649 -448
  419. package/resources/themes/lara-dark-green/theme.css +649 -448
  420. package/resources/themes/lara-dark-indigo/theme.css +485 -586
  421. package/resources/themes/lara-dark-pink/theme.css +649 -448
  422. package/resources/themes/lara-dark-purple/theme.css +485 -586
  423. package/resources/themes/lara-dark-teal/theme.css +485 -586
  424. package/resources/themes/lara-light-amber/theme.css +619 -467
  425. package/resources/themes/lara-light-blue/theme.css +441 -594
  426. package/resources/themes/lara-light-cyan/theme.css +619 -467
  427. package/resources/themes/lara-light-green/theme.css +619 -467
  428. package/resources/themes/lara-light-indigo/theme.css +441 -594
  429. package/resources/themes/lara-light-pink/theme.css +619 -467
  430. package/resources/themes/lara-light-purple/theme.css +441 -594
  431. package/resources/themes/lara-light-teal/theme.css +441 -594
  432. package/resources/themes/luna-amber/theme.css +434 -597
  433. package/resources/themes/luna-blue/theme.css +434 -597
  434. package/resources/themes/luna-green/theme.css +434 -597
  435. package/resources/themes/luna-pink/theme.css +434 -597
  436. package/resources/themes/md-dark-deeppurple/theme.css +760 -742
  437. package/resources/themes/md-dark-indigo/theme.css +760 -742
  438. package/resources/themes/md-light-deeppurple/theme.css +635 -617
  439. package/resources/themes/md-light-indigo/theme.css +635 -617
  440. package/resources/themes/mdc-dark-deeppurple/theme.css +760 -742
  441. package/resources/themes/mdc-dark-indigo/theme.css +760 -742
  442. package/resources/themes/mdc-light-deeppurple/theme.css +635 -617
  443. package/resources/themes/mdc-light-indigo/theme.css +635 -617
  444. package/resources/themes/mira/theme.css +458 -591
  445. package/resources/themes/nano/theme.css +418 -584
  446. package/resources/themes/nova/theme.css +422 -584
  447. package/resources/themes/nova-accent/theme.css +419 -584
  448. package/resources/themes/nova-alt/theme.css +422 -584
  449. package/resources/themes/rhea/theme.css +419 -584
  450. package/resources/themes/saga-blue/theme.css +420 -584
  451. package/resources/themes/saga-green/theme.css +420 -584
  452. package/resources/themes/saga-orange/theme.css +420 -584
  453. package/resources/themes/saga-purple/theme.css +420 -584
  454. package/resources/themes/soho-dark/theme.css +454 -615
  455. package/resources/themes/soho-light/theme.css +430 -589
  456. package/resources/themes/tailwind-light/theme.css +463 -614
  457. package/resources/themes/vela-blue/theme.css +420 -584
  458. package/resources/themes/vela-green/theme.css +420 -584
  459. package/resources/themes/vela-orange/theme.css +420 -584
  460. package/resources/themes/vela-purple/theme.css +420 -584
  461. package/resources/themes/viva-dark/theme.css +444 -589
  462. package/resources/themes/viva-light/theme.css +444 -589
  463. package/scrollpanel/scrollpanel.d.ts +1 -0
  464. package/scrolltop/scrolltop.d.ts +1 -0
  465. package/selectbutton/selectbutton.d.ts +14 -2
  466. package/sidebar/sidebar.d.ts +7 -0
  467. package/slidemenu/slidemenu.d.ts +20 -2
  468. package/slider/slider.d.ts +16 -2
  469. package/speeddial/speeddial.d.ts +7 -0
  470. package/speeddial/speeddial.interface.d.ts +17 -0
  471. package/spinner/spinner.d.ts +10 -0
  472. package/splitbutton/splitbutton.d.ts +81 -8
  473. package/splitter/splitter.d.ts +3 -0
  474. package/steps/steps.d.ts +3 -0
  475. package/styleclass/styleclass.d.ts +2 -0
  476. package/table/table.d.ts +65 -1
  477. package/tabmenu/tabmenu.d.ts +2 -0
  478. package/tabview/tabview.d.ts +7 -0
  479. package/tag/tag.d.ts +11 -2
  480. package/tieredmenu/tieredmenu.d.ts +14 -3
  481. package/toast/toast.d.ts +7 -0
  482. package/togglebutton/togglebutton.d.ts +11 -2
  483. package/tooltip/tooltip.d.ts +9 -0
  484. package/tree/tree.d.ts +19 -0
  485. package/treeselect/treeselect.d.ts +36 -6
  486. package/treetable/treetable.d.ts +61 -4
  487. package/tristatecheckbox/tristatecheckbox.d.ts +14 -4
  488. package/virtualscroller/virtualscroller.d.ts +3 -0
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, EventEmitter, Component, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, PLATFORM_ID, Directive, HostListener, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
+ import { Injectable, EventEmitter, booleanAttribute, numberAttribute, Component, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, PLATFORM_ID, Directive, HostListener, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
5
  import * as i1 from 'primeng/api';
6
6
  import { PrimeTemplate, SharedModule } from 'primeng/api';
7
7
  import { DomHandler } from 'primeng/dom';
@@ -421,7 +421,17 @@ class TreeTable {
421
421
  this._virtualRowHeight = val;
422
422
  console.warn('The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.');
423
423
  }
424
- _virtualRowHeight = 28;
424
+ /**
425
+ * A map of keys to control the selection state.
426
+ * @group Props
427
+ */
428
+ get selectionKeys() {
429
+ return this._selectionKeys;
430
+ }
431
+ set selectionKeys(value) {
432
+ this._selectionKeys = value;
433
+ this.selectionKeysChange.emit(this._selectionKeys);
434
+ }
425
435
  /**
426
436
  * Callback to invoke on selected node change.
427
437
  * @param {TreeTableNode} object - Node instance.
@@ -530,6 +540,12 @@ class TreeTable {
530
540
  * @group Emits
531
541
  */
532
542
  onEditCancel = new EventEmitter();
543
+ /**
544
+ * Callback to invoke when selectionKeys are changed.
545
+ * @param {Object} object - updated value of the selectionKeys.
546
+ * @group Emits
547
+ */
548
+ selectionKeysChange = new EventEmitter();
533
549
  containerViewChild;
534
550
  resizeHelperViewChild;
535
551
  reorderIndicatorUpViewChild;
@@ -539,6 +555,8 @@ class TreeTable {
539
555
  scrollableFrozenViewChild;
540
556
  templates;
541
557
  _value = [];
558
+ _virtualRowHeight = 28;
559
+ _selectionKeys;
542
560
  serializedValue;
543
561
  _totalRecords = 0;
544
562
  _multiSortMeta;
@@ -578,7 +596,7 @@ class TreeTable {
578
596
  dropPosition;
579
597
  preventSelectionSetterPropagation;
580
598
  _selection;
581
- selectionKeys = {};
599
+ selectedKeys = {};
582
600
  rowTouched;
583
601
  editingCell;
584
602
  editingCellData;
@@ -726,7 +744,7 @@ class TreeTable {
726
744
  if (simpleChange.selection) {
727
745
  this._selection = simpleChange.selection.currentValue;
728
746
  if (!this.preventSelectionSetterPropagation) {
729
- this.updateSelectionKeys();
747
+ this.updateselectedKeys();
730
748
  this.tableService.onSelectionChange();
731
749
  }
732
750
  this.preventSelectionSetterPropagation = false;
@@ -775,16 +793,16 @@ class TreeTable {
775
793
  }
776
794
  }
777
795
  }
778
- updateSelectionKeys() {
796
+ updateselectedKeys() {
779
797
  if (this.dataKey && this._selection) {
780
- this.selectionKeys = {};
798
+ this.selectedKeys = {};
781
799
  if (Array.isArray(this._selection)) {
782
800
  for (let node of this._selection) {
783
- this.selectionKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;
801
+ this.selectedKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;
784
802
  }
785
803
  }
786
804
  else {
787
- this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection.data, this.dataKey))] = 1;
805
+ this.selectedKeys[String(ObjectUtils.resolveFieldData(this._selection.data, this.dataKey))] = 1;
788
806
  }
789
807
  }
790
808
  }
@@ -1257,7 +1275,7 @@ class TreeTable {
1257
1275
  if (selected && metaKey) {
1258
1276
  if (this.isSingleSelectionMode()) {
1259
1277
  this._selection = null;
1260
- this.selectionKeys = {};
1278
+ this.selectedKeys = {};
1261
1279
  this.selectionChange.emit(null);
1262
1280
  }
1263
1281
  else {
@@ -1265,7 +1283,7 @@ class TreeTable {
1265
1283
  this._selection = this.selection.filter((val, i) => i != selectionIndex);
1266
1284
  this.selectionChange.emit(this.selection);
1267
1285
  if (dataKeyValue) {
1268
- delete this.selectionKeys[dataKeyValue];
1286
+ delete this.selectedKeys[dataKeyValue];
1269
1287
  }
1270
1288
  }
1271
1289
  this.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });
@@ -1275,8 +1293,8 @@ class TreeTable {
1275
1293
  this._selection = rowNode.node;
1276
1294
  this.selectionChange.emit(rowNode.node);
1277
1295
  if (dataKeyValue) {
1278
- this.selectionKeys = {};
1279
- this.selectionKeys[dataKeyValue] = 1;
1296
+ this.selectedKeys = {};
1297
+ this.selectedKeys[dataKeyValue] = 1;
1280
1298
  }
1281
1299
  }
1282
1300
  else if (this.isMultipleSelectionMode()) {
@@ -1285,12 +1303,12 @@ class TreeTable {
1285
1303
  }
1286
1304
  else {
1287
1305
  this._selection = [];
1288
- this.selectionKeys = {};
1306
+ this.selectedKeys = {};
1289
1307
  }
1290
1308
  this._selection = [...this.selection, rowNode.node];
1291
1309
  this.selectionChange.emit(this.selection);
1292
1310
  if (dataKeyValue) {
1293
- this.selectionKeys[dataKeyValue] = 1;
1311
+ this.selectedKeys[dataKeyValue] = 1;
1294
1312
  }
1295
1313
  }
1296
1314
  this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row', index: event.rowIndex });
@@ -1300,7 +1318,7 @@ class TreeTable {
1300
1318
  if (this.selectionMode === 'single') {
1301
1319
  if (selected) {
1302
1320
  this._selection = null;
1303
- this.selectionKeys = {};
1321
+ this.selectedKeys = {};
1304
1322
  this.selectionChange.emit(this.selection);
1305
1323
  this.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });
1306
1324
  }
@@ -1309,8 +1327,8 @@ class TreeTable {
1309
1327
  this.selectionChange.emit(this.selection);
1310
1328
  this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row', index: event.rowIndex });
1311
1329
  if (dataKeyValue) {
1312
- this.selectionKeys = {};
1313
- this.selectionKeys[dataKeyValue] = 1;
1330
+ this.selectedKeys = {};
1331
+ this.selectedKeys[dataKeyValue] = 1;
1314
1332
  }
1315
1333
  }
1316
1334
  }
@@ -1321,7 +1339,7 @@ class TreeTable {
1321
1339
  this.selectionChange.emit(this.selection);
1322
1340
  this.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });
1323
1341
  if (dataKeyValue) {
1324
- delete this.selectionKeys[dataKeyValue];
1342
+ delete this.selectedKeys[dataKeyValue];
1325
1343
  }
1326
1344
  }
1327
1345
  else {
@@ -1329,7 +1347,7 @@ class TreeTable {
1329
1347
  this.selectionChange.emit(this.selection);
1330
1348
  this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row', index: event.rowIndex });
1331
1349
  if (dataKeyValue) {
1332
- this.selectionKeys[dataKeyValue] = 1;
1350
+ this.selectedKeys[dataKeyValue] = 1;
1333
1351
  }
1334
1352
  }
1335
1353
  }
@@ -1365,7 +1383,7 @@ class TreeTable {
1365
1383
  this.selectionChange.emit(this.selection);
1366
1384
  }
1367
1385
  if (dataKeyValue) {
1368
- this.selectionKeys[dataKeyValue] = 1;
1386
+ this.selectedKeys[dataKeyValue] = 1;
1369
1387
  }
1370
1388
  }
1371
1389
  this.contextMenu.show(event.originalEvent);
@@ -1374,6 +1392,7 @@ class TreeTable {
1374
1392
  }
1375
1393
  }
1376
1394
  toggleNodeWithCheckbox(event) {
1395
+ // legacy selection support, will be removed in v18
1377
1396
  this.selection = this.selection || [];
1378
1397
  this.preventSelectionSetterPropagation = true;
1379
1398
  let node = event.rowNode.node;
@@ -1397,25 +1416,40 @@ class TreeTable {
1397
1416
  this.tableService.onSelectionChange();
1398
1417
  }
1399
1418
  toggleNodesWithCheckbox(event, check) {
1419
+ // legacy selection support, will be removed in v18
1400
1420
  let data = this.filteredNodes || this.value;
1401
1421
  this._selection = check && data ? data.slice() : [];
1402
- if (check) {
1422
+ this.toggleAll(check);
1423
+ if (!check) {
1424
+ this._selection = [];
1425
+ this.selectedKeys = {};
1426
+ }
1427
+ this.preventSelectionSetterPropagation = true;
1428
+ this.selectionChange.emit(this._selection);
1429
+ this.tableService.onSelectionChange();
1430
+ this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });
1431
+ }
1432
+ toggleAll(checked) {
1433
+ let data = this.filteredNodes || this.value;
1434
+ if (!this.selectionKeys) {
1403
1435
  if (data && data.length) {
1404
1436
  for (let node of data) {
1405
- this.propagateSelectionDown(node, true);
1437
+ this.propagateSelectionDown(node, checked);
1406
1438
  }
1407
1439
  }
1408
1440
  }
1409
1441
  else {
1410
- this._selection = [];
1411
- this.selectionKeys = {};
1442
+ // legacy selection support, will be removed in v18
1443
+ if (data && data.length) {
1444
+ for (let node of data) {
1445
+ this.propagateDown(node, checked);
1446
+ }
1447
+ this.selectionKeysChange.emit(this.selectionKeys);
1448
+ }
1412
1449
  }
1413
- this.preventSelectionSetterPropagation = true;
1414
- this.selectionChange.emit(this._selection);
1415
- this.tableService.onSelectionChange();
1416
- this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });
1417
1450
  }
1418
1451
  propagateSelectionUp(node, select) {
1452
+ // legacy selection support, will be removed in v18
1419
1453
  if (node.children && node.children.length) {
1420
1454
  let selectedChildCount = 0;
1421
1455
  let childPartialSelected = false;
@@ -1430,7 +1464,7 @@ class TreeTable {
1430
1464
  this._selection = [...(this.selection || []), node];
1431
1465
  node.partialSelected = false;
1432
1466
  if (dataKeyValue) {
1433
- this.selectionKeys[dataKeyValue] = 1;
1467
+ this.selectedKeys[dataKeyValue] = 1;
1434
1468
  }
1435
1469
  }
1436
1470
  else {
@@ -1439,7 +1473,7 @@ class TreeTable {
1439
1473
  if (index >= 0) {
1440
1474
  this._selection = this.selection.filter((val, i) => i != index);
1441
1475
  if (dataKeyValue) {
1442
- delete this.selectionKeys[dataKeyValue];
1476
+ delete this.selectedKeys[dataKeyValue];
1443
1477
  }
1444
1478
  }
1445
1479
  }
@@ -1450,26 +1484,29 @@ class TreeTable {
1450
1484
  }
1451
1485
  }
1452
1486
  let parent = node.parent;
1487
+ node.checked = select;
1453
1488
  if (parent) {
1454
1489
  this.propagateSelectionUp(parent, select);
1455
1490
  }
1456
1491
  }
1457
1492
  propagateSelectionDown(node, select) {
1493
+ // legacy selection support, will be removed in v18
1458
1494
  let index = this.findIndexInSelection(node);
1459
1495
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;
1460
1496
  if (select && index == -1) {
1461
1497
  this._selection = [...(this.selection || []), node];
1462
1498
  if (dataKeyValue) {
1463
- this.selectionKeys[dataKeyValue] = 1;
1499
+ this.selectedKeys[dataKeyValue] = 1;
1464
1500
  }
1465
1501
  }
1466
1502
  else if (!select && index > -1) {
1467
1503
  this._selection = this.selection.filter((val, i) => i != index);
1468
1504
  if (dataKeyValue) {
1469
- delete this.selectionKeys[dataKeyValue];
1505
+ delete this.selectedKeys[dataKeyValue];
1470
1506
  }
1471
1507
  }
1472
1508
  node.partialSelected = false;
1509
+ node.checked = select;
1473
1510
  if (node.children && node.children.length) {
1474
1511
  for (let child of node.children) {
1475
1512
  this.propagateSelectionDown(child, select);
@@ -1477,9 +1514,15 @@ class TreeTable {
1477
1514
  }
1478
1515
  }
1479
1516
  isSelected(node) {
1517
+ // legacy selection support, will be removed in v18
1480
1518
  if (node && this.selection) {
1481
1519
  if (this.dataKey) {
1482
- return this.selectionKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;
1520
+ if (node.hasOwnProperty('checked')) {
1521
+ return node['checked'];
1522
+ }
1523
+ else {
1524
+ return this.selectedKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;
1525
+ }
1483
1526
  }
1484
1527
  else {
1485
1528
  if (Array.isArray(this.selection))
@@ -1490,6 +1533,69 @@ class TreeTable {
1490
1533
  }
1491
1534
  return false;
1492
1535
  }
1536
+ isNodeSelected(node) {
1537
+ return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.checked === true : false;
1538
+ }
1539
+ isNodePartialSelected(node) {
1540
+ return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)]?.partialChecked === true : false;
1541
+ }
1542
+ nodeKey(node) {
1543
+ return ObjectUtils.resolveFieldData(node, this.dataKey) || ObjectUtils.resolveFieldData(node?.data, this.dataKey);
1544
+ }
1545
+ toggleCheckbox(event) {
1546
+ let { rowNode, check, originalEvent } = event;
1547
+ let node = rowNode.node;
1548
+ if (this.selectionKeys) {
1549
+ this.propagateDown(node, check);
1550
+ if (node.parent) {
1551
+ this.propagateUp(node.parent, check);
1552
+ }
1553
+ this.selectionKeysChange.emit(this.selectionKeys);
1554
+ }
1555
+ else {
1556
+ this.toggleNodeWithCheckbox({ originalEvent, rowNode });
1557
+ }
1558
+ this.tableService.onSelectionChange();
1559
+ }
1560
+ propagateDown(node, check) {
1561
+ if (check) {
1562
+ this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };
1563
+ }
1564
+ else {
1565
+ delete this.selectionKeys[this.nodeKey(node)];
1566
+ }
1567
+ if (node.children && node.children.length) {
1568
+ for (let child of node.children) {
1569
+ this.propagateDown(child, check);
1570
+ }
1571
+ }
1572
+ }
1573
+ propagateUp(node, check) {
1574
+ let checkedChildCount = 0;
1575
+ let childPartialSelected = false;
1576
+ for (let child of node.children) {
1577
+ if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].checked)
1578
+ checkedChildCount++;
1579
+ else if (this.selectionKeys[this.nodeKey(child)] && this.selectionKeys[this.nodeKey(child)].partialChecked)
1580
+ childPartialSelected = true;
1581
+ }
1582
+ if (check && checkedChildCount === node.children.length) {
1583
+ this.selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };
1584
+ }
1585
+ else {
1586
+ if (!check) {
1587
+ delete this.selectionKeys[this.nodeKey(node)];
1588
+ }
1589
+ if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length))
1590
+ this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: true };
1591
+ else
1592
+ this.selectionKeys[this.nodeKey(node)] = { checked: false, partialChecked: false };
1593
+ }
1594
+ let parent = node.parent;
1595
+ if (parent) {
1596
+ this.propagateUp(parent, check);
1597
+ }
1598
+ }
1493
1599
  findIndexInSelection(node) {
1494
1600
  let index = -1;
1495
1601
  if (this.selection && this.selection.length) {
@@ -1509,7 +1615,7 @@ class TreeTable {
1509
1615
  return this.selectionMode === 'multiple';
1510
1616
  }
1511
1617
  equals(node1, node2) {
1512
- return this.compareSelectionBy === 'equals' ? node1 === node2 : ObjectUtils.equals(node1.data, node2.data, this.dataKey);
1618
+ return this.compareSelectionBy === 'equals' ? ObjectUtils.equals(node1, node2) : ObjectUtils.equals(node1.data, node2.data, this.dataKey);
1513
1619
  }
1514
1620
  filter(value, field, matchMode) {
1515
1621
  if (this.filterTimeout) {
@@ -1726,7 +1832,7 @@ class TreeTable {
1726
1832
  this.initialized = null;
1727
1833
  }
1728
1834
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TreeTable, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: TreeTableService }, { token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
1729
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: TreeTable, selector: "p-treeTable", inputs: { columns: "columns", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", autoLayout: "autoLayout", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", paginator: "paginator", rows: "rows", first: "first", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorStyleClass: "paginatorStyleClass", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", customSort: "customSort", selectionMode: "selectionMode", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", compareSelectionBy: "compareSelectionBy", rowHover: "rowHover", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", scrollable: "scrollable", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: "virtualScrollDelay", frozenWidth: "frozenWidth", frozenColumns: "frozenColumns", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", contextMenu: "contextMenu", rowTrackBy: "rowTrackBy", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterMode: "filterMode", filterLocale: "filterLocale", paginatorLocale: "paginatorLocale", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", value: "value", virtualRowHeight: "virtualRowHeight" }, outputs: { selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onFilter: "onFilter", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onPage: "onPage", onSort: "onSort", onLazyLoad: "onLazyLoad", sortFunction: "sortFunction", onColResize: "onColResize", onColReorder: "onColReorder", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onContextMenuSelect: "onContextMenuSelect", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel" }, host: { classAttribute: "p-element" }, providers: [TreeTableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "scrollableViewChild", first: true, predicate: ["scrollableView"], descendants: true }, { propertyName: "scrollableFrozenViewChild", first: true, predicate: ["scrollableFrozenView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1835
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: TreeTable, selector: "p-treeTable", inputs: { columns: "columns", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", autoLayout: ["autoLayout", "autoLayout", booleanAttribute], lazy: ["lazy", "lazy", booleanAttribute], lazyLoadOnInit: ["lazyLoadOnInit", "lazyLoadOnInit", booleanAttribute], paginator: ["paginator", "paginator", booleanAttribute], rows: ["rows", "rows", numberAttribute], first: ["first", "first", numberAttribute], pageLinks: ["pageLinks", "pageLinks", numberAttribute], rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: ["alwaysShowPaginator", "alwaysShowPaginator", booleanAttribute], paginatorPosition: "paginatorPosition", paginatorStyleClass: "paginatorStyleClass", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: ["showCurrentPageReport", "showCurrentPageReport", booleanAttribute], showJumpToPageDropdown: ["showJumpToPageDropdown", "showJumpToPageDropdown", booleanAttribute], showFirstLastIcon: ["showFirstLastIcon", "showFirstLastIcon", booleanAttribute], showPageLinks: ["showPageLinks", "showPageLinks", booleanAttribute], defaultSortOrder: ["defaultSortOrder", "defaultSortOrder", numberAttribute], sortMode: "sortMode", resetPageOnSort: ["resetPageOnSort", "resetPageOnSort", booleanAttribute], customSort: ["customSort", "customSort", booleanAttribute], selectionMode: "selectionMode", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], compareSelectionBy: "compareSelectionBy", rowHover: ["rowHover", "rowHover", booleanAttribute], loading: ["loading", "loading", booleanAttribute], loadingIcon: "loadingIcon", showLoader: ["showLoader", "showLoader", booleanAttribute], scrollable: ["scrollable", "scrollable", booleanAttribute], scrollHeight: "scrollHeight", virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], virtualScrollItemSize: ["virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: ["virtualScrollDelay", "virtualScrollDelay", numberAttribute], frozenWidth: "frozenWidth", frozenColumns: "frozenColumns", resizableColumns: ["resizableColumns", "resizableColumns", booleanAttribute], columnResizeMode: "columnResizeMode", reorderableColumns: ["reorderableColumns", "reorderableColumns", booleanAttribute], contextMenu: "contextMenu", rowTrackBy: "rowTrackBy", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: ["filterDelay", "filterDelay", numberAttribute], filterMode: "filterMode", filterLocale: "filterLocale", paginatorLocale: "paginatorLocale", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", value: "value", virtualRowHeight: "virtualRowHeight", selectionKeys: "selectionKeys" }, outputs: { selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onFilter: "onFilter", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onPage: "onPage", onSort: "onSort", onLazyLoad: "onLazyLoad", sortFunction: "sortFunction", onColResize: "onColResize", onColReorder: "onColReorder", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onContextMenuSelect: "onContextMenuSelect", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", selectionKeysChange: "selectionKeysChange" }, host: { classAttribute: "p-element" }, providers: [TreeTableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "scrollableViewChild", first: true, predicate: ["scrollableView"], descendants: true }, { propertyName: "scrollableFrozenViewChild", first: true, predicate: ["scrollableFrozenView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1730
1836
  <div
1731
1837
  #container
1732
1838
  [ngStyle]="style"
@@ -1872,7 +1978,7 @@ class TreeTable {
1872
1978
  <ng-template *ngTemplateOutlet="reorderIndicatorDownIconTemplate"></ng-template>
1873
1979
  </span>
1874
1980
  </div>
1875
- `, isInline: true, styles: ["@layer primeng{.p-treetable{position:relative}.p-treetable table{border-collapse:collapse;width:100%;table-layout:fixed}.p-treetable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-treetable .p-sortable-column .p-column-title,.p-treetable .p-sortable-column .p-sortable-column-icon,.p-treetable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-treetable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-treetable-auto-layout>.p-treetable-wrapper{overflow-x:auto}.p-treetable-auto-layout>.p-treetable-wrapper>table{table-layout:auto}.p-treetable-hoverable-rows .p-treetable-tbody>tr{cursor:pointer}.p-treetable-toggler{cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;overflow:hidden;position:relative}p-treetabletoggler+p-treetablecheckbox .p-checkbox{vertical-align:middle}p-treetabletoggler+p-treetablecheckbox+span{vertical-align:middle}.p-treetable-scrollable-wrapper{position:relative}.p-treetable-scrollable-header,.p-treetable-scrollable-footer{overflow:hidden;flex-shrink:0}.p-treetable-scrollable-body{overflow:auto;position:relative}.p-treetable-scrollable-body>table>.p-treetable-tbody>tr:first-child>td{border-top:0 none}.p-treetable-virtual-table{position:absolute}.p-treetable-frozen-view .p-treetable-scrollable-body{overflow:hidden}.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child{border-right:0 none}.p-treetable-unfrozen-view{position:absolute;top:0}.p-treetable-flex-scrollable,.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,.p-treetable-flex-scrollable .p-treetable-scrollable-view{display:flex;flex-direction:column;flex:1;height:100%}.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body{flex:1}.p-treetable-resizable>.p-treetable-wrapper{overflow-x:auto}.p-treetable-resizable .p-treetable-thead>tr>th,.p-treetable-resizable .p-treetable-tfoot>tr>td,.p-treetable-resizable .p-treetable-tbody>tr>td{overflow:hidden}.p-treetable-resizable .p-resizable-column{background-clip:padding-box;position:relative}.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-treetable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-treetable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-treetable .p-row-editor-init,.p-treetable .p-row-editor-save,.p-treetable .p-row-editor-cancel,.p-treetable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-treetable-reorder-indicator-up,.p-treetable-reorder-indicator-down{position:absolute;display:none}[ttReorderableColumn]{cursor:move}.p-treetable .p-treetable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-treetable .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => i3.Paginator), selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "directive", type: i0.forwardRef(() => i1.PrimeTemplate), selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i0.forwardRef(() => SpinnerIcon), selector: "SpinnerIcon" }, { kind: "component", type: i0.forwardRef(() => ArrowDownIcon), selector: "ArrowDownIcon" }, { kind: "component", type: i0.forwardRef(() => ArrowUpIcon), selector: "ArrowUpIcon" }, { kind: "component", type: i0.forwardRef(() => TTScrollableView), selector: "[ttScrollableView]", inputs: ["ttScrollableView", "frozen", "scrollHeight"] }, { kind: "component", type: i0.forwardRef(() => TTBody), selector: "[pTreeTableBody]", inputs: ["pTreeTableBody", "pTreeTableBodyTemplate", "frozen", "serializedNodes", "scrollerOptions"] }], encapsulation: i0.ViewEncapsulation.None });
1981
+ `, isInline: true, styles: ["@layer primeng{.p-treetable{position:relative}.p-treetable table{border-collapse:collapse;width:100%;table-layout:fixed}.p-treetable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-treetable .p-sortable-column .p-column-title,.p-treetable .p-sortable-column .p-sortable-column-icon,.p-treetable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-treetable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-treetable-auto-layout>.p-treetable-wrapper{overflow-x:auto}.p-treetable-auto-layout>.p-treetable-wrapper>table{table-layout:auto}.p-treetable-hoverable-rows .p-treetable-tbody>tr{cursor:pointer}.p-treetable-toggler{cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;overflow:hidden;position:relative}p-treetabletoggler+p-treetablecheckbox .p-checkbox{vertical-align:middle}p-treetabletoggler+p-treetablecheckbox+span{vertical-align:middle}.p-treetable-scrollable-wrapper{position:relative}.p-treetable-scrollable-header,.p-treetable-scrollable-footer{overflow:hidden;flex-shrink:0}.p-treetable-scrollable-body{overflow:auto;position:relative}.p-treetable-scrollable-body>table>.p-treetable-tbody>tr:first-child>td{border-top:0 none}.p-treetable-virtual-table{position:absolute}.p-treetable-frozen-view .p-treetable-scrollable-body{overflow:hidden}.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child{border-right:0 none}.p-treetable-unfrozen-view{position:absolute;top:0}.p-treetable-flex-scrollable,.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,.p-treetable-flex-scrollable .p-treetable-scrollable-view{display:flex;flex-direction:column;flex:1;height:100%}.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body{flex:1}.p-treetable-resizable>.p-treetable-wrapper{overflow-x:auto}.p-treetable-resizable .p-treetable-thead>tr>th,.p-treetable-resizable .p-treetable-tfoot>tr>td,.p-treetable-resizable .p-treetable-tbody>tr>td{overflow:hidden}.p-treetable-resizable .p-resizable-column{background-clip:padding-box;position:relative}.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-treetable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-treetable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-treetable .p-row-editor-init,.p-treetable .p-row-editor-save,.p-treetable .p-row-editor-cancel,.p-treetable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-treetable-reorder-indicator-up,.p-treetable-reorder-indicator-down{position:absolute;display:none}[ttReorderableColumn]{cursor:move}.p-treetable .p-treetable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-treetable .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => i3.Paginator), selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "directive", type: i0.forwardRef(() => i1.PrimeTemplate), selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i0.forwardRef(() => SpinnerIcon), selector: "SpinnerIcon" }, { kind: "component", type: i0.forwardRef(() => ArrowDownIcon), selector: "ArrowDownIcon" }, { kind: "component", type: i0.forwardRef(() => ArrowUpIcon), selector: "ArrowUpIcon" }, { kind: "component", type: i0.forwardRef(() => TTScrollableView), selector: "[ttScrollableView]", inputs: ["ttScrollableView", "frozen", "scrollHeight"] }, { kind: "component", type: i0.forwardRef(() => TTBody), selector: "[pTreeTableBody]", inputs: ["pTreeTableBody", "pTreeTableBodyTemplate", "frozen", "serializedNodes", "scrollerOptions"] }], encapsulation: i0.ViewEncapsulation.None });
1876
1982
  }
1877
1983
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TreeTable, decorators: [{
1878
1984
  type: Component,
@@ -2039,23 +2145,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2039
2145
  }], tableStyleClass: [{
2040
2146
  type: Input
2041
2147
  }], autoLayout: [{
2042
- type: Input
2148
+ type: Input,
2149
+ args: [{ transform: booleanAttribute }]
2043
2150
  }], lazy: [{
2044
- type: Input
2151
+ type: Input,
2152
+ args: [{ transform: booleanAttribute }]
2045
2153
  }], lazyLoadOnInit: [{
2046
- type: Input
2154
+ type: Input,
2155
+ args: [{ transform: booleanAttribute }]
2047
2156
  }], paginator: [{
2048
- type: Input
2157
+ type: Input,
2158
+ args: [{ transform: booleanAttribute }]
2049
2159
  }], rows: [{
2050
- type: Input
2160
+ type: Input,
2161
+ args: [{ transform: numberAttribute }]
2051
2162
  }], first: [{
2052
- type: Input
2163
+ type: Input,
2164
+ args: [{ transform: numberAttribute }]
2053
2165
  }], pageLinks: [{
2054
- type: Input
2166
+ type: Input,
2167
+ args: [{ transform: numberAttribute }]
2055
2168
  }], rowsPerPageOptions: [{
2056
2169
  type: Input
2057
2170
  }], alwaysShowPaginator: [{
2058
- type: Input
2171
+ type: Input,
2172
+ args: [{ transform: booleanAttribute }]
2059
2173
  }], paginatorPosition: [{
2060
2174
  type: Input
2061
2175
  }], paginatorStyleClass: [{
@@ -2065,21 +2179,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2065
2179
  }], currentPageReportTemplate: [{
2066
2180
  type: Input
2067
2181
  }], showCurrentPageReport: [{
2068
- type: Input
2182
+ type: Input,
2183
+ args: [{ transform: booleanAttribute }]
2069
2184
  }], showJumpToPageDropdown: [{
2070
- type: Input
2185
+ type: Input,
2186
+ args: [{ transform: booleanAttribute }]
2071
2187
  }], showFirstLastIcon: [{
2072
- type: Input
2188
+ type: Input,
2189
+ args: [{ transform: booleanAttribute }]
2073
2190
  }], showPageLinks: [{
2074
- type: Input
2191
+ type: Input,
2192
+ args: [{ transform: booleanAttribute }]
2075
2193
  }], defaultSortOrder: [{
2076
- type: Input
2194
+ type: Input,
2195
+ args: [{ transform: numberAttribute }]
2077
2196
  }], sortMode: [{
2078
2197
  type: Input
2079
2198
  }], resetPageOnSort: [{
2080
- type: Input
2199
+ type: Input,
2200
+ args: [{ transform: booleanAttribute }]
2081
2201
  }], customSort: [{
2082
- type: Input
2202
+ type: Input,
2203
+ args: [{ transform: booleanAttribute }]
2083
2204
  }], selectionMode: [{
2084
2205
  type: Input
2085
2206
  }], contextMenuSelection: [{
@@ -2089,39 +2210,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2089
2210
  }], dataKey: [{
2090
2211
  type: Input
2091
2212
  }], metaKeySelection: [{
2092
- type: Input
2213
+ type: Input,
2214
+ args: [{ transform: booleanAttribute }]
2093
2215
  }], compareSelectionBy: [{
2094
2216
  type: Input
2095
2217
  }], rowHover: [{
2096
- type: Input
2218
+ type: Input,
2219
+ args: [{ transform: booleanAttribute }]
2097
2220
  }], loading: [{
2098
- type: Input
2221
+ type: Input,
2222
+ args: [{ transform: booleanAttribute }]
2099
2223
  }], loadingIcon: [{
2100
2224
  type: Input
2101
2225
  }], showLoader: [{
2102
- type: Input
2226
+ type: Input,
2227
+ args: [{ transform: booleanAttribute }]
2103
2228
  }], scrollable: [{
2104
- type: Input
2229
+ type: Input,
2230
+ args: [{ transform: booleanAttribute }]
2105
2231
  }], scrollHeight: [{
2106
2232
  type: Input
2107
2233
  }], virtualScroll: [{
2108
- type: Input
2234
+ type: Input,
2235
+ args: [{ transform: booleanAttribute }]
2109
2236
  }], virtualScrollItemSize: [{
2110
- type: Input
2237
+ type: Input,
2238
+ args: [{ transform: numberAttribute }]
2111
2239
  }], virtualScrollOptions: [{
2112
2240
  type: Input
2113
2241
  }], virtualScrollDelay: [{
2114
- type: Input
2242
+ type: Input,
2243
+ args: [{ transform: numberAttribute }]
2115
2244
  }], frozenWidth: [{
2116
2245
  type: Input
2117
2246
  }], frozenColumns: [{
2118
2247
  type: Input
2119
2248
  }], resizableColumns: [{
2120
- type: Input
2249
+ type: Input,
2250
+ args: [{ transform: booleanAttribute }]
2121
2251
  }], columnResizeMode: [{
2122
2252
  type: Input
2123
2253
  }], reorderableColumns: [{
2124
- type: Input
2254
+ type: Input,
2255
+ args: [{ transform: booleanAttribute }]
2125
2256
  }], contextMenu: [{
2126
2257
  type: Input
2127
2258
  }], rowTrackBy: [{
@@ -2131,7 +2262,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2131
2262
  }], globalFilterFields: [{
2132
2263
  type: Input
2133
2264
  }], filterDelay: [{
2134
- type: Input
2265
+ type: Input,
2266
+ args: [{ transform: numberAttribute }]
2135
2267
  }], filterMode: [{
2136
2268
  type: Input
2137
2269
  }], filterLocale: [{
@@ -2152,6 +2284,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2152
2284
  type: Input
2153
2285
  }], virtualRowHeight: [{
2154
2286
  type: Input
2287
+ }], selectionKeys: [{
2288
+ type: Input
2155
2289
  }], selectionChange: [{
2156
2290
  type: Output
2157
2291
  }], contextMenuSelectionChange: [{
@@ -2188,6 +2322,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2188
2322
  type: Output
2189
2323
  }], onEditCancel: [{
2190
2324
  type: Output
2325
+ }], selectionKeysChange: [{
2326
+ type: Output
2191
2327
  }], containerViewChild: [{
2192
2328
  type: ViewChild,
2193
2329
  args: ['container']
@@ -2250,7 +2386,7 @@ class TTBody {
2250
2386
  }
2251
2387
  }
2252
2388
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTBody, deps: [{ token: TreeTable }, { token: TreeTableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2253
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: TTBody, selector: "[pTreeTableBody]", inputs: { columns: ["pTreeTableBody", "columns"], template: ["pTreeTableBodyTemplate", "template"], frozen: "frozen", serializedNodes: "serializedNodes", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
2389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: TTBody, selector: "[pTreeTableBody]", inputs: { columns: ["pTreeTableBody", "columns"], template: ["pTreeTableBodyTemplate", "template"], frozen: ["frozen", "frozen", booleanAttribute], serializedNodes: "serializedNodes", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
2254
2390
  <ng-template ngFor let-serializedNode let-rowIndex="index" [ngForOf]="serializedNodes || tt.serializedValue" [ngForTrackBy]="tt.rowTrackBy">
2255
2391
  <ng-container *ngIf="serializedNode.visible">
2256
2392
  <ng-container *ngTemplateOutlet="template; context: { $implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns }"></ng-container>
@@ -2287,7 +2423,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2287
2423
  type: Input,
2288
2424
  args: ['pTreeTableBodyTemplate']
2289
2425
  }], frozen: [{
2290
- type: Input
2426
+ type: Input,
2427
+ args: [{ transform: booleanAttribute }]
2291
2428
  }], serializedNodes: [{
2292
2429
  type: Input
2293
2430
  }], scrollerOptions: [{
@@ -2463,7 +2600,7 @@ class TTScrollableView {
2463
2600
  this.frozenSiblingBody = null;
2464
2601
  }
2465
2602
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTScrollableView, deps: [{ token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: TreeTable }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2466
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: TTScrollableView, selector: "[ttScrollableView]", inputs: { columns: ["ttScrollableView", "columns"], frozen: "frozen", scrollHeight: "scrollHeight" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "scrollHeaderViewChild", first: true, predicate: ["scrollHeader"], descendants: true }, { propertyName: "scrollHeaderBoxViewChild", first: true, predicate: ["scrollHeaderBox"], descendants: true }, { propertyName: "scrollBodyViewChild", first: true, predicate: ["scrollBody"], descendants: true }, { propertyName: "scrollTableViewChild", first: true, predicate: ["scrollTable"], descendants: true }, { propertyName: "scrollLoadingTableViewChild", first: true, predicate: ["loadingTable"], descendants: true }, { propertyName: "scrollFooterViewChild", first: true, predicate: ["scrollFooter"], descendants: true }, { propertyName: "scrollFooterBoxViewChild", first: true, predicate: ["scrollFooterBox"], descendants: true }, { propertyName: "scrollableAlignerViewChild", first: true, predicate: ["scrollableAligner"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }], ngImport: i0, template: `
2603
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: TTScrollableView, selector: "[ttScrollableView]", inputs: { columns: ["ttScrollableView", "columns"], frozen: ["frozen", "frozen", booleanAttribute], scrollHeight: "scrollHeight" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "scrollHeaderViewChild", first: true, predicate: ["scrollHeader"], descendants: true }, { propertyName: "scrollHeaderBoxViewChild", first: true, predicate: ["scrollHeaderBox"], descendants: true }, { propertyName: "scrollBodyViewChild", first: true, predicate: ["scrollBody"], descendants: true }, { propertyName: "scrollTableViewChild", first: true, predicate: ["scrollTable"], descendants: true }, { propertyName: "scrollLoadingTableViewChild", first: true, predicate: ["loadingTable"], descendants: true }, { propertyName: "scrollFooterViewChild", first: true, predicate: ["scrollFooter"], descendants: true }, { propertyName: "scrollFooterBoxViewChild", first: true, predicate: ["scrollFooterBox"], descendants: true }, { propertyName: "scrollableAlignerViewChild", first: true, predicate: ["scrollableAligner"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }], ngImport: i0, template: `
2467
2604
  <div #scrollHeader class="p-treetable-scrollable-header">
2468
2605
  <div #scrollHeaderBox class="p-treetable-scrollable-header-box">
2469
2606
  <table class="p-treetable-scrollable-header-table" [ngClass]="tt.tableStyleClass" [ngStyle]="tt.tableStyle">
@@ -2596,7 +2733,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2596
2733
  type: Input,
2597
2734
  args: ['ttScrollableView']
2598
2735
  }], frozen: [{
2599
- type: Input
2736
+ type: Input,
2737
+ args: [{ transform: booleanAttribute }]
2600
2738
  }], scrollHeaderViewChild: [{
2601
2739
  type: ViewChild,
2602
2740
  args: ['scrollHeader']
@@ -2679,7 +2817,7 @@ class TTSortableColumn {
2679
2817
  }
2680
2818
  }
2681
2819
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSortableColumn, deps: [{ token: TreeTable }], target: i0.ɵɵFactoryTarget.Directive });
2682
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTSortableColumn, selector: "[ttSortableColumn]", inputs: { field: ["ttSortableColumn", "field"], ttSortableColumnDisabled: "ttSortableColumnDisabled" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKey($event)" }, properties: { "class.p-sortable-column": "isEnabled()", "class.p-highlight": "sorted", "attr.tabindex": "isEnabled() ? \"0\" : null", "attr.role": "\"columnheader\"", "attr.aria-sort": "ariaSorted" }, classAttribute: "p-element" }, ngImport: i0 });
2820
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTSortableColumn, selector: "[ttSortableColumn]", inputs: { field: ["ttSortableColumn", "field"], ttSortableColumnDisabled: ["ttSortableColumnDisabled", "ttSortableColumnDisabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKey($event)" }, properties: { "class.p-sortable-column": "isEnabled()", "class.p-highlight": "sorted", "attr.tabindex": "isEnabled() ? \"0\" : null", "attr.role": "\"columnheader\"", "attr.aria-sort": "ariaSorted" }, classAttribute: "p-element" }, ngImport: i0 });
2683
2821
  }
2684
2822
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSortableColumn, decorators: [{
2685
2823
  type: Directive,
@@ -2698,7 +2836,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2698
2836
  type: Input,
2699
2837
  args: ['ttSortableColumn']
2700
2838
  }], ttSortableColumnDisabled: [{
2701
- type: Input
2839
+ type: Input,
2840
+ args: [{ transform: booleanAttribute }]
2702
2841
  }], onClick: [{
2703
2842
  type: HostListener,
2704
2843
  args: ['click', ['$event']]
@@ -2848,7 +2987,7 @@ class TTResizableColumn {
2848
2987
  this.unbindDocumentEvents();
2849
2988
  }
2850
2989
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTResizableColumn, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: TreeTable }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2851
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTResizableColumn, selector: "[ttResizableColumn]", inputs: { ttResizableColumnDisabled: "ttResizableColumnDisabled" }, host: { classAttribute: "p-element" }, ngImport: i0 });
2990
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTResizableColumn, selector: "[ttResizableColumn]", inputs: { ttResizableColumnDisabled: ["ttResizableColumnDisabled", "ttResizableColumnDisabled", booleanAttribute] }, host: { classAttribute: "p-element" }, ngImport: i0 });
2852
2991
  }
2853
2992
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTResizableColumn, decorators: [{
2854
2993
  type: Directive,
@@ -2865,7 +3004,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2865
3004
  type: Inject,
2866
3005
  args: [PLATFORM_ID]
2867
3006
  }] }, { type: i0.Renderer2 }, { type: TreeTable }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { ttResizableColumnDisabled: [{
2868
- type: Input
3007
+ type: Input,
3008
+ args: [{ transform: booleanAttribute }]
2869
3009
  }] } });
2870
3010
  class TTReorderableColumn {
2871
3011
  document;
@@ -2954,7 +3094,7 @@ class TTReorderableColumn {
2954
3094
  this.unbindEvents();
2955
3095
  }
2956
3096
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTReorderableColumn, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: TreeTable }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2957
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTReorderableColumn, selector: "[ttReorderableColumn]", inputs: { ttReorderableColumnDisabled: "ttReorderableColumnDisabled" }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
3097
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTReorderableColumn, selector: "[ttReorderableColumn]", inputs: { ttReorderableColumnDisabled: ["ttReorderableColumnDisabled", "ttReorderableColumnDisabled", booleanAttribute] }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
2958
3098
  }
2959
3099
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTReorderableColumn, decorators: [{
2960
3100
  type: Directive,
@@ -2971,7 +3111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2971
3111
  type: Inject,
2972
3112
  args: [PLATFORM_ID]
2973
3113
  }] }, { type: i0.Renderer2 }, { type: TreeTable }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { ttReorderableColumnDisabled: [{
2974
- type: Input
3114
+ type: Input,
3115
+ args: [{ transform: booleanAttribute }]
2975
3116
  }], onDrop: [{
2976
3117
  type: HostListener,
2977
3118
  args: ['drop', ['$event']]
@@ -3041,7 +3182,7 @@ class TTSelectableRow {
3041
3182
  }
3042
3183
  }
3043
3184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSelectableRow, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Directive });
3044
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTSelectableRow, selector: "[ttSelectableRow]", inputs: { rowNode: ["ttSelectableRow", "rowNode"], ttSelectableRowDisabled: "ttSelectableRowDisabled" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)", "touchend": "onTouchEnd($event)" }, properties: { "class.p-highlight": "selected", "attr.data-p-highlight": "selected", "attr.aria-checked": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3185
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTSelectableRow, selector: "[ttSelectableRow]", inputs: { rowNode: ["ttSelectableRow", "rowNode"], ttSelectableRowDisabled: ["ttSelectableRowDisabled", "ttSelectableRowDisabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)", "touchend": "onTouchEnd($event)" }, properties: { "class.p-highlight": "selected", "attr.data-p-highlight": "selected", "attr.aria-checked": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3045
3186
  }
3046
3187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSelectableRow, decorators: [{
3047
3188
  type: Directive,
@@ -3058,7 +3199,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3058
3199
  type: Input,
3059
3200
  args: ['ttSelectableRow']
3060
3201
  }], ttSelectableRowDisabled: [{
3061
- type: Input
3202
+ type: Input,
3203
+ args: [{ transform: booleanAttribute }]
3062
3204
  }], onClick: [{
3063
3205
  type: HostListener,
3064
3206
  args: ['click', ['$event']]
@@ -3107,7 +3249,7 @@ class TTSelectableRowDblClick {
3107
3249
  }
3108
3250
  }
3109
3251
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSelectableRowDblClick, deps: [{ token: TreeTable }, { token: TreeTableService }], target: i0.ɵɵFactoryTarget.Directive });
3110
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTSelectableRowDblClick, selector: "[ttSelectableRowDblClick]", inputs: { rowNode: ["ttSelectableRowDblClick", "rowNode"], ttSelectableRowDisabled: "ttSelectableRowDisabled" }, host: { listeners: { "dblclick": "onClick($event)" }, properties: { "class.p-highlight": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3252
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTSelectableRowDblClick, selector: "[ttSelectableRowDblClick]", inputs: { rowNode: ["ttSelectableRowDblClick", "rowNode"], ttSelectableRowDisabled: ["ttSelectableRowDisabled", "ttSelectableRowDisabled", booleanAttribute] }, host: { listeners: { "dblclick": "onClick($event)" }, properties: { "class.p-highlight": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3111
3253
  }
3112
3254
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTSelectableRowDblClick, decorators: [{
3113
3255
  type: Directive,
@@ -3122,7 +3264,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3122
3264
  type: Input,
3123
3265
  args: ['ttSelectableRowDblClick']
3124
3266
  }], ttSelectableRowDisabled: [{
3125
- type: Input
3267
+ type: Input,
3268
+ args: [{ transform: booleanAttribute }]
3126
3269
  }], onClick: [{
3127
3270
  type: HostListener,
3128
3271
  args: ['dblclick', ['$event']]
@@ -3164,7 +3307,7 @@ class TTContextMenuRow {
3164
3307
  }
3165
3308
  }
3166
3309
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTContextMenuRow, deps: [{ token: TreeTable }, { token: TreeTableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3167
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTContextMenuRow, selector: "[ttContextMenuRow]", inputs: { rowNode: ["ttContextMenuRow", "rowNode"], ttContextMenuRowDisabled: "ttContextMenuRowDisabled" }, host: { listeners: { "contextmenu": "onContextMenu($event)" }, properties: { "class.p-highlight-contextmenu": "selected", "attr.tabindex": "isEnabled() ? 0 : undefined" }, classAttribute: "p-element" }, ngImport: i0 });
3310
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTContextMenuRow, selector: "[ttContextMenuRow]", inputs: { rowNode: ["ttContextMenuRow", "rowNode"], ttContextMenuRowDisabled: ["ttContextMenuRowDisabled", "ttContextMenuRowDisabled", booleanAttribute] }, host: { listeners: { "contextmenu": "onContextMenu($event)" }, properties: { "class.p-highlight-contextmenu": "selected", "attr.tabindex": "isEnabled() ? 0 : undefined" }, classAttribute: "p-element" }, ngImport: i0 });
3168
3311
  }
3169
3312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTContextMenuRow, decorators: [{
3170
3313
  type: Directive,
@@ -3180,7 +3323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3180
3323
  type: Input,
3181
3324
  args: ['ttContextMenuRow']
3182
3325
  }], ttContextMenuRowDisabled: [{
3183
- type: Input
3326
+ type: Input,
3327
+ args: [{ transform: booleanAttribute }]
3184
3328
  }], onContextMenu: [{
3185
3329
  type: HostListener,
3186
3330
  args: ['contextmenu', ['$event']]
@@ -3192,6 +3336,7 @@ class TTCheckbox {
3192
3336
  disabled;
3193
3337
  rowNode;
3194
3338
  checked;
3339
+ partialChecked;
3195
3340
  focused;
3196
3341
  subscription;
3197
3342
  constructor(tt, tableService, cd) {
@@ -3199,19 +3344,44 @@ class TTCheckbox {
3199
3344
  this.tableService = tableService;
3200
3345
  this.cd = cd;
3201
3346
  this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {
3202
- this.checked = this.tt.isSelected(this.rowNode.node);
3347
+ if (this.tt.selectionKeys) {
3348
+ this.checked = this.tt.isNodeSelected(this.rowNode.node);
3349
+ this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);
3350
+ }
3351
+ else {
3352
+ this.checked = this.tt.isSelected(this.rowNode.node);
3353
+ this.partialChecked = this.rowNode.node.partialSelected;
3354
+ }
3203
3355
  this.cd.markForCheck();
3204
3356
  });
3205
3357
  }
3206
3358
  ngOnInit() {
3207
- this.checked = this.tt.isSelected(this.rowNode.node);
3359
+ if (this.tt.selectionKeys) {
3360
+ this.checked = this.tt.isNodeSelected(this.rowNode.node);
3361
+ this.partialChecked = this.tt.isNodePartialSelected(this.rowNode.node);
3362
+ }
3363
+ else {
3364
+ // for backward compatibility
3365
+ this.checked = this.tt.isSelected(this.rowNode.node);
3366
+ this.partialChecked = this.rowNode.node.partialSelected;
3367
+ }
3208
3368
  }
3209
3369
  onClick(event) {
3210
3370
  if (!this.disabled) {
3211
- this.tt.toggleNodeWithCheckbox({
3212
- originalEvent: event,
3213
- rowNode: this.rowNode
3214
- });
3371
+ if (this.tt.selectionKeys) {
3372
+ const _check = !this.checked;
3373
+ this.tt.toggleCheckbox({
3374
+ originalEvent: event,
3375
+ check: _check,
3376
+ rowNode: this.rowNode
3377
+ });
3378
+ }
3379
+ else {
3380
+ this.tt.toggleNodeWithCheckbox({
3381
+ originalEvent: event,
3382
+ rowNode: this.rowNode
3383
+ });
3384
+ }
3215
3385
  }
3216
3386
  DomHandler.clearSelection();
3217
3387
  }
@@ -3227,18 +3397,18 @@ class TTCheckbox {
3227
3397
  }
3228
3398
  }
3229
3399
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTCheckbox, deps: [{ token: TreeTable }, { token: TreeTableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3230
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: TTCheckbox, selector: "p-treeTableCheckbox", inputs: { disabled: "disabled", rowNode: ["value", "rowNode"] }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3400
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: TTCheckbox, selector: "p-treeTableCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], rowNode: ["value", "rowNode"] }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3231
3401
  <div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused }" (click)="onClick($event)">
3232
3402
  <div class="p-hidden-accessible">
3233
3403
  <input type="checkbox" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" tabindex="-1" />
3234
3404
  </div>
3235
- <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-indeterminate': rowNode.node.partialSelected, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
3405
+ <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-indeterminate': partialChecked, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
3236
3406
  <ng-container *ngIf="!tt.checkboxIconTemplate">
3237
3407
  <CheckIcon [styleClass]="'p-checkbox-icon'" *ngIf="checked" />
3238
- <MinusIcon [styleClass]="'p-checkbox-icon'" *ngIf="rowNode.node.partialSelected" />
3408
+ <MinusIcon [styleClass]="'p-checkbox-icon'" *ngIf="partialChecked" />
3239
3409
  </ng-container>
3240
3410
  <span *ngIf="tt.checkboxIconTemplate">
3241
- <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: rowNode.node.partialSelected }"></ng-template>
3411
+ <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }"></ng-template>
3242
3412
  </span>
3243
3413
  </div>
3244
3414
  </div>
@@ -3253,13 +3423,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3253
3423
  <div class="p-hidden-accessible">
3254
3424
  <input type="checkbox" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" tabindex="-1" />
3255
3425
  </div>
3256
- <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-indeterminate': rowNode.node.partialSelected, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
3426
+ <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-indeterminate': partialChecked, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
3257
3427
  <ng-container *ngIf="!tt.checkboxIconTemplate">
3258
3428
  <CheckIcon [styleClass]="'p-checkbox-icon'" *ngIf="checked" />
3259
- <MinusIcon [styleClass]="'p-checkbox-icon'" *ngIf="rowNode.node.partialSelected" />
3429
+ <MinusIcon [styleClass]="'p-checkbox-icon'" *ngIf="partialChecked" />
3260
3430
  </ng-container>
3261
3431
  <span *ngIf="tt.checkboxIconTemplate">
3262
- <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: rowNode.node.partialSelected }"></ng-template>
3432
+ <ng-template *ngTemplateOutlet="tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }"></ng-template>
3263
3433
  </span>
3264
3434
  </div>
3265
3435
  </div>
@@ -3271,7 +3441,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3271
3441
  }
3272
3442
  }]
3273
3443
  }], ctorParameters: () => [{ type: TreeTable }, { type: TreeTableService }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
3274
- type: Input
3444
+ type: Input,
3445
+ args: [{ transform: booleanAttribute }]
3275
3446
  }], rowNode: [{
3276
3447
  type: Input,
3277
3448
  args: ['value']
@@ -3301,7 +3472,7 @@ class TTHeaderCheckbox {
3301
3472
  this.checked = this.updateCheckedState();
3302
3473
  }
3303
3474
  onClick(event, checked) {
3304
- if (this.tt.value && this.tt.value.length > 0) {
3475
+ if ((this.tt.value || this.tt.filteredNodes) && (this.tt.value.length > 0 || this.tt.filteredNodes.length > 0)) {
3305
3476
  this.tt.toggleNodesWithCheckbox(event, !checked);
3306
3477
  }
3307
3478
  DomHandler.clearSelection();
@@ -3325,13 +3496,27 @@ class TTHeaderCheckbox {
3325
3496
  let checked;
3326
3497
  const data = this.tt.filteredNodes || this.tt.value;
3327
3498
  if (data) {
3328
- for (let node of data) {
3329
- if (this.tt.isSelected(node)) {
3330
- checked = true;
3499
+ if (this.tt.selectionKeys) {
3500
+ for (let node of data) {
3501
+ if (this.tt.isNodeSelected(node)) {
3502
+ checked = true;
3503
+ }
3504
+ else {
3505
+ checked = false;
3506
+ break;
3507
+ }
3331
3508
  }
3332
- else {
3333
- checked = false;
3334
- break;
3509
+ }
3510
+ if (!this.tt.selectionKeys) {
3511
+ // legacy selection support, will be removed in v18
3512
+ for (let node of data) {
3513
+ if (this.tt.isSelected(node)) {
3514
+ checked = true;
3515
+ }
3516
+ else {
3517
+ checked = false;
3518
+ break;
3519
+ }
3335
3520
  }
3336
3521
  }
3337
3522
  }
@@ -3539,7 +3724,7 @@ class TTEditableColumn {
3539
3724
  return this.ttEditableColumnDisabled !== true;
3540
3725
  }
3541
3726
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTEditableColumn, deps: [{ token: TreeTable }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
3542
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: TTEditableColumn, selector: "[ttEditableColumn]", inputs: { data: ["ttEditableColumn", "data"], field: ["ttEditableColumnField", "field"], ttEditableColumnDisabled: "ttEditableColumnDisabled" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, classAttribute: "p-element" }, ngImport: i0 });
3727
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.1", type: TTEditableColumn, selector: "[ttEditableColumn]", inputs: { data: ["ttEditableColumn", "data"], field: ["ttEditableColumnField", "field"], ttEditableColumnDisabled: ["ttEditableColumnDisabled", "ttEditableColumnDisabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, classAttribute: "p-element" }, ngImport: i0 });
3543
3728
  }
3544
3729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TTEditableColumn, decorators: [{
3545
3730
  type: Directive,
@@ -3556,7 +3741,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
3556
3741
  type: Input,
3557
3742
  args: ['ttEditableColumnField']
3558
3743
  }], ttEditableColumnDisabled: [{
3559
- type: Input
3744
+ type: Input,
3745
+ args: [{ transform: booleanAttribute }]
3560
3746
  }], onClick: [{
3561
3747
  type: HostListener,
3562
3748
  args: ['click', ['$event']]