primeng 20.3.0-rc.1 → 20.4.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 (344) hide show
  1. package/LICENSE.md +1 -1
  2. package/config/index.d.ts +3 -1
  3. package/contextmenu/index.d.ts +1 -0
  4. package/dynamicdialog/index.d.ts +4 -0
  5. package/fesm2022/primeng-accordion.mjs +22 -22
  6. package/fesm2022/primeng-accordion.mjs.map +1 -1
  7. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  8. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  9. package/fesm2022/primeng-api.mjs +31 -31
  10. package/fesm2022/primeng-api.mjs.map +1 -1
  11. package/fesm2022/primeng-autocomplete.mjs +17 -14
  12. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  13. package/fesm2022/primeng-autofocus.mjs +7 -7
  14. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  15. package/fesm2022/primeng-avatar.mjs +10 -10
  16. package/fesm2022/primeng-avatar.mjs.map +1 -1
  17. package/fesm2022/primeng-avatargroup.mjs +10 -10
  18. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  19. package/fesm2022/primeng-badge.mjs +16 -16
  20. package/fesm2022/primeng-badge.mjs.map +1 -1
  21. package/fesm2022/primeng-base.mjs +3 -3
  22. package/fesm2022/primeng-base.mjs.map +1 -1
  23. package/fesm2022/primeng-basecomponent.mjs +7 -7
  24. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  25. package/fesm2022/primeng-baseeditableholder.mjs +4 -4
  26. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  27. package/fesm2022/primeng-baseinput.mjs +4 -4
  28. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  29. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  30. package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
  31. package/fesm2022/primeng-bind.mjs +8 -8
  32. package/fesm2022/primeng-bind.mjs.map +1 -1
  33. package/fesm2022/primeng-blockui.mjs +10 -10
  34. package/fesm2022/primeng-blockui.mjs.map +1 -1
  35. package/fesm2022/primeng-breadcrumb.mjs +46 -28
  36. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  37. package/fesm2022/primeng-button.mjs +30 -28
  38. package/fesm2022/primeng-button.mjs.map +1 -1
  39. package/fesm2022/primeng-buttongroup.mjs +10 -10
  40. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  41. package/fesm2022/primeng-card.mjs +10 -10
  42. package/fesm2022/primeng-card.mjs.map +1 -1
  43. package/fesm2022/primeng-carousel.mjs +10 -10
  44. package/fesm2022/primeng-carousel.mjs.map +1 -1
  45. package/fesm2022/primeng-cascadeselect.mjs +15 -15
  46. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  47. package/fesm2022/primeng-chart.mjs +10 -10
  48. package/fesm2022/primeng-chart.mjs.map +1 -1
  49. package/fesm2022/primeng-checkbox.mjs +11 -11
  50. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  51. package/fesm2022/primeng-chip.mjs +10 -10
  52. package/fesm2022/primeng-chip.mjs.map +1 -1
  53. package/fesm2022/primeng-classnames.mjs +8 -8
  54. package/fesm2022/primeng-classnames.mjs.map +1 -1
  55. package/fesm2022/primeng-colorpicker.mjs +11 -11
  56. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  57. package/fesm2022/primeng-config.mjs +6 -6
  58. package/fesm2022/primeng-config.mjs.map +1 -1
  59. package/fesm2022/primeng-confirmdialog.mjs +10 -10
  60. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  61. package/fesm2022/primeng-confirmpopup.mjs +10 -10
  62. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  63. package/fesm2022/primeng-contextmenu.mjs +26 -20
  64. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  65. package/fesm2022/primeng-dataview.mjs +10 -10
  66. package/fesm2022/primeng-dataview.mjs.map +1 -1
  67. package/fesm2022/primeng-datepicker.mjs +11 -11
  68. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  69. package/fesm2022/primeng-dialog.mjs +11 -11
  70. package/fesm2022/primeng-dialog.mjs.map +1 -1
  71. package/fesm2022/primeng-divider.mjs +10 -10
  72. package/fesm2022/primeng-divider.mjs.map +1 -1
  73. package/fesm2022/primeng-dock.mjs +34 -22
  74. package/fesm2022/primeng-dock.mjs.map +1 -1
  75. package/fesm2022/primeng-dragdrop.mjs +10 -10
  76. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  77. package/fesm2022/primeng-drawer.mjs +10 -10
  78. package/fesm2022/primeng-drawer.mjs.map +1 -1
  79. package/fesm2022/primeng-dynamicdialog.mjs +25 -18
  80. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  81. package/fesm2022/primeng-editor.mjs +10 -10
  82. package/fesm2022/primeng-editor.mjs.map +1 -1
  83. package/fesm2022/primeng-fieldset.mjs +10 -10
  84. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  85. package/fesm2022/primeng-fileupload.mjs +14 -14
  86. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  87. package/fesm2022/primeng-floatlabel.mjs +10 -10
  88. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  89. package/fesm2022/primeng-fluid.mjs +10 -10
  90. package/fesm2022/primeng-fluid.mjs.map +1 -1
  91. package/fesm2022/primeng-focustrap.mjs +7 -7
  92. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  93. package/fesm2022/primeng-galleria.mjs +31 -28
  94. package/fesm2022/primeng-galleria.mjs.map +1 -1
  95. package/fesm2022/primeng-iconfield.mjs +10 -10
  96. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  98. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  100. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  102. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  104. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  106. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  108. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  110. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  112. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  114. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  116. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  118. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  120. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  122. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  124. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-ban.mjs +3 -3
  126. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-bars.mjs +3 -3
  128. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  130. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-blank.mjs +3 -3
  132. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  134. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  136. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  138. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-check.mjs +3 -3
  140. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  142. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  144. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  146. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  148. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  150. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-eye.mjs +3 -3
  152. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  154. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-filter.mjs +3 -3
  156. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  158. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  160. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-home.mjs +3 -3
  162. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  164. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-minus.mjs +3 -3
  166. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  168. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-plus.mjs +3 -3
  170. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  172. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-search.mjs +3 -3
  174. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  176. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  178. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  180. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  182. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  184. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  186. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-star.mjs +3 -3
  188. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  190. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  192. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-times.mjs +3 -3
  194. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  196. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-trash.mjs +3 -3
  198. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-undo.mjs +3 -3
  200. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  201. package/fesm2022/primeng-icons-upload.mjs +3 -3
  202. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  203. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  204. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  205. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  206. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  207. package/fesm2022/primeng-iftalabel.mjs +10 -10
  208. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  209. package/fesm2022/primeng-image.mjs +11 -11
  210. package/fesm2022/primeng-image.mjs.map +1 -1
  211. package/fesm2022/primeng-imagecompare.mjs +10 -10
  212. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  213. package/fesm2022/primeng-inplace.mjs +16 -16
  214. package/fesm2022/primeng-inplace.mjs.map +1 -1
  215. package/fesm2022/primeng-inputgroup.mjs +10 -10
  216. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  217. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  218. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  219. package/fesm2022/primeng-inputicon.mjs +10 -10
  220. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  221. package/fesm2022/primeng-inputmask.mjs +11 -10
  222. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  223. package/fesm2022/primeng-inputnumber.mjs +10 -10
  224. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  225. package/fesm2022/primeng-inputotp.mjs +19 -13
  226. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  227. package/fesm2022/primeng-inputtext.mjs +12 -12
  228. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  229. package/fesm2022/primeng-keyfilter.mjs +7 -7
  230. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  231. package/fesm2022/primeng-knob.mjs +25 -25
  232. package/fesm2022/primeng-knob.mjs.map +1 -1
  233. package/fesm2022/primeng-listbox.mjs +14 -13
  234. package/fesm2022/primeng-listbox.mjs.map +1 -1
  235. package/fesm2022/primeng-megamenu.mjs +59 -33
  236. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  237. package/fesm2022/primeng-menu.mjs +20 -20
  238. package/fesm2022/primeng-menu.mjs.map +1 -1
  239. package/fesm2022/primeng-menubar.mjs +57 -35
  240. package/fesm2022/primeng-menubar.mjs.map +1 -1
  241. package/fesm2022/primeng-message.mjs +10 -10
  242. package/fesm2022/primeng-message.mjs.map +1 -1
  243. package/fesm2022/primeng-metergroup.mjs +13 -13
  244. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  245. package/fesm2022/primeng-multiselect.mjs +14 -14
  246. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  247. package/fesm2022/primeng-orderlist.mjs +10 -10
  248. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  249. package/fesm2022/primeng-organizationchart.mjs +13 -13
  250. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  251. package/fesm2022/primeng-overlay.mjs +12 -12
  252. package/fesm2022/primeng-overlay.mjs.map +1 -1
  253. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  254. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  255. package/fesm2022/primeng-paginator.mjs +11 -11
  256. package/fesm2022/primeng-paginator.mjs.map +1 -1
  257. package/fesm2022/primeng-panel.mjs +10 -10
  258. package/fesm2022/primeng-panel.mjs.map +1 -1
  259. package/fesm2022/primeng-panelmenu.mjs +48 -24
  260. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  261. package/fesm2022/primeng-password.mjs +18 -18
  262. package/fesm2022/primeng-password.mjs.map +1 -1
  263. package/fesm2022/primeng-picklist.mjs +84 -92
  264. package/fesm2022/primeng-picklist.mjs.map +1 -1
  265. package/fesm2022/primeng-popover.mjs +10 -10
  266. package/fesm2022/primeng-popover.mjs.map +1 -1
  267. package/fesm2022/primeng-progressbar.mjs +10 -10
  268. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  269. package/fesm2022/primeng-progressspinner.mjs +10 -10
  270. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  271. package/fesm2022/primeng-radiobutton.mjs +14 -14
  272. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  273. package/fesm2022/primeng-rating.mjs +10 -10
  274. package/fesm2022/primeng-rating.mjs.map +1 -1
  275. package/fesm2022/primeng-ripple.mjs +10 -10
  276. package/fesm2022/primeng-ripple.mjs.map +1 -1
  277. package/fesm2022/primeng-scroller.mjs +20 -15
  278. package/fesm2022/primeng-scroller.mjs.map +1 -1
  279. package/fesm2022/primeng-scrollpanel.mjs +10 -10
  280. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  281. package/fesm2022/primeng-scrolltop.mjs +10 -10
  282. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  283. package/fesm2022/primeng-select.mjs +15 -15
  284. package/fesm2022/primeng-select.mjs.map +1 -1
  285. package/fesm2022/primeng-selectbutton.mjs +11 -11
  286. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  287. package/fesm2022/primeng-skeleton.mjs +10 -10
  288. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  289. package/fesm2022/primeng-slider.mjs +10 -10
  290. package/fesm2022/primeng-slider.mjs.map +1 -1
  291. package/fesm2022/primeng-speeddial.mjs +10 -10
  292. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  293. package/fesm2022/primeng-splitbutton.mjs +10 -10
  294. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  295. package/fesm2022/primeng-splitter.mjs +11 -11
  296. package/fesm2022/primeng-splitter.mjs.map +1 -1
  297. package/fesm2022/primeng-stepper.mjs +50 -49
  298. package/fesm2022/primeng-stepper.mjs.map +1 -1
  299. package/fesm2022/primeng-steps.mjs +10 -10
  300. package/fesm2022/primeng-steps.mjs.map +1 -1
  301. package/fesm2022/primeng-styleclass.mjs +7 -7
  302. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  303. package/fesm2022/primeng-table.mjs +103 -93
  304. package/fesm2022/primeng-table.mjs.map +1 -1
  305. package/fesm2022/primeng-tabs.mjs +37 -37
  306. package/fesm2022/primeng-tabs.mjs.map +1 -1
  307. package/fesm2022/primeng-tag.mjs +10 -10
  308. package/fesm2022/primeng-tag.mjs.map +1 -1
  309. package/fesm2022/primeng-terminal.mjs +13 -13
  310. package/fesm2022/primeng-terminal.mjs.map +1 -1
  311. package/fesm2022/primeng-textarea.mjs +11 -11
  312. package/fesm2022/primeng-textarea.mjs.map +1 -1
  313. package/fesm2022/primeng-tieredmenu.mjs +23 -19
  314. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  315. package/fesm2022/primeng-timeline.mjs +10 -10
  316. package/fesm2022/primeng-timeline.mjs.map +1 -1
  317. package/fesm2022/primeng-toast.mjs +13 -13
  318. package/fesm2022/primeng-toast.mjs.map +1 -1
  319. package/fesm2022/primeng-togglebutton.mjs +11 -11
  320. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  321. package/fesm2022/primeng-toggleswitch.mjs +11 -11
  322. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  323. package/fesm2022/primeng-toolbar.mjs +10 -10
  324. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  325. package/fesm2022/primeng-tooltip.mjs +12 -12
  326. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  327. package/fesm2022/primeng-tree.mjs +159 -89
  328. package/fesm2022/primeng-tree.mjs.map +1 -1
  329. package/fesm2022/primeng-treeselect.mjs +22 -13
  330. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  331. package/fesm2022/primeng-treetable.mjs +69 -61
  332. package/fesm2022/primeng-treetable.mjs.map +1 -1
  333. package/fesm2022/primeng-usestyle.mjs +3 -3
  334. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  335. package/galleria/index.d.ts +1 -0
  336. package/knob/index.d.ts +1 -1
  337. package/megamenu/index.d.ts +4 -2
  338. package/menubar/index.d.ts +2 -1
  339. package/package.json +328 -328
  340. package/picklist/index.d.ts +4 -4
  341. package/table/index.d.ts +1 -0
  342. package/tree/index.d.ts +44 -26
  343. package/treeselect/index.d.ts +6 -1
  344. package/treetable/index.d.ts +1 -1
