@ops-prime/primeng 0.0.0-stage → 21.1.11

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