@@ -2,10 +2,10 @@ export * from 'primeng/types/tree';
2
2
  import * as i1 from '@angular/common';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { Injectable, InjectionToken, inject, forwardRef, signal, computed, numberAttribute, booleanAttribute, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, EventEmitter, HostListener, ContentChildren, ViewChild, ContentChild, Output, Optional, NgModule } from '@angular/core';
5
+ import { Injectable, InjectionToken, inject, forwardRef, signal, computed, numberAttribute, booleanAttribute, Input, ViewEncapsulation, Component, model, EventEmitter, HostListener, ContentChildren, ViewChild, ContentChild, Output, Optional, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
6
  import * as i2 from '@angular/forms';
7
7
  import { FormsModule } from '@angular/forms';
8
- import { getOuterWidth, getOuterHeight, find, hasClass, findSingle, focus, removeAccents, resolveFieldData } from '@primeuix/utils';
8
+ import { getOuterWidth, getOuterHeight, find, findSingle, focus, removeAccents, resolveFieldData } from '@primeuix/utils';
9
9
  import * as i4 from 'primeng/api';
10
10
  import { SharedModule, TranslationKeys, PrimeTemplate } from 'primeng/api';
11
11
  import * as i5 from 'primeng/autofocus';
@@ -58,10 +58,10 @@ class TreeStyle extends BaseStyle {
58
58
  name = 'tree';
59
59
  style = style;
60
60
  classes = classes;
61
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
62
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeStyle });
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
62
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle });
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeStyle, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeStyle, decorators: [{
65
65
  type: Injectable
66
66
  }] });
67
67
  /**
@@ -167,11 +167,32 @@ class UITreeNode extends BaseComponent {
167
167
  isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), ...(ngDevMode ? [{ debugName: "isNodeDropActive" }] : []));
168
168
  dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0), ...(ngDevMode ? [{ debugName: "dropPosition" }] : []));
169
169
  _componentStyle = inject(TreeStyle);
170
+ /**
171
+ * Computed signal that reactively tracks selection state.
172
+ */
173
+ _selected = computed(() => {
174
+ // Reading selection() makes this computed reactive to selection changes
175
+ this.tree.selection();
176
+ return this.tree.isSelected(this.node);
177
+ }, ...(ngDevMode ? [{ debugName: "_selected" }] : []));
178
+ /**
179
+ * Computed signal that reactively tracks context menu selection state.
180
+ */
181
+ _contextMenuSelected = computed(() => {
182
+ const selection = this.tree.contextMenuSelection();
183
+ if (!selection || !this.node) {
184
+ return false;
185
+ }
186
+ return selection === this.node || (selection.key && selection.key === this.node.key);
187
+ }, ...(ngDevMode ? [{ debugName: "_contextMenuSelected" }] : []));
170
188
  get selected() {
171
- return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.isSelected() : undefined;
189
+ return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this._selected() : undefined;
172
190
  }
173
191
  get checked() {
174
- return this.tree.selectionMode === 'checkbox' ? this.isSelected() : undefined;
192
+ return this.tree.selectionMode === 'checkbox' ? this._selected() : undefined;
193
+ }
194
+ get contextMenuSelected() {
195
+ return this._contextMenuSelected();
175
196
  }
176
197
  get nodeClass() {
177
198
  return this.tree._componentStyle.classes.node({ instance: this });
@@ -191,6 +212,7 @@ class UITreeNode extends BaseComponent {
191
212
  selected: this.selected,
192
213
  checked: this.checked,
193
214
  partialChecked: this.node?.partialSelected,
215
+ contextMenuSelected: this.contextMenuSelected,
194
216
  leaf: this.isLeaf()
195
217
  }
196
218
  });
@@ -216,7 +238,10 @@ class UITreeNode extends BaseComponent {
216
238
  return this.tree.isNodeLeaf(this.node);
217
239
  }
218
240
  isSelected() {
219
- return this.tree.isSelected(this.node);
241
+ return this._selected();
242
+ }
243
+ isContextMenuSelected() {
244
+ return this._contextMenuSelected();
220
245
  }
221
246
  isSameNode(event) {
222
247
  return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role="treeitem"]')));
@@ -504,7 +529,7 @@ class UITreeNode extends BaseComponent {
504
529
  event.preventDefault();
505
530
  }
506
531
  setAllNodesTabIndexes() {
507
- const nodes = find(this.tree.el.nativeElement, '.p-tree-node');
532
+ const nodes = find(this.tree.el.nativeElement, '[data-pc-section="node"]');
508
533
  const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
509
534
  [...nodes].forEach((node) => {
510
535
  node.tabIndex = -1;
@@ -540,7 +565,7 @@ class UITreeNode extends BaseComponent {
540
565
  }
541
566
  }
542
567
  findLastVisibleDescendant(nodeElement) {
543
- const listElement = Array.from(nodeElement.children).find((el) => hasClass(el, 'p-tree-node'));
568
+ const listElement = Array.from(nodeElement.children).find((el) => el.getAttribute('data-pc-section') === 'node');
544
569
  const childrenListElement = listElement?.children[1];
545
570
  if (childrenListElement && childrenListElement.children.length > 0) {
546
571
  const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
@@ -571,8 +596,8 @@ class UITreeNode extends BaseComponent {
571
596
  focus(node);
572
597
  }, 1);
573
598
  }
574
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: UITreeNode, deps: null, target: i0.ɵɵFactoryTarget.Component });
575
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: UITreeNode, isStandalone: true, selector: "p-treeNode", inputs: { rowNode: "rowNode", node: "node", parentNode: "parentNode", root: ["root", "root", booleanAttribute], index: ["index", "index", numberAttribute], firstChild: ["firstChild", "firstChild", booleanAttribute], lastChild: ["lastChild", "lastChild", booleanAttribute], level: ["level", "level", numberAttribute], indentation: ["indentation", "indentation", numberAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], loadingMode: "loadingMode" }, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], usesInheritance: true, ngImport: i0, template: `
599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UITreeNode, deps: null, target: i0.ɵɵFactoryTarget.Component });
600
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: UITreeNode, isStandalone: true, selector: "p-treeNode", inputs: { rowNode: "rowNode", node: "node", parentNode: "parentNode", root: ["root", "root", booleanAttribute], index: ["index", "index", numberAttribute], firstChild: ["firstChild", "firstChild", booleanAttribute], lastChild: ["lastChild", "lastChild", booleanAttribute], level: ["level", "level", numberAttribute], indentation: ["indentation", "indentation", numberAttribute], itemSize: ["itemSize", "itemSize", numberAttribute], loadingMode: "loadingMode" }, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], usesInheritance: true, ngImport: i0, template: `
576
601
  @if (node) {
577
602
  <li
578
603
  [class]="cn(cx('node'), node.styleClass)"
@@ -675,13 +700,15 @@ class UITreeNode extends BaseComponent {
675
700
  [itemSize]="itemSize"
676
701
  [level]="level + 1"
677
702
  [loadingMode]="loadingMode"
703
+ [pt]="pt"
704
+ [unstyled]="unstyled()"
678
705
  ></p-treeNode>
679
706
  </ul>
680
707
  </li>
681
708
  }
682
- `, isInline: true, dependencies: [{ kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i3.Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
709
+ `, isInline: true, dependencies: [{ kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i3.Bind, selector: "[pBind]", inputs: ["pBind"] }], encapsulation: i0.ViewEncapsulation.None });
683
710
  }
684
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: UITreeNode, decorators: [{
711
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UITreeNode, decorators: [{
685
712
  type: Component,
686
713
  args: [{
687
714
  selector: 'p-treeNode',
@@ -790,14 +817,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
790
817
  [itemSize]="itemSize"
791
818
  [level]="level + 1"
792
819
  [loadingMode]="loadingMode"
820
+ [pt]="pt"
821
+ [unstyled]="unstyled()"
793
822
  ></p-treeNode>
794
823
  </ul>
795
824
  </li>
796
825
  }
797
826
  `,
798
827
  encapsulation: ViewEncapsulation.None,
799
- providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }],
800
- changeDetection: ChangeDetectionStrategy.OnPush
828
+ providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]
801
829
  }]
802
830
  }], propDecorators: { rowNode: [{
803
831
  type: Input
@@ -859,7 +887,7 @@ class Tree extends BaseComponent {
859
887
  * A single treenode instance or an array to refer to the selections.
860
888
  * @group Props
861
889
  */
862
- selection;
890
+ selection = model(null, ...(ngDevMode ? [{ debugName: "selection" }] : []));
863
891
  /**
864
892
  * Style class of the component.
865
893
  * @deprecated since v20.0.0, use `class` instead.
@@ -871,6 +899,18 @@ class Tree extends BaseComponent {
871
899
  * @group Props
872
900
  */
873
901
  contextMenu;
902
+ /**
903
+ * Defines how the context menu selection behaves.
904
+ * When set to 'separate', context menu selection is handled independently from the main selection.
905
+ * When set to 'joint', context menu selection also updates the main selection.
906
+ * @group Props
907
+ */
908
+ contextMenuSelectionMode = 'separate';
909
+ /**
910
+ * A single treenode instance to refer to the context menu selection.
911
+ * @group Props
912
+ */
913
+ contextMenuSelection = model(null, ...(ngDevMode ? [{ debugName: "contextMenuSelection" }] : []));
874
914
  /**
875
915
  * Scope of the draggable nodes to match a droppableScope.
876
916
  * @group Props
@@ -1026,12 +1066,6 @@ class Tree extends BaseComponent {
1026
1066
  * @group Props
1027
1067
  */
1028
1068
  highlightOnSelect = false;
1029
- /**
1030
- * Callback to invoke on selection change.
1031
- * @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.
1032
- * @group Emits
1033
- */
1034
- selectionChange = new EventEmitter();
1035
1069
  /**
1036
1070
  * Callback to invoke when a node is selected.
1037
1071
  * @param {TreeNodeSelectEvent} event - Node select event.
@@ -1127,7 +1161,7 @@ class Tree extends BaseComponent {
1127
1161
  * Empty message template.
1128
1162
  * @group Templates
1129
1163
  */
1130
- emptyMessageTemplate;
1164
+ emptyTemplate;
1131
1165
  /**
1132
1166
  * Toggler icon template.
1133
1167
  * @group Templates
@@ -1154,7 +1188,7 @@ class Tree extends BaseComponent {
1154
1188
  contentViewChild;
1155
1189
  templates;
1156
1190
  _headerTemplate;
1157
- _emptyMessageTemplate;
1191
+ _emptyTemplate;
1158
1192
  _footerTemplate;
1159
1193
  _loaderTemplate;
1160
1194
  _togglerIconTemplate;
@@ -1172,7 +1206,7 @@ class Tree extends BaseComponent {
1172
1206
  this._headerTemplate = item.template;
1173
1207
  break;
1174
1208
  case 'empty':
1175
- this._emptyMessageTemplate = item.template;
1209
+ this._emptyTemplate = item.template;
1176
1210
  break;
1177
1211
  case 'footer':
1178
1212
  this._footerTemplate = item.template;
@@ -1287,10 +1321,11 @@ class Tree extends BaseComponent {
1287
1321
  }
1288
1322
  onNodeClick(event, node) {
1289
1323
  let eventTarget = event.target;
1290
- if (hasClass(eventTarget, 'p-tree-toggler') || hasClass(eventTarget, 'p-tree-toggler-icon')) {
1324
+ const section = eventTarget?.getAttribute?.('data-pc-section');
1325
+ if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1291
1326
  return;
1292
1327
  }
1293
- else if (this.selectionMode) {
1328
+ if (this.selectionMode) {
1294
1329
  if (node.selectable === false) {
1295
1330
  node.style = '--p-focus-ring-color: none;';
1296
1331
  return;
@@ -1308,27 +1343,26 @@ class Tree extends BaseComponent {
1308
1343
  }
1309
1344
  let index = this.findIndexInSelection(node);
1310
1345
  let selected = index >= 0;
1346
+ const currentSelection = this.selection();
1311
1347
  if (this.isCheckboxSelectionMode()) {
1312
1348
  if (selected) {
1313
1349
  if (this.propagateSelectionDown)
1314
1350
  this.propagateDown(node, false);
1315
1351
  else
1316
- this.selection = this.selection.filter((val, i) => i != index);
1352
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1317
1353
  if (this.propagateSelectionUp && node.parent) {
1318
1354
  this.propagateUp(node.parent, false);
1319
1355
  }
1320
- this.selectionChange.emit(this.selection);
1321
1356
  this.onNodeUnselect.emit({ originalEvent: event, node: node });
1322
1357
  }
1323
1358
  else {
1324
1359
  if (this.propagateSelectionDown)
1325
1360
  this.propagateDown(node, true);
1326
1361
  else
1327
- this.selection = [...(this.selection || []), node];
1362
+ this.selection.set([...(currentSelection || []), node]);
1328
1363
  if (this.propagateSelectionUp && node.parent) {
1329
1364
  this.propagateUp(node.parent, true);
1330
1365
  }
1331
- this.selectionChange.emit(this.selection);
1332
1366
  this.onNodeSelect.emit({ originalEvent: event, node: node });
1333
1367
  }
1334
1368
  }
@@ -1338,22 +1372,20 @@ class Tree extends BaseComponent {
1338
1372
  let metaKey = event.metaKey || event.ctrlKey;
1339
1373
  if (selected && metaKey) {
1340
1374
  if (this.isSingleSelectionMode()) {
1341
- this.selectionChange.emit(null);
1375
+ this.selection.set(null);
1342
1376
  }
1343
1377
  else {
1344
- this.selection = this.selection.filter((val, i) => i != index);
1345
- this.selectionChange.emit(this.selection);
1378
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1346
1379
  }
1347
1380
  this.onNodeUnselect.emit({ originalEvent: event, node: node });
1348
1381
  }
1349
1382
  else {
1350
1383
  if (this.isSingleSelectionMode()) {
1351
- this.selectionChange.emit(node);
1384
+ this.selection.set(node);
1352
1385
  }
1353
1386
  else if (this.isMultipleSelectionMode()) {
1354
- this.selection = !metaKey ? [] : this.selection || [];
1355
- this.selection = [...this.selection, node];
1356
- this.selectionChange.emit(this.selection);
1387
+ const base = !metaKey ? [] : currentSelection || [];
1388
+ this.selection.set([...base, node]);
1357
1389
  }
1358
1390
  this.onNodeSelect.emit({ originalEvent: event, node: node });
1359
1391
  }
@@ -1361,11 +1393,11 @@ class Tree extends BaseComponent {
1361
1393
  else {
1362
1394
  if (this.isSingleSelectionMode()) {
1363
1395
  if (selected) {
1364
- this.selection = null;
1396
+ this.selection.set(null);
1365
1397
  this.onNodeUnselect.emit({ originalEvent: event, node: node });
1366
1398
  }
1367
1399
  else {
1368
- this.selection = node;
1400
+ this.selection.set(node);
1369
1401
  setTimeout(() => {
1370
1402
  this.onNodeSelect.emit({ originalEvent: event, node: node });
1371
1403
  });
@@ -1373,17 +1405,16 @@ class Tree extends BaseComponent {
1373
1405
  }
1374
1406
  else {
1375
1407
  if (selected) {
1376
- this.selection = this.selection.filter((val, i) => i != index);
1408
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1377
1409
  this.onNodeUnselect.emit({ originalEvent: event, node: node });
1378
1410
  }
1379
1411
  else {
1380
- this.selection = [...(this.selection || []), node];
1412
+ this.selection.set([...(currentSelection || []), node]);
1381
1413
  setTimeout(() => {
1382
1414
  this.onNodeSelect.emit({ originalEvent: event, node: node });
1383
1415
  });
1384
1416
  }
1385
1417
  }
1386
- this.selectionChange.emit(this.selection);
1387
1418
  }
1388
1419
  }
1389
1420
  }
@@ -1395,20 +1426,36 @@ class Tree extends BaseComponent {
1395
1426
  onNodeRightClick(event, node) {
1396
1427
  if (this.contextMenu) {
1397
1428
  let eventTarget = event.target;
1398
- if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {
1429
+ const section = eventTarget.getAttribute('data-pc-section');
1430
+ if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1399
1431
  return;
1400
1432
  }
1401
- else {
1402
- let index = this.findIndexInSelection(node);
1403
- let selected = index >= 0;
1404
- if (!selected) {
1405
- if (this.isSingleSelectionMode())
1406
- this.selectionChange.emit(node);
1407
- else
1408
- this.selectionChange.emit([node]);
1409
- }
1433
+ let index = this.findIndexInSelection(node);
1434
+ let isNodeSelected = index >= 0;
1435
+ const onContextMenuCallback = () => {
1410
1436
  this.contextMenu.show(event);
1437
+ this.contextMenu.hideCallback = () => {
1438
+ this.contextMenuSelection.set(null);
1439
+ };
1411
1440
  this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });
1441
+ };
1442
+ if (this.contextMenuSelectionMode === 'separate') {
1443
+ // In 'separate' mode: Update contextMenuSelection with clicked node, don't modify selection
1444
+ this.contextMenuSelection.set(node);
1445
+ onContextMenuCallback();
1446
+ }
1447
+ else if (this.contextMenuSelectionMode === 'joint') {
1448
+ // In 'joint' mode: Update only selection, don't touch contextMenuSelection
1449
+ if (!isNodeSelected) {
1450
+ if (this.isSingleSelectionMode()) {
1451
+ this.selection.set(node);
1452
+ }
1453
+ else {
1454
+ this.selection.set([node]);
1455
+ }
1456
+ }
1457
+ // If already selected, keep current selection as is
1458
+ onContextMenuCallback();
1412
1459
  }
1413
1460
  }
1414
1461
  }
@@ -1417,14 +1464,17 @@ class Tree extends BaseComponent {
1417
1464
  }
1418
1465
  findIndexInSelection(node) {
1419
1466
  let index = -1;
1420
- if (this.selectionMode && this.selection) {
1467
+ const currentSelection = this.selection();
1468
+ if (this.selectionMode && currentSelection) {
1421
1469
  if (this.isSingleSelectionMode()) {
1422
- let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;
1470
+ const sel = currentSelection;
1471
+ let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;
1423
1472
  index = areNodesEqual ? 0 : -1;
1424
1473
  }
1425
1474
  else {
1426
- for (let i = 0; i < this.selection.length; i++) {
1427
- let selectedNode = this.selection[i];
1475
+ const selArray = currentSelection;
1476
+ for (let i = 0; i < selArray.length; i++) {
1477
+ let selectedNode = selArray[i];
1428
1478
  let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;
1429
1479
  if (areNodesEqual) {
1430
1480
  index = i;
@@ -1473,15 +1523,16 @@ class Tree extends BaseComponent {
1473
1523
  childPartialSelected = true;
1474
1524
  }
1475
1525
  }
1526
+ const currentSelection = this.selection() || [];
1476
1527
  if (select && selectedCount == node.children.length) {
1477
- this.selection = [...(this.selection || []), node];
1528
+ this.selection.set([...currentSelection, node]);
1478
1529
  node.partialSelected = false;
1479
1530
  }
1480
1531
  else {
1481
1532
  if (!select) {
1482
1533
  let index = this.findIndexInSelection(node);
1483
1534
  if (index >= 0) {
1484
- this.selection = this.selection.filter((val, i) => i != index);
1535
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1485
1536
  }
1486
1537
  }
1487
1538
  if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length))
@@ -1498,11 +1549,12 @@ class Tree extends BaseComponent {
1498
1549
  }
1499
1550
  propagateDown(node, select) {
1500
1551
  let index = this.findIndexInSelection(node);
1552
+ const currentSelection = this.selection() || [];
1501
1553
  if (select && index == -1) {
1502
- this.selection = [...(this.selection || []), node];
1554
+ this.selection.set([...currentSelection, node]);
1503
1555
  }
1504
1556
  else if (!select && index > -1) {
1505
- this.selection = this.selection.filter((val, i) => i != index);
1557
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1506
1558
  }
1507
1559
  node.partialSelected = false;
1508
1560
  this.syncNodeOption(node, this.filteredNodes, 'partialSelected');
@@ -1769,9 +1821,20 @@ class Tree extends BaseComponent {
1769
1821
  this.dragStopSubscription.unsubscribe();
1770
1822
  }
1771
1823
  }
1772
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: Tree, deps: [{ token: i4.TreeDragDropService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1773
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: Tree, isStandalone: true, selector: "p-tree", inputs: { value: "value", selectionMode: "selectionMode", loadingMode: "loadingMode", selection: "selection", styleClass: "styleClass", contextMenu: "contextMenu", draggableScope: "draggableScope", droppableScope: "droppableScope", draggableNodes: ["draggableNodes", "draggableNodes", booleanAttribute], droppableNodes: ["droppableNodes", "droppableNodes", booleanAttribute], metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], propagateSelectionUp: ["propagateSelectionUp", "propagateSelectionUp", booleanAttribute], propagateSelectionDown: ["propagateSelectionDown", "propagateSelectionDown", booleanAttribute], loading: ["loading", "loading", booleanAttribute], loadingIcon: "loadingIcon", emptyMessage: "emptyMessage", ariaLabel: "ariaLabel", togglerAriaLabel: "togglerAriaLabel", ariaLabelledBy: "ariaLabelledBy", validateDrop: ["validateDrop", "validateDrop", booleanAttribute], filter: ["filter", "filter", booleanAttribute], filterInputAutoFocus: ["filterInputAutoFocus", "filterInputAutoFocus", booleanAttribute], filterBy: "filterBy", filterMode: "filterMode", filterOptions: "filterOptions", filterPlaceholder: "filterPlaceholder", filteredNodes: "filteredNodes", filterLocale: "filterLocale", scrollHeight: "scrollHeight", lazy: ["lazy", "lazy", booleanAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], virtualScrollItemSize: ["virtualScrollItemSize", "virtualScrollItemSize", numberAttribute], virtualScrollOptions: "virtualScrollOptions", indentation: ["indentation", "indentation", numberAttribute], _templateMap: "_templateMap", trackBy: "trackBy", highlightOnSelect: ["highlightOnSelect", "highlightOnSelect", booleanAttribute] }, outputs: { selectionChange: "selectionChange", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onNodeContextMenuSelect: "onNodeContextMenuSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeDrop: "onNodeDrop", onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange", onFilter: "onFilter" }, host: { listeners: { "drop": "handleDropEvent($event)", "dragover": "handleDragOverEvent($event)", "dragenter": "handleDragEnterEvent()", "dragleave": "handleDragLeaveEvent($event)" }, properties: { "class": "cn(cx('root'), styleClass)" } }, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], queries: [{ propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "nodeTemplate", first: true, predicate: ["node"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "emptyMessageTemplate", first: true, predicate: ["empty"] }, { propertyName: "togglerIconTemplate", first: true, predicate: ["togglericon"] }, { propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.Bind }], ngImport: i0, template: `
1774
- <div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')">
1824
+ get containerDataP() {
1825
+ return this.cn({
1826
+ loading: this.loading,
1827
+ scrollable: this.scrollHeight === 'flex'
1828
+ });
1829
+ }
1830
+ get wrapperDataP() {
1831
+ return this.cn({
1832
+ scrollable: this.scrollHeight === 'flex'
1833
+ });
1834
+ }
1835
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Tree, deps: [{ token: i4.TreeDragDropService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1836
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: Tree, isStandalone: true, selector: "p-tree", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: false, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: false, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: false, isRequired: false, transformFunction: null }, contextMenuSelectionMode: { classPropertyName: "contextMenuSelectionMode", publicName: "contextMenuSelectionMode", isSignal: false, isRequired: false, transformFunction: null }, contextMenuSelection: { classPropertyName: "contextMenuSelection", publicName: "contextMenuSelection", isSignal: true, isRequired: false, transformFunction: null }, draggableScope: { classPropertyName: "draggableScope", publicName: "draggableScope", isSignal: false, isRequired: false, transformFunction: null }, droppableScope: { classPropertyName: "droppableScope", publicName: "droppableScope", isSignal: false, isRequired: false, transformFunction: null }, draggableNodes: { classPropertyName: "draggableNodes", publicName: "draggableNodes", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, droppableNodes: { classPropertyName: "droppableNodes", publicName: "droppableNodes", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, propagateSelectionUp: { classPropertyName: "propagateSelectionUp", publicName: "propagateSelectionUp", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, propagateSelectionDown: { classPropertyName: "propagateSelectionDown", publicName: "propagateSelectionDown", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, togglerAriaLabel: { classPropertyName: "togglerAriaLabel", publicName: "togglerAriaLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, validateDrop: { classPropertyName: "validateDrop", publicName: "validateDrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterInputAutoFocus: { classPropertyName: "filterInputAutoFocus", publicName: "filterInputAutoFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: false, isRequired: false, transformFunction: null }, filterOptions: { classPropertyName: "filterOptions", publicName: "filterOptions", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, filteredNodes: { classPropertyName: "filteredNodes", publicName: "filteredNodes", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: false, isRequired: false, transformFunction: numberAttribute }, _templateMap: { classPropertyName: "_templateMap", publicName: "_templateMap", isSignal: false, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: false, isRequired: false, transformFunction: null }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { selection: "selectionChange", contextMenuSelection: "contextMenuSelectionChange", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onNodeContextMenuSelect: "onNodeContextMenuSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeDrop: "onNodeDrop", onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange", onFilter: "onFilter" }, host: { listeners: { "drop": "handleDropEvent($event)", "dragover": "handleDragOverEvent($event)", "dragenter": "handleDragEnterEvent()", "dragleave": "handleDragLeaveEvent($event)" }, properties: { "class": "cn(cx('root'), styleClass)", "attr.data-p": "containerDataP" } }, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], queries: [{ propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "nodeTemplate", first: true, predicate: ["node"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "footerTemplate", first: true, predicate: ["footer"] }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "togglerIconTemplate", first: true, predicate: ["togglericon"] }, { propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"] }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.Bind }], ngImport: i0, template: `
1837
+ <div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
1775
1838
  <i *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')"></i>
1776
1839
  <ng-container *ngIf="!loadingIcon">
1777
1840
  <svg data-p-icon="spinner" *ngIf="!loadingIconTemplate && !_loadingIconTemplate" spin [class]="cx('loadingIcon')" [pBind]="ptm('loadingIcon')" />
@@ -1784,7 +1847,7 @@ class Tree extends BaseComponent {
1784
1847
  @if (filterTemplate || _filterTemplate) {
1785
1848
  <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { $implicit: filterOptions }"></ng-container>
1786
1849
  } @else {
1787
- <p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')">
1850
+ <p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
1788
1851
  <input
1789
1852
  #filter
1790
1853
  [pAutoFocus]="filterInputAutoFocus"
@@ -1796,8 +1859,9 @@ class Tree extends BaseComponent {
1796
1859
  (keydown.enter)="$event.preventDefault()"
1797
1860
  (input)="_filter($event.target?.value)"
1798
1861
  [pt]="ptm('pcFilterInput')"
1862
+ [unstyled]="unstyled()"
1799
1863
  />
1800
- <p-inputicon [pt]="ptm('pcFilterIconContainer')">
1864
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
1801
1865
  <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')" />
1802
1866
  <span *ngIf="filterIconTemplate || _filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')">
1803
1867
  <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
@@ -1823,6 +1887,7 @@ class Tree extends BaseComponent {
1823
1887
  [options]="virtualScrollOptions"
1824
1888
  [pt]="ptm('virtualScroller')"
1825
1889
  hostName="tree"
1890
+ [attr.data-p]="wrapperDataP"
1826
1891
  >
1827
1892
  <ng-template #content let-items let-scrollerOptions="options">
1828
1893
  <ul
@@ -1850,6 +1915,7 @@ class Tree extends BaseComponent {
1850
1915
  [indentation]="indentation"
1851
1916
  [loadingMode]="loadingMode"
1852
1917
  [pt]="pt"
1918
+ [unstyled]="unstyled()"
1853
1919
  ></p-treeNode>
1854
1920
  </ul>
1855
1921
  </ng-template>
@@ -1860,7 +1926,7 @@ class Tree extends BaseComponent {
1860
1926
  </ng-container>
1861
1927
  </p-scroller>
1862
1928
  <ng-container *ngIf="!virtualScroll">
1863
- <div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')">
1929
+ <div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')" [attr.data-p]="wrapperDataP">
1864
1930
  <ul #content [class]="cx('rootChildren')" *ngIf="getRootNode()" role="tree" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [pBind]="ptm('rootChildren')">
1865
1931
  <p-treeNode
1866
1932
  *ngFor="let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)"
@@ -1871,6 +1937,7 @@ class Tree extends BaseComponent {
1871
1937
  [level]="0"
1872
1938
  [loadingMode]="loadingMode"
1873
1939
  [pt]="pt"
1940
+ [unstyled]="unstyled()"
1874
1941
  ></p-treeNode>
1875
1942
  </ul>
1876
1943
  </div>
@@ -1878,22 +1945,22 @@ class Tree extends BaseComponent {
1878
1945
  </ng-container>
1879
1946
 
1880
1947
  <div [class]="cx('emptyMessage')" *ngIf="!loading && (getRootNode() == null || getRootNode().length === 0)" [pBind]="ptm('emptyMessage')">
1881
- <ng-container *ngIf="!emptyMessageTemplate && !_emptyMessageTemplate; else emptyFilter">
1948
+ <ng-container *ngIf="!emptyTemplate && !_emptyTemplate; else emptyFilter">
1882
1949
  {{ emptyMessageLabel }}
1883
1950
  </ng-container>
1884
- <ng-template #emptyFilter *ngTemplateOutlet="emptyMessageTemplate || _emptyMessageTemplate"></ng-template>
1951
+ <ng-template #emptyFilter *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-template>
1885
1952
  </div>
1886
1953
  <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
1887
1954
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["hostName", "id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: SpinnerIcon, selector: "[data-p-icon=\"spinner\"]" }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: UITreeNode, selector: "p-treeNode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "directive", type: i5.AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "directive", type: Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1888
1955
  }
1889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: Tree, decorators: [{
1956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Tree, decorators: [{
1890
1957
  type: Component,
1891
1958
  args: [{
1892
1959
  selector: 'p-tree',
1893
1960
  standalone: true,
1894
1961
  imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind],
1895
1962
  template: `
1896
- <div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')">
1963
+ <div [class]="cx('mask')" *ngIf="loading && loadingMode === 'mask'" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
1897
1964
  <i *ngIf="loadingIcon" [class]="cn(cx('loadingIcon'), 'pi-spin' + loadingIcon)" [pBind]="ptm('loadingIcon')"></i>
1898
1965
  <ng-container *ngIf="!loadingIcon">
1899
1966
  <svg data-p-icon="spinner" *ngIf="!loadingIconTemplate && !_loadingIconTemplate" spin [class]="cx('loadingIcon')" [pBind]="ptm('loadingIcon')" />
@@ -1906,7 +1973,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1906
1973
  @if (filterTemplate || _filterTemplate) {
1907
1974
  <ng-container *ngTemplateOutlet="filterTemplate || _filterTemplate; context: { $implicit: filterOptions }"></ng-container>
1908
1975
  } @else {
1909
- <p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')">
1976
+ <p-iconfield *ngIf="filter" [class]="cx('pcFilterContainer')" [pt]="ptm('pcFilterContainer')" [unstyled]="unstyled()">
1910
1977
  <input
1911
1978
  #filter
1912
1979
  [pAutoFocus]="filterInputAutoFocus"
@@ -1918,8 +1985,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1918
1985
  (keydown.enter)="$event.preventDefault()"
1919
1986
  (input)="_filter($event.target?.value)"
1920
1987
  [pt]="ptm('pcFilterInput')"
1988
+ [unstyled]="unstyled()"
1921
1989
  />
1922
- <p-inputicon [pt]="ptm('pcFilterIconContainer')">
1990
+ <p-inputicon [pt]="ptm('pcFilterIconContainer')" [unstyled]="unstyled()">
1923
1991
  <svg data-p-icon="search" *ngIf="!filterIconTemplate && !_filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')" />
1924
1992
  <span *ngIf="filterIconTemplate || _filterIconTemplate" [class]="cx('filterIcon')" [pBind]="ptm('filterIcon')">
1925
1993
  <ng-template *ngTemplateOutlet="filterIconTemplate || _filterIconTemplate"></ng-template>
@@ -1945,6 +2013,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1945
2013
  [options]="virtualScrollOptions"
1946
2014
  [pt]="ptm('virtualScroller')"
1947
2015
  hostName="tree"
2016
+ [attr.data-p]="wrapperDataP"
1948
2017
  >
1949
2018
  <ng-template #content let-items let-scrollerOptions="options">
1950
2019
  <ul
@@ -1972,6 +2041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1972
2041
  [indentation]="indentation"
1973
2042
  [loadingMode]="loadingMode"
1974
2043
  [pt]="pt"
2044
+ [unstyled]="unstyled()"
1975
2045
  ></p-treeNode>
1976
2046
  </ul>
1977
2047
  </ng-template>
@@ -1982,7 +2052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1982
2052
  </ng-container>
1983
2053
  </p-scroller>
1984
2054
  <ng-container *ngIf="!virtualScroll">
1985
- <div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')">
2055
+ <div #wrapper [class]="cx('wrapper')" [style.max-height]="scrollHeight" [pBind]="ptm('wrapper')" [attr.data-p]="wrapperDataP">
1986
2056
  <ul #content [class]="cx('rootChildren')" *ngIf="getRootNode()" role="tree" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [pBind]="ptm('rootChildren')">
1987
2057
  <p-treeNode
1988
2058
  *ngFor="let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)"
@@ -1993,6 +2063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1993
2063
  [level]="0"
1994
2064
  [loadingMode]="loadingMode"
1995
2065
  [pt]="pt"
2066
+ [unstyled]="unstyled()"
1996
2067
  ></p-treeNode>
1997
2068
  </ul>
1998
2069
  </div>
@@ -2000,10 +2071,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2000
2071
  </ng-container>
2001
2072
 
2002
2073
  <div [class]="cx('emptyMessage')" *ngIf="!loading && (getRootNode() == null || getRootNode().length === 0)" [pBind]="ptm('emptyMessage')">
2003
- <ng-container *ngIf="!emptyMessageTemplate && !_emptyMessageTemplate; else emptyFilter">
2074
+ <ng-container *ngIf="!emptyTemplate && !_emptyTemplate; else emptyFilter">
2004
2075
  {{ emptyMessageLabel }}
2005
2076
  </ng-container>
2006
- <ng-template #emptyFilter *ngTemplateOutlet="emptyMessageTemplate || _emptyMessageTemplate"></ng-template>
2077
+ <ng-template #emptyFilter *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-template>
2007
2078
  </div>
2008
2079
  <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
2009
2080
  `,
@@ -2011,7 +2082,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2011
2082
  encapsulation: ViewEncapsulation.None,
2012
2083
  providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }],
2013
2084
  host: {
2014
- '[class]': "cn(cx('root'), styleClass)"
2085
+ '[class]': "cn(cx('root'), styleClass)",
2086
+ '[attr.data-p]': 'containerDataP'
2015
2087
  },
2016
2088
  hostDirectives: [Bind]
2017
2089
  }]
@@ -2023,13 +2095,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2023
2095
  type: Input
2024
2096
  }], loadingMode: [{
2025
2097
  type: Input
2026
- }], selection: [{
2027
- type: Input
2028
- }], styleClass: [{
2098
+ }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], styleClass: [{
2029
2099
  type: Input
2030
2100
  }], contextMenu: [{
2031
2101
  type: Input
2032
- }], draggableScope: [{
2102
+ }], contextMenuSelectionMode: [{
2103
+ type: Input
2104
+ }], contextMenuSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelection", required: false }] }, { type: i0.Output, args: ["contextMenuSelectionChange"] }], draggableScope: [{
2033
2105
  type: Input
2034
2106
  }], droppableScope: [{
2035
2107
  type: Input
@@ -2105,8 +2177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2105
2177
  }], highlightOnSelect: [{
2106
2178
  type: Input,
2107
2179
  args: [{ transform: booleanAttribute }]
2108
- }], selectionChange: [{
2109
- type: Output
2110
2180
  }], onNodeSelect: [{
2111
2181
  type: Output
2112
2182
  }], onNodeUnselect: [{
@@ -2144,7 +2214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2144
2214
  }], loaderTemplate: [{
2145
2215
  type: ContentChild,
2146
2216
  args: ['loader', { descendants: false }]
2147
- }], emptyMessageTemplate: [{
2217
+ }], emptyTemplate: [{
2148
2218
  type: ContentChild,
2149
2219
  args: ['empty', { descendants: false }]
2150
2220
  }], togglerIconTemplate: [{
@@ -2188,11 +2258,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2188
2258
  args: ['dragleave', ['$event']]
2189
2259
  }] } });
2190
2260
  class TreeModule {
2191
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2192
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule], exports: [Tree, SharedModule] });
2193
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule, SharedModule] });
2261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2262
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule], exports: [Tree, SharedModule] });
2263
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, imports: [Tree, SharedModule, SharedModule] });
2194
2264
  }
2195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TreeModule, decorators: [{
2265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TreeModule, decorators: [{
2196
2266
  type: NgModule,
2197
2267
  args: [{
2198
2268
  imports: [Tree, SharedModule],