primeng 22.1.0 → 22.1.2

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 (850) hide show
  1. package/fesm2022/primeng-accordion.mjs +998 -578
  2. package/fesm2022/primeng-accordion.mjs.map +1 -1
  3. package/fesm2022/primeng-animateonscroll.mjs +266 -165
  4. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  5. package/fesm2022/primeng-api.mjs +888 -847
  6. package/fesm2022/primeng-api.mjs.map +1 -1
  7. package/fesm2022/primeng-autocomplete.mjs +2534 -1592
  8. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  9. package/fesm2022/primeng-autofocus.mjs +114 -77
  10. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  11. package/fesm2022/primeng-avatar.mjs +330 -189
  12. package/fesm2022/primeng-avatar.mjs.map +1 -1
  13. package/fesm2022/primeng-avatargroup.mjs +178 -95
  14. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  15. package/fesm2022/primeng-badge.mjs +290 -156
  16. package/fesm2022/primeng-badge.mjs.map +1 -1
  17. package/fesm2022/primeng-base.mjs +95 -101
  18. package/fesm2022/primeng-base.mjs.map +1 -1
  19. package/fesm2022/primeng-basecomponent.mjs +528 -489
  20. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  21. package/fesm2022/primeng-baseeditableholder.mjs +131 -69
  22. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  23. package/fesm2022/primeng-baseinput.mjs +214 -99
  24. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  25. package/fesm2022/primeng-basemodelholder.mjs +39 -26
  26. package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
  27. package/fesm2022/primeng-bind.mjs +156 -96
  28. package/fesm2022/primeng-bind.mjs.map +1 -1
  29. package/fesm2022/primeng-blockui.mjs +360 -228
  30. package/fesm2022/primeng-blockui.mjs.map +1 -1
  31. package/fesm2022/primeng-breadcrumb.mjs +458 -220
  32. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/primeng-button.mjs +1568 -703
  34. package/fesm2022/primeng-button.mjs.map +1 -1
  35. package/fesm2022/primeng-buttongroup.mjs +125 -73
  36. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  37. package/fesm2022/primeng-card.mjs +389 -178
  38. package/fesm2022/primeng-card.mjs.map +1 -1
  39. package/fesm2022/primeng-carousel.mjs +2393 -1773
  40. package/fesm2022/primeng-carousel.mjs.map +1 -1
  41. package/fesm2022/primeng-cascadeselect.mjs +2373 -1364
  42. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  43. package/fesm2022/primeng-chart.mjs +402 -231
  44. package/fesm2022/primeng-chart.mjs.map +1 -1
  45. package/fesm2022/primeng-checkbox.mjs +650 -353
  46. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  47. package/fesm2022/primeng-chip.mjs +411 -224
  48. package/fesm2022/primeng-chip.mjs.map +1 -1
  49. package/fesm2022/primeng-classnames.mjs +95 -48
  50. package/fesm2022/primeng-classnames.mjs.map +1 -1
  51. package/fesm2022/primeng-colorpicker.mjs +890 -635
  52. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  53. package/fesm2022/primeng-commandmenu.mjs +568 -315
  54. package/fesm2022/primeng-commandmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-compare.mjs +843 -480
  56. package/fesm2022/primeng-compare.mjs.map +1 -1
  57. package/fesm2022/primeng-config.mjs +415 -321
  58. package/fesm2022/primeng-config.mjs.map +1 -1
  59. package/fesm2022/primeng-confirmdialog.mjs +1188 -540
  60. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  61. package/fesm2022/primeng-confirmpopup.mjs +810 -531
  62. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  63. package/fesm2022/primeng-contextmenu.mjs +1862 -1051
  64. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  65. package/fesm2022/primeng-dataview.mjs +1130 -549
  66. package/fesm2022/primeng-dataview.mjs.map +1 -1
  67. package/fesm2022/primeng-datepicker.mjs +3750 -3354
  68. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  69. package/fesm2022/primeng-dialog.mjs +1635 -968
  70. package/fesm2022/primeng-dialog.mjs.map +1 -1
  71. package/fesm2022/primeng-divider.mjs +272 -148
  72. package/fesm2022/primeng-divider.mjs.map +1 -1
  73. package/fesm2022/primeng-dock.mjs +609 -385
  74. package/fesm2022/primeng-dock.mjs.map +1 -1
  75. package/fesm2022/primeng-dom.mjs +599 -761
  76. package/fesm2022/primeng-dom.mjs.map +1 -1
  77. package/fesm2022/primeng-dragdrop.mjs +323 -311
  78. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  79. package/fesm2022/primeng-drawer.mjs +913 -482
  80. package/fesm2022/primeng-drawer.mjs.map +1 -1
  81. package/fesm2022/primeng-dynamicdialog.mjs +828 -928
  82. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  83. package/fesm2022/primeng-editor.mjs +547 -390
  84. package/fesm2022/primeng-editor.mjs.map +1 -1
  85. package/fesm2022/primeng-fieldset.mjs +559 -274
  86. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  87. package/fesm2022/primeng-fileupload.mjs +1836 -1047
  88. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  89. package/fesm2022/primeng-floatlabel.mjs +187 -102
  90. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  91. package/fesm2022/primeng-fluid.mjs +156 -85
  92. package/fesm2022/primeng-fluid.mjs.map +1 -1
  93. package/fesm2022/primeng-focustrap.mjs +150 -112
  94. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  95. package/fesm2022/primeng-galleria.mjs +2589 -1406
  96. package/fesm2022/primeng-galleria.mjs.map +1 -1
  97. package/fesm2022/primeng-gallery.mjs +2768 -1798
  98. package/fesm2022/primeng-gallery.mjs.map +1 -1
  99. package/fesm2022/primeng-iconfield.mjs +192 -93
  100. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledoubledown.mjs +41 -23
  102. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angledoubleleft.mjs +41 -23
  104. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angledoubleright.mjs +41 -23
  106. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angledoubleup.mjs +41 -23
  108. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-angledown.mjs +41 -23
  110. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-angleleft.mjs +41 -23
  112. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-angleright.mjs +41 -23
  114. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-angleup.mjs +41 -23
  116. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowdown.mjs +46 -28
  118. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowdownleft.mjs +41 -23
  120. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-arrowdownright.mjs +41 -23
  122. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-arrowleft.mjs +46 -28
  124. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-arrowright.mjs +41 -23
  126. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-arrowup.mjs +46 -28
  128. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-ban.mjs +46 -28
  130. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-bars.mjs +41 -23
  132. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-baseicon.mjs +111 -67
  134. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-blank.mjs +40 -22
  136. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-calendar.mjs +41 -23
  138. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-caretleft.mjs +41 -23
  140. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-caretright.mjs +41 -23
  142. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-check.mjs +41 -23
  144. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-chevrondown.mjs +41 -23
  146. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-chevronleft.mjs +41 -23
  148. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-chevronright.mjs +41 -23
  150. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-chevronup.mjs +41 -23
  152. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-exclamationtriangle.mjs +46 -28
  154. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-eye.mjs +41 -23
  156. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-eyeslash.mjs +46 -28
  158. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-filter.mjs +46 -28
  160. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-filterfill.mjs +41 -23
  162. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-filterslash.mjs +46 -28
  164. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-home.mjs +46 -28
  166. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-infocircle.mjs +46 -28
  168. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-minus.mjs +41 -23
  170. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-pencil.mjs +46 -28
  172. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-plus.mjs +46 -28
  174. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-refresh.mjs +46 -28
  176. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-search.mjs +46 -28
  178. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-searchminus.mjs +46 -28
  180. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-searchplus.mjs +46 -28
  182. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-sortalt.mjs +46 -28
  184. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-sortamountdown.mjs +46 -28
  186. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-sortamountupalt.mjs +46 -28
  188. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-spinner.mjs +46 -28
  190. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-star.mjs +46 -28
  192. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-starfill.mjs +46 -28
  194. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-thlarge.mjs +46 -28
  196. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-times.mjs +41 -23
  198. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-timescircle.mjs +46 -28
  200. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  201. package/fesm2022/primeng-icons-trash.mjs +46 -28
  202. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  203. package/fesm2022/primeng-icons-undo.mjs +46 -28
  204. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  205. package/fesm2022/primeng-icons-upload.mjs +46 -28
  206. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  207. package/fesm2022/primeng-icons-windowmaximize.mjs +46 -28
  208. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  209. package/fesm2022/primeng-icons-windowminimize.mjs +46 -28
  210. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  211. package/fesm2022/primeng-icons.mjs +53 -63
  212. package/fesm2022/primeng-iftalabel.mjs +153 -86
  213. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  214. package/fesm2022/primeng-image.mjs +1006 -534
  215. package/fesm2022/primeng-image.mjs.map +1 -1
  216. package/fesm2022/primeng-imagecompare.mjs +325 -165
  217. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  218. package/fesm2022/primeng-inplace.mjs +401 -199
  219. package/fesm2022/primeng-inplace.mjs.map +1 -1
  220. package/fesm2022/primeng-inputcolor.mjs +2631 -2180
  221. package/fesm2022/primeng-inputcolor.mjs.map +1 -1
  222. package/fesm2022/primeng-inputgroup.mjs +159 -91
  223. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  224. package/fesm2022/primeng-inputgroupaddon.mjs +153 -68
  225. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  226. package/fesm2022/primeng-inputicon.mjs +173 -72
  227. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  228. package/fesm2022/primeng-inputmask.mjs +1607 -1379
  229. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  230. package/fesm2022/primeng-inputnumber.mjs +1646 -1305
  231. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  232. package/fesm2022/primeng-inputotp.mjs +571 -375
  233. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  234. package/fesm2022/primeng-inputpassword.mjs +179 -98
  235. package/fesm2022/primeng-inputpassword.mjs.map +1 -1
  236. package/fesm2022/primeng-inputtags.mjs +1212 -588
  237. package/fesm2022/primeng-inputtags.mjs.map +1 -1
  238. package/fesm2022/primeng-inputtext.mjs +325 -170
  239. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  240. package/fesm2022/primeng-keyfilter.mjs +268 -243
  241. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  242. package/fesm2022/primeng-knob.mjs +627 -403
  243. package/fesm2022/primeng-knob.mjs.map +1 -1
  244. package/fesm2022/primeng-label.mjs +143 -81
  245. package/fesm2022/primeng-label.mjs.map +1 -1
  246. package/fesm2022/primeng-license.mjs +10 -36
  247. package/fesm2022/primeng-license.mjs.map +1 -1
  248. package/fesm2022/primeng-listbox.mjs +2409 -1593
  249. package/fesm2022/primeng-listbox.mjs.map +1 -1
  250. package/fesm2022/primeng-megamenu.mjs +2006 -1117
  251. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  252. package/fesm2022/primeng-menu.mjs +1437 -845
  253. package/fesm2022/primeng-menu.mjs.map +1 -1
  254. package/fesm2022/primeng-menubar.mjs +1832 -972
  255. package/fesm2022/primeng-menubar.mjs.map +1 -1
  256. package/fesm2022/primeng-message.mjs +474 -243
  257. package/fesm2022/primeng-message.mjs.map +1 -1
  258. package/fesm2022/primeng-metergroup.mjs +663 -331
  259. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  260. package/fesm2022/primeng-motion.mjs +1179 -690
  261. package/fesm2022/primeng-motion.mjs.map +1 -1
  262. package/fesm2022/primeng-multiselect.mjs +3406 -1898
  263. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  264. package/fesm2022/primeng-orderlist.mjs +1308 -678
  265. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  266. package/fesm2022/primeng-organizationchart.mjs +912 -597
  267. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  268. package/fesm2022/primeng-overlay.mjs +929 -610
  269. package/fesm2022/primeng-overlay.mjs.map +1 -1
  270. package/fesm2022/primeng-overlaybadge.mjs +291 -107
  271. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  272. package/fesm2022/primeng-paginator.mjs +961 -505
  273. package/fesm2022/primeng-paginator.mjs.map +1 -1
  274. package/fesm2022/primeng-panel.mjs +668 -347
  275. package/fesm2022/primeng-panel.mjs.map +1 -1
  276. package/fesm2022/primeng-panelmenu.mjs +1842 -966
  277. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  278. package/fesm2022/primeng-passthrough.mjs +10 -20
  279. package/fesm2022/primeng-passthrough.mjs.map +1 -1
  280. package/fesm2022/primeng-password.mjs +1518 -858
  281. package/fesm2022/primeng-password.mjs.map +1 -1
  282. package/fesm2022/primeng-picklist.mjs +2270 -1253
  283. package/fesm2022/primeng-picklist.mjs.map +1 -1
  284. package/fesm2022/primeng-popover.mjs +656 -434
  285. package/fesm2022/primeng-popover.mjs.map +1 -1
  286. package/fesm2022/primeng-progressbar.mjs +346 -168
  287. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  288. package/fesm2022/primeng-progressspinner.mjs +338 -188
  289. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  290. package/fesm2022/primeng-radiobutton.mjs +499 -294
  291. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  292. package/fesm2022/primeng-rating.mjs +583 -352
  293. package/fesm2022/primeng-rating.mjs.map +1 -1
  294. package/fesm2022/primeng-ripple.mjs +194 -170
  295. package/fesm2022/primeng-ripple.mjs.map +1 -1
  296. package/fesm2022/primeng-scrollarea.mjs +1018 -721
  297. package/fesm2022/primeng-scrollarea.mjs.map +1 -1
  298. package/fesm2022/primeng-scroller.mjs +1386 -1047
  299. package/fesm2022/primeng-scroller.mjs.map +1 -1
  300. package/fesm2022/primeng-scrollpanel.mjs +568 -454
  301. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  302. package/fesm2022/primeng-scrolltop.mjs +509 -261
  303. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  304. package/fesm2022/primeng-select.mjs +2948 -1714
  305. package/fesm2022/primeng-select.mjs.map +1 -1
  306. package/fesm2022/primeng-selectbutton.mjs +629 -339
  307. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  308. package/fesm2022/primeng-sidebar.mjs +2561 -1413
  309. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  310. package/fesm2022/primeng-skeleton.mjs +300 -157
  311. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  312. package/fesm2022/primeng-slider.mjs +841 -604
  313. package/fesm2022/primeng-slider.mjs.map +1 -1
  314. package/fesm2022/primeng-speeddial.mjs +1115 -704
  315. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  316. package/fesm2022/primeng-splitbutton.mjs +889 -340
  317. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  318. package/fesm2022/primeng-splitter.mjs +997 -762
  319. package/fesm2022/primeng-splitter.mjs.map +1 -1
  320. package/fesm2022/primeng-stepper.mjs +1355 -645
  321. package/fesm2022/primeng-stepper.mjs.map +1 -1
  322. package/fesm2022/primeng-steps.mjs +523 -407
  323. package/fesm2022/primeng-steps.mjs.map +1 -1
  324. package/fesm2022/primeng-styleclass.mjs +446 -330
  325. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  326. package/fesm2022/primeng-table.mjs +9765 -5849
  327. package/fesm2022/primeng-table.mjs.map +1 -1
  328. package/fesm2022/primeng-tabs.mjs +1357 -815
  329. package/fesm2022/primeng-tabs.mjs.map +1 -1
  330. package/fesm2022/primeng-tag.mjs +305 -151
  331. package/fesm2022/primeng-tag.mjs.map +1 -1
  332. package/fesm2022/primeng-terminal.mjs +368 -216
  333. package/fesm2022/primeng-terminal.mjs.map +1 -1
  334. package/fesm2022/primeng-textarea.mjs +345 -204
  335. package/fesm2022/primeng-textarea.mjs.map +1 -1
  336. package/fesm2022/primeng-tieredmenu.mjs +1917 -1094
  337. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  338. package/fesm2022/primeng-timeline.mjs +304 -165
  339. package/fesm2022/primeng-timeline.mjs.map +1 -1
  340. package/fesm2022/primeng-toast.mjs +1369 -928
  341. package/fesm2022/primeng-toast.mjs.map +1 -1
  342. package/fesm2022/primeng-togglebutton.mjs +563 -309
  343. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  344. package/fesm2022/primeng-toggleswitch.mjs +464 -237
  345. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  346. package/fesm2022/primeng-toolbar.mjs +299 -129
  347. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  348. package/fesm2022/primeng-tooltip.mjs +1018 -765
  349. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  350. package/fesm2022/primeng-tree.mjs +2681 -1888
  351. package/fesm2022/primeng-tree.mjs.map +1 -1
  352. package/fesm2022/primeng-treeselect.mjs +1678 -927
  353. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  354. package/fesm2022/primeng-treetable.mjs +5849 -3742
  355. package/fesm2022/primeng-treetable.mjs.map +1 -1
  356. package/fesm2022/primeng-ts-helpers.mjs +0 -4
  357. package/fesm2022/primeng-types-accordion.mjs +0 -4
  358. package/fesm2022/primeng-types-autocomplete.mjs +0 -4
  359. package/fesm2022/primeng-types-avatar.mjs +0 -4
  360. package/fesm2022/primeng-types-avatargroup.mjs +0 -4
  361. package/fesm2022/primeng-types-badge.mjs +0 -4
  362. package/fesm2022/primeng-types-blockui.mjs +0 -4
  363. package/fesm2022/primeng-types-breadcrumb.mjs +0 -4
  364. package/fesm2022/primeng-types-button.mjs +0 -4
  365. package/fesm2022/primeng-types-card.mjs +0 -4
  366. package/fesm2022/primeng-types-carousel.mjs +0 -4
  367. package/fesm2022/primeng-types-cascadeselect.mjs +0 -4
  368. package/fesm2022/primeng-types-chart.mjs +0 -4
  369. package/fesm2022/primeng-types-checkbox.mjs +0 -4
  370. package/fesm2022/primeng-types-chip.mjs +0 -4
  371. package/fesm2022/primeng-types-colorpicker.mjs +0 -4
  372. package/fesm2022/primeng-types-commandmenu.mjs +0 -4
  373. package/fesm2022/primeng-types-compare.mjs +0 -4
  374. package/fesm2022/primeng-types-confirmdialog.mjs +0 -4
  375. package/fesm2022/primeng-types-confirmpopup.mjs +0 -4
  376. package/fesm2022/primeng-types-contextmenu.mjs +0 -4
  377. package/fesm2022/primeng-types-dataview.mjs +0 -4
  378. package/fesm2022/primeng-types-datepicker.mjs +0 -4
  379. package/fesm2022/primeng-types-dialog.mjs +0 -4
  380. package/fesm2022/primeng-types-divider.mjs +0 -4
  381. package/fesm2022/primeng-types-dock.mjs +0 -4
  382. package/fesm2022/primeng-types-drawer.mjs +0 -4
  383. package/fesm2022/primeng-types-editor.mjs +0 -4
  384. package/fesm2022/primeng-types-fieldset.mjs +0 -4
  385. package/fesm2022/primeng-types-fileupload.mjs +0 -4
  386. package/fesm2022/primeng-types-floatlabel.mjs +0 -4
  387. package/fesm2022/primeng-types-fluid.mjs +0 -4
  388. package/fesm2022/primeng-types-galleria.mjs +0 -4
  389. package/fesm2022/primeng-types-gallery.mjs +0 -4
  390. package/fesm2022/primeng-types-iconfield.mjs +0 -4
  391. package/fesm2022/primeng-types-iftalabel.mjs +0 -4
  392. package/fesm2022/primeng-types-image.mjs +0 -4
  393. package/fesm2022/primeng-types-imagecompare.mjs +0 -4
  394. package/fesm2022/primeng-types-inplace.mjs +0 -4
  395. package/fesm2022/primeng-types-inputcolor.mjs +0 -4
  396. package/fesm2022/primeng-types-inputgroup.mjs +0 -4
  397. package/fesm2022/primeng-types-inputgroupaddon.mjs +0 -4
  398. package/fesm2022/primeng-types-inputicon.mjs +0 -4
  399. package/fesm2022/primeng-types-inputmask.mjs +0 -4
  400. package/fesm2022/primeng-types-inputnumber.mjs +0 -4
  401. package/fesm2022/primeng-types-inputotp.mjs +0 -4
  402. package/fesm2022/primeng-types-inputpassword.mjs +0 -4
  403. package/fesm2022/primeng-types-inputtags.mjs +0 -4
  404. package/fesm2022/primeng-types-inputtext.mjs +0 -4
  405. package/fesm2022/primeng-types-knob.mjs +0 -4
  406. package/fesm2022/primeng-types-label.mjs +0 -4
  407. package/fesm2022/primeng-types-listbox.mjs +0 -4
  408. package/fesm2022/primeng-types-megamenu.mjs +0 -4
  409. package/fesm2022/primeng-types-menu.mjs +0 -4
  410. package/fesm2022/primeng-types-menubar.mjs +0 -4
  411. package/fesm2022/primeng-types-message.mjs +0 -4
  412. package/fesm2022/primeng-types-metergroup.mjs +0 -4
  413. package/fesm2022/primeng-types-motion.mjs +0 -4
  414. package/fesm2022/primeng-types-multiselect.mjs +0 -4
  415. package/fesm2022/primeng-types-orderlist.mjs +0 -4
  416. package/fesm2022/primeng-types-organizationchart.mjs +0 -4
  417. package/fesm2022/primeng-types-overlay.mjs +0 -4
  418. package/fesm2022/primeng-types-overlaybadge.mjs +0 -4
  419. package/fesm2022/primeng-types-paginator.mjs +0 -4
  420. package/fesm2022/primeng-types-panel.mjs +0 -4
  421. package/fesm2022/primeng-types-panelmenu.mjs +0 -4
  422. package/fesm2022/primeng-types-password.mjs +0 -4
  423. package/fesm2022/primeng-types-picklist.mjs +0 -4
  424. package/fesm2022/primeng-types-popover.mjs +0 -4
  425. package/fesm2022/primeng-types-progressbar.mjs +0 -4
  426. package/fesm2022/primeng-types-progressspinner.mjs +0 -4
  427. package/fesm2022/primeng-types-radiobutton.mjs +0 -4
  428. package/fesm2022/primeng-types-rating.mjs +0 -4
  429. package/fesm2022/primeng-types-scrollarea.mjs +0 -4
  430. package/fesm2022/primeng-types-scroller.mjs +0 -4
  431. package/fesm2022/primeng-types-scrollpanel.mjs +0 -4
  432. package/fesm2022/primeng-types-scrolltop.mjs +0 -4
  433. package/fesm2022/primeng-types-select.mjs +0 -4
  434. package/fesm2022/primeng-types-selectbutton.mjs +0 -4
  435. package/fesm2022/primeng-types-shared.mjs +0 -4
  436. package/fesm2022/primeng-types-sidebar.mjs +0 -4
  437. package/fesm2022/primeng-types-skeleton.mjs +0 -4
  438. package/fesm2022/primeng-types-slider.mjs +0 -4
  439. package/fesm2022/primeng-types-speeddial.mjs +0 -4
  440. package/fesm2022/primeng-types-splitbutton.mjs +0 -4
  441. package/fesm2022/primeng-types-splitter.mjs +0 -4
  442. package/fesm2022/primeng-types-stepper.mjs +0 -4
  443. package/fesm2022/primeng-types-table.mjs +0 -4
  444. package/fesm2022/primeng-types-tabs.mjs +0 -4
  445. package/fesm2022/primeng-types-tag.mjs +0 -4
  446. package/fesm2022/primeng-types-terminal.mjs +0 -4
  447. package/fesm2022/primeng-types-textarea.mjs +0 -4
  448. package/fesm2022/primeng-types-tieredmenu.mjs +0 -4
  449. package/fesm2022/primeng-types-timeline.mjs +0 -4
  450. package/fesm2022/primeng-types-toast.mjs +0 -4
  451. package/fesm2022/primeng-types-togglebutton.mjs +0 -4
  452. package/fesm2022/primeng-types-toggleswitch.mjs +0 -4
  453. package/fesm2022/primeng-types-toolbar.mjs +0 -4
  454. package/fesm2022/primeng-types-tooltip.mjs +0 -4
  455. package/fesm2022/primeng-types-tree.mjs +0 -4
  456. package/fesm2022/primeng-types-treeselect.mjs +0 -4
  457. package/fesm2022/primeng-types-treetable.mjs +0 -4
  458. package/fesm2022/primeng-usestyle.mjs +105 -109
  459. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  460. package/fesm2022/primeng-utils.mjs +238 -328
  461. package/fesm2022/primeng-utils.mjs.map +1 -1
  462. package/fesm2022/primeng.mjs +1 -5
  463. package/fesm2022/primeng.mjs.map +1 -1
  464. package/package.json +7 -2
  465. package/types/primeng-accordion.d.ts +289 -221
  466. package/types/primeng-animateonscroll.d.ts +89 -61
  467. package/types/primeng-api.d.ts +1760 -1790
  468. package/types/primeng-autocomplete.d.ts +1054 -757
  469. package/types/primeng-autofocus.d.ts +27 -24
  470. package/types/primeng-avatar.d.ts +153 -117
  471. package/types/primeng-avatargroup.d.ts +46 -43
  472. package/types/primeng-badge.d.ts +105 -81
  473. package/types/primeng-base.d.ts +49 -52
  474. package/types/primeng-basecomponent.d.ts +191 -174
  475. package/types/primeng-baseeditableholder.d.ts +63 -45
  476. package/types/primeng-baseinput.d.ts +122 -74
  477. package/types/primeng-basemodelholder.d.ts +9 -12
  478. package/types/primeng-bind.d.ts +36 -32
  479. package/types/primeng-blockui.d.ts +99 -80
  480. package/types/primeng-breadcrumb.d.ts +159 -133
  481. package/types/primeng-button.d.ts +690 -427
  482. package/types/primeng-buttongroup.d.ts +27 -33
  483. package/types/primeng-card.d.ts +131 -122
  484. package/types/primeng-carousel.d.ts +800 -632
  485. package/types/primeng-cascadeselect.d.ts +754 -565
  486. package/types/primeng-chart.d.ts +160 -116
  487. package/types/primeng-checkbox.d.ts +299 -211
  488. package/types/primeng-chip.d.ts +189 -147
  489. package/types/primeng-classnames.d.ts +23 -21
  490. package/types/primeng-colorpicker.d.ts +325 -272
  491. package/types/primeng-commandmenu.d.ts +213 -165
  492. package/types/primeng-compare.d.ts +267 -191
  493. package/types/primeng-config.d.ts +294 -304
  494. package/types/primeng-confirmdialog.d.ts +505 -328
  495. package/types/primeng-confirmpopup.d.ts +254 -214
  496. package/types/primeng-contextmenu.d.ts +522 -368
  497. package/types/primeng-dataview.d.ts +498 -345
  498. package/types/primeng-datepicker.d.ts +1269 -972
  499. package/types/primeng-dialog.d.ts +668 -465
  500. package/types/primeng-divider.d.ts +114 -100
  501. package/types/primeng-dock.d.ts +207 -175
  502. package/types/primeng-dom.d.ts +97 -100
  503. package/types/primeng-dragdrop.d.ts +142 -107
  504. package/types/primeng-drawer.d.ts +355 -257
  505. package/types/primeng-dynamicdialog.d.ts +528 -540
  506. package/types/primeng-editor.d.ts +211 -165
  507. package/types/primeng-fieldset.d.ts +199 -166
  508. package/types/primeng-fileupload.d.ts +727 -526
  509. package/types/primeng-floatlabel.d.ts +55 -51
  510. package/types/primeng-fluid.d.ts +37 -39
  511. package/types/primeng-focustrap.d.ts +30 -27
  512. package/types/primeng-galleria.d.ts +570 -433
  513. package/types/primeng-gallery.d.ts +754 -552
  514. package/types/primeng-iconfield.d.ts +54 -45
  515. package/types/primeng-icons-angledoubledown.d.ts +6 -9
  516. package/types/primeng-icons-angledoubleleft.d.ts +6 -9
  517. package/types/primeng-icons-angledoubleright.d.ts +6 -9
  518. package/types/primeng-icons-angledoubleup.d.ts +6 -9
  519. package/types/primeng-icons-angledown.d.ts +6 -9
  520. package/types/primeng-icons-angleleft.d.ts +6 -9
  521. package/types/primeng-icons-angleright.d.ts +6 -9
  522. package/types/primeng-icons-angleup.d.ts +6 -9
  523. package/types/primeng-icons-arrowdown.d.ts +8 -11
  524. package/types/primeng-icons-arrowdownleft.d.ts +6 -9
  525. package/types/primeng-icons-arrowdownright.d.ts +6 -9
  526. package/types/primeng-icons-arrowleft.d.ts +8 -11
  527. package/types/primeng-icons-arrowright.d.ts +6 -9
  528. package/types/primeng-icons-arrowup.d.ts +8 -11
  529. package/types/primeng-icons-ban.d.ts +8 -11
  530. package/types/primeng-icons-bars.d.ts +6 -9
  531. package/types/primeng-icons-baseicon.d.ts +24 -25
  532. package/types/primeng-icons-blank.d.ts +6 -9
  533. package/types/primeng-icons-calendar.d.ts +6 -9
  534. package/types/primeng-icons-caretleft.d.ts +6 -9
  535. package/types/primeng-icons-caretright.d.ts +6 -9
  536. package/types/primeng-icons-check.d.ts +6 -9
  537. package/types/primeng-icons-chevrondown.d.ts +6 -9
  538. package/types/primeng-icons-chevronleft.d.ts +6 -9
  539. package/types/primeng-icons-chevronright.d.ts +6 -9
  540. package/types/primeng-icons-chevronup.d.ts +6 -9
  541. package/types/primeng-icons-exclamationtriangle.d.ts +8 -11
  542. package/types/primeng-icons-eye.d.ts +6 -9
  543. package/types/primeng-icons-eyeslash.d.ts +8 -11
  544. package/types/primeng-icons-filter.d.ts +8 -11
  545. package/types/primeng-icons-filterfill.d.ts +6 -9
  546. package/types/primeng-icons-filterslash.d.ts +8 -11
  547. package/types/primeng-icons-home.d.ts +8 -11
  548. package/types/primeng-icons-infocircle.d.ts +8 -11
  549. package/types/primeng-icons-minus.d.ts +6 -9
  550. package/types/primeng-icons-pencil.d.ts +8 -11
  551. package/types/primeng-icons-plus.d.ts +8 -11
  552. package/types/primeng-icons-refresh.d.ts +8 -11
  553. package/types/primeng-icons-search.d.ts +8 -11
  554. package/types/primeng-icons-searchminus.d.ts +8 -11
  555. package/types/primeng-icons-searchplus.d.ts +8 -11
  556. package/types/primeng-icons-sortalt.d.ts +8 -11
  557. package/types/primeng-icons-sortamountdown.d.ts +8 -11
  558. package/types/primeng-icons-sortamountupalt.d.ts +8 -11
  559. package/types/primeng-icons-spinner.d.ts +8 -11
  560. package/types/primeng-icons-star.d.ts +8 -11
  561. package/types/primeng-icons-starfill.d.ts +8 -11
  562. package/types/primeng-icons-thlarge.d.ts +8 -11
  563. package/types/primeng-icons-times.d.ts +6 -9
  564. package/types/primeng-icons-timescircle.d.ts +8 -11
  565. package/types/primeng-icons-trash.d.ts +8 -11
  566. package/types/primeng-icons-undo.d.ts +8 -11
  567. package/types/primeng-icons-upload.d.ts +8 -11
  568. package/types/primeng-icons-windowmaximize.d.ts +8 -11
  569. package/types/primeng-icons-windowminimize.d.ts +8 -11
  570. package/types/primeng-icons.d.ts +53 -53
  571. package/types/primeng-iftalabel.d.ts +38 -40
  572. package/types/primeng-image.d.ts +404 -311
  573. package/types/primeng-imagecompare.d.ts +94 -80
  574. package/types/primeng-inplace.d.ts +126 -114
  575. package/types/primeng-inputcolor.d.ts +645 -508
  576. package/types/primeng-inputgroup.d.ts +42 -44
  577. package/types/primeng-inputgroupaddon.d.ts +31 -31
  578. package/types/primeng-inputicon.d.ts +38 -32
  579. package/types/primeng-inputmask.d.ts +520 -365
  580. package/types/primeng-inputnumber.d.ts +573 -408
  581. package/types/primeng-inputotp.d.ts +206 -159
  582. package/types/primeng-inputpassword.d.ts +60 -47
  583. package/types/primeng-inputtags.d.ts +453 -301
  584. package/types/primeng-inputtext.d.ts +130 -96
  585. package/types/primeng-keyfilter.d.ts +62 -53
  586. package/types/primeng-knob.d.ts +257 -186
  587. package/types/primeng-label.d.ts +37 -39
  588. package/types/primeng-license.d.ts +1 -3
  589. package/types/primeng-listbox.d.ts +1040 -786
  590. package/types/primeng-megamenu.d.ts +536 -386
  591. package/types/primeng-menu.d.ts +478 -363
  592. package/types/primeng-menubar.d.ts +495 -354
  593. package/types/primeng-message.d.ts +192 -151
  594. package/types/primeng-metergroup.d.ts +249 -189
  595. package/types/primeng-motion.d.ts +601 -385
  596. package/types/primeng-multiselect.d.ts +1193 -861
  597. package/types/primeng-orderlist.d.ts +539 -393
  598. package/types/primeng-organizationchart.d.ts +236 -195
  599. package/types/primeng-overlay.d.ts +394 -294
  600. package/types/primeng-overlaybadge.d.ts +95 -64
  601. package/types/primeng-paginator.d.ts +410 -314
  602. package/types/primeng-panel.d.ts +267 -217
  603. package/types/primeng-panelmenu.d.ts +255 -231
  604. package/types/primeng-passthrough.d.ts +5 -7
  605. package/types/primeng-password.d.ts +606 -433
  606. package/types/primeng-picklist.d.ts +1042 -759
  607. package/types/primeng-popover.d.ts +235 -176
  608. package/types/primeng-progressbar.d.ts +131 -102
  609. package/types/primeng-progressspinner.d.ts +145 -111
  610. package/types/primeng-radiobutton.d.ts +219 -171
  611. package/types/primeng-rating.d.ts +240 -192
  612. package/types/primeng-ripple.d.ts +39 -45
  613. package/types/primeng-scrollarea.d.ts +292 -243
  614. package/types/primeng-scroller.d.ts +523 -390
  615. package/types/primeng-scrollpanel.d.ts +135 -131
  616. package/types/primeng-scrolltop.d.ts +170 -126
  617. package/types/primeng-select.d.ts +1014 -741
  618. package/types/primeng-selectbutton.d.ts +239 -167
  619. package/types/primeng-sidebar.d.ts +793 -562
  620. package/types/primeng-skeleton.d.ts +116 -87
  621. package/types/primeng-slider.d.ts +378 -311
  622. package/types/primeng-speeddial.d.ts +495 -375
  623. package/types/primeng-splitbutton.d.ts +382 -243
  624. package/types/primeng-splitter.d.ts +392 -301
  625. package/types/primeng-stepper.d.ts +417 -257
  626. package/types/primeng-steps.d.ts +158 -137
  627. package/types/primeng-styleclass.d.ts +163 -105
  628. package/types/primeng-table.d.ts +2898 -1912
  629. package/types/primeng-tabs.d.ts +463 -307
  630. package/types/primeng-tag.d.ts +107 -88
  631. package/types/primeng-terminal.d.ts +132 -120
  632. package/types/primeng-textarea.d.ts +146 -110
  633. package/types/primeng-tieredmenu.d.ts +573 -401
  634. package/types/primeng-timeline.d.ts +126 -112
  635. package/types/primeng-toast.d.ts +313 -252
  636. package/types/primeng-togglebutton.d.ts +255 -185
  637. package/types/primeng-toggleswitch.d.ts +190 -144
  638. package/types/primeng-toolbar.d.ts +83 -79
  639. package/types/primeng-tooltip.d.ts +335 -235
  640. package/types/primeng-tree.d.ts +763 -562
  641. package/types/primeng-treeselect.d.ts +750 -544
  642. package/types/primeng-treetable.d.ts +1839 -1315
  643. package/types/primeng-ts-helpers.d.ts +4 -6
  644. package/types/primeng-types-accordion.d.ts +58 -62
  645. package/types/primeng-types-autocomplete.d.ts +230 -233
  646. package/types/primeng-types-avatar.d.ts +25 -28
  647. package/types/primeng-types-avatargroup.d.ts +11 -14
  648. package/types/primeng-types-badge.d.ts +13 -16
  649. package/types/primeng-types-blockui.d.ts +18 -21
  650. package/types/primeng-types-breadcrumb.d.ts +65 -68
  651. package/types/primeng-types-button.d.ts +106 -109
  652. package/types/primeng-types-card.d.ts +54 -57
  653. package/types/primeng-types-carousel.d.ts +143 -146
  654. package/types/primeng-types-cascadeselect.d.ts +186 -192
  655. package/types/primeng-types-chart.d.ts +34 -39
  656. package/types/primeng-types-checkbox.d.ts +52 -55
  657. package/types/primeng-types-chip.d.ts +48 -51
  658. package/types/primeng-types-colorpicker.d.ts +59 -62
  659. package/types/primeng-types-commandmenu.d.ts +98 -101
  660. package/types/primeng-types-compare.d.ts +33 -36
  661. package/types/primeng-types-confirmdialog.d.ts +124 -127
  662. package/types/primeng-types-confirmpopup.d.ts +75 -78
  663. package/types/primeng-types-contextmenu.d.ts +100 -103
  664. package/types/primeng-types-dataview.d.ts +180 -183
  665. package/types/primeng-types-datepicker.d.ts +442 -445
  666. package/types/primeng-types-dialog.d.ts +93 -96
  667. package/types/primeng-types-divider.d.ts +14 -17
  668. package/types/primeng-types-dock.d.ts +45 -48
  669. package/types/primeng-types-drawer.d.ts +62 -65
  670. package/types/primeng-types-editor.d.ts +143 -146
  671. package/types/primeng-types-fieldset.d.ts +83 -87
  672. package/types/primeng-types-fileupload.d.ts +296 -301
  673. package/types/primeng-types-floatlabel.d.ts +12 -15
  674. package/types/primeng-types-fluid.d.ts +11 -14
  675. package/types/primeng-types-galleria.d.ts +209 -212
  676. package/types/primeng-types-gallery.d.ts +195 -198
  677. package/types/primeng-types-iconfield.d.ts +12 -15
  678. package/types/primeng-types-iftalabel.d.ts +11 -14
  679. package/types/primeng-types-image.d.ts +118 -121
  680. package/types/primeng-types-imagecompare.d.ts +22 -25
  681. package/types/primeng-types-inplace.d.ts +46 -49
  682. package/types/primeng-types-inputcolor.d.ts +86 -89
  683. package/types/primeng-types-inputgroup.d.ts +11 -14
  684. package/types/primeng-types-inputgroupaddon.d.ts +11 -14
  685. package/types/primeng-types-inputicon.d.ts +11 -14
  686. package/types/primeng-types-inputmask.d.ts +30 -33
  687. package/types/primeng-types-inputnumber.d.ts +72 -75
  688. package/types/primeng-types-inputotp.d.ts +67 -70
  689. package/types/primeng-types-inputpassword.d.ts +7 -10
  690. package/types/primeng-types-inputtags.d.ts +122 -125
  691. package/types/primeng-types-inputtext.d.ts +7 -10
  692. package/types/primeng-types-knob.d.ts +23 -26
  693. package/types/primeng-types-label.d.ts +7 -10
  694. package/types/primeng-types-listbox.d.ts +262 -266
  695. package/types/primeng-types-megamenu.d.ts +135 -138
  696. package/types/primeng-types-menu.d.ts +98 -101
  697. package/types/primeng-types-menubar.d.ts +122 -125
  698. package/types/primeng-types-message.d.ts +69 -72
  699. package/types/primeng-types-metergroup.d.ts +137 -140
  700. package/types/primeng-types-motion.d.ts +11 -14
  701. package/types/primeng-types-multiselect.d.ts +329 -333
  702. package/types/primeng-types-orderlist.d.ts +126 -129
  703. package/types/primeng-types-organizationchart.d.ts +147 -153
  704. package/types/primeng-types-overlay.d.ts +31 -34
  705. package/types/primeng-types-overlaybadge.d.ts +17 -20
  706. package/types/primeng-types-paginator.d.ts +131 -134
  707. package/types/primeng-types-panel.d.ts +91 -95
  708. package/types/primeng-types-panelmenu.d.ts +150 -153
  709. package/types/primeng-types-password.d.ts +94 -97
  710. package/types/primeng-types-picklist.d.ts +250 -260
  711. package/types/primeng-types-popover.d.ts +33 -36
  712. package/types/primeng-types-progressbar.d.ts +33 -36
  713. package/types/primeng-types-progressspinner.d.ts +27 -30
  714. package/types/primeng-types-radiobutton.d.ts +29 -32
  715. package/types/primeng-types-rating.d.ts +62 -65
  716. package/types/primeng-types-scrollarea.d.ts +35 -38
  717. package/types/primeng-types-scroller.d.ts +142 -146
  718. package/types/primeng-types-scrollpanel.d.ts +31 -34
  719. package/types/primeng-types-scrolltop.d.ts +37 -40
  720. package/types/primeng-types-select.d.ts +251 -254
  721. package/types/primeng-types-selectbutton.d.ts +56 -59
  722. package/types/primeng-types-shared.d.ts +6 -9
  723. package/types/primeng-types-sidebar.d.ts +105 -108
  724. package/types/primeng-types-skeleton.d.ts +11 -14
  725. package/types/primeng-types-slider.d.ts +59 -62
  726. package/types/primeng-types-speeddial.d.ts +71 -74
  727. package/types/primeng-types-splitbutton.d.ts +35 -38
  728. package/types/primeng-types-splitter.d.ts +58 -63
  729. package/types/primeng-types-stepper.d.ts +77 -80
  730. package/types/primeng-types-table.d.ts +743 -749
  731. package/types/primeng-types-tabs.d.ts +48 -51
  732. package/types/primeng-types-tag.d.ts +27 -30
  733. package/types/primeng-types-terminal.d.ts +43 -46
  734. package/types/primeng-types-textarea.d.ts +11 -14
  735. package/types/primeng-types-tieredmenu.d.ts +154 -157
  736. package/types/primeng-types-timeline.d.ts +60 -63
  737. package/types/primeng-types-toast.d.ts +92 -95
  738. package/types/primeng-types-togglebutton.d.ts +52 -55
  739. package/types/primeng-types-toggleswitch.d.ts +41 -44
  740. package/types/primeng-types-toolbar.d.ts +34 -37
  741. package/types/primeng-types-tooltip.d.ts +17 -20
  742. package/types/primeng-types-tree.d.ts +237 -246
  743. package/types/primeng-types-treeselect.d.ts +198 -202
  744. package/types/primeng-types-treetable.d.ts +492 -497
  745. package/types/primeng-usestyle.d.ts +28 -31
  746. package/types/primeng-utils.d.ts +37 -40
  747. package/types/primeng.d.ts +2 -2
  748. package/fesm2022/primeng-icons.mjs.map +0 -1
  749. package/fesm2022/primeng-ts-helpers.mjs.map +0 -1
  750. package/fesm2022/primeng-types-accordion.mjs.map +0 -1
  751. package/fesm2022/primeng-types-autocomplete.mjs.map +0 -1
  752. package/fesm2022/primeng-types-avatar.mjs.map +0 -1
  753. package/fesm2022/primeng-types-avatargroup.mjs.map +0 -1
  754. package/fesm2022/primeng-types-badge.mjs.map +0 -1
  755. package/fesm2022/primeng-types-blockui.mjs.map +0 -1
  756. package/fesm2022/primeng-types-breadcrumb.mjs.map +0 -1
  757. package/fesm2022/primeng-types-button.mjs.map +0 -1
  758. package/fesm2022/primeng-types-card.mjs.map +0 -1
  759. package/fesm2022/primeng-types-carousel.mjs.map +0 -1
  760. package/fesm2022/primeng-types-cascadeselect.mjs.map +0 -1
  761. package/fesm2022/primeng-types-chart.mjs.map +0 -1
  762. package/fesm2022/primeng-types-checkbox.mjs.map +0 -1
  763. package/fesm2022/primeng-types-chip.mjs.map +0 -1
  764. package/fesm2022/primeng-types-colorpicker.mjs.map +0 -1
  765. package/fesm2022/primeng-types-commandmenu.mjs.map +0 -1
  766. package/fesm2022/primeng-types-compare.mjs.map +0 -1
  767. package/fesm2022/primeng-types-confirmdialog.mjs.map +0 -1
  768. package/fesm2022/primeng-types-confirmpopup.mjs.map +0 -1
  769. package/fesm2022/primeng-types-contextmenu.mjs.map +0 -1
  770. package/fesm2022/primeng-types-dataview.mjs.map +0 -1
  771. package/fesm2022/primeng-types-datepicker.mjs.map +0 -1
  772. package/fesm2022/primeng-types-dialog.mjs.map +0 -1
  773. package/fesm2022/primeng-types-divider.mjs.map +0 -1
  774. package/fesm2022/primeng-types-dock.mjs.map +0 -1
  775. package/fesm2022/primeng-types-drawer.mjs.map +0 -1
  776. package/fesm2022/primeng-types-editor.mjs.map +0 -1
  777. package/fesm2022/primeng-types-fieldset.mjs.map +0 -1
  778. package/fesm2022/primeng-types-fileupload.mjs.map +0 -1
  779. package/fesm2022/primeng-types-floatlabel.mjs.map +0 -1
  780. package/fesm2022/primeng-types-fluid.mjs.map +0 -1
  781. package/fesm2022/primeng-types-galleria.mjs.map +0 -1
  782. package/fesm2022/primeng-types-gallery.mjs.map +0 -1
  783. package/fesm2022/primeng-types-iconfield.mjs.map +0 -1
  784. package/fesm2022/primeng-types-iftalabel.mjs.map +0 -1
  785. package/fesm2022/primeng-types-image.mjs.map +0 -1
  786. package/fesm2022/primeng-types-imagecompare.mjs.map +0 -1
  787. package/fesm2022/primeng-types-inplace.mjs.map +0 -1
  788. package/fesm2022/primeng-types-inputcolor.mjs.map +0 -1
  789. package/fesm2022/primeng-types-inputgroup.mjs.map +0 -1
  790. package/fesm2022/primeng-types-inputgroupaddon.mjs.map +0 -1
  791. package/fesm2022/primeng-types-inputicon.mjs.map +0 -1
  792. package/fesm2022/primeng-types-inputmask.mjs.map +0 -1
  793. package/fesm2022/primeng-types-inputnumber.mjs.map +0 -1
  794. package/fesm2022/primeng-types-inputotp.mjs.map +0 -1
  795. package/fesm2022/primeng-types-inputpassword.mjs.map +0 -1
  796. package/fesm2022/primeng-types-inputtags.mjs.map +0 -1
  797. package/fesm2022/primeng-types-inputtext.mjs.map +0 -1
  798. package/fesm2022/primeng-types-knob.mjs.map +0 -1
  799. package/fesm2022/primeng-types-label.mjs.map +0 -1
  800. package/fesm2022/primeng-types-listbox.mjs.map +0 -1
  801. package/fesm2022/primeng-types-megamenu.mjs.map +0 -1
  802. package/fesm2022/primeng-types-menu.mjs.map +0 -1
  803. package/fesm2022/primeng-types-menubar.mjs.map +0 -1
  804. package/fesm2022/primeng-types-message.mjs.map +0 -1
  805. package/fesm2022/primeng-types-metergroup.mjs.map +0 -1
  806. package/fesm2022/primeng-types-motion.mjs.map +0 -1
  807. package/fesm2022/primeng-types-multiselect.mjs.map +0 -1
  808. package/fesm2022/primeng-types-orderlist.mjs.map +0 -1
  809. package/fesm2022/primeng-types-organizationchart.mjs.map +0 -1
  810. package/fesm2022/primeng-types-overlay.mjs.map +0 -1
  811. package/fesm2022/primeng-types-overlaybadge.mjs.map +0 -1
  812. package/fesm2022/primeng-types-paginator.mjs.map +0 -1
  813. package/fesm2022/primeng-types-panel.mjs.map +0 -1
  814. package/fesm2022/primeng-types-panelmenu.mjs.map +0 -1
  815. package/fesm2022/primeng-types-password.mjs.map +0 -1
  816. package/fesm2022/primeng-types-picklist.mjs.map +0 -1
  817. package/fesm2022/primeng-types-popover.mjs.map +0 -1
  818. package/fesm2022/primeng-types-progressbar.mjs.map +0 -1
  819. package/fesm2022/primeng-types-progressspinner.mjs.map +0 -1
  820. package/fesm2022/primeng-types-radiobutton.mjs.map +0 -1
  821. package/fesm2022/primeng-types-rating.mjs.map +0 -1
  822. package/fesm2022/primeng-types-scrollarea.mjs.map +0 -1
  823. package/fesm2022/primeng-types-scroller.mjs.map +0 -1
  824. package/fesm2022/primeng-types-scrollpanel.mjs.map +0 -1
  825. package/fesm2022/primeng-types-scrolltop.mjs.map +0 -1
  826. package/fesm2022/primeng-types-select.mjs.map +0 -1
  827. package/fesm2022/primeng-types-selectbutton.mjs.map +0 -1
  828. package/fesm2022/primeng-types-shared.mjs.map +0 -1
  829. package/fesm2022/primeng-types-sidebar.mjs.map +0 -1
  830. package/fesm2022/primeng-types-skeleton.mjs.map +0 -1
  831. package/fesm2022/primeng-types-slider.mjs.map +0 -1
  832. package/fesm2022/primeng-types-speeddial.mjs.map +0 -1
  833. package/fesm2022/primeng-types-splitbutton.mjs.map +0 -1
  834. package/fesm2022/primeng-types-splitter.mjs.map +0 -1
  835. package/fesm2022/primeng-types-stepper.mjs.map +0 -1
  836. package/fesm2022/primeng-types-table.mjs.map +0 -1
  837. package/fesm2022/primeng-types-tabs.mjs.map +0 -1
  838. package/fesm2022/primeng-types-tag.mjs.map +0 -1
  839. package/fesm2022/primeng-types-terminal.mjs.map +0 -1
  840. package/fesm2022/primeng-types-textarea.mjs.map +0 -1
  841. package/fesm2022/primeng-types-tieredmenu.mjs.map +0 -1
  842. package/fesm2022/primeng-types-timeline.mjs.map +0 -1
  843. package/fesm2022/primeng-types-toast.mjs.map +0 -1
  844. package/fesm2022/primeng-types-togglebutton.mjs.map +0 -1
  845. package/fesm2022/primeng-types-toggleswitch.mjs.map +0 -1
  846. package/fesm2022/primeng-types-toolbar.mjs.map +0 -1
  847. package/fesm2022/primeng-types-tooltip.mjs.map +0 -1
  848. package/fesm2022/primeng-types-tree.mjs.map +0 -1
  849. package/fesm2022/primeng-types-treeselect.mjs.map +0 -1
  850. package/fesm2022/primeng-types-treetable.mjs.map +0 -1
@@ -1,683 +1,641 @@
1
- export * from 'primeng/types/tree';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { InjectionToken, Injectable, inject, input, booleanAttribute, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, model, numberAttribute, output, contentChild, viewChild, DestroyRef, effect, untracked, NgModule } from '@angular/core';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import { getOuterWidth, getOuterHeight, find, findSingle, focus, removeAccents, resolveFieldData } from '@primeuix/utils';
7
- import { TreeDragDropService, TranslationKeys } from 'primeng/api';
8
- import * as i2 from 'primeng/autofocus';
9
- import { AutoFocusModule } from 'primeng/autofocus';
10
- import { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';
11
- import * as i1$1 from 'primeng/bind';
12
- import { Bind } from 'primeng/bind';
13
- import { IconField } from 'primeng/iconfield';
14
- import { Search } from '@primeicons/angular/search';
15
- import { Spinner } from '@primeicons/angular/spinner';
16
- import { InputIcon } from 'primeng/inputicon';
17
- import { InputText } from 'primeng/inputtext';
18
- import { Scroller } from 'primeng/scroller';
19
- import * as i1 from '@angular/forms';
20
- import { FormsModule } from '@angular/forms';
21
- import { Checkbox } from 'primeng/checkbox';
22
- import { ChevronDown } from '@primeicons/angular/chevron-down';
23
- import { ChevronRight } from '@primeicons/angular/chevron-right';
24
- import { Ripple } from 'primeng/ripple';
25
- import { style } from '@primeuix/styles/tree';
26
- import { BaseStyle } from 'primeng/base';
27
-
28
- const TREE_INSTANCE = new InjectionToken('TREE_INSTANCE');
29
- const TREENODE_INSTANCE = new InjectionToken('TREENODE_INSTANCE');
30
-
1
+ import { NgTemplateOutlet } from "@angular/common";
2
+ import * as i0 from "@angular/core";
3
+ import { ChangeDetectionStrategy, Component, DestroyRef, Injectable, InjectionToken, NgModule, ViewEncapsulation, booleanAttribute, computed, contentChild, effect, inject, input, model, numberAttribute, output, signal, untracked, viewChild } from "@angular/core";
4
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
5
+ import { Search } from "@primeicons/angular/search";
6
+ import { Spinner } from "@primeicons/angular/spinner";
7
+ import { find, findSingle, focus, getOuterHeight, getOuterWidth, removeAccents, resolveFieldData } from "@primeuix/utils";
8
+ import { TranslationKeys, TreeDragDropService } from "primeng/api";
9
+ import * as i2 from "primeng/autofocus";
10
+ import { AutoFocusModule } from "primeng/autofocus";
11
+ import { BaseComponent, PARENT_INSTANCE } from "primeng/basecomponent";
12
+ import * as i1 from "primeng/bind";
13
+ import { Bind } from "primeng/bind";
14
+ import { IconField } from "primeng/iconfield";
15
+ import { InputIcon } from "primeng/inputicon";
16
+ import { InputText } from "primeng/inputtext";
17
+ import { Scroller } from "primeng/scroller";
18
+ import { style } from "@primeuix/styles/tree";
19
+ import { BaseStyle } from "primeng/base";
20
+ import * as i1$1 from "@angular/forms";
21
+ import { FormsModule } from "@angular/forms";
22
+ import { Checkbox } from "primeng/checkbox";
23
+ import { ChevronDown } from "@primeicons/angular/chevron-down";
24
+ import { ChevronRight } from "@primeicons/angular/chevron-right";
25
+ import { Ripple } from "primeng/ripple";
26
+ export * from "primeng/types/tree";
31
27
  const classes = {
32
- root: ({ instance }) => [
33
- 'p-tree p-component',
34
- {
35
- 'p-tree-selectable': instance.selectionMode() != null,
36
- 'p-tree-loading': instance.loading(),
37
- 'p-tree-flex-scrollable': instance.scrollHeight() === 'flex',
38
- 'p-tree-node-dragover': instance.dragHover
39
- }
40
- ],
41
- mask: 'p-tree-mask p-overlay-mask',
42
- loadingIcon: 'p-tree-loading-icon',
43
- pcFilterInput: 'p-tree-filter-input',
44
- wrapper: 'p-tree-root',
45
- rootChildren: 'p-tree-root-children',
46
- node: ({ instance }) => ({ 'p-tree-node': true, 'p-tree-node-leaf': instance.isLeaf() }),
47
- nodeContent: ({ instance }) => ({
48
- 'p-tree-node-content': true,
49
- 'p-tree-node-selectable': instance.selectable,
50
- 'p-tree-node-dragover': instance.isNodeDropActive(),
51
- 'p-tree-node-selected': instance.tree.selectionMode() === 'checkbox' && instance.tree.highlightOnSelect() ? instance.checked : instance.selected,
52
- 'p-tree-node-contextmenu-selected': instance.isContextMenuSelected()
53
- }),
54
- nodeToggleButton: 'p-tree-node-toggle-button',
55
- nodeToggleIcon: 'p-tree-node-toggle-icon',
56
- nodeCheckbox: 'p-tree-node-checkbox',
57
- nodeIcon: 'p-tree-node-icon',
58
- nodeLabel: 'p-tree-node-label',
59
- nodeChildren: 'p-tree-node-children',
60
- emptyMessage: 'p-tree-empty-message',
61
- dropPoint: 'p-tree-node-drop-point'
28
+ root: ({ instance }) => ["p-tree p-component", {
29
+ "p-tree-selectable": instance.selectionMode() != null,
30
+ "p-tree-loading": instance.loading(),
31
+ "p-tree-flex-scrollable": instance.scrollHeight() === "flex",
32
+ "p-tree-node-dragover": instance.dragHover
33
+ }],
34
+ mask: "p-tree-mask p-overlay-mask",
35
+ loadingIcon: "p-tree-loading-icon",
36
+ pcFilterInput: "p-tree-filter-input",
37
+ wrapper: "p-tree-root",
38
+ rootChildren: "p-tree-root-children",
39
+ node: ({ instance }) => ({
40
+ "p-tree-node": true,
41
+ "p-tree-node-leaf": instance.isLeaf()
42
+ }),
43
+ nodeContent: ({ instance }) => ({
44
+ "p-tree-node-content": true,
45
+ "p-tree-node-selectable": instance.selectable,
46
+ "p-tree-node-dragover": instance.isNodeDropActive(),
47
+ "p-tree-node-selected": instance.tree.selectionMode() === "checkbox" && instance.tree.highlightOnSelect() ? instance.checked : instance.selected,
48
+ "p-tree-node-contextmenu-selected": instance.isContextMenuSelected()
49
+ }),
50
+ nodeToggleButton: "p-tree-node-toggle-button",
51
+ nodeToggleIcon: "p-tree-node-toggle-icon",
52
+ nodeCheckbox: "p-tree-node-checkbox",
53
+ nodeIcon: "p-tree-node-icon",
54
+ nodeLabel: "p-tree-node-label",
55
+ nodeChildren: "p-tree-node-children",
56
+ emptyMessage: "p-tree-empty-message",
57
+ dropPoint: "p-tree-node-drop-point"
58
+ };
59
+ var TreeStyle = class TreeStyle extends BaseStyle {
60
+ name = "tree";
61
+ style = style;
62
+ classes = classes;
63
+ static ɵfac = i0.ɵɵngDeclareFactory({
64
+ minVersion: "12.0.0",
65
+ version: "22.2.0",
66
+ ngImport: i0,
67
+ type: TreeStyle,
68
+ deps: null,
69
+ target: i0.ɵɵFactoryTarget.Injectable
70
+ });
71
+ static ɵprov = i0.ɵɵngDeclareInjectable({
72
+ minVersion: "12.0.0",
73
+ version: "22.2.0",
74
+ ngImport: i0,
75
+ type: TreeStyle
76
+ });
62
77
  };
63
- class TreeStyle extends BaseStyle {
64
- name = 'tree';
65
- style = style;
66
- classes = classes;
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
68
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeStyle });
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeStyle, decorators: [{
71
- type: Injectable
72
- }] });
73
- /**
74
- *
75
- * Tree is used to display hierarchical data.
76
- *
77
- * [Live Demo](https://www.primeng.org/tree/)
78
- *
79
- * @module treestyle
80
- *
81
- */
78
+ i0.ɵɵngDeclareClassMetadata({
79
+ minVersion: "12.0.0",
80
+ version: "22.2.0",
81
+ ngImport: i0,
82
+ type: TreeStyle,
83
+ decorators: [{ type: Injectable }]
84
+ });
82
85
  var TreeClasses;
83
- (function (TreeClasses) {
84
- /**
85
- * Class name of the root element
86
- */
87
- TreeClasses["root"] = "p-tree";
88
- /**
89
- * Class name of the mask element
90
- */
91
- TreeClasses["mask"] = "p-tree-mask";
92
- /**
93
- * Class name of the loading icon element
94
- */
95
- TreeClasses["loadingIcon"] = "p-tree-loading-icon";
96
- /**
97
- * Class name of the filter input element
98
- */
99
- TreeClasses["pcFilterInput"] = "p-tree-filter-input";
100
- /**
101
- * Class name of the wrapper element
102
- */
103
- TreeClasses["wrapper"] = "p-tree-root";
104
- /**
105
- * Class name of the root children element
106
- */
107
- TreeClasses["rootChildren"] = "p-tree-root-children";
108
- /**
109
- * Class name of the node element
110
- */
111
- TreeClasses["node"] = "p-tree-node";
112
- /**
113
- * Class name of the node content element
114
- */
115
- TreeClasses["nodeContent"] = "p-tree-node-content";
116
- /**
117
- * Class name of the node toggle button element
118
- */
119
- TreeClasses["nodeToggleButton"] = "p-tree-node-toggle-button";
120
- /**
121
- * Class name of the node toggle icon element
122
- */
123
- TreeClasses["nodeToggleIcon"] = "p-tree-node-toggle-icon";
124
- /**
125
- * Class name of the node checkbox element
126
- */
127
- TreeClasses["nodeCheckbox"] = "p-tree-node-checkbox";
128
- /**
129
- * Class name of the node icon element
130
- */
131
- TreeClasses["nodeIcon"] = "p-tree-node-icon";
132
- /**
133
- * Class name of the node label element
134
- */
135
- TreeClasses["nodeLabel"] = "p-tree-node-label";
136
- /**
137
- * Class name of the node children element
138
- */
139
- TreeClasses["nodeChildren"] = "p-tree-node-children";
140
- /**
141
- * Class name of the empty message element
142
- */
143
- TreeClasses["emptyMessage"] = "p-tree-empty-message";
144
- /**
145
- * Class name of the drop point element
146
- */
147
- TreeClasses["dropPoint"] = "p-tree-node-droppoint";
86
+ (function(TreeClasses) {
87
+ TreeClasses["root"] = "p-tree";
88
+ TreeClasses["mask"] = "p-tree-mask";
89
+ TreeClasses["loadingIcon"] = "p-tree-loading-icon";
90
+ TreeClasses["pcFilterInput"] = "p-tree-filter-input";
91
+ TreeClasses["wrapper"] = "p-tree-root";
92
+ TreeClasses["rootChildren"] = "p-tree-root-children";
93
+ TreeClasses["node"] = "p-tree-node";
94
+ TreeClasses["nodeContent"] = "p-tree-node-content";
95
+ TreeClasses["nodeToggleButton"] = "p-tree-node-toggle-button";
96
+ TreeClasses["nodeToggleIcon"] = "p-tree-node-toggle-icon";
97
+ TreeClasses["nodeCheckbox"] = "p-tree-node-checkbox";
98
+ TreeClasses["nodeIcon"] = "p-tree-node-icon";
99
+ TreeClasses["nodeLabel"] = "p-tree-node-label";
100
+ TreeClasses["nodeChildren"] = "p-tree-node-children";
101
+ TreeClasses["emptyMessage"] = "p-tree-empty-message";
102
+ TreeClasses["dropPoint"] = "p-tree-node-droppoint";
148
103
  })(TreeClasses || (TreeClasses = {}));
149
-
150
- class UITreeNode extends BaseComponent {
151
- $pcTreeNode = inject(TREENODE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
152
- static ICON_CLASS = 'p-tree-node-icon ';
153
- rowNode = input(/* @ts-ignore */
154
- ...(ngDevMode ? [undefined, { debugName: "rowNode" }] : /* istanbul ignore next */ []));
155
- node = input(/* @ts-ignore */
156
- ...(ngDevMode ? [undefined, { debugName: "node" }] : /* istanbul ignore next */ []));
157
- parentNode = input(/* @ts-ignore */
158
- ...(ngDevMode ? [undefined, { debugName: "parentNode" }] : /* istanbul ignore next */ []));
159
- root = input(false, { ...(ngDevMode ? { debugName: "root" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
160
- index = input(/* @ts-ignore */
161
- ...(ngDevMode ? [undefined, { debugName: "index" }] : /* istanbul ignore next */ []));
162
- firstChild = input(false, { ...(ngDevMode ? { debugName: "firstChild" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
163
- lastChild = input(false, { ...(ngDevMode ? { debugName: "lastChild" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
164
- level = input(/* @ts-ignore */
165
- ...(ngDevMode ? [undefined, { debugName: "level" }] : /* istanbul ignore next */ []));
166
- indentation = input(/* @ts-ignore */
167
- ...(ngDevMode ? [undefined, { debugName: "indentation" }] : /* istanbul ignore next */ []));
168
- itemSize = input(/* @ts-ignore */
169
- ...(ngDevMode ? [undefined, { debugName: "itemSize" }] : /* istanbul ignore next */ []));
170
- loadingMode = input(/* @ts-ignore */
171
- ...(ngDevMode ? [undefined, { debugName: "loadingMode" }] : /* istanbul ignore next */ []));
172
- tree = inject(TREE_INSTANCE);
173
- timeout;
174
- isPrevDropPointHovered = signal(false, /* @ts-ignore */
175
- ...(ngDevMode ? [{ debugName: "isPrevDropPointHovered" }] : /* istanbul ignore next */ []));
176
- isNextDropPointHovered = signal(false, /* @ts-ignore */
177
- ...(ngDevMode ? [{ debugName: "isNextDropPointHovered" }] : /* istanbul ignore next */ []));
178
- isNodeDropHovered = signal(false, /* @ts-ignore */
179
- ...(ngDevMode ? [{ debugName: "isNodeDropHovered" }] : /* istanbul ignore next */ []));
180
- isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable(), /* @ts-ignore */
181
- ...(ngDevMode ? [{ debugName: "isPrevDropPointActive" }] : /* istanbul ignore next */ []));
182
- isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable(), /* @ts-ignore */
183
- ...(ngDevMode ? [{ debugName: "isNextDropPointActive" }] : /* istanbul ignore next */ []));
184
- isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), /* @ts-ignore */
185
- ...(ngDevMode ? [{ debugName: "isNodeDropActive" }] : /* istanbul ignore next */ []));
186
- dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0), /* @ts-ignore */
187
- ...(ngDevMode ? [{ debugName: "dropPosition" }] : /* istanbul ignore next */ []));
188
- get ariaSetSize() {
189
- return this.node()?.children?.length ?? 0;
190
- }
191
- get ariaExpanded() {
192
- return this.node()?.expanded;
193
- }
194
- ariaPosInSet = computed(() => (this.index() ?? 0) + 1, /* @ts-ignore */
195
- ...(ngDevMode ? [{ debugName: "ariaPosInSet" }] : /* istanbul ignore next */ []));
196
- ariaLevel = computed(() => (this.level() ?? 0) + 1, /* @ts-ignore */
197
- ...(ngDevMode ? [{ debugName: "ariaLevel" }] : /* istanbul ignore next */ []));
198
- nodeTabindex = computed(() => (this.index() === 0 ? 0 : -1), /* @ts-ignore */
199
- ...(ngDevMode ? [{ debugName: "nodeTabindex" }] : /* istanbul ignore next */ []));
200
- nodeContentPaddingLeft = computed(() => this.level() * this.indentation() + 'rem', /* @ts-ignore */
201
- ...(ngDevMode ? [{ debugName: "nodeContentPaddingLeft" }] : /* istanbul ignore next */ []));
202
- get hasNodeIcon() {
203
- return !!(this.node()?.icon || this.node()?.expandedIcon || this.node()?.collapsedIcon);
204
- }
205
- get showChildren() {
206
- return !this.tree.virtualScroll() && !!this.node()?.children && !!this.node()?.expanded;
207
- }
208
- get showLoadingSpinner() {
209
- return this.loadingMode() === 'icon' && !!this.node()?.loading;
210
- }
211
- checkboxVariant = computed(() => this.tree?.config.inputVariant() || 'outlined', /* @ts-ignore */
212
- ...(ngDevMode ? [{ debugName: "checkboxVariant" }] : /* istanbul ignore next */ []));
213
- get togglerIconContext() {
214
- return {
215
- $implicit: this.node()?.expanded,
216
- loading: this.node()?.loading
217
- };
218
- }
219
- get checkboxIconContext() {
220
- return {
221
- $implicit: this.isSelected(),
222
- partialSelected: this.node()?.partialSelected,
223
- class: this.cx('nodeCheckbox')
224
- };
225
- }
226
- _componentStyle = inject(TreeStyle);
227
- /**
228
- * Computed signal that reactively tracks selection state.
229
- */
230
- _selected = computed(() => {
231
- // Reading selection() makes this computed reactive to selection changes
232
- this.tree.selection();
233
- return this.tree.isSelected(this.node());
234
- }, /* @ts-ignore */
235
- ...(ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []));
236
- /**
237
- * Computed signal that reactively tracks context menu selection state.
238
- */
239
- _contextMenuSelected = computed(() => {
240
- const selection = this.tree.contextMenuSelection();
241
- const node = this.node();
242
- if (!selection || !node) {
243
- return false;
244
- }
245
- return selection === node || (selection.key && selection.key === node.key);
246
- }, /* @ts-ignore */
247
- ...(ngDevMode ? [{ debugName: "_contextMenuSelected" }] : /* istanbul ignore next */ []));
248
- get selected() {
249
- return this.tree.selectionMode() === 'single' || this.tree.selectionMode() === 'multiple' ? this._selected() : undefined;
250
- }
251
- get checked() {
252
- return this.tree.selectionMode() === 'checkbox' ? this._selected() : undefined;
253
- }
254
- get nodeClass() {
255
- return this.tree._componentStyle.classes.node({ instance: this });
256
- }
257
- get selectable() {
258
- return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;
259
- }
260
- get subNodes() {
261
- return this.node()?.parent ? this.node().parent.children : this.tree.value();
262
- }
263
- /** The node this row represents in the original value; when a filter is active the rendered node is a copy. */
264
- get originalNode() {
265
- const node = this.node();
266
- return node && this.tree.getOriginalNode(node);
267
- }
268
- /** Sibling list of this node within the original value; when a filter is active `subNodes` holds copies. */
269
- get originalSubNodes() {
270
- const parent = this.node()?.parent;
271
- return parent ? this.tree.getOriginalNode(parent).children : this.tree.value();
272
- }
273
- getPTOptions(key) {
274
- return this.ptm(key, {
275
- context: {
276
- node: this.node(),
277
- index: this.index(),
278
- expanded: this.node()?.expanded,
279
- selected: this.selected,
280
- checked: this.checked,
281
- partialChecked: this.node()?.partialSelected,
282
- leaf: this.isLeaf()
283
- }
284
- });
285
- }
286
- onInit() {
287
- this.node().parent = this.parentNode();
288
- const nativeElement = this.tree.el.nativeElement;
289
- const pDialogWrapper = nativeElement.closest('p-dialog');
290
- if (this.parentNode() && !pDialogWrapper) {
291
- this.setAllNodesTabIndexes();
292
- this.tree.syncNodeOption(this.node(), this.tree.value(), 'parent', this.tree.getNodeWithKey(this.parentNode().key, this.tree.value()));
293
- }
294
- }
295
- getIcon() {
296
- let icon;
297
- const node = this.node();
298
- if (node.icon)
299
- icon = node.icon;
300
- else
301
- icon = node.expanded && node.children && node.children?.length ? node.expandedIcon : node.collapsedIcon;
302
- return UITreeNode.ICON_CLASS + ' ' + icon + ' p-tree-node-icon';
303
- }
304
- isLeaf() {
305
- return this.tree.isNodeLeaf(this.node());
306
- }
307
- isSelected() {
308
- return this._selected();
309
- }
310
- isContextMenuSelected() {
311
- return this._contextMenuSelected();
312
- }
313
- isSameNode(event) {
314
- return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role="treeitem"]')));
315
- }
316
- isDraggable() {
317
- return this.tree.draggableNodes();
318
- }
319
- isDroppable() {
320
- return this.tree.droppableNodes() && this.tree.allowDrop(this.tree.dragNode, this.node(), this.tree.dragNodeScope);
321
- }
322
- isNodeDroppable() {
323
- return this.node()?.droppable !== false && this.isDroppable();
324
- }
325
- isNodeDraggable() {
326
- return this.node()?.draggable !== false && this.isDraggable();
327
- }
328
- toggle(event) {
329
- if (this.node().expanded)
330
- this.collapse(event);
331
- else
332
- this.expand(event);
333
- event.stopPropagation();
334
- }
335
- expand(event) {
336
- this.node().expanded = true;
337
- this.tree.setNodeCollapsed(this.node(), false);
338
- if (this.tree.virtualScroll()) {
339
- this.tree.updateSerializedValue();
340
- this.focusVirtualNode();
341
- }
342
- this.tree.onNodeExpand.emit({ originalEvent: event, node: this.node() });
343
- }
344
- collapse(event) {
345
- this.node().expanded = false;
346
- this.tree.setNodeCollapsed(this.node(), true);
347
- if (this.tree.virtualScroll()) {
348
- this.tree.updateSerializedValue();
349
- }
350
- this.tree.onNodeCollapse.emit({ originalEvent: event, node: this.node() });
351
- this.focusVirtualNode();
352
- }
353
- onNodeClick(event) {
354
- this.tree.onNodeClick(event, this.node());
355
- }
356
- onNodeKeydown(event) {
357
- if (event.key === 'Enter') {
358
- this.tree.onNodeClick(event, this.node());
359
- }
360
- }
361
- onNodeTouchEnd() {
362
- this.tree.onNodeTouchEnd();
363
- }
364
- onNodeRightClick(event) {
365
- this.tree.onNodeRightClick(event, this.node());
366
- }
367
- onNodeDblClick(event) {
368
- this.tree.onNodeDblClick(event, this.node());
369
- }
370
- /**
371
- * The drag state and drop position are taken as arguments (captured at drop time) since
372
- * `accept` may be invoked asynchronously, after `dragend` has cleared the drag state
373
- * and the drop point hover signals were reset.
374
- */
375
- insertNodeOnDrop(dragNode, dragNodeSubNodes, position) {
376
- // The drag state holds original nodes; resolve the drop side to originals as well so the
377
- // move is applied to the original value even when a filtered copy is rendered.
378
- const dropNode = this.originalNode;
379
- if (!dropNode || !dragNode || !dragNodeSubNodes) {
380
- return;
381
- }
382
- const subNodes = this.originalSubNodes || [];
383
- // With virtual scrolling the `index` input holds the position in the flattened list,
384
- // so resolve both positions against the actual sibling arrays instead.
385
- const dragNodeIndex = dragNodeSubNodes.indexOf(dragNode);
386
- const index = subNodes.indexOf(dropNode);
387
- const dropIndex = dragNodeSubNodes === subNodes ? (dragNodeIndex > index ? index : index - 1) : index;
388
- if (dragNodeIndex !== -1) {
389
- dragNodeSubNodes.splice(dragNodeIndex, 1);
390
- }
391
- if (position < 0) {
392
- // insert before a Node
393
- subNodes.splice(dropIndex, 0, dragNode);
394
- }
395
- else if (position > 0) {
396
- // insert after a Node
397
- subNodes.splice(dropIndex + 1, 0, dragNode);
398
- }
399
- else {
400
- // insert as child of a Node
401
- dropNode.children = dropNode.children || [];
402
- dropNode.children.push(dragNode);
403
- }
404
- this.tree.dragDropService.stopDrag({
405
- node: dragNode,
406
- subNodes,
407
- index: dragNodeIndex
408
- });
409
- }
410
- onNodeDrop(event) {
411
- event.preventDefault();
412
- event.stopPropagation();
413
- if (this.isDroppable()) {
414
- const { dragNode, dragNodeSubNodes } = this.tree;
415
- const position = this.dropPosition();
416
- const isValidDrop = position !== 0 || (position === 0 && this.isNodeDroppable());
417
- const dropPoint = position === 0 ? 'node' : 'between';
418
- if (isValidDrop) {
419
- if (this.tree.validateDrop()) {
420
- this.tree.onNodeDrop.emit({
421
- originalEvent: event,
422
- dragNode: dragNode,
423
- dropNode: this.originalNode,
424
- index: this.index(),
425
- dropPoint: dropPoint,
426
- accept: () => {
427
- this.insertNodeOnDrop(dragNode, dragNodeSubNodes, position);
428
- }
429
- });
430
- }
431
- else {
432
- this.insertNodeOnDrop(dragNode, dragNodeSubNodes, position);
433
- this.tree.onNodeDrop.emit({
434
- originalEvent: event,
435
- dragNode: dragNode,
436
- dropNode: this.originalNode,
437
- index: this.index(),
438
- dropPoint: dropPoint
439
- });
440
- }
441
- }
442
- }
443
- this.isPrevDropPointHovered.set(false);
444
- this.isNextDropPointHovered.set(false);
445
- this.isNodeDropHovered.set(false);
446
- }
447
- onNodeDragStart(event) {
448
- if (this.isNodeDraggable()) {
449
- event.dataTransfer.effectAllowed = 'all';
450
- event.dataTransfer?.setData('text', 'data');
451
- const target = event.currentTarget;
452
- const dragEl = target.cloneNode(true);
453
- const toggler = dragEl.querySelector('[data-pc-section="nodetogglebutton"]');
454
- const checkbox = dragEl.querySelector('[data-pc-name="pcnodecheckbox"]');
455
- target.setAttribute('data-p-dragging', 'true');
456
- dragEl.style.width = getOuterWidth(target) + 'px';
457
- dragEl.style.height = getOuterHeight(target) + 'px';
458
- dragEl.setAttribute('data-pc-section', 'drag-image');
459
- toggler.style.visibility = 'hidden';
460
- checkbox?.remove();
461
- document.body.appendChild(dragEl);
462
- event.dataTransfer?.setDragImage(dragEl, 0, 0);
463
- setTimeout(() => document.body.removeChild(dragEl), 0);
464
- this.tree.dragDropService.startDrag({
465
- tree: this,
466
- node: this.originalNode,
467
- subNodes: this.originalSubNodes,
468
- index: this.index(),
469
- scope: this.tree.draggableScope()
470
- });
471
- }
472
- else {
473
- event.preventDefault();
474
- }
475
- }
476
- onNodeDragOver(event) {
477
- if (this.isDroppable()) {
478
- event.dataTransfer.dropEffect = 'copy';
479
- const nodeElement = event.currentTarget;
480
- const rect = nodeElement.getBoundingClientRect();
481
- const y = event.clientY - parseInt(rect.top);
482
- this.isPrevDropPointHovered.set(false);
483
- this.isNextDropPointHovered.set(false);
484
- this.isNodeDropHovered.set(false);
485
- if (y < rect.height * 0.25) {
486
- this.isPrevDropPointHovered.set(true);
487
- }
488
- else if (y > rect.height * 0.75) {
489
- this.isNextDropPointHovered.set(true);
490
- }
491
- else if (this.isNodeDroppable()) {
492
- this.isNodeDropHovered.set(true);
493
- }
494
- }
495
- else {
496
- event.dataTransfer.dropEffect = 'none';
497
- }
498
- if (this.tree.droppableNodes()) {
499
- event.preventDefault();
500
- event.stopPropagation();
501
- }
502
- }
503
- onNodeDragLeave() {
504
- this.isPrevDropPointHovered.set(false);
505
- this.isNextDropPointHovered.set(false);
506
- this.isNodeDropHovered.set(false);
507
- }
508
- onNodeDragEnd(event) {
509
- event.currentTarget?.removeAttribute('data-p-dragging');
510
- this.tree.dragDropService.stopDrag({
511
- node: this.originalNode,
512
- subNodes: this.originalSubNodes,
513
- index: this.index()
514
- });
515
- }
516
- onKeyDown(event) {
517
- if (!this.isSameNode(event) || (this.tree.contextMenu() && this.tree.contextMenu().containerViewChild?.nativeElement.style.display === 'block')) {
518
- return;
519
- }
520
- switch (event.code) {
521
- //down arrow
522
- case 'ArrowDown':
523
- this.onArrowDown(event);
524
- break;
525
- //up arrow
526
- case 'ArrowUp':
527
- this.onArrowUp(event);
528
- break;
529
- //right arrow
530
- case 'ArrowRight':
531
- this.onArrowRight(event);
532
- break;
533
- //left arrow
534
- case 'ArrowLeft':
535
- this.onArrowLeft(event);
536
- break;
537
- //enter
538
- case 'Enter':
539
- case 'Space':
540
- case 'NumpadEnter':
541
- this.onEnter(event);
542
- break;
543
- //tab
544
- case 'Tab':
545
- this.setAllNodesTabIndexes();
546
- break;
547
- default:
548
- //no op
549
- break;
550
- }
551
- }
552
- onArrowUp(event) {
553
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target.parentElement;
554
- if (nodeElement?.previousElementSibling) {
555
- this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));
556
- }
557
- else {
558
- let parentNodeElement = this.getParentNodeElement(nodeElement);
559
- if (parentNodeElement) {
560
- this.focusRowChange(nodeElement, parentNodeElement);
561
- }
562
- }
563
- event.preventDefault();
564
- }
565
- onArrowDown(event) {
566
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target;
567
- const listElement = nodeElement?.children[1];
568
- if (listElement && listElement.children.length > 0) {
569
- this.focusRowChange(nodeElement, listElement.children[0]);
570
- }
571
- else {
572
- if (nodeElement?.parentElement?.nextElementSibling) {
573
- this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);
574
- }
575
- else {
576
- let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement);
577
- if (nextSiblingAncestor) {
578
- this.focusRowChange(nodeElement, nextSiblingAncestor);
579
- }
580
- }
581
- }
582
- event.preventDefault();
583
- }
584
- onArrowRight(event) {
585
- if (!this.node()?.expanded && !this.tree.isNodeLeaf(this.node())) {
586
- this.expand(event);
587
- event.currentTarget.tabIndex = -1;
588
- setTimeout(() => {
589
- this.onArrowDown(event);
590
- }, 1);
591
- }
592
- event.preventDefault();
593
- }
594
- onArrowLeft(event) {
595
- const nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role="treeitem"]') : event.target;
596
- if (this.level() === 0 && !this.node()?.expanded) {
597
- return false;
598
- }
599
- if (this.node()?.expanded) {
600
- this.collapse(event);
601
- return;
602
- }
603
- let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement);
604
- if (parentNodeElement) {
605
- this.focusRowChange(event.currentTarget, parentNodeElement);
606
- }
607
- event.preventDefault();
608
- }
609
- onEnter(event) {
610
- this.tree.onNodeClick(event, this.node());
611
- this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);
612
- event.preventDefault();
613
- }
614
- setAllNodesTabIndexes() {
615
- const nodes = find(this.tree.el.nativeElement, '[data-pc-section="node"]');
616
- const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
617
- [...nodes].forEach((node) => {
618
- node.tabIndex = -1;
619
- });
620
- if (hasSelectedNode) {
621
- const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');
622
- selectedNodes[0].tabIndex = 0;
623
- return;
624
- }
625
- if (nodes.length) {
626
- [...nodes][0].tabIndex = 0;
627
- }
628
- }
629
- setTabIndexForSelectionMode(event, nodeTouched) {
630
- if (this.tree.selectionMode() !== null) {
631
- const elements = [...find(this.tree.el.nativeElement, '[role="treeitem"]')];
632
- event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
633
- if (elements.every((element) => element.tabIndex === -1)) {
634
- elements[0].tabIndex = 0;
635
- }
636
- }
637
- }
638
- findNextSiblingOfAncestor(nodeElement) {
639
- let parentNodeElement = this.getParentNodeElement(nodeElement);
640
- if (parentNodeElement) {
641
- if (parentNodeElement.nextElementSibling)
642
- return parentNodeElement.nextElementSibling;
643
- else
644
- return this.findNextSiblingOfAncestor(parentNodeElement);
645
- }
646
- else {
647
- return null;
648
- }
649
- }
650
- findLastVisibleDescendant(nodeElement) {
651
- const listElement = Array.from(nodeElement.children).find((el) => el.getAttribute('data-pc-section') === 'node');
652
- const childrenListElement = listElement?.children[1];
653
- if (childrenListElement && childrenListElement.children.length > 0) {
654
- const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
655
- return this.findLastVisibleDescendant(lastChildElement);
656
- }
657
- else {
658
- return nodeElement;
659
- }
660
- }
661
- getParentNodeElement(nodeElement) {
662
- const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;
663
- return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;
664
- }
665
- focusNode(element) {
666
- element.children[0].focus();
667
- }
668
- focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {
669
- firstFocusableRow.tabIndex = '-1';
670
- currentFocusedRow.children[0].tabIndex = '0';
671
- this.focusNode(lastVisibleDescendant || currentFocusedRow);
672
- }
673
- focusVirtualNode() {
674
- this.timeout = setTimeout(() => {
675
- let node = findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id="${this.node()?.key ?? this.node()?.data}"]`);
676
- focus(node);
677
- }, 1);
678
- }
679
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: UITreeNode, deps: null, target: i0.ɵɵFactoryTarget.Component });
680
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: UITreeNode, isStandalone: true, selector: "p-treenode", inputs: { rowNode: { classPropertyName: "rowNode", publicName: "rowNode", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, firstChild: { classPropertyName: "firstChild", publicName: "firstChild", isSignal: true, isRequired: false, transformFunction: null }, lastChild: { classPropertyName: "lastChild", publicName: "lastChild", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }], usesInheritance: true, ngImport: i0, template: `
104
+ const TREE_INSTANCE = new InjectionToken("TREE_INSTANCE");
105
+ const TREENODE_INSTANCE = new InjectionToken("TREENODE_INSTANCE");
106
+ var UITreeNode = class UITreeNode extends BaseComponent {
107
+ static ICON_CLASS = "p-tree-node-icon ";
108
+ $pcTreeNode = inject(TREENODE_INSTANCE, {
109
+ optional: true,
110
+ skipSelf: true
111
+ }) ?? void 0;
112
+ rowNode = input(...ngDevMode ? [void 0, { debugName: "rowNode" }] : /* istanbul ignore next */ []);
113
+ node = input(...ngDevMode ? [void 0, { debugName: "node" }] : /* istanbul ignore next */ []);
114
+ parentNode = input(...ngDevMode ? [void 0, { debugName: "parentNode" }] : /* istanbul ignore next */ []);
115
+ root = input(false, {
116
+ ...ngDevMode ? { debugName: "root" } : /* istanbul ignore next */ {},
117
+ transform: booleanAttribute
118
+ });
119
+ index = input(...ngDevMode ? [void 0, { debugName: "index" }] : /* istanbul ignore next */ []);
120
+ firstChild = input(false, {
121
+ ...ngDevMode ? { debugName: "firstChild" } : /* istanbul ignore next */ {},
122
+ transform: booleanAttribute
123
+ });
124
+ lastChild = input(false, {
125
+ ...ngDevMode ? { debugName: "lastChild" } : /* istanbul ignore next */ {},
126
+ transform: booleanAttribute
127
+ });
128
+ level = input(...ngDevMode ? [void 0, { debugName: "level" }] : /* istanbul ignore next */ []);
129
+ indentation = input(...ngDevMode ? [void 0, { debugName: "indentation" }] : /* istanbul ignore next */ []);
130
+ itemSize = input(...ngDevMode ? [void 0, { debugName: "itemSize" }] : /* istanbul ignore next */ []);
131
+ loadingMode = input(...ngDevMode ? [void 0, { debugName: "loadingMode" }] : /* istanbul ignore next */ []);
132
+ tree = inject(TREE_INSTANCE);
133
+ timeout;
134
+ isPrevDropPointHovered = signal(false, ...ngDevMode ? [{ debugName: "isPrevDropPointHovered" }] : /* istanbul ignore next */ []);
135
+ isNextDropPointHovered = signal(false, ...ngDevMode ? [{ debugName: "isNextDropPointHovered" }] : /* istanbul ignore next */ []);
136
+ isNodeDropHovered = signal(false, ...ngDevMode ? [{ debugName: "isNodeDropHovered" }] : /* istanbul ignore next */ []);
137
+ isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable(), ...ngDevMode ? [{ debugName: "isPrevDropPointActive" }] : /* istanbul ignore next */ []);
138
+ isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable(), ...ngDevMode ? [{ debugName: "isNextDropPointActive" }] : /* istanbul ignore next */ []);
139
+ isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable(), ...ngDevMode ? [{ debugName: "isNodeDropActive" }] : /* istanbul ignore next */ []);
140
+ dropPosition = computed(() => this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0, ...ngDevMode ? [{ debugName: "dropPosition" }] : /* istanbul ignore next */ []);
141
+ get ariaSetSize() {
142
+ return this.node()?.children?.length ?? 0;
143
+ }
144
+ get ariaExpanded() {
145
+ return this.node()?.expanded;
146
+ }
147
+ ariaPosInSet = computed(() => (this.index() ?? 0) + 1, ...ngDevMode ? [{ debugName: "ariaPosInSet" }] : /* istanbul ignore next */ []);
148
+ ariaLevel = computed(() => (this.level() ?? 0) + 1, ...ngDevMode ? [{ debugName: "ariaLevel" }] : /* istanbul ignore next */ []);
149
+ nodeTabindex = computed(() => this.index() === 0 ? 0 : -1, ...ngDevMode ? [{ debugName: "nodeTabindex" }] : /* istanbul ignore next */ []);
150
+ nodeContentPaddingLeft = computed(() => this.level() * this.indentation() + "rem", ...ngDevMode ? [{ debugName: "nodeContentPaddingLeft" }] : /* istanbul ignore next */ []);
151
+ get hasNodeIcon() {
152
+ return !!(this.node()?.icon || this.node()?.expandedIcon || this.node()?.collapsedIcon);
153
+ }
154
+ get showChildren() {
155
+ return !this.tree.virtualScroll() && !!this.node()?.children && !!this.node()?.expanded;
156
+ }
157
+ get showLoadingSpinner() {
158
+ return this.loadingMode() === "icon" && !!this.node()?.loading;
159
+ }
160
+ checkboxVariant = computed(() => this.tree?.config.inputVariant() || "outlined", ...ngDevMode ? [{ debugName: "checkboxVariant" }] : /* istanbul ignore next */ []);
161
+ get togglerIconContext() {
162
+ return {
163
+ $implicit: this.node()?.expanded,
164
+ loading: this.node()?.loading
165
+ };
166
+ }
167
+ get checkboxIconContext() {
168
+ return {
169
+ $implicit: this.isSelected(),
170
+ partialSelected: this.node()?.partialSelected,
171
+ class: this.cx("nodeCheckbox")
172
+ };
173
+ }
174
+ _componentStyle = inject(TreeStyle);
175
+ _selected = computed(() => {
176
+ this.tree.selection();
177
+ return this.tree.isSelected(this.node());
178
+ }, ...ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []);
179
+ _contextMenuSelected = computed(() => {
180
+ const selection = this.tree.contextMenuSelection();
181
+ const node = this.node();
182
+ if (!selection || !node) return false;
183
+ return selection === node || selection.key && selection.key === node.key;
184
+ }, ...ngDevMode ? [{ debugName: "_contextMenuSelected" }] : /* istanbul ignore next */ []);
185
+ get selected() {
186
+ return this.tree.selectionMode() === "single" || this.tree.selectionMode() === "multiple" ? this._selected() : void 0;
187
+ }
188
+ get checked() {
189
+ return this.tree.selectionMode() === "checkbox" ? this._selected() : void 0;
190
+ }
191
+ get nodeClass() {
192
+ return this.tree._componentStyle.classes.node({ instance: this });
193
+ }
194
+ get selectable() {
195
+ return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;
196
+ }
197
+ get subNodes() {
198
+ return this.node()?.parent ? this.node().parent.children : this.tree.value();
199
+ }
200
+ get originalNode() {
201
+ const node = this.node();
202
+ return node && this.tree.getOriginalNode(node);
203
+ }
204
+ get originalSubNodes() {
205
+ const parent = this.node()?.parent;
206
+ return parent ? this.tree.getOriginalNode(parent).children : this.tree.value();
207
+ }
208
+ getPTOptions(key) {
209
+ return this.ptm(key, { context: {
210
+ node: this.node(),
211
+ index: this.index(),
212
+ expanded: this.node()?.expanded,
213
+ selected: this.selected,
214
+ checked: this.checked,
215
+ partialChecked: this.node()?.partialSelected,
216
+ leaf: this.isLeaf()
217
+ } });
218
+ }
219
+ onInit() {
220
+ this.node().parent = this.parentNode();
221
+ const pDialogWrapper = this.tree.el.nativeElement.closest("p-dialog");
222
+ if (this.parentNode() && !pDialogWrapper) {
223
+ this.setAllNodesTabIndexes();
224
+ this.tree.syncNodeOption(this.node(), this.tree.value(), "parent", this.tree.getNodeWithKey(this.parentNode().key, this.tree.value()));
225
+ }
226
+ }
227
+ getIcon() {
228
+ let icon;
229
+ const node = this.node();
230
+ if (node.icon) icon = node.icon;
231
+ else icon = node.expanded && node.children && node.children?.length ? node.expandedIcon : 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) this.collapse(event);
260
+ else this.expand(event);
261
+ event.stopPropagation();
262
+ }
263
+ expand(event) {
264
+ this.node().expanded = true;
265
+ this.tree.setNodeCollapsed(this.node(), false);
266
+ if (this.tree.virtualScroll()) {
267
+ this.tree.updateSerializedValue();
268
+ this.focusVirtualNode();
269
+ }
270
+ this.tree.onNodeExpand.emit({
271
+ originalEvent: event,
272
+ node: this.node()
273
+ });
274
+ }
275
+ collapse(event) {
276
+ this.node().expanded = false;
277
+ this.tree.setNodeCollapsed(this.node(), true);
278
+ if (this.tree.virtualScroll()) this.tree.updateSerializedValue();
279
+ this.tree.onNodeCollapse.emit({
280
+ originalEvent: event,
281
+ node: this.node()
282
+ });
283
+ this.focusVirtualNode();
284
+ }
285
+ onNodeClick(event) {
286
+ this.tree.onNodeClick(event, this.node());
287
+ }
288
+ onNodeKeydown(event) {
289
+ if (event.key === "Enter") this.tree.onNodeClick(event, this.node());
290
+ }
291
+ onNodeTouchEnd() {
292
+ this.tree.onNodeTouchEnd();
293
+ }
294
+ onNodeRightClick(event) {
295
+ this.tree.onNodeRightClick(event, this.node());
296
+ }
297
+ onNodeDblClick(event) {
298
+ this.tree.onNodeDblClick(event, this.node());
299
+ }
300
+ insertNodeOnDrop(dragNode, dragNodeSubNodes, position) {
301
+ const dropNode = this.originalNode;
302
+ if (!dropNode || !dragNode || !dragNodeSubNodes) return;
303
+ const subNodes = this.originalSubNodes || [];
304
+ const dragNodeIndex = dragNodeSubNodes.indexOf(dragNode);
305
+ const index = subNodes.indexOf(dropNode);
306
+ const dropIndex = dragNodeSubNodes === subNodes ? dragNodeIndex > index ? index : index - 1 : index;
307
+ if (dragNodeIndex !== -1) dragNodeSubNodes.splice(dragNodeIndex, 1);
308
+ if (position < 0) subNodes.splice(dropIndex, 0, dragNode);
309
+ else if (position > 0) subNodes.splice(dropIndex + 1, 0, dragNode);
310
+ else {
311
+ dropNode.children = dropNode.children || [];
312
+ dropNode.children.push(dragNode);
313
+ }
314
+ this.tree.dragDropService.stopDrag({
315
+ node: dragNode,
316
+ subNodes,
317
+ index: dragNodeIndex
318
+ });
319
+ }
320
+ onNodeDrop(event) {
321
+ event.preventDefault();
322
+ event.stopPropagation();
323
+ if (this.isDroppable()) {
324
+ const { dragNode, dragNodeSubNodes } = this.tree;
325
+ const position = this.dropPosition();
326
+ const isValidDrop = position !== 0 || position === 0 && this.isNodeDroppable();
327
+ const dropPoint = position === 0 ? "node" : "between";
328
+ if (isValidDrop) {
329
+ if (this.tree.validateDrop()) this.tree.onNodeDrop.emit({
330
+ originalEvent: event,
331
+ dragNode,
332
+ dropNode: this.originalNode,
333
+ index: this.index(),
334
+ dropPoint,
335
+ accept: () => {
336
+ this.insertNodeOnDrop(dragNode, dragNodeSubNodes, position);
337
+ }
338
+ });
339
+ else {
340
+ this.insertNodeOnDrop(dragNode, dragNodeSubNodes, position);
341
+ this.tree.onNodeDrop.emit({
342
+ originalEvent: event,
343
+ dragNode,
344
+ dropNode: this.originalNode,
345
+ index: this.index(),
346
+ dropPoint
347
+ });
348
+ }
349
+ }
350
+ }
351
+ this.isPrevDropPointHovered.set(false);
352
+ this.isNextDropPointHovered.set(false);
353
+ this.isNodeDropHovered.set(false);
354
+ }
355
+ onNodeDragStart(event) {
356
+ if (this.isNodeDraggable()) {
357
+ event.dataTransfer.effectAllowed = "all";
358
+ event.dataTransfer?.setData("text", "data");
359
+ const target = event.currentTarget;
360
+ const dragEl = target.cloneNode(true);
361
+ const toggler = dragEl.querySelector("[data-pc-section=\"nodetogglebutton\"]");
362
+ const checkbox = dragEl.querySelector("[data-pc-name=\"pcnodecheckbox\"]");
363
+ target.setAttribute("data-p-dragging", "true");
364
+ dragEl.style.width = getOuterWidth(target) + "px";
365
+ dragEl.style.height = getOuterHeight(target) + "px";
366
+ dragEl.setAttribute("data-pc-section", "drag-image");
367
+ toggler.style.visibility = "hidden";
368
+ checkbox?.remove();
369
+ document.body.appendChild(dragEl);
370
+ event.dataTransfer?.setDragImage(dragEl, 0, 0);
371
+ setTimeout(() => document.body.removeChild(dragEl), 0);
372
+ this.tree.dragDropService.startDrag({
373
+ tree: this,
374
+ node: this.originalNode,
375
+ subNodes: this.originalSubNodes,
376
+ index: this.index(),
377
+ scope: this.tree.draggableScope()
378
+ });
379
+ } else event.preventDefault();
380
+ }
381
+ onNodeDragOver(event) {
382
+ if (this.isDroppable()) {
383
+ event.dataTransfer.dropEffect = "copy";
384
+ const rect = event.currentTarget.getBoundingClientRect();
385
+ const y = event.clientY - parseInt(rect.top);
386
+ this.isPrevDropPointHovered.set(false);
387
+ this.isNextDropPointHovered.set(false);
388
+ this.isNodeDropHovered.set(false);
389
+ if (y < rect.height * .25) this.isPrevDropPointHovered.set(true);
390
+ else if (y > rect.height * .75) this.isNextDropPointHovered.set(true);
391
+ else if (this.isNodeDroppable()) this.isNodeDropHovered.set(true);
392
+ } else event.dataTransfer.dropEffect = "none";
393
+ if (this.tree.droppableNodes()) {
394
+ event.preventDefault();
395
+ event.stopPropagation();
396
+ }
397
+ }
398
+ onNodeDragLeave() {
399
+ this.isPrevDropPointHovered.set(false);
400
+ this.isNextDropPointHovered.set(false);
401
+ this.isNodeDropHovered.set(false);
402
+ }
403
+ onNodeDragEnd(event) {
404
+ event.currentTarget?.removeAttribute("data-p-dragging");
405
+ this.tree.dragDropService.stopDrag({
406
+ node: this.originalNode,
407
+ subNodes: this.originalSubNodes,
408
+ index: this.index()
409
+ });
410
+ }
411
+ onKeyDown(event) {
412
+ if (!this.isSameNode(event) || this.tree.contextMenu() && this.tree.contextMenu().containerViewChild?.nativeElement.style.display === "block") return;
413
+ switch (event.code) {
414
+ case "ArrowDown":
415
+ this.onArrowDown(event);
416
+ break;
417
+ case "ArrowUp":
418
+ this.onArrowUp(event);
419
+ break;
420
+ case "ArrowRight":
421
+ this.onArrowRight(event);
422
+ break;
423
+ case "ArrowLeft":
424
+ this.onArrowLeft(event);
425
+ break;
426
+ case "Enter":
427
+ case "Space":
428
+ case "NumpadEnter":
429
+ this.onEnter(event);
430
+ break;
431
+ case "Tab": this.setAllNodesTabIndexes();
432
+ }
433
+ }
434
+ onArrowUp(event) {
435
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target.parentElement;
436
+ if (nodeElement?.previousElementSibling) this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));
437
+ else {
438
+ let parentNodeElement = this.getParentNodeElement(nodeElement);
439
+ if (parentNodeElement) this.focusRowChange(nodeElement, parentNodeElement);
440
+ }
441
+ event.preventDefault();
442
+ }
443
+ onArrowDown(event) {
444
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target;
445
+ const listElement = nodeElement?.children[1];
446
+ if (listElement && listElement.children.length > 0) this.focusRowChange(nodeElement, listElement.children[0]);
447
+ else if (nodeElement?.parentElement?.nextElementSibling) this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);
448
+ else {
449
+ let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement);
450
+ if (nextSiblingAncestor) this.focusRowChange(nodeElement, nextSiblingAncestor);
451
+ }
452
+ event.preventDefault();
453
+ }
454
+ onArrowRight(event) {
455
+ if (!this.node()?.expanded && !this.tree.isNodeLeaf(this.node())) {
456
+ this.expand(event);
457
+ event.currentTarget.tabIndex = -1;
458
+ setTimeout(() => {
459
+ this.onArrowDown(event);
460
+ }, 1);
461
+ }
462
+ event.preventDefault();
463
+ }
464
+ onArrowLeft(event) {
465
+ const nodeElement = event.target.getAttribute("data-pc-section") === "nodetogglebutton" ? event.target.closest("[role=\"treeitem\"]") : event.target;
466
+ if (this.level() === 0 && !this.node()?.expanded) return false;
467
+ if (this.node()?.expanded) {
468
+ this.collapse(event);
469
+ return;
470
+ }
471
+ let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement);
472
+ if (parentNodeElement) this.focusRowChange(event.currentTarget, parentNodeElement);
473
+ event.preventDefault();
474
+ }
475
+ onEnter(event) {
476
+ this.tree.onNodeClick(event, this.node());
477
+ this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);
478
+ event.preventDefault();
479
+ }
480
+ setAllNodesTabIndexes() {
481
+ const nodes = find(this.tree.el.nativeElement, "[data-pc-section=\"node\"]");
482
+ const hasSelectedNode = [...nodes].some((node) => node.getAttribute("aria-selected") === "true" || node.getAttribute("aria-checked") === "true");
483
+ [...nodes].forEach((node) => {
484
+ node.tabIndex = -1;
485
+ });
486
+ if (hasSelectedNode) {
487
+ const selectedNodes = [...nodes].filter((node) => node.getAttribute("aria-selected") === "true" || node.getAttribute("aria-checked") === "true");
488
+ selectedNodes[0].tabIndex = 0;
489
+ return;
490
+ }
491
+ if (nodes.length) [...nodes][0].tabIndex = 0;
492
+ }
493
+ setTabIndexForSelectionMode(event, nodeTouched) {
494
+ if (this.tree.selectionMode() !== null) {
495
+ const elements = [...find(this.tree.el.nativeElement, "[role=\"treeitem\"]")];
496
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
497
+ if (elements.every((element) => element.tabIndex === -1)) elements[0].tabIndex = 0;
498
+ }
499
+ }
500
+ findNextSiblingOfAncestor(nodeElement) {
501
+ let parentNodeElement = this.getParentNodeElement(nodeElement);
502
+ if (parentNodeElement) {
503
+ if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;
504
+ else return this.findNextSiblingOfAncestor(parentNodeElement);
505
+ } else return null;
506
+ }
507
+ findLastVisibleDescendant(nodeElement) {
508
+ const childrenListElement = Array.from(nodeElement.children).find((el) => el.getAttribute("data-pc-section") === "node")?.children[1];
509
+ if (childrenListElement && childrenListElement.children.length > 0) {
510
+ const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];
511
+ return this.findLastVisibleDescendant(lastChildElement);
512
+ } else return nodeElement;
513
+ }
514
+ getParentNodeElement(nodeElement) {
515
+ const parentNodeElement = nodeElement?.parentElement?.parentElement?.parentElement;
516
+ return parentNodeElement?.tagName === "P-TREENODE" ? parentNodeElement : null;
517
+ }
518
+ focusNode(element) {
519
+ element.children[0].focus();
520
+ }
521
+ focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {
522
+ firstFocusableRow.tabIndex = "-1";
523
+ currentFocusedRow.children[0].tabIndex = "0";
524
+ this.focusNode(lastVisibleDescendant || currentFocusedRow);
525
+ }
526
+ focusVirtualNode() {
527
+ this.timeout = setTimeout(() => {
528
+ let node = findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id="${this.node()?.key ?? this.node()?.data}"]`);
529
+ focus(node);
530
+ }, 1);
531
+ }
532
+ static ɵfac = i0.ɵɵngDeclareFactory({
533
+ minVersion: "12.0.0",
534
+ version: "22.2.0",
535
+ ngImport: i0,
536
+ type: UITreeNode,
537
+ deps: null,
538
+ target: i0.ɵɵFactoryTarget.Component
539
+ });
540
+ static ɵcmp = i0.ɵɵngDeclareComponent({
541
+ minVersion: "17.0.0",
542
+ version: "22.2.0",
543
+ type: UITreeNode,
544
+ isStandalone: true,
545
+ selector: "p-treenode",
546
+ inputs: {
547
+ rowNode: {
548
+ classPropertyName: "rowNode",
549
+ publicName: "rowNode",
550
+ isSignal: true,
551
+ isRequired: false,
552
+ transformFunction: null
553
+ },
554
+ node: {
555
+ classPropertyName: "node",
556
+ publicName: "node",
557
+ isSignal: true,
558
+ isRequired: false,
559
+ transformFunction: null
560
+ },
561
+ parentNode: {
562
+ classPropertyName: "parentNode",
563
+ publicName: "parentNode",
564
+ isSignal: true,
565
+ isRequired: false,
566
+ transformFunction: null
567
+ },
568
+ root: {
569
+ classPropertyName: "root",
570
+ publicName: "root",
571
+ isSignal: true,
572
+ isRequired: false,
573
+ transformFunction: null
574
+ },
575
+ index: {
576
+ classPropertyName: "index",
577
+ publicName: "index",
578
+ isSignal: true,
579
+ isRequired: false,
580
+ transformFunction: null
581
+ },
582
+ firstChild: {
583
+ classPropertyName: "firstChild",
584
+ publicName: "firstChild",
585
+ isSignal: true,
586
+ isRequired: false,
587
+ transformFunction: null
588
+ },
589
+ lastChild: {
590
+ classPropertyName: "lastChild",
591
+ publicName: "lastChild",
592
+ isSignal: true,
593
+ isRequired: false,
594
+ transformFunction: null
595
+ },
596
+ level: {
597
+ classPropertyName: "level",
598
+ publicName: "level",
599
+ isSignal: true,
600
+ isRequired: false,
601
+ transformFunction: null
602
+ },
603
+ indentation: {
604
+ classPropertyName: "indentation",
605
+ publicName: "indentation",
606
+ isSignal: true,
607
+ isRequired: false,
608
+ transformFunction: null
609
+ },
610
+ itemSize: {
611
+ classPropertyName: "itemSize",
612
+ publicName: "itemSize",
613
+ isSignal: true,
614
+ isRequired: false,
615
+ transformFunction: null
616
+ },
617
+ loadingMode: {
618
+ classPropertyName: "loadingMode",
619
+ publicName: "loadingMode",
620
+ isSignal: true,
621
+ isRequired: false,
622
+ transformFunction: null
623
+ }
624
+ },
625
+ providers: [
626
+ TreeStyle,
627
+ {
628
+ provide: TREENODE_INSTANCE,
629
+ useExisting: UITreeNode
630
+ },
631
+ {
632
+ provide: PARENT_INSTANCE,
633
+ useExisting: UITreeNode
634
+ }
635
+ ],
636
+ usesInheritance: true,
637
+ ngImport: i0,
638
+ template: `
681
639
  @if (node()) {
682
640
  <li
683
641
  [class]="cn(cx('node'), node()!.styleClass)"
@@ -735,7 +693,7 @@ class UITreeNode extends BaseComponent {
735
693
  }
736
694
  </button>
737
695
 
738
- @if (tree.selectionMode() == 'checkbox') {
696
+ @if (tree.selectionMode() === 'checkbox') {
739
697
  <p-checkbox
740
698
  [ngModel]="isSelected()"
741
699
  [class]="cx('nodeCheckbox')"
@@ -794,16 +752,141 @@ class UITreeNode extends BaseComponent {
794
752
  }
795
753
  </li>
796
754
  }
797
- `, isInline: true, dependencies: [{ kind: "component", type: UITreeNode, selector: "p-treenode", inputs: ["rowNode", "node", "parentNode", "root", "index", "firstChild", "lastChild", "level", "indentation", "itemSize", "loadingMode"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ChevronRight, selector: "svg[data-p-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronDown, selector: "svg[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: Spinner, selector: "svg[data-p-icon=\"spinner\"]" }, { kind: "directive", type: Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
798
- }
799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: UITreeNode, decorators: [{
800
- type: Component,
801
- args: [{
802
- selector: 'p-treenode',
803
- standalone: true,
804
- imports: [NgTemplateOutlet, Ripple, Checkbox, FormsModule, ChevronRight, ChevronDown, Spinner, Bind],
805
- changeDetection: ChangeDetectionStrategy.OnPush,
806
- template: `
755
+ `,
756
+ isInline: true,
757
+ dependencies: [
758
+ {
759
+ kind: "component",
760
+ type: UITreeNode,
761
+ selector: "p-treenode",
762
+ inputs: [
763
+ "rowNode",
764
+ "node",
765
+ "parentNode",
766
+ "root",
767
+ "index",
768
+ "firstChild",
769
+ "lastChild",
770
+ "level",
771
+ "indentation",
772
+ "itemSize",
773
+ "loadingMode"
774
+ ]
775
+ },
776
+ {
777
+ kind: "directive",
778
+ type: NgTemplateOutlet,
779
+ selector: "[ngTemplateOutlet]",
780
+ inputs: [
781
+ "ngTemplateOutletContext",
782
+ "ngTemplateOutlet",
783
+ "ngTemplateOutletInjector"
784
+ ]
785
+ },
786
+ {
787
+ kind: "directive",
788
+ type: Ripple,
789
+ selector: "[pRipple]"
790
+ },
791
+ {
792
+ kind: "component",
793
+ type: Checkbox,
794
+ selector: "p-checkbox, p-check-box",
795
+ inputs: [
796
+ "value",
797
+ "binary",
798
+ "ariaLabelledBy",
799
+ "ariaLabel",
800
+ "tabindex",
801
+ "inputId",
802
+ "inputStyle",
803
+ "inputClass",
804
+ "indeterminate",
805
+ "formControl",
806
+ "checkboxIcon",
807
+ "readonly",
808
+ "autofocus",
809
+ "trueValue",
810
+ "falseValue",
811
+ "variant",
812
+ "size"
813
+ ],
814
+ outputs: [
815
+ "onChange",
816
+ "onFocus",
817
+ "onBlur"
818
+ ]
819
+ },
820
+ {
821
+ kind: "ngmodule",
822
+ type: FormsModule
823
+ },
824
+ {
825
+ kind: "directive",
826
+ type: i1$1.NgControlStatus,
827
+ selector: "[formControlName],[ngModel],[formControl]"
828
+ },
829
+ {
830
+ kind: "directive",
831
+ type: i1$1.NgModel,
832
+ selector: "[ngModel]:not([formControlName]):not([formControl])",
833
+ inputs: [
834
+ "name",
835
+ "disabled",
836
+ "ngModel",
837
+ "ngModelOptions"
838
+ ],
839
+ outputs: ["ngModelChange"],
840
+ exportAs: ["ngModel"]
841
+ },
842
+ {
843
+ kind: "component",
844
+ type: ChevronRight,
845
+ selector: "svg[data-p-icon=\"chevron-right\"]"
846
+ },
847
+ {
848
+ kind: "component",
849
+ type: ChevronDown,
850
+ selector: "svg[data-p-icon=\"chevron-down\"]"
851
+ },
852
+ {
853
+ kind: "component",
854
+ type: Spinner,
855
+ selector: "svg[data-p-icon=\"spinner\"]"
856
+ },
857
+ {
858
+ kind: "directive",
859
+ type: Bind,
860
+ selector: "[pBind]",
861
+ inputs: ["pBind"]
862
+ }
863
+ ],
864
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
865
+ encapsulation: i0.ViewEncapsulation.None
866
+ });
867
+ };
868
+ i0.ɵɵngDeclareClassMetadata({
869
+ minVersion: "12.0.0",
870
+ version: "22.2.0",
871
+ ngImport: i0,
872
+ type: UITreeNode,
873
+ decorators: [{
874
+ type: Component,
875
+ args: [{
876
+ selector: "p-treenode",
877
+ standalone: true,
878
+ imports: [
879
+ NgTemplateOutlet,
880
+ Ripple,
881
+ Checkbox,
882
+ FormsModule,
883
+ ChevronRight,
884
+ ChevronDown,
885
+ Spinner,
886
+ Bind
887
+ ],
888
+ changeDetection: ChangeDetectionStrategy.OnPush,
889
+ template: `
807
890
  @if (node()) {
808
891
  <li
809
892
  [class]="cn(cx('node'), node()!.styleClass)"
@@ -861,7 +944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
861
944
  }
862
945
  </button>
863
946
 
864
- @if (tree.selectionMode() == 'checkbox') {
947
+ @if (tree.selectionMode() === 'checkbox') {
865
948
  <p-checkbox
866
949
  [ngModel]="isSelected()"
867
950
  [class]="cx('nodeCheckbox')"
@@ -921,1165 +1004,1258 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
921
1004
  </li>
922
1005
  }
923
1006
  `,
924
- encapsulation: ViewEncapsulation.None,
925
- providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]
926
- }]
927
- }], propDecorators: { rowNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowNode", required: false }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: false }] }], parentNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentNode", required: false }] }], root: [{ type: i0.Input, args: [{ isSignal: true, alias: "root", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }], firstChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstChild", required: false }] }], lastChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastChild", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], indentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentation", required: false }] }], itemSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemSize", required: false }] }], loadingMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMode", required: false }] }] } });
928
-
929
- /**
930
- * Tree is used to display hierarchical data.
931
- * @group Components
932
- */
933
- class Tree extends BaseComponent {
934
- componentName = 'Tree';
935
- _destroyed = false;
936
- bindDirectiveInstance = inject(Bind, { self: true });
937
- $pcTree = inject(TREE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
938
- onDestroy() {
939
- this._destroyed = true;
940
- }
941
- onAfterViewChecked() {
942
- this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
943
- }
944
- /**
945
- * An array of treenodes.
946
- * @group Props
947
- */
948
- value = input(/* @ts-ignore */
949
- ...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
950
- /**
951
- * Defines the selection mode.
952
- * @group Props
953
- */
954
- selectionMode = input(/* @ts-ignore */
955
- ...(ngDevMode ? [undefined, { debugName: "selectionMode" }] : /* istanbul ignore next */ []));
956
- /**
957
- * Loading mode display.
958
- * @group Props
959
- */
960
- loadingMode = input('mask', /* @ts-ignore */
961
- ...(ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []));
962
- /**
963
- * A single treenode instance or an array to refer to the selections.
964
- * @deprecated since v22, use `selectionKeys` instead for key-based selection state.
965
- * @group Props
966
- */
967
- selection = model(null, /* @ts-ignore */
968
- ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
969
- /**
970
- * A map of node keys (by `TreeNode.key`) whose value is `true` for collapsed nodes. Two-way bindable.
971
- * When provided it controls expansion (a node is expanded unless its key maps to `true`); leave it
972
- * unset to keep driving expansion from each node's `expanded` flag (default, non-breaking).
973
- * @group Props
974
- */
975
- collapsedKeys = model(null, /* @ts-ignore */
976
- ...(ngDevMode ? [{ debugName: "collapsedKeys" }] : /* istanbul ignore next */ []));
977
- /**
978
- * A map of node keys (by `TreeNode.key`) describing the selection state. Two-way bindable.
979
- * For single/multiple selection a key maps to `true`; for checkbox selection it maps to
980
- * `{ checked, partialChecked }`. When provided it is kept in sync with `selection`; leave it unset
981
- * to keep using the node-reference based `selection` model (default, non-breaking).
982
- * @group Props
983
- */
984
- selectionKeys = model(null, /* @ts-ignore */
985
- ...(ngDevMode ? [{ debugName: "selectionKeys" }] : /* istanbul ignore next */ []));
986
- /**
987
- * Context menu instance.
988
- * @group Props
989
- */
990
- contextMenu = input(/* @ts-ignore */
991
- ...(ngDevMode ? [undefined, { debugName: "contextMenu" }] : /* istanbul ignore next */ []));
992
- /**
993
- * Selected node with a context menu.
994
- * @group Props
995
- */
996
- contextMenuSelection = model(null, /* @ts-ignore */
997
- ...(ngDevMode ? [{ debugName: "contextMenuSelection" }] : /* istanbul ignore next */ []));
998
- /**
999
- * Scope of the draggable nodes to match a droppableScope.
1000
- * @group Props
1001
- */
1002
- draggableScope = input(/* @ts-ignore */
1003
- ...(ngDevMode ? [undefined, { debugName: "draggableScope" }] : /* istanbul ignore next */ []));
1004
- /**
1005
- * Scope of the droppable nodes to match a draggableScope.
1006
- * @group Props
1007
- */
1008
- droppableScope = input(/* @ts-ignore */
1009
- ...(ngDevMode ? [undefined, { debugName: "droppableScope" }] : /* istanbul ignore next */ []));
1010
- /**
1011
- * Whether the nodes are draggable.
1012
- * @group Props
1013
- */
1014
- draggableNodes = input(false, { ...(ngDevMode ? { debugName: "draggableNodes" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1015
- /**
1016
- * Whether the nodes are droppable.
1017
- * @group Props
1018
- */
1019
- droppableNodes = input(false, { ...(ngDevMode ? { debugName: "droppableNodes" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1020
- /**
1021
- * 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.
1022
- * @group Props
1023
- */
1024
- metaKeySelection = input(false, { ...(ngDevMode ? { debugName: "metaKeySelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1025
- /**
1026
- * Whether checkbox selections propagate to ancestor nodes.
1027
- * @group Props
1028
- */
1029
- propagateSelectionUp = input(true, { ...(ngDevMode ? { debugName: "propagateSelectionUp" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1030
- /**
1031
- * Whether checkbox selections propagate to descendant nodes.
1032
- * @group Props
1033
- */
1034
- propagateSelectionDown = input(true, { ...(ngDevMode ? { debugName: "propagateSelectionDown" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1035
- /**
1036
- * Displays a loader to indicate data load is in progress.
1037
- * @group Props
1038
- */
1039
- loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1040
- /**
1041
- * The icon to show while indicating data load is in progress.
1042
- * @group Props
1043
- */
1044
- loadingIcon = input(/* @ts-ignore */
1045
- ...(ngDevMode ? [undefined, { debugName: "loadingIcon" }] : /* istanbul ignore next */ []));
1046
- /**
1047
- * Text to display when there is no data.
1048
- * @group Props
1049
- */
1050
- emptyMessage = input('', /* @ts-ignore */
1051
- ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
1052
- /**
1053
- * Used to define a string that labels the tree.
1054
- * @group Props
1055
- */
1056
- ariaLabel = input(/* @ts-ignore */
1057
- ...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
1058
- /**
1059
- * Defines a string that labels the toggler icon for accessibility.
1060
- * @group Props
1061
- */
1062
- togglerAriaLabel = input(/* @ts-ignore */
1063
- ...(ngDevMode ? [undefined, { debugName: "togglerAriaLabel" }] : /* istanbul ignore next */ []));
1064
- /**
1065
- * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
1066
- * @group Props
1067
- */
1068
- ariaLabelledBy = input(/* @ts-ignore */
1069
- ...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
1070
- /**
1071
- * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.
1072
- * @group Props
1073
- */
1074
- validateDrop = input(false, { ...(ngDevMode ? { debugName: "validateDrop" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1075
- /**
1076
- * When specified, displays an input field to filter the items.
1077
- * @group Props
1078
- */
1079
- filter = input(false, { ...(ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1080
- /**
1081
- * Determines whether the filter input should be automatically focused when the component is rendered.
1082
- * @group Props
1083
- */
1084
- filterInputAutoFocus = input(false, { ...(ngDevMode ? { debugName: "filterInputAutoFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1085
- /**
1086
- * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
1087
- * @group Props
1088
- */
1089
- filterBy = input('label', /* @ts-ignore */
1090
- ...(ngDevMode ? [{ debugName: "filterBy" }] : /* istanbul ignore next */ []));
1091
- /**
1092
- * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
1093
- * @group Props
1094
- */
1095
- filterMode = input('lenient', /* @ts-ignore */
1096
- ...(ngDevMode ? [{ debugName: "filterMode" }] : /* istanbul ignore next */ []));
1097
- /**
1098
- * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
1099
- * @group Props
1100
- */
1101
- filterOptions;
1102
- /**
1103
- * Placeholder text to show when filter input is empty.
1104
- * @group Props
1105
- */
1106
- filterPlaceholder = input(/* @ts-ignore */
1107
- ...(ngDevMode ? [undefined, { debugName: "filterPlaceholder" }] : /* istanbul ignore next */ []));
1108
- /**
1109
- * Values after the tree nodes are filtered.
1110
- * @group Props
1111
- */
1112
- filteredNodes = model(undefined, /* @ts-ignore */
1113
- ...(ngDevMode ? [{ debugName: "filteredNodes" }] : /* istanbul ignore next */ []));
1114
- /**
1115
- * Locale to use in filtering. The default locale is the host environment's current locale.
1116
- * @group Props
1117
- */
1118
- filterLocale = input(/* @ts-ignore */
1119
- ...(ngDevMode ? [undefined, { debugName: "filterLocale" }] : /* istanbul ignore next */ []));
1120
- /**
1121
- * Height of the scrollable viewport.
1122
- * @group Props
1123
- */
1124
- scrollHeight = input(/* @ts-ignore */
1125
- ...(ngDevMode ? [undefined, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []));
1126
- /**
1127
- * Defines if data is loaded and interacted with in lazy manner.
1128
- * @group Props
1129
- */
1130
- lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1131
- /**
1132
- * Whether the data should be loaded on demand during scroll.
1133
- * @group Props
1134
- */
1135
- virtualScroll = input(false, { ...(ngDevMode ? { debugName: "virtualScroll" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1136
- /**
1137
- * Height of an item in the list for VirtualScrolling.
1138
- * @group Props
1139
- */
1140
- virtualScrollItemSize = input(/* @ts-ignore */
1141
- ...(ngDevMode ? [undefined, { debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
1142
- /**
1143
- * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
1144
- * @group Props
1145
- */
1146
- virtualScrollOptions = input(/* @ts-ignore */
1147
- ...(ngDevMode ? [undefined, { debugName: "virtualScrollOptions" }] : /* istanbul ignore next */ []));
1148
- /**
1149
- * Indentation factor for spacing of the nested node when virtual scrolling is enabled.
1150
- * @group Props
1151
- */
1152
- indentation = input(1.5, { ...(ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1153
- /**
1154
- * Function to optimize the node list rendering, default algorithm checks for object identity.
1155
- * @group Props
1156
- */
1157
- trackBy = input((index, item) => item, /* @ts-ignore */
1158
- ...(ngDevMode ? [{ debugName: "trackBy" }] : /* istanbul ignore next */ []));
1159
- /**
1160
- * Highlights the node on select.
1161
- * @group Props
1162
- */
1163
- highlightOnSelect = input(false, { ...(ngDevMode ? { debugName: "highlightOnSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1164
- /**
1165
- * Callback to invoke when a node is selected.
1166
- * @param {TreeNodeSelectEvent} event - Node select event.
1167
- * @group Emits
1168
- */
1169
- onNodeSelect = output();
1170
- /**
1171
- * Callback to invoke when a node is unselected.
1172
- * @param {TreeNodeUnSelectEvent} event - Node unselect event.
1173
- * @group Emits
1174
- */
1175
- onNodeUnselect = output();
1176
- /**
1177
- * Callback to invoke when a node is expanded.
1178
- * @param {TreeNodeExpandEvent} event - Node expand event.
1179
- * @group Emits
1180
- */
1181
- onNodeExpand = output();
1182
- /**
1183
- * Callback to invoke when a node is collapsed.
1184
- * @param {TreeNodeCollapseEvent} event - Node collapse event.
1185
- * @group Emits
1186
- */
1187
- onNodeCollapse = output();
1188
- /**
1189
- * Callback to invoke when a node is selected with right click.
1190
- * @param {onNodeContextMenuSelect} event - Node context menu select event.
1191
- * @group Emits
1192
- */
1193
- onNodeContextMenuSelect = output();
1194
- /**
1195
- * Callback to invoke when a node is double clicked.
1196
- * @param {TreeNodeDoubleClickEvent} event - Node double click event.
1197
- * @group Emits
1198
- */
1199
- onNodeDoubleClick = output();
1200
- /**
1201
- * Callback to invoke when a node is dropped.
1202
- * @param {TreeNodeDropEvent} event - Node drop event.
1203
- * @group Emits
1204
- */
1205
- onNodeDrop = output();
1206
- /**
1207
- * Callback to invoke in lazy mode to load new data.
1208
- * @param {TreeLazyLoadEvent} event - Custom lazy load event.
1209
- * @group Emits
1210
- */
1211
- onLazyLoad = output();
1212
- /**
1213
- * Callback to invoke in virtual scroll mode when scroll position changes.
1214
- * @param {TreeScrollEvent} event - Custom scroll event.
1215
- * @group Emits
1216
- */
1217
- onScroll = output();
1218
- /**
1219
- * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.
1220
- * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.
1221
- * @group Emits
1222
- */
1223
- onScrollIndexChange = output();
1224
- /**
1225
- * Callback to invoke when data is filtered.
1226
- * @param {TreeFilterEvent} event - Custom filter event.
1227
- * @group Emits
1228
- */
1229
- onFilter = output();
1230
- /**
1231
- * Custom filter template.
1232
- * @param {TreeFilterTemplateContext} context - filter context.
1233
- * @see {@link TreeFilterTemplateContext}
1234
- * @group Templates
1235
- */
1236
- filterTemplate = contentChild('filter', { ...(ngDevMode ? { debugName: "filterTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1237
- /**
1238
- * Custom node template.
1239
- * @group Templates
1240
- */
1241
- nodeTemplate = contentChild('node', { ...(ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1242
- /**
1243
- * Custom header template.
1244
- * @group Templates
1245
- */
1246
- headerTemplate = contentChild('header', { ...(ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1247
- /**
1248
- * Custom footer template.
1249
- * @group Templates
1250
- */
1251
- footerTemplate = contentChild('footer', { ...(ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1252
- /**
1253
- * Custom loader template.
1254
- * @param {TreeLoaderTemplateContext} context - loader context.
1255
- * @see {@link TreeLoaderTemplateContext}
1256
- * @group Templates
1257
- */
1258
- loaderTemplate = contentChild('loader', { ...(ngDevMode ? { debugName: "loaderTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1259
- /**
1260
- * Custom empty message template.
1261
- * @group Templates
1262
- */
1263
- emptyTemplate = contentChild('empty', { ...(ngDevMode ? { debugName: "emptyTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1264
- /**
1265
- * Custom toggler icon template.
1266
- * @param {TreeTogglerIconTemplateContext} context - toggler icon context.
1267
- * @see {@link TreeTogglerIconTemplateContext}
1268
- * @group Templates
1269
- */
1270
- togglerIconTemplate = contentChild('togglericon', { ...(ngDevMode ? { debugName: "togglerIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1271
- /**
1272
- * Custom checkbox icon template.
1273
- * @param {TreeCheckboxIconTemplateContext} context - checkbox icon context.
1274
- * @see {@link TreeCheckboxIconTemplateContext}
1275
- * @group Templates
1276
- */
1277
- checkboxIconTemplate = contentChild('checkboxicon', { ...(ngDevMode ? { debugName: "checkboxIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1278
- /**
1279
- * Custom loading icon template.
1280
- * @group Templates
1281
- */
1282
- loadingIconTemplate = contentChild('loadingicon', { ...(ngDevMode ? { debugName: "loadingIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1283
- /**
1284
- * Custom filter icon template.
1285
- * @group Templates
1286
- */
1287
- filterIconTemplate = contentChild('filtericon', { ...(ngDevMode ? { debugName: "filterIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1288
- filterViewChild = viewChild('filter', /* @ts-ignore */
1289
- ...(ngDevMode ? [{ debugName: "filterViewChild" }] : /* istanbul ignore next */ []));
1290
- scroller = viewChild('scroller', /* @ts-ignore */
1291
- ...(ngDevMode ? [{ debugName: "scroller" }] : /* istanbul ignore next */ []));
1292
- wrapperViewChild = viewChild('wrapper', /* @ts-ignore */
1293
- ...(ngDevMode ? [{ debugName: "wrapperViewChild" }] : /* istanbul ignore next */ []));
1294
- contentViewChild = viewChild('content', /* @ts-ignore */
1295
- ...(ngDevMode ? [{ debugName: "contentViewChild" }] : /* istanbul ignore next */ []));
1296
- serializedValue;
1297
- nodeTouched;
1298
- dragNodeTree;
1299
- dragNode;
1300
- dragNodeSubNodes;
1301
- dragNodeIndex;
1302
- dragNodeScope;
1303
- dragHover;
1304
- _componentStyle = inject(TreeStyle);
1305
- dragDropService = inject(TreeDragDropService, { optional: true });
1306
- destroyRef = inject(DestroyRef);
1307
- constructor() {
1308
- super();
1309
- effect(() => {
1310
- this.value();
1311
- untracked(() => {
1312
- this.updateSerializedValue();
1313
- if (this.hasFilterActive()) {
1314
- this._filter(this.filterViewChild()?.nativeElement?.value);
1315
- }
1316
- });
1317
- });
1318
- // Two-way `collapsedKeys` sync: when provided, project the map onto each node's `expanded` flag
1319
- // so the existing expansion engine keeps working unchanged. Untracked writes avoid feedback loops.
1320
- effect(() => {
1321
- this.collapsedKeys();
1322
- this.value();
1323
- untracked(() => {
1324
- if (this.collapsedKeys() == null) {
1325
- return;
1326
- }
1327
- this.applyCollapsedKeys();
1328
- this.updateSerializedValue();
1329
- });
1330
- });
1331
- // Two-way `selectionKeys` <-> `selection` projection. Value-based comparison breaks the feedback
1332
- // loop: once the two representations agree, neither effect writes again.
1333
- effect(() => {
1334
- this.selectionKeys();
1335
- this.value();
1336
- untracked(() => {
1337
- if (this.selectionKeys() == null) {
1338
- return;
1339
- }
1340
- if (!this.isSameSelectionKeys(this.deriveSelectionKeys(), this.selectionKeys())) {
1341
- this.applySelectionKeys();
1342
- }
1343
- });
1344
- });
1345
- effect(() => {
1346
- this.selection();
1347
- untracked(() => {
1348
- if (this.selectionKeys() == null) {
1349
- return;
1350
- }
1351
- const derived = this.deriveSelectionKeys();
1352
- if (!this.isSameSelectionKeys(derived, this.selectionKeys())) {
1353
- this.selectionKeys.set(derived);
1354
- }
1355
- });
1356
- });
1357
- }
1358
- onInit() {
1359
- if (this.filterBy()) {
1360
- this.filterOptions = {
1361
- filter: (value) => this._filter(value),
1362
- reset: () => this.resetFilter()
1363
- };
1364
- }
1365
- if (this.droppableNodes()) {
1366
- this.dragDropService?.dragStart$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
1367
- this.dragNodeTree = event.tree;
1368
- this.dragNode = event.node;
1369
- this.dragNodeSubNodes = event.subNodes;
1370
- this.dragNodeIndex = event.index;
1371
- this.dragNodeScope = event.scope;
1372
- });
1373
- }
1374
- if (this.droppableNodes() || this.draggableNodes()) {
1375
- this.dragDropService?.dragStop$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
1376
- this.dragNodeTree = null;
1377
- this.dragNode = null;
1378
- this.dragNodeSubNodes = null;
1379
- this.dragNodeIndex = null;
1380
- this.dragNodeScope = null;
1381
- this.dragHover = false;
1382
- // Nodes may have been moved by a drop; drops mutate the original value, so re-run
1383
- // the active filter to refresh its rendered copies and rebuild the flattened list
1384
- // rendered by the scroller.
1385
- if (this.hasFilterActive()) {
1386
- this._filter(this.filterViewChild()?.nativeElement?.value);
1387
- this.cd.markForCheck();
1388
- }
1389
- else if (this.virtualScroll()) {
1390
- this.updateSerializedValue();
1391
- this.cd.markForCheck();
1392
- }
1393
- });
1394
- }
1395
- }
1396
- showLoadingMask = computed(() => this.loading() && this.loadingMode() === 'mask', /* @ts-ignore */
1397
- ...(ngDevMode ? [{ debugName: "showLoadingMask" }] : /* istanbul ignore next */ []));
1398
- get showEmptyMessage() {
1399
- return !this.loading() && (this.getRootNode() == null || this.getRootNode().length === 0);
1400
- }
1401
- scrollerStyleHeight = computed(() => (this.scrollHeight() !== 'flex' ? this.scrollHeight() : undefined), /* @ts-ignore */
1402
- ...(ngDevMode ? [{ debugName: "scrollerStyleHeight" }] : /* istanbul ignore next */ []));
1403
- scrollerScrollHeight = computed(() => (this.scrollHeight() !== 'flex' ? undefined : '100%'), /* @ts-ignore */
1404
- ...(ngDevMode ? [{ debugName: "scrollerScrollHeight" }] : /* istanbul ignore next */ []));
1405
- get emptyMessageLabel() {
1406
- return this.emptyMessage() || this.translate(TranslationKeys.EMPTY_MESSAGE);
1407
- }
1408
- updateSerializedValue() {
1409
- this.serializedValue = [];
1410
- this.serializeNodes(null, this.getRootNode(), 0, true);
1411
- }
1412
- /**
1413
- * Projects the current `collapsedKeys` map onto each node's `expanded` flag (a node is expanded
1414
- * unless its key maps to `true`).
1415
- */
1416
- applyCollapsedKeys() {
1417
- const collapsedKeys = this.collapsedKeys();
1418
- if (collapsedKeys == null) {
1419
- return;
1420
- }
1421
- const walk = (nodes) => {
1422
- if (!nodes)
1423
- return;
1424
- for (const node of nodes) {
1425
- if (node.key != null) {
1426
- node.expanded = !collapsedKeys[node.key];
1427
- }
1428
- if (node.children) {
1429
- walk(node.children);
1430
- }
1431
- }
1432
- };
1433
- walk(this.getRootNode());
1434
- }
1435
- /**
1436
- * Reflects a node's expansion change back into the two-way `collapsedKeys` map when it is in use.
1437
- */
1438
- setNodeCollapsed(node, collapsed) {
1439
- const collapsedKeys = this.collapsedKeys();
1440
- if (collapsedKeys == null || node.key == null) {
1441
- return;
1442
- }
1443
- const next = { ...collapsedKeys };
1444
- if (collapsed) {
1445
- next[node.key] = true;
1446
- }
1447
- else {
1448
- delete next[node.key];
1449
- }
1450
- this.collapsedKeys.set(next);
1451
- }
1452
- /** Builds a `key -> node` lookup over the whole tree (for `selectionKeys` projection). */
1453
- collectNodesByKey() {
1454
- const map = new Map();
1455
- const walk = (nodes) => {
1456
- if (!nodes)
1457
- return;
1458
- for (const node of nodes) {
1459
- if (node.key != null) {
1460
- map.set(node.key, node);
1461
- }
1462
- if (node.children) {
1463
- walk(node.children);
1464
- }
1465
- }
1466
- };
1467
- walk(this.getRootNode());
1468
- return map;
1469
- }
1470
- /** Derives the `selectionKeys` map from the current `selection` (and `partialSelected` for checkbox). */
1471
- deriveSelectionKeys() {
1472
- const mode = this.selectionMode();
1473
- const map = {};
1474
- if (mode === 'checkbox') {
1475
- const selection = this.selection() || [];
1476
- const selectedKeys = new Set(selection.map((node) => node.key));
1477
- const walk = (nodes) => {
1478
- if (!nodes)
1479
- return;
1480
- for (const node of nodes) {
1481
- if (node.key != null) {
1482
- if (selectedKeys.has(node.key)) {
1483
- map[node.key] = { checked: true, partialChecked: false };
1484
- }
1485
- else if (node.partialSelected) {
1486
- map[node.key] = { checked: false, partialChecked: true };
1487
- }
1488
- }
1489
- if (node.children) {
1490
- walk(node.children);
1491
- }
1492
- }
1493
- };
1494
- walk(this.getRootNode());
1495
- }
1496
- else if (mode === 'single') {
1497
- const selected = this.selection();
1498
- if (selected?.key != null) {
1499
- map[selected.key] = true;
1500
- }
1501
- }
1502
- else {
1503
- const selection = this.selection() || [];
1504
- for (const node of selection) {
1505
- if (node.key != null) {
1506
- map[node.key] = true;
1507
- }
1508
- }
1509
- }
1510
- return map;
1511
- }
1512
- /** Applies the current `selectionKeys` map onto the `selection` model (and `partialSelected` for checkbox). */
1513
- applySelectionKeys() {
1514
- const keys = this.selectionKeys();
1515
- if (keys == null) {
1516
- return;
1517
- }
1518
- const mode = this.selectionMode();
1519
- const nodesByKey = this.collectNodesByKey();
1520
- const isChecked = (value) => value === true || value?.checked === true;
1521
- if (mode === 'single') {
1522
- const key = Object.keys(keys).find((k) => isChecked(keys[k]));
1523
- this.selection.set(key != null ? (nodesByKey.get(key) ?? null) : null);
1524
- return;
1525
- }
1526
- const selected = [];
1527
- nodesByKey.forEach((node, key) => {
1528
- const value = keys[key];
1529
- if (mode === 'checkbox') {
1530
- node.partialSelected = value?.partialChecked === true;
1531
- }
1532
- if (isChecked(value)) {
1533
- selected.push(node);
1534
- }
1535
- });
1536
- this.selection.set(selected);
1537
- }
1538
- /** Value-based equality for two `selectionKeys` maps (handles both boolean and `{checked,partialChecked}` values). */
1539
- isSameSelectionKeys(a, b) {
1540
- const aKeys = Object.keys(a || {});
1541
- const bKeys = Object.keys(b || {});
1542
- if (aKeys.length !== bKeys.length) {
1543
- return false;
1544
- }
1545
- return aKeys.every((key) => {
1546
- const av = a[key];
1547
- const bv = b[key];
1548
- if (av === bv)
1549
- return true;
1550
- if (av && bv && typeof av === 'object' && typeof bv === 'object') {
1551
- return av.checked === bv.checked && av.partialChecked === bv.partialChecked;
1552
- }
1553
- return false;
1554
- });
1555
- }
1556
- serializeNodes(parent, nodes, level, visible) {
1557
- if (nodes && nodes.length) {
1558
- for (let node of nodes) {
1559
- node.parent = parent;
1560
- const rowNode = {
1561
- node: node,
1562
- parent: parent,
1563
- level: level,
1564
- visible: visible && (parent ? parent.expanded : true)
1565
- };
1566
- this.serializedValue.push(rowNode);
1567
- if (rowNode.visible && node.expanded) {
1568
- this.serializeNodes(node, node.children, level + 1, rowNode.visible);
1569
- }
1570
- }
1571
- }
1572
- }
1573
- onNodeClick(event, node) {
1574
- let eventTarget = event.target;
1575
- const section = eventTarget?.getAttribute?.('data-pc-section');
1576
- if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1577
- return;
1578
- }
1579
- if (this.selectionMode()) {
1580
- if (node.selectable === false) {
1581
- return;
1582
- }
1583
- if (this.hasFilteredNodes()) {
1584
- node = this.getNodeWithKey(node.key, this.filteredNodes());
1585
- if (!node) {
1586
- return;
1587
- }
1588
- }
1589
- let index = this.findIndexInSelection(node);
1590
- let selected = index >= 0;
1591
- const currentSelection = this.selection();
1592
- if (this.isCheckboxSelectionMode()) {
1593
- if (selected) {
1594
- if (this.propagateSelectionDown())
1595
- this.propagateDown(node, false);
1596
- else
1597
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1598
- if (this.propagateSelectionUp() && node.parent) {
1599
- this.propagateUp(node.parent, false);
1600
- }
1601
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1602
- }
1603
- else {
1604
- if (this.propagateSelectionDown())
1605
- this.propagateDown(node, true);
1606
- else
1607
- this.selection.set([...(currentSelection || []), node]);
1608
- if (this.propagateSelectionUp() && node.parent) {
1609
- this.propagateUp(node.parent, true);
1610
- }
1611
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1612
- }
1613
- }
1614
- else {
1615
- let metaSelection = this.nodeTouched ? false : this.metaKeySelection();
1616
- if (metaSelection) {
1617
- let metaKey = event.metaKey || event.ctrlKey;
1618
- if (selected && metaKey) {
1619
- if (this.isSingleSelectionMode()) {
1620
- this.selection.set(null);
1621
- }
1622
- else {
1623
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1624
- }
1625
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1626
- }
1627
- else {
1628
- if (this.isSingleSelectionMode()) {
1629
- this.selection.set(node);
1630
- }
1631
- else if (this.isMultipleSelectionMode()) {
1632
- const base = !metaKey ? [] : currentSelection || [];
1633
- this.selection.set([...base, node]);
1634
- }
1635
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1636
- }
1637
- }
1638
- else {
1639
- if (this.isSingleSelectionMode()) {
1640
- if (selected) {
1641
- this.selection.set(null);
1642
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1643
- }
1644
- else {
1645
- this.selection.set(node);
1646
- setTimeout(() => {
1647
- if (this._destroyed)
1648
- return;
1649
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1650
- });
1651
- }
1652
- }
1653
- else {
1654
- if (selected) {
1655
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1656
- this.onNodeUnselect.emit({ originalEvent: event, node: node });
1657
- }
1658
- else {
1659
- this.selection.set([...(currentSelection || []), node]);
1660
- setTimeout(() => {
1661
- if (this._destroyed)
1662
- return;
1663
- this.onNodeSelect.emit({ originalEvent: event, node: node });
1664
- });
1665
- }
1666
- }
1667
- }
1668
- }
1669
- }
1670
- this.nodeTouched = false;
1671
- }
1672
- onNodeTouchEnd() {
1673
- this.nodeTouched = true;
1674
- }
1675
- onNodeRightClick(event, node) {
1676
- if (this.contextMenu()) {
1677
- let eventTarget = event.target;
1678
- const section = eventTarget.getAttribute('data-pc-section');
1679
- if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {
1680
- return;
1681
- }
1682
- let index = this.findIndexInSelection(node);
1683
- let isNodeSelected = index >= 0;
1684
- const onContextMenuCallback = () => {
1685
- this.contextMenu().show(event);
1686
- this.contextMenu().hideCallback = () => {
1687
- this.contextMenuSelection.set(null);
1688
- };
1689
- this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });
1690
- };
1691
- this.contextMenuSelection.set(node);
1692
- onContextMenuCallback();
1693
- }
1694
- }
1695
- onNodeDblClick(event, node) {
1696
- this.onNodeDoubleClick.emit({ originalEvent: event, node: node });
1697
- }
1698
- findIndexInSelection(node) {
1699
- let index = -1;
1700
- const currentSelection = this.selection();
1701
- if (this.selectionMode() && currentSelection) {
1702
- if (this.isSingleSelectionMode()) {
1703
- const sel = currentSelection;
1704
- let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;
1705
- index = areNodesEqual ? 0 : -1;
1706
- }
1707
- else {
1708
- const selArray = currentSelection;
1709
- for (let i = 0; i < selArray.length; i++) {
1710
- let selectedNode = selArray[i];
1711
- let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;
1712
- if (areNodesEqual) {
1713
- index = i;
1714
- break;
1715
- }
1716
- }
1717
- }
1718
- }
1719
- return index;
1720
- }
1721
- syncNodeOption(node, parentNodes, option, value) {
1722
- // to synchronize the node option between the filtered nodes and the original nodes(this.value)
1723
- const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;
1724
- if (_node) {
1725
- _node[option] = value || node[option];
1726
- }
1727
- }
1728
- hasFilteredNodes() {
1729
- return this.filter() && this.filteredNodes() && this.filteredNodes().length;
1730
- }
1731
- /**
1732
- * Filtering renders shallow copies of the matched nodes, this map links each copy back to
1733
- * its source node so that structural operations (drag&drop) can mutate the original value.
1734
- */
1735
- filteredNodeOrigins = new WeakMap();
1736
- /** Returns the source node of a filtered copy, or the node itself when it is not a copy. */
1737
- getOriginalNode(node) {
1738
- return this.filteredNodeOrigins.get(node) ?? node;
1739
- }
1740
- hasFilterActive() {
1741
- return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;
1742
- }
1743
- getNodeWithKey(key, nodes) {
1744
- for (let node of nodes) {
1745
- if (node.key === key) {
1746
- return node;
1747
- }
1748
- if (node.children) {
1749
- let matchedNode = this.getNodeWithKey(key, node.children);
1750
- if (matchedNode) {
1751
- return matchedNode;
1752
- }
1753
- }
1754
- }
1755
- }
1756
- propagateUp(node, select) {
1757
- if (node.children && node.children.length) {
1758
- let selectedCount = 0;
1759
- let childPartialSelected = false;
1760
- for (let child of node.children) {
1761
- if (this.isSelected(child)) {
1762
- selectedCount++;
1763
- }
1764
- else if (child.partialSelected) {
1765
- childPartialSelected = true;
1766
- }
1767
- }
1768
- const currentSelection = this.selection() || [];
1769
- if (select && selectedCount == node.children.length) {
1770
- this.selection.set([...currentSelection, node]);
1771
- node.partialSelected = false;
1772
- }
1773
- else {
1774
- if (!select) {
1775
- let index = this.findIndexInSelection(node);
1776
- if (index >= 0) {
1777
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1778
- }
1779
- }
1780
- if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length))
1781
- node.partialSelected = true;
1782
- else
1783
- node.partialSelected = false;
1784
- }
1785
- this.syncNodeOption(node, this.filteredNodes(), 'partialSelected');
1786
- }
1787
- let parent = node.parent;
1788
- if (parent) {
1789
- this.propagateUp(parent, select);
1790
- }
1791
- }
1792
- propagateDown(node, select) {
1793
- let index = this.findIndexInSelection(node);
1794
- const currentSelection = this.selection() || [];
1795
- if (select && index == -1) {
1796
- this.selection.set([...currentSelection, node]);
1797
- }
1798
- else if (!select && index > -1) {
1799
- this.selection.set(currentSelection.filter((_val, i) => i != index));
1800
- }
1801
- node.partialSelected = false;
1802
- this.syncNodeOption(node, this.filteredNodes(), 'partialSelected');
1803
- if (node.children && node.children.length) {
1804
- for (let child of node.children) {
1805
- this.propagateDown(child, select);
1806
- }
1807
- }
1808
- }
1809
- isSelected(node) {
1810
- return this.findIndexInSelection(node) != -1;
1811
- }
1812
- isSingleSelectionMode() {
1813
- return this.selectionMode() && this.selectionMode() == 'single';
1814
- }
1815
- isMultipleSelectionMode() {
1816
- return this.selectionMode() && this.selectionMode() == 'multiple';
1817
- }
1818
- isCheckboxSelectionMode() {
1819
- return this.selectionMode() && this.selectionMode() == 'checkbox';
1820
- }
1821
- isNodeLeaf(node) {
1822
- return node.leaf == false ? false : !(node.children && node.children.length);
1823
- }
1824
- getRootNode() {
1825
- return this.filteredNodes() ? this.filteredNodes() : this.value();
1826
- }
1827
- getTemplateForNode(node) {
1828
- return this.nodeTemplate() ?? null;
1829
- }
1830
- onDragOver(event) {
1831
- if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1832
- event.dataTransfer.dropEffect = 'copy';
1833
- event.preventDefault();
1834
- }
1835
- }
1836
- onDrop(event) {
1837
- if (this.droppableNodes()) {
1838
- event.preventDefault();
1839
- let dragNode = this.dragNode;
1840
- if (this.isSameTreeScope(this.dragNodeScope)) {
1841
- return;
1842
- }
1843
- if (this.allowDrop(dragNode, null, this.dragNodeScope)) {
1844
- let dragNodeIndex = this.dragNodeIndex;
1845
- let currentValue = this.value() || [];
1846
- if (this.validateDrop()) {
1847
- this.onNodeDrop.emit({
1848
- originalEvent: event,
1849
- dragNode: dragNode,
1850
- dropNode: null,
1851
- index: dragNodeIndex,
1852
- accept: () => {
1853
- this.processTreeDrop(dragNode, dragNodeIndex);
1854
- }
1855
- });
1856
- }
1857
- else {
1858
- this.onNodeDrop.emit({
1859
- originalEvent: event,
1860
- dragNode: dragNode,
1861
- dropNode: null,
1862
- index: dragNodeIndex
1863
- });
1864
- this.processTreeDrop(dragNode, dragNodeIndex);
1865
- }
1866
- }
1867
- }
1868
- }
1869
- processTreeDrop(dragNode, dragNodeIndex) {
1870
- // With virtual scrolling `dragNodeIndex` holds the position in the flattened list,
1871
- // so resolve the position against the actual sibling array instead.
1872
- const subNodes = this.dragNodeSubNodes;
1873
- const removalIndex = subNodes ? subNodes.indexOf(dragNode) : -1;
1874
- if (removalIndex !== -1) {
1875
- subNodes.splice(removalIndex, 1);
1876
- }
1877
- this.value().push(dragNode);
1878
- this.dragDropService.stopDrag({
1879
- node: dragNode
1880
- });
1881
- }
1882
- onDragEnter() {
1883
- if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1884
- this.dragHover = true;
1885
- }
1886
- }
1887
- onDragLeave(event) {
1888
- if (this.droppableNodes()) {
1889
- let rect = event.currentTarget.getBoundingClientRect();
1890
- 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)) {
1891
- this.dragHover = false;
1892
- }
1893
- }
1894
- }
1895
- allowDrop(dragNode, dropNode, dragNodeScope) {
1896
- if (!dragNode) {
1897
- //prevent random html elements to be dragged
1898
- return false;
1899
- }
1900
- else if (this.isValidDragScope(dragNodeScope)) {
1901
- let allow = true;
1902
- if (dropNode) {
1903
- // The drag state holds original nodes while a filtered tree renders copies,
1904
- // so compare against the original of each node in the drop chain.
1905
- if (dragNode === this.getOriginalNode(dropNode)) {
1906
- allow = false;
1907
- }
1908
- else {
1909
- let parent = dropNode.parent;
1910
- while (parent != null) {
1911
- if (this.getOriginalNode(parent) === dragNode) {
1912
- allow = false;
1913
- break;
1914
- }
1915
- parent = parent.parent;
1916
- }
1917
- }
1918
- }
1919
- return allow;
1920
- }
1921
- else {
1922
- return false;
1923
- }
1924
- }
1925
- hasCommonScope(dragScope, dropScope) {
1926
- if (typeof dropScope === 'string') {
1927
- if (typeof dragScope === 'string')
1928
- return dropScope === dragScope;
1929
- else if (Array.isArray(dragScope))
1930
- return dragScope.indexOf(dropScope) != -1;
1931
- }
1932
- else if (Array.isArray(dropScope)) {
1933
- if (typeof dragScope === 'string') {
1934
- return dropScope.indexOf(dragScope) != -1;
1935
- }
1936
- else if (Array.isArray(dragScope)) {
1937
- for (let s of dropScope) {
1938
- for (let ds of dragScope) {
1939
- if (s === ds) {
1940
- return true;
1941
- }
1942
- }
1943
- }
1944
- }
1945
- }
1946
- return false;
1947
- }
1948
- isSameTreeScope(dragScope) {
1949
- return this.hasCommonScope(dragScope, this.draggableScope());
1950
- }
1951
- isValidDragScope(dragScope) {
1952
- let dropScope = this.droppableScope();
1953
- if (dropScope) {
1954
- return this.hasCommonScope(dragScope, dropScope);
1955
- }
1956
- else {
1957
- return true;
1958
- }
1959
- }
1960
- _filter(value) {
1961
- let filterValue = value;
1962
- if (filterValue === '') {
1963
- this.filteredNodes.set(null);
1964
- }
1965
- else {
1966
- const filteredNodes = [];
1967
- const searchFields = this.filterBy().split(',');
1968
- const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());
1969
- const isStrictMode = this.filterMode() === 'strict';
1970
- for (let node of this.value()) {
1971
- let copyNode = { ...node };
1972
- this.filteredNodeOrigins.set(copyNode, node);
1973
- let paramsWithoutNode = { searchFields, filterText, isStrictMode };
1974
- if ((isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||
1975
- (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {
1976
- filteredNodes.push(copyNode);
1977
- }
1978
- }
1979
- this.filteredNodes.set(filteredNodes);
1980
- }
1981
- this.updateSerializedValue();
1982
- this.onFilter.emit({
1983
- filter: filterValue,
1984
- filteredValue: this.filteredNodes()
1985
- });
1986
- }
1987
- /**
1988
- * Resets filter.
1989
- * @group Method
1990
- */
1991
- resetFilter() {
1992
- this.filteredNodes.set(null);
1993
- const filterEl = this.filterViewChild();
1994
- if (filterEl && filterEl.nativeElement) {
1995
- filterEl.nativeElement.value = '';
1996
- }
1997
- }
1998
- /**
1999
- * Scrolls to virtual index.
2000
- * @param {number} number - Index to be scrolled.
2001
- * @group Method
2002
- */
2003
- scrollToVirtualIndex(index) {
2004
- this.virtualScroll() && this.scroller()?.scrollToIndex(index);
2005
- }
2006
- /**
2007
- * Scrolls to virtual index.
2008
- * @param {ScrollToOptions} options - Scroll options.
2009
- * @group Method
2010
- */
2011
- scrollTo(options) {
2012
- if (this.virtualScroll()) {
2013
- this.scroller()?.scrollTo(options);
2014
- }
2015
- else {
2016
- const wrapper = this.wrapperViewChild();
2017
- if (wrapper && wrapper.nativeElement) {
2018
- if (wrapper.nativeElement.scrollTo) {
2019
- wrapper.nativeElement.scrollTo(options);
2020
- }
2021
- else {
2022
- wrapper.nativeElement.scrollLeft = options.left;
2023
- wrapper.nativeElement.scrollTop = options.top;
2024
- }
2025
- }
2026
- }
2027
- }
2028
- findFilteredNodes(node, paramsWithoutNode) {
2029
- if (node) {
2030
- let matched = false;
2031
- if (node.children) {
2032
- let childNodes = [...node.children];
2033
- node.children = [];
2034
- for (let childNode of childNodes) {
2035
- let copyChildNode = { ...childNode };
2036
- this.filteredNodeOrigins.set(copyChildNode, this.getOriginalNode(childNode));
2037
- if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {
2038
- matched = true;
2039
- node.children.push(copyChildNode);
2040
- }
2041
- }
2042
- }
2043
- if (matched) {
2044
- node.expanded = true;
2045
- return true;
2046
- }
2047
- }
2048
- }
2049
- isFilterMatched(node, params) {
2050
- let { searchFields, filterText, isStrictMode } = params;
2051
- let matched = false;
2052
- for (let field of searchFields) {
2053
- let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale());
2054
- if (fieldValue.indexOf(filterText) > -1) {
2055
- matched = true;
2056
- }
2057
- }
2058
- if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {
2059
- matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;
2060
- }
2061
- return matched;
2062
- }
2063
- getIndex(options, index) {
2064
- const getItemOptions = options['getItemOptions'];
2065
- return getItemOptions ? getItemOptions(index).index : index;
2066
- }
2067
- getBlockableElement() {
2068
- return this.el.nativeElement.children[0];
2069
- }
2070
- get containerDataP() {
2071
- return this.cn({
2072
- loading: this.loading(),
2073
- scrollable: this.scrollHeight() === 'flex'
2074
- });
2075
- }
2076
- get wrapperDataP() {
2077
- return this.cn({
2078
- scrollable: this.scrollHeight() === 'flex'
2079
- });
2080
- }
2081
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: Tree, deps: [], target: i0.ɵɵFactoryTarget.Component });
2082
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: Tree, isStandalone: true, selector: "p-tree", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, loadingMode: { classPropertyName: "loadingMode", publicName: "loadingMode", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, collapsedKeys: { classPropertyName: "collapsedKeys", publicName: "collapsedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, contextMenuSelection: { classPropertyName: "contextMenuSelection", publicName: "contextMenuSelection", isSignal: true, isRequired: false, transformFunction: null }, draggableScope: { classPropertyName: "draggableScope", publicName: "draggableScope", isSignal: true, isRequired: false, transformFunction: null }, droppableScope: { classPropertyName: "droppableScope", publicName: "droppableScope", isSignal: true, isRequired: false, transformFunction: null }, draggableNodes: { classPropertyName: "draggableNodes", publicName: "draggableNodes", isSignal: true, isRequired: false, transformFunction: null }, droppableNodes: { classPropertyName: "droppableNodes", publicName: "droppableNodes", isSignal: true, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionUp: { classPropertyName: "propagateSelectionUp", publicName: "propagateSelectionUp", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionDown: { classPropertyName: "propagateSelectionDown", publicName: "propagateSelectionDown", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingIcon: { classPropertyName: "loadingIcon", publicName: "loadingIcon", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, togglerAriaLabel: { classPropertyName: "togglerAriaLabel", publicName: "togglerAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, validateDrop: { classPropertyName: "validateDrop", publicName: "validateDrop", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filterInputAutoFocus: { classPropertyName: "filterInputAutoFocus", publicName: "filterInputAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filteredNodes: { classPropertyName: "filteredNodes", publicName: "filteredNodes", isSignal: true, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: true, isRequired: false, transformFunction: null }, indentation: { classPropertyName: "indentation", publicName: "indentation", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", collapsedKeys: "collapsedKeysChange", selectionKeys: "selectionKeysChange", contextMenuSelection: "contextMenuSelectionChange", filteredNodes: "filteredNodesChange", 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": "onDrop($event)", "dragover": "onDragOver($event)", "dragenter": "onDragEnter()", "dragleave": "onDragLeave($event)" }, properties: { "class": "cx('root')", "attr.data-p": "containerDataP" } }, providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }], queries: [{ propertyName: "filterTemplate", first: true, predicate: ["filter"], isSignal: true }, { propertyName: "nodeTemplate", first: true, predicate: ["node"], isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], isSignal: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], isSignal: true }, { propertyName: "loaderTemplate", first: true, predicate: ["loader"], isSignal: true }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"], isSignal: true }, { propertyName: "togglerIconTemplate", first: true, predicate: ["togglericon"], isSignal: true }, { propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"], isSignal: true }, { propertyName: "loadingIconTemplate", first: true, predicate: ["loadingicon"], isSignal: true }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"], isSignal: true }], viewQueries: [{ propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true, isSignal: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true, isSignal: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true, isSignal: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1$1.Bind }], ngImport: i0, template: `
1007
+ encapsulation: ViewEncapsulation.None,
1008
+ providers: [
1009
+ TreeStyle,
1010
+ {
1011
+ provide: TREENODE_INSTANCE,
1012
+ useExisting: UITreeNode
1013
+ },
1014
+ {
1015
+ provide: PARENT_INSTANCE,
1016
+ useExisting: UITreeNode
1017
+ }
1018
+ ]
1019
+ }]
1020
+ }],
1021
+ propDecorators: {
1022
+ rowNode: [{
1023
+ type: i0.Input,
1024
+ args: [{
1025
+ isSignal: true,
1026
+ alias: "rowNode",
1027
+ required: false
1028
+ }]
1029
+ }],
1030
+ node: [{
1031
+ type: i0.Input,
1032
+ args: [{
1033
+ isSignal: true,
1034
+ alias: "node",
1035
+ required: false
1036
+ }]
1037
+ }],
1038
+ parentNode: [{
1039
+ type: i0.Input,
1040
+ args: [{
1041
+ isSignal: true,
1042
+ alias: "parentNode",
1043
+ required: false
1044
+ }]
1045
+ }],
1046
+ root: [{
1047
+ type: i0.Input,
1048
+ args: [{
1049
+ isSignal: true,
1050
+ alias: "root",
1051
+ required: false
1052
+ }]
1053
+ }],
1054
+ index: [{
1055
+ type: i0.Input,
1056
+ args: [{
1057
+ isSignal: true,
1058
+ alias: "index",
1059
+ required: false
1060
+ }]
1061
+ }],
1062
+ firstChild: [{
1063
+ type: i0.Input,
1064
+ args: [{
1065
+ isSignal: true,
1066
+ alias: "firstChild",
1067
+ required: false
1068
+ }]
1069
+ }],
1070
+ lastChild: [{
1071
+ type: i0.Input,
1072
+ args: [{
1073
+ isSignal: true,
1074
+ alias: "lastChild",
1075
+ required: false
1076
+ }]
1077
+ }],
1078
+ level: [{
1079
+ type: i0.Input,
1080
+ args: [{
1081
+ isSignal: true,
1082
+ alias: "level",
1083
+ required: false
1084
+ }]
1085
+ }],
1086
+ indentation: [{
1087
+ type: i0.Input,
1088
+ args: [{
1089
+ isSignal: true,
1090
+ alias: "indentation",
1091
+ required: false
1092
+ }]
1093
+ }],
1094
+ itemSize: [{
1095
+ type: i0.Input,
1096
+ args: [{
1097
+ isSignal: true,
1098
+ alias: "itemSize",
1099
+ required: false
1100
+ }]
1101
+ }],
1102
+ loadingMode: [{
1103
+ type: i0.Input,
1104
+ args: [{
1105
+ isSignal: true,
1106
+ alias: "loadingMode",
1107
+ required: false
1108
+ }]
1109
+ }]
1110
+ }
1111
+ });
1112
+ var Tree = class Tree extends BaseComponent {
1113
+ componentName = "Tree";
1114
+ _destroyed = false;
1115
+ bindDirectiveInstance = inject(Bind, { self: true });
1116
+ $pcTree = inject(TREE_INSTANCE, {
1117
+ optional: true,
1118
+ skipSelf: true
1119
+ }) ?? void 0;
1120
+ value = input(...ngDevMode ? [void 0, { debugName: "value" }] : /* istanbul ignore next */ []);
1121
+ selectionMode = input(...ngDevMode ? [void 0, { debugName: "selectionMode" }] : /* istanbul ignore next */ []);
1122
+ loadingMode = input("mask", ...ngDevMode ? [{ debugName: "loadingMode" }] : /* istanbul ignore next */ []);
1123
+ selection = model(null, ...ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []);
1124
+ collapsedKeys = model(null, ...ngDevMode ? [{ debugName: "collapsedKeys" }] : /* istanbul ignore next */ []);
1125
+ selectionKeys = model(null, ...ngDevMode ? [{ debugName: "selectionKeys" }] : /* istanbul ignore next */ []);
1126
+ contextMenu = input(...ngDevMode ? [void 0, { debugName: "contextMenu" }] : /* istanbul ignore next */ []);
1127
+ contextMenuSelection = model(null, ...ngDevMode ? [{ debugName: "contextMenuSelection" }] : /* istanbul ignore next */ []);
1128
+ draggableScope = input(...ngDevMode ? [void 0, { debugName: "draggableScope" }] : /* istanbul ignore next */ []);
1129
+ droppableScope = input(...ngDevMode ? [void 0, { debugName: "droppableScope" }] : /* istanbul ignore next */ []);
1130
+ draggableNodes = input(false, {
1131
+ ...ngDevMode ? { debugName: "draggableNodes" } : /* istanbul ignore next */ {},
1132
+ transform: booleanAttribute
1133
+ });
1134
+ droppableNodes = input(false, {
1135
+ ...ngDevMode ? { debugName: "droppableNodes" } : /* istanbul ignore next */ {},
1136
+ transform: booleanAttribute
1137
+ });
1138
+ metaKeySelection = input(false, {
1139
+ ...ngDevMode ? { debugName: "metaKeySelection" } : /* istanbul ignore next */ {},
1140
+ transform: booleanAttribute
1141
+ });
1142
+ propagateSelectionUp = input(true, {
1143
+ ...ngDevMode ? { debugName: "propagateSelectionUp" } : /* istanbul ignore next */ {},
1144
+ transform: booleanAttribute
1145
+ });
1146
+ propagateSelectionDown = input(true, {
1147
+ ...ngDevMode ? { debugName: "propagateSelectionDown" } : /* istanbul ignore next */ {},
1148
+ transform: booleanAttribute
1149
+ });
1150
+ loading = input(false, {
1151
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
1152
+ transform: booleanAttribute
1153
+ });
1154
+ loadingIcon = input(...ngDevMode ? [void 0, { debugName: "loadingIcon" }] : /* istanbul ignore next */ []);
1155
+ emptyMessage = input("", ...ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []);
1156
+ ariaLabel = input(...ngDevMode ? [void 0, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
1157
+ togglerAriaLabel = input(...ngDevMode ? [void 0, { debugName: "togglerAriaLabel" }] : /* istanbul ignore next */ []);
1158
+ ariaLabelledBy = input(...ngDevMode ? [void 0, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []);
1159
+ validateDrop = input(false, {
1160
+ ...ngDevMode ? { debugName: "validateDrop" } : /* istanbul ignore next */ {},
1161
+ transform: booleanAttribute
1162
+ });
1163
+ filter = input(false, {
1164
+ ...ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {},
1165
+ transform: booleanAttribute
1166
+ });
1167
+ filterInputAutoFocus = input(false, {
1168
+ ...ngDevMode ? { debugName: "filterInputAutoFocus" } : /* istanbul ignore next */ {},
1169
+ transform: booleanAttribute
1170
+ });
1171
+ filterBy = input("label", ...ngDevMode ? [{ debugName: "filterBy" }] : /* istanbul ignore next */ []);
1172
+ filterMode = input("lenient", ...ngDevMode ? [{ debugName: "filterMode" }] : /* istanbul ignore next */ []);
1173
+ filterOptions;
1174
+ filterPlaceholder = input(...ngDevMode ? [void 0, { debugName: "filterPlaceholder" }] : /* istanbul ignore next */ []);
1175
+ filteredNodes = model(void 0, ...ngDevMode ? [{ debugName: "filteredNodes" }] : /* istanbul ignore next */ []);
1176
+ filterLocale = input(...ngDevMode ? [void 0, { debugName: "filterLocale" }] : /* istanbul ignore next */ []);
1177
+ scrollHeight = input(...ngDevMode ? [void 0, { debugName: "scrollHeight" }] : /* istanbul ignore next */ []);
1178
+ lazy = input(false, {
1179
+ ...ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {},
1180
+ transform: booleanAttribute
1181
+ });
1182
+ virtualScroll = input(false, {
1183
+ ...ngDevMode ? { debugName: "virtualScroll" } : /* istanbul ignore next */ {},
1184
+ transform: booleanAttribute
1185
+ });
1186
+ virtualScrollItemSize = input(...ngDevMode ? [void 0, { debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []);
1187
+ virtualScrollOptions = input(...ngDevMode ? [void 0, { debugName: "virtualScrollOptions" }] : /* istanbul ignore next */ []);
1188
+ indentation = input(1.5, {
1189
+ ...ngDevMode ? { debugName: "indentation" } : /* istanbul ignore next */ {},
1190
+ transform: numberAttribute
1191
+ });
1192
+ trackBy = input((index, item) => item, ...ngDevMode ? [{ debugName: "trackBy" }] : /* istanbul ignore next */ []);
1193
+ highlightOnSelect = input(false, {
1194
+ ...ngDevMode ? { debugName: "highlightOnSelect" } : /* istanbul ignore next */ {},
1195
+ transform: booleanAttribute
1196
+ });
1197
+ onNodeSelect = output();
1198
+ onNodeUnselect = output();
1199
+ onNodeExpand = output();
1200
+ onNodeCollapse = output();
1201
+ onNodeContextMenuSelect = output();
1202
+ onNodeDoubleClick = output();
1203
+ onNodeDrop = output();
1204
+ onLazyLoad = output();
1205
+ onScroll = output();
1206
+ onScrollIndexChange = output();
1207
+ onFilter = output();
1208
+ filterTemplate = contentChild("filter", {
1209
+ ...ngDevMode ? { debugName: "filterTemplate" } : /* istanbul ignore next */ {},
1210
+ descendants: false
1211
+ });
1212
+ nodeTemplate = contentChild("node", {
1213
+ ...ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {},
1214
+ descendants: false
1215
+ });
1216
+ headerTemplate = contentChild("header", {
1217
+ ...ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {},
1218
+ descendants: false
1219
+ });
1220
+ footerTemplate = contentChild("footer", {
1221
+ ...ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {},
1222
+ descendants: false
1223
+ });
1224
+ loaderTemplate = contentChild("loader", {
1225
+ ...ngDevMode ? { debugName: "loaderTemplate" } : /* istanbul ignore next */ {},
1226
+ descendants: false
1227
+ });
1228
+ emptyTemplate = contentChild("empty", {
1229
+ ...ngDevMode ? { debugName: "emptyTemplate" } : /* istanbul ignore next */ {},
1230
+ descendants: false
1231
+ });
1232
+ togglerIconTemplate = contentChild("togglericon", {
1233
+ ...ngDevMode ? { debugName: "togglerIconTemplate" } : /* istanbul ignore next */ {},
1234
+ descendants: false
1235
+ });
1236
+ checkboxIconTemplate = contentChild("checkboxicon", {
1237
+ ...ngDevMode ? { debugName: "checkboxIconTemplate" } : /* istanbul ignore next */ {},
1238
+ descendants: false
1239
+ });
1240
+ loadingIconTemplate = contentChild("loadingicon", {
1241
+ ...ngDevMode ? { debugName: "loadingIconTemplate" } : /* istanbul ignore next */ {},
1242
+ descendants: false
1243
+ });
1244
+ filterIconTemplate = contentChild("filtericon", {
1245
+ ...ngDevMode ? { debugName: "filterIconTemplate" } : /* istanbul ignore next */ {},
1246
+ descendants: false
1247
+ });
1248
+ filterViewChild = viewChild("filter", ...ngDevMode ? [{ debugName: "filterViewChild" }] : /* istanbul ignore next */ []);
1249
+ scroller = viewChild("scroller", ...ngDevMode ? [{ debugName: "scroller" }] : /* istanbul ignore next */ []);
1250
+ wrapperViewChild = viewChild("wrapper", ...ngDevMode ? [{ debugName: "wrapperViewChild" }] : /* istanbul ignore next */ []);
1251
+ contentViewChild = viewChild("content", ...ngDevMode ? [{ debugName: "contentViewChild" }] : /* istanbul ignore next */ []);
1252
+ serializedValue;
1253
+ nodeTouched;
1254
+ dragNodeTree;
1255
+ dragNode;
1256
+ dragNodeSubNodes;
1257
+ dragNodeIndex;
1258
+ dragNodeScope;
1259
+ dragHover;
1260
+ _componentStyle = inject(TreeStyle);
1261
+ dragDropService = inject(TreeDragDropService, { optional: true });
1262
+ destroyRef = inject(DestroyRef);
1263
+ constructor() {
1264
+ super();
1265
+ effect(() => {
1266
+ this.value();
1267
+ untracked(() => {
1268
+ this.updateSerializedValue();
1269
+ if (this.hasFilterActive()) this._filter(this.filterViewChild()?.nativeElement?.value);
1270
+ });
1271
+ });
1272
+ effect(() => {
1273
+ this.collapsedKeys();
1274
+ this.value();
1275
+ untracked(() => {
1276
+ if (this.collapsedKeys() == null) return;
1277
+ this.applyCollapsedKeys();
1278
+ this.updateSerializedValue();
1279
+ });
1280
+ });
1281
+ effect(() => {
1282
+ this.selectionKeys();
1283
+ this.value();
1284
+ untracked(() => {
1285
+ if (this.selectionKeys() == null) return;
1286
+ if (!this.isSameSelectionKeys(this.deriveSelectionKeys(), this.selectionKeys())) this.applySelectionKeys();
1287
+ });
1288
+ });
1289
+ effect(() => {
1290
+ this.selection();
1291
+ untracked(() => {
1292
+ if (this.selectionKeys() == null) return;
1293
+ const derived = this.deriveSelectionKeys();
1294
+ if (!this.isSameSelectionKeys(derived, this.selectionKeys())) this.selectionKeys.set(derived);
1295
+ });
1296
+ });
1297
+ }
1298
+ showLoadingMask = computed(() => this.loading() && this.loadingMode() === "mask", ...ngDevMode ? [{ debugName: "showLoadingMask" }] : /* istanbul ignore next */ []);
1299
+ get showEmptyMessage() {
1300
+ return !this.loading() && (this.getRootNode() == null || this.getRootNode().length === 0);
1301
+ }
1302
+ scrollerStyleHeight = computed(() => this.scrollHeight() !== "flex" ? this.scrollHeight() : void 0, ...ngDevMode ? [{ debugName: "scrollerStyleHeight" }] : /* istanbul ignore next */ []);
1303
+ scrollerScrollHeight = computed(() => this.scrollHeight() !== "flex" ? void 0 : "100%", ...ngDevMode ? [{ debugName: "scrollerScrollHeight" }] : /* istanbul ignore next */ []);
1304
+ get emptyMessageLabel() {
1305
+ return this.emptyMessage() || this.translate(TranslationKeys.EMPTY_MESSAGE);
1306
+ }
1307
+ filteredNodeOrigins = /* @__PURE__ */ new WeakMap();
1308
+ onDestroy() {
1309
+ this._destroyed = true;
1310
+ }
1311
+ onAfterViewChecked() {
1312
+ this.bindDirectiveInstance.setAttrs(this.ptms(["host", "root"]));
1313
+ }
1314
+ onInit() {
1315
+ if (this.filterBy()) this.filterOptions = {
1316
+ filter: (value) => this._filter(value),
1317
+ reset: () => this.resetFilter()
1318
+ };
1319
+ if (this.droppableNodes()) this.dragDropService?.dragStart$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
1320
+ this.dragNodeTree = event.tree;
1321
+ this.dragNode = event.node;
1322
+ this.dragNodeSubNodes = event.subNodes;
1323
+ this.dragNodeIndex = event.index;
1324
+ this.dragNodeScope = event.scope;
1325
+ });
1326
+ if (this.droppableNodes() || this.draggableNodes()) this.dragDropService?.dragStop$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
1327
+ this.dragNodeTree = null;
1328
+ this.dragNode = null;
1329
+ this.dragNodeSubNodes = null;
1330
+ this.dragNodeIndex = null;
1331
+ this.dragNodeScope = null;
1332
+ this.dragHover = false;
1333
+ if (this.hasFilterActive()) {
1334
+ this._filter(this.filterViewChild()?.nativeElement?.value);
1335
+ this.cd.markForCheck();
1336
+ } else if (this.virtualScroll()) {
1337
+ this.updateSerializedValue();
1338
+ this.cd.markForCheck();
1339
+ }
1340
+ });
1341
+ }
1342
+ updateSerializedValue() {
1343
+ this.serializedValue = [];
1344
+ this.serializeNodes(null, this.getRootNode(), 0, true);
1345
+ }
1346
+ applyCollapsedKeys() {
1347
+ const collapsedKeys = this.collapsedKeys();
1348
+ if (collapsedKeys == null) return;
1349
+ const walk = (nodes) => {
1350
+ if (!nodes) return;
1351
+ for (const node of nodes) {
1352
+ if (node.key != null) node.expanded = !collapsedKeys[node.key];
1353
+ if (node.children) walk(node.children);
1354
+ }
1355
+ };
1356
+ walk(this.getRootNode());
1357
+ }
1358
+ setNodeCollapsed(node, collapsed) {
1359
+ const collapsedKeys = this.collapsedKeys();
1360
+ if (collapsedKeys == null || node.key == null) return;
1361
+ const next = { ...collapsedKeys };
1362
+ if (collapsed) next[node.key] = true;
1363
+ else delete next[node.key];
1364
+ this.collapsedKeys.set(next);
1365
+ }
1366
+ collectNodesByKey() {
1367
+ const map = /* @__PURE__ */ new Map();
1368
+ const walk = (nodes) => {
1369
+ if (!nodes) return;
1370
+ for (const node of nodes) {
1371
+ if (node.key != null) map.set(node.key, node);
1372
+ if (node.children) walk(node.children);
1373
+ }
1374
+ };
1375
+ walk(this.getRootNode());
1376
+ return map;
1377
+ }
1378
+ deriveSelectionKeys() {
1379
+ const mode = this.selectionMode();
1380
+ const map = {};
1381
+ if (mode === "checkbox") {
1382
+ const selection = this.selection() || [];
1383
+ const selectedKeys = new Set(selection.map((node) => node.key));
1384
+ const walk = (nodes) => {
1385
+ if (!nodes) return;
1386
+ for (const node of nodes) {
1387
+ if (node.key != null) {
1388
+ if (selectedKeys.has(node.key)) map[node.key] = {
1389
+ checked: true,
1390
+ partialChecked: false
1391
+ };
1392
+ else if (node.partialSelected) map[node.key] = {
1393
+ checked: false,
1394
+ partialChecked: true
1395
+ };
1396
+ }
1397
+ if (node.children) walk(node.children);
1398
+ }
1399
+ };
1400
+ walk(this.getRootNode());
1401
+ } else if (mode === "single") {
1402
+ const selected = this.selection();
1403
+ if (selected?.key != null) map[selected.key] = true;
1404
+ } else {
1405
+ const selection = this.selection() || [];
1406
+ for (const node of selection) if (node.key != null) map[node.key] = true;
1407
+ }
1408
+ return map;
1409
+ }
1410
+ applySelectionKeys() {
1411
+ const keys = this.selectionKeys();
1412
+ if (keys == null) return;
1413
+ const mode = this.selectionMode();
1414
+ const nodesByKey = this.collectNodesByKey();
1415
+ const isChecked = (value) => value === true || value?.checked === true;
1416
+ if (mode === "single") {
1417
+ const key = Object.keys(keys).find((k) => isChecked(keys[k]));
1418
+ this.selection.set(key != null ? nodesByKey.get(key) ?? null : null);
1419
+ return;
1420
+ }
1421
+ const selected = [];
1422
+ nodesByKey.forEach((node, key) => {
1423
+ const value = keys[key];
1424
+ if (mode === "checkbox") node.partialSelected = value?.partialChecked === true;
1425
+ if (isChecked(value)) selected.push(node);
1426
+ });
1427
+ this.selection.set(selected);
1428
+ }
1429
+ isSameSelectionKeys(a, b) {
1430
+ const aKeys = Object.keys(a || {});
1431
+ const bKeys = Object.keys(b || {});
1432
+ if (aKeys.length !== bKeys.length) return false;
1433
+ return aKeys.every((key) => {
1434
+ const av = a[key];
1435
+ const bv = b[key];
1436
+ if (av === bv) return true;
1437
+ if (av && bv && typeof av === "object" && typeof bv === "object") return av.checked === bv.checked && av.partialChecked === bv.partialChecked;
1438
+ return false;
1439
+ });
1440
+ }
1441
+ serializeNodes(parent, nodes, level, visible) {
1442
+ if (nodes && nodes.length) for (let node of nodes) {
1443
+ node.parent = parent;
1444
+ const rowNode = {
1445
+ node,
1446
+ parent,
1447
+ level,
1448
+ visible: visible && (parent ? parent.expanded : true)
1449
+ };
1450
+ this.serializedValue.push(rowNode);
1451
+ if (rowNode.visible && node.expanded) this.serializeNodes(node, node.children, level + 1, rowNode.visible);
1452
+ }
1453
+ }
1454
+ onNodeClick(event, node) {
1455
+ const section = event.target?.getAttribute?.("data-pc-section");
1456
+ if (section === "nodetogglebutton" || section === "nodetoggleicon") return;
1457
+ if (this.selectionMode()) {
1458
+ if (node.selectable === false) return;
1459
+ if (this.hasFilteredNodes()) {
1460
+ node = this.getNodeWithKey(node.key, this.filteredNodes());
1461
+ if (!node) return;
1462
+ }
1463
+ let index = this.findIndexInSelection(node);
1464
+ let selected = index >= 0;
1465
+ const currentSelection = this.selection();
1466
+ if (this.isCheckboxSelectionMode()) {
1467
+ if (selected) {
1468
+ if (this.propagateSelectionDown()) this.propagateDown(node, false);
1469
+ else this.selection.set(currentSelection.filter((_val, i) => i != index));
1470
+ if (this.propagateSelectionUp() && node.parent) this.propagateUp(node.parent, false);
1471
+ this.onNodeUnselect.emit({
1472
+ originalEvent: event,
1473
+ node
1474
+ });
1475
+ } else {
1476
+ if (this.propagateSelectionDown()) this.propagateDown(node, true);
1477
+ else this.selection.set([...currentSelection || [], node]);
1478
+ if (this.propagateSelectionUp() && node.parent) this.propagateUp(node.parent, true);
1479
+ this.onNodeSelect.emit({
1480
+ originalEvent: event,
1481
+ node
1482
+ });
1483
+ }
1484
+ } else if (this.nodeTouched ? false : this.metaKeySelection()) {
1485
+ let metaKey = event.metaKey || event.ctrlKey;
1486
+ if (selected && metaKey) {
1487
+ if (this.isSingleSelectionMode()) this.selection.set(null);
1488
+ else this.selection.set(currentSelection.filter((_val, i) => i != index));
1489
+ this.onNodeUnselect.emit({
1490
+ originalEvent: event,
1491
+ node
1492
+ });
1493
+ } else {
1494
+ if (this.isSingleSelectionMode()) this.selection.set(node);
1495
+ else if (this.isMultipleSelectionMode()) {
1496
+ const base = !metaKey ? [] : currentSelection || [];
1497
+ this.selection.set([...base, node]);
1498
+ }
1499
+ this.onNodeSelect.emit({
1500
+ originalEvent: event,
1501
+ node
1502
+ });
1503
+ }
1504
+ } else if (this.isSingleSelectionMode()) {
1505
+ if (selected) {
1506
+ this.selection.set(null);
1507
+ this.onNodeUnselect.emit({
1508
+ originalEvent: event,
1509
+ node
1510
+ });
1511
+ } else {
1512
+ this.selection.set(node);
1513
+ setTimeout(() => {
1514
+ if (this._destroyed) return;
1515
+ this.onNodeSelect.emit({
1516
+ originalEvent: event,
1517
+ node
1518
+ });
1519
+ });
1520
+ }
1521
+ } else if (selected) {
1522
+ this.selection.set(currentSelection.filter((_val, i) => i != index));
1523
+ this.onNodeUnselect.emit({
1524
+ originalEvent: event,
1525
+ node
1526
+ });
1527
+ } else {
1528
+ this.selection.set([...currentSelection || [], node]);
1529
+ setTimeout(() => {
1530
+ if (this._destroyed) return;
1531
+ this.onNodeSelect.emit({
1532
+ originalEvent: event,
1533
+ node
1534
+ });
1535
+ });
1536
+ }
1537
+ }
1538
+ this.nodeTouched = false;
1539
+ }
1540
+ onNodeTouchEnd() {
1541
+ this.nodeTouched = true;
1542
+ }
1543
+ onNodeRightClick(event, node) {
1544
+ if (this.contextMenu()) {
1545
+ const section = event.target.getAttribute("data-pc-section");
1546
+ if (section === "nodetogglebutton" || section === "nodetoggleicon") return;
1547
+ const onContextMenuCallback = () => {
1548
+ this.contextMenu().show(event);
1549
+ this.contextMenu().hideCallback = () => {
1550
+ this.contextMenuSelection.set(null);
1551
+ };
1552
+ this.onNodeContextMenuSelect.emit({
1553
+ originalEvent: event,
1554
+ node
1555
+ });
1556
+ };
1557
+ this.contextMenuSelection.set(node);
1558
+ onContextMenuCallback();
1559
+ }
1560
+ }
1561
+ onNodeDblClick(event, node) {
1562
+ this.onNodeDoubleClick.emit({
1563
+ originalEvent: event,
1564
+ node
1565
+ });
1566
+ }
1567
+ findIndexInSelection(node) {
1568
+ let index = -1;
1569
+ const currentSelection = this.selection();
1570
+ if (this.selectionMode() && currentSelection) {
1571
+ if (this.isSingleSelectionMode()) {
1572
+ const sel = currentSelection;
1573
+ index = sel.key && sel.key === node.key || sel == node ? 0 : -1;
1574
+ } else {
1575
+ const selArray = currentSelection;
1576
+ for (let i = 0; i < selArray.length; i++) {
1577
+ let selectedNode = selArray[i];
1578
+ if (selectedNode.key && selectedNode.key === node.key || selectedNode == node) {
1579
+ index = i;
1580
+ break;
1581
+ }
1582
+ }
1583
+ }
1584
+ }
1585
+ return index;
1586
+ }
1587
+ syncNodeOption(node, parentNodes, option, value) {
1588
+ const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;
1589
+ if (_node) _node[option] = value || node[option];
1590
+ }
1591
+ hasFilteredNodes() {
1592
+ return this.filter() && this.filteredNodes() && this.filteredNodes().length;
1593
+ }
1594
+ getOriginalNode(node) {
1595
+ return this.filteredNodeOrigins.get(node) ?? node;
1596
+ }
1597
+ hasFilterActive() {
1598
+ return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;
1599
+ }
1600
+ getNodeWithKey(key, nodes) {
1601
+ for (let node of nodes) {
1602
+ if (node.key === key) return node;
1603
+ if (node.children) {
1604
+ let matchedNode = this.getNodeWithKey(key, node.children);
1605
+ if (matchedNode) return matchedNode;
1606
+ }
1607
+ }
1608
+ }
1609
+ propagateUp(node, select) {
1610
+ if (node.children && node.children.length) {
1611
+ let selectedCount = 0;
1612
+ let childPartialSelected = false;
1613
+ for (let child of node.children) if (this.isSelected(child)) selectedCount++;
1614
+ else if (child.partialSelected) childPartialSelected = true;
1615
+ const currentSelection = this.selection() || [];
1616
+ if (select && selectedCount == node.children.length) {
1617
+ this.selection.set([...currentSelection, node]);
1618
+ node.partialSelected = false;
1619
+ } else {
1620
+ if (!select) {
1621
+ let index = this.findIndexInSelection(node);
1622
+ if (index >= 0) this.selection.set(currentSelection.filter((_val, i) => i != index));
1623
+ }
1624
+ if (childPartialSelected || selectedCount > 0 && selectedCount != node.children.length) node.partialSelected = true;
1625
+ else node.partialSelected = false;
1626
+ }
1627
+ this.syncNodeOption(node, this.filteredNodes(), "partialSelected");
1628
+ }
1629
+ let parent = node.parent;
1630
+ if (parent) this.propagateUp(parent, select);
1631
+ }
1632
+ propagateDown(node, select) {
1633
+ let index = this.findIndexInSelection(node);
1634
+ const currentSelection = this.selection() || [];
1635
+ if (select && index == -1) this.selection.set([...currentSelection, node]);
1636
+ else if (!select && index > -1) this.selection.set(currentSelection.filter((_val, i) => i != index));
1637
+ node.partialSelected = false;
1638
+ this.syncNodeOption(node, this.filteredNodes(), "partialSelected");
1639
+ if (node.children && node.children.length) for (let child of node.children) this.propagateDown(child, select);
1640
+ }
1641
+ isSelected(node) {
1642
+ return this.findIndexInSelection(node) != -1;
1643
+ }
1644
+ isSingleSelectionMode() {
1645
+ return this.selectionMode() && this.selectionMode() == "single";
1646
+ }
1647
+ isMultipleSelectionMode() {
1648
+ return this.selectionMode() && this.selectionMode() == "multiple";
1649
+ }
1650
+ isCheckboxSelectionMode() {
1651
+ return this.selectionMode() && this.selectionMode() == "checkbox";
1652
+ }
1653
+ isNodeLeaf(node) {
1654
+ return node.leaf == false ? false : !(node.children && node.children.length);
1655
+ }
1656
+ getRootNode() {
1657
+ return this.filteredNodes() ? this.filteredNodes() : this.value();
1658
+ }
1659
+ getTemplateForNode(node) {
1660
+ return this.nodeTemplate() ?? null;
1661
+ }
1662
+ onDragOver(event) {
1663
+ if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {
1664
+ event.dataTransfer.dropEffect = "copy";
1665
+ event.preventDefault();
1666
+ }
1667
+ }
1668
+ onDrop(event) {
1669
+ if (this.droppableNodes()) {
1670
+ event.preventDefault();
1671
+ let dragNode = this.dragNode;
1672
+ if (this.isSameTreeScope(this.dragNodeScope)) return;
1673
+ if (this.allowDrop(dragNode, null, this.dragNodeScope)) {
1674
+ let dragNodeIndex = this.dragNodeIndex;
1675
+ if (this.validateDrop()) this.onNodeDrop.emit({
1676
+ originalEvent: event,
1677
+ dragNode,
1678
+ dropNode: null,
1679
+ index: dragNodeIndex,
1680
+ accept: () => {
1681
+ this.processTreeDrop(dragNode, dragNodeIndex);
1682
+ }
1683
+ });
1684
+ else {
1685
+ this.onNodeDrop.emit({
1686
+ originalEvent: event,
1687
+ dragNode,
1688
+ dropNode: null,
1689
+ index: dragNodeIndex
1690
+ });
1691
+ this.processTreeDrop(dragNode, dragNodeIndex);
1692
+ }
1693
+ }
1694
+ }
1695
+ }
1696
+ processTreeDrop(dragNode, dragNodeIndex) {
1697
+ const subNodes = this.dragNodeSubNodes;
1698
+ const removalIndex = subNodes ? subNodes.indexOf(dragNode) : -1;
1699
+ if (removalIndex !== -1) subNodes.splice(removalIndex, 1);
1700
+ this.value().push(dragNode);
1701
+ this.dragDropService.stopDrag({ node: dragNode });
1702
+ }
1703
+ onDragEnter() {
1704
+ if (this.droppableNodes() && this.allowDrop(this.dragNode, null, this.dragNodeScope)) this.dragHover = true;
1705
+ }
1706
+ onDragLeave(event) {
1707
+ if (this.droppableNodes()) {
1708
+ let rect = event.currentTarget.getBoundingClientRect();
1709
+ 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)) this.dragHover = false;
1710
+ }
1711
+ }
1712
+ allowDrop(dragNode, dropNode, dragNodeScope) {
1713
+ if (!dragNode) return false;
1714
+ else if (this.isValidDragScope(dragNodeScope)) {
1715
+ let allow = true;
1716
+ if (dropNode) {
1717
+ if (dragNode === this.getOriginalNode(dropNode)) allow = false;
1718
+ else {
1719
+ let parent = dropNode.parent;
1720
+ while (parent != null) {
1721
+ if (this.getOriginalNode(parent) === dragNode) {
1722
+ allow = false;
1723
+ break;
1724
+ }
1725
+ parent = parent.parent;
1726
+ }
1727
+ }
1728
+ }
1729
+ return allow;
1730
+ } else return false;
1731
+ }
1732
+ hasCommonScope(dragScope, dropScope) {
1733
+ if (typeof dropScope === "string") {
1734
+ if (typeof dragScope === "string") return dropScope === dragScope;
1735
+ else if (Array.isArray(dragScope)) return dragScope.indexOf(dropScope) != -1;
1736
+ } else if (Array.isArray(dropScope)) {
1737
+ if (typeof dragScope === "string") return dropScope.indexOf(dragScope) != -1;
1738
+ else if (Array.isArray(dragScope)) {
1739
+ for (let s of dropScope) for (let ds of dragScope) if (s === ds) return true;
1740
+ }
1741
+ }
1742
+ return false;
1743
+ }
1744
+ isSameTreeScope(dragScope) {
1745
+ return this.hasCommonScope(dragScope, this.draggableScope());
1746
+ }
1747
+ isValidDragScope(dragScope) {
1748
+ let dropScope = this.droppableScope();
1749
+ if (dropScope) return this.hasCommonScope(dragScope, dropScope);
1750
+ else return true;
1751
+ }
1752
+ _filter(value) {
1753
+ let filterValue = value;
1754
+ if (filterValue === "") this.filteredNodes.set(null);
1755
+ else {
1756
+ const filteredNodes = [];
1757
+ const searchFields = this.filterBy().split(",");
1758
+ const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());
1759
+ const isStrictMode = this.filterMode() === "strict";
1760
+ for (let node of this.value()) {
1761
+ let copyNode = { ...node };
1762
+ this.filteredNodeOrigins.set(copyNode, node);
1763
+ let paramsWithoutNode = {
1764
+ searchFields,
1765
+ filterText,
1766
+ isStrictMode
1767
+ };
1768
+ if (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode)) || !isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode))) filteredNodes.push(copyNode);
1769
+ }
1770
+ this.filteredNodes.set(filteredNodes);
1771
+ }
1772
+ this.updateSerializedValue();
1773
+ this.onFilter.emit({
1774
+ filter: filterValue,
1775
+ filteredValue: this.filteredNodes()
1776
+ });
1777
+ }
1778
+ resetFilter() {
1779
+ this.filteredNodes.set(null);
1780
+ const filterEl = this.filterViewChild();
1781
+ if (filterEl && filterEl.nativeElement) filterEl.nativeElement.value = "";
1782
+ }
1783
+ scrollToVirtualIndex(index) {
1784
+ if (this.virtualScroll()) this.scroller()?.scrollToIndex(index);
1785
+ }
1786
+ scrollTo(options) {
1787
+ if (this.virtualScroll()) this.scroller()?.scrollTo(options);
1788
+ else {
1789
+ const wrapper = this.wrapperViewChild();
1790
+ if (wrapper && wrapper.nativeElement) {
1791
+ if (wrapper.nativeElement.scrollTo) wrapper.nativeElement.scrollTo(options);
1792
+ else {
1793
+ wrapper.nativeElement.scrollLeft = options.left;
1794
+ wrapper.nativeElement.scrollTop = options.top;
1795
+ }
1796
+ }
1797
+ }
1798
+ }
1799
+ findFilteredNodes(node, paramsWithoutNode) {
1800
+ if (node) {
1801
+ let matched = false;
1802
+ if (node.children) {
1803
+ let childNodes = [...node.children];
1804
+ node.children = [];
1805
+ for (let childNode of childNodes) {
1806
+ let copyChildNode = { ...childNode };
1807
+ this.filteredNodeOrigins.set(copyChildNode, this.getOriginalNode(childNode));
1808
+ if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {
1809
+ matched = true;
1810
+ node.children.push(copyChildNode);
1811
+ }
1812
+ }
1813
+ }
1814
+ if (matched) {
1815
+ node.expanded = true;
1816
+ return true;
1817
+ }
1818
+ }
1819
+ }
1820
+ isFilterMatched(node, params) {
1821
+ let { searchFields, filterText, isStrictMode } = params;
1822
+ let matched = false;
1823
+ for (let field of searchFields) if (removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale()).indexOf(filterText) > -1) matched = true;
1824
+ if (!matched || isStrictMode && !this.isNodeLeaf(node)) matched = this.findFilteredNodes(node, {
1825
+ searchFields,
1826
+ filterText,
1827
+ isStrictMode
1828
+ }) || matched;
1829
+ return matched;
1830
+ }
1831
+ getIndex(options, index) {
1832
+ const getItemOptions = options["getItemOptions"];
1833
+ return getItemOptions ? getItemOptions(index).index : index;
1834
+ }
1835
+ getBlockableElement() {
1836
+ return this.el.nativeElement.children[0];
1837
+ }
1838
+ get containerDataP() {
1839
+ return this.cn({
1840
+ loading: this.loading(),
1841
+ scrollable: this.scrollHeight() === "flex"
1842
+ });
1843
+ }
1844
+ get wrapperDataP() {
1845
+ return this.cn({ scrollable: this.scrollHeight() === "flex" });
1846
+ }
1847
+ static ɵfac = i0.ɵɵngDeclareFactory({
1848
+ minVersion: "12.0.0",
1849
+ version: "22.2.0",
1850
+ ngImport: i0,
1851
+ type: Tree,
1852
+ deps: [],
1853
+ target: i0.ɵɵFactoryTarget.Component
1854
+ });
1855
+ static ɵcmp = i0.ɵɵngDeclareComponent({
1856
+ minVersion: "17.0.0",
1857
+ version: "22.2.0",
1858
+ type: Tree,
1859
+ isStandalone: true,
1860
+ selector: "p-tree",
1861
+ inputs: {
1862
+ value: {
1863
+ classPropertyName: "value",
1864
+ publicName: "value",
1865
+ isSignal: true,
1866
+ isRequired: false,
1867
+ transformFunction: null
1868
+ },
1869
+ selectionMode: {
1870
+ classPropertyName: "selectionMode",
1871
+ publicName: "selectionMode",
1872
+ isSignal: true,
1873
+ isRequired: false,
1874
+ transformFunction: null
1875
+ },
1876
+ loadingMode: {
1877
+ classPropertyName: "loadingMode",
1878
+ publicName: "loadingMode",
1879
+ isSignal: true,
1880
+ isRequired: false,
1881
+ transformFunction: null
1882
+ },
1883
+ selection: {
1884
+ classPropertyName: "selection",
1885
+ publicName: "selection",
1886
+ isSignal: true,
1887
+ isRequired: false,
1888
+ transformFunction: null
1889
+ },
1890
+ collapsedKeys: {
1891
+ classPropertyName: "collapsedKeys",
1892
+ publicName: "collapsedKeys",
1893
+ isSignal: true,
1894
+ isRequired: false,
1895
+ transformFunction: null
1896
+ },
1897
+ selectionKeys: {
1898
+ classPropertyName: "selectionKeys",
1899
+ publicName: "selectionKeys",
1900
+ isSignal: true,
1901
+ isRequired: false,
1902
+ transformFunction: null
1903
+ },
1904
+ contextMenu: {
1905
+ classPropertyName: "contextMenu",
1906
+ publicName: "contextMenu",
1907
+ isSignal: true,
1908
+ isRequired: false,
1909
+ transformFunction: null
1910
+ },
1911
+ contextMenuSelection: {
1912
+ classPropertyName: "contextMenuSelection",
1913
+ publicName: "contextMenuSelection",
1914
+ isSignal: true,
1915
+ isRequired: false,
1916
+ transformFunction: null
1917
+ },
1918
+ draggableScope: {
1919
+ classPropertyName: "draggableScope",
1920
+ publicName: "draggableScope",
1921
+ isSignal: true,
1922
+ isRequired: false,
1923
+ transformFunction: null
1924
+ },
1925
+ droppableScope: {
1926
+ classPropertyName: "droppableScope",
1927
+ publicName: "droppableScope",
1928
+ isSignal: true,
1929
+ isRequired: false,
1930
+ transformFunction: null
1931
+ },
1932
+ draggableNodes: {
1933
+ classPropertyName: "draggableNodes",
1934
+ publicName: "draggableNodes",
1935
+ isSignal: true,
1936
+ isRequired: false,
1937
+ transformFunction: null
1938
+ },
1939
+ droppableNodes: {
1940
+ classPropertyName: "droppableNodes",
1941
+ publicName: "droppableNodes",
1942
+ isSignal: true,
1943
+ isRequired: false,
1944
+ transformFunction: null
1945
+ },
1946
+ metaKeySelection: {
1947
+ classPropertyName: "metaKeySelection",
1948
+ publicName: "metaKeySelection",
1949
+ isSignal: true,
1950
+ isRequired: false,
1951
+ transformFunction: null
1952
+ },
1953
+ propagateSelectionUp: {
1954
+ classPropertyName: "propagateSelectionUp",
1955
+ publicName: "propagateSelectionUp",
1956
+ isSignal: true,
1957
+ isRequired: false,
1958
+ transformFunction: null
1959
+ },
1960
+ propagateSelectionDown: {
1961
+ classPropertyName: "propagateSelectionDown",
1962
+ publicName: "propagateSelectionDown",
1963
+ isSignal: true,
1964
+ isRequired: false,
1965
+ transformFunction: null
1966
+ },
1967
+ loading: {
1968
+ classPropertyName: "loading",
1969
+ publicName: "loading",
1970
+ isSignal: true,
1971
+ isRequired: false,
1972
+ transformFunction: null
1973
+ },
1974
+ loadingIcon: {
1975
+ classPropertyName: "loadingIcon",
1976
+ publicName: "loadingIcon",
1977
+ isSignal: true,
1978
+ isRequired: false,
1979
+ transformFunction: null
1980
+ },
1981
+ emptyMessage: {
1982
+ classPropertyName: "emptyMessage",
1983
+ publicName: "emptyMessage",
1984
+ isSignal: true,
1985
+ isRequired: false,
1986
+ transformFunction: null
1987
+ },
1988
+ ariaLabel: {
1989
+ classPropertyName: "ariaLabel",
1990
+ publicName: "ariaLabel",
1991
+ isSignal: true,
1992
+ isRequired: false,
1993
+ transformFunction: null
1994
+ },
1995
+ togglerAriaLabel: {
1996
+ classPropertyName: "togglerAriaLabel",
1997
+ publicName: "togglerAriaLabel",
1998
+ isSignal: true,
1999
+ isRequired: false,
2000
+ transformFunction: null
2001
+ },
2002
+ ariaLabelledBy: {
2003
+ classPropertyName: "ariaLabelledBy",
2004
+ publicName: "ariaLabelledBy",
2005
+ isSignal: true,
2006
+ isRequired: false,
2007
+ transformFunction: null
2008
+ },
2009
+ validateDrop: {
2010
+ classPropertyName: "validateDrop",
2011
+ publicName: "validateDrop",
2012
+ isSignal: true,
2013
+ isRequired: false,
2014
+ transformFunction: null
2015
+ },
2016
+ filter: {
2017
+ classPropertyName: "filter",
2018
+ publicName: "filter",
2019
+ isSignal: true,
2020
+ isRequired: false,
2021
+ transformFunction: null
2022
+ },
2023
+ filterInputAutoFocus: {
2024
+ classPropertyName: "filterInputAutoFocus",
2025
+ publicName: "filterInputAutoFocus",
2026
+ isSignal: true,
2027
+ isRequired: false,
2028
+ transformFunction: null
2029
+ },
2030
+ filterBy: {
2031
+ classPropertyName: "filterBy",
2032
+ publicName: "filterBy",
2033
+ isSignal: true,
2034
+ isRequired: false,
2035
+ transformFunction: null
2036
+ },
2037
+ filterMode: {
2038
+ classPropertyName: "filterMode",
2039
+ publicName: "filterMode",
2040
+ isSignal: true,
2041
+ isRequired: false,
2042
+ transformFunction: null
2043
+ },
2044
+ filterPlaceholder: {
2045
+ classPropertyName: "filterPlaceholder",
2046
+ publicName: "filterPlaceholder",
2047
+ isSignal: true,
2048
+ isRequired: false,
2049
+ transformFunction: null
2050
+ },
2051
+ filteredNodes: {
2052
+ classPropertyName: "filteredNodes",
2053
+ publicName: "filteredNodes",
2054
+ isSignal: true,
2055
+ isRequired: false,
2056
+ transformFunction: null
2057
+ },
2058
+ filterLocale: {
2059
+ classPropertyName: "filterLocale",
2060
+ publicName: "filterLocale",
2061
+ isSignal: true,
2062
+ isRequired: false,
2063
+ transformFunction: null
2064
+ },
2065
+ scrollHeight: {
2066
+ classPropertyName: "scrollHeight",
2067
+ publicName: "scrollHeight",
2068
+ isSignal: true,
2069
+ isRequired: false,
2070
+ transformFunction: null
2071
+ },
2072
+ lazy: {
2073
+ classPropertyName: "lazy",
2074
+ publicName: "lazy",
2075
+ isSignal: true,
2076
+ isRequired: false,
2077
+ transformFunction: null
2078
+ },
2079
+ virtualScroll: {
2080
+ classPropertyName: "virtualScroll",
2081
+ publicName: "virtualScroll",
2082
+ isSignal: true,
2083
+ isRequired: false,
2084
+ transformFunction: null
2085
+ },
2086
+ virtualScrollItemSize: {
2087
+ classPropertyName: "virtualScrollItemSize",
2088
+ publicName: "virtualScrollItemSize",
2089
+ isSignal: true,
2090
+ isRequired: false,
2091
+ transformFunction: null
2092
+ },
2093
+ virtualScrollOptions: {
2094
+ classPropertyName: "virtualScrollOptions",
2095
+ publicName: "virtualScrollOptions",
2096
+ isSignal: true,
2097
+ isRequired: false,
2098
+ transformFunction: null
2099
+ },
2100
+ indentation: {
2101
+ classPropertyName: "indentation",
2102
+ publicName: "indentation",
2103
+ isSignal: true,
2104
+ isRequired: false,
2105
+ transformFunction: null
2106
+ },
2107
+ trackBy: {
2108
+ classPropertyName: "trackBy",
2109
+ publicName: "trackBy",
2110
+ isSignal: true,
2111
+ isRequired: false,
2112
+ transformFunction: null
2113
+ },
2114
+ highlightOnSelect: {
2115
+ classPropertyName: "highlightOnSelect",
2116
+ publicName: "highlightOnSelect",
2117
+ isSignal: true,
2118
+ isRequired: false,
2119
+ transformFunction: null
2120
+ }
2121
+ },
2122
+ outputs: {
2123
+ selection: "selectionChange",
2124
+ collapsedKeys: "collapsedKeysChange",
2125
+ selectionKeys: "selectionKeysChange",
2126
+ contextMenuSelection: "contextMenuSelectionChange",
2127
+ filteredNodes: "filteredNodesChange",
2128
+ onNodeSelect: "onNodeSelect",
2129
+ onNodeUnselect: "onNodeUnselect",
2130
+ onNodeExpand: "onNodeExpand",
2131
+ onNodeCollapse: "onNodeCollapse",
2132
+ onNodeContextMenuSelect: "onNodeContextMenuSelect",
2133
+ onNodeDoubleClick: "onNodeDoubleClick",
2134
+ onNodeDrop: "onNodeDrop",
2135
+ onLazyLoad: "onLazyLoad",
2136
+ onScroll: "onScroll",
2137
+ onScrollIndexChange: "onScrollIndexChange",
2138
+ onFilter: "onFilter"
2139
+ },
2140
+ host: {
2141
+ listeners: {
2142
+ "drop": "onDrop($event)",
2143
+ "dragover": "onDragOver($event)",
2144
+ "dragenter": "onDragEnter()",
2145
+ "dragleave": "onDragLeave($event)"
2146
+ },
2147
+ properties: {
2148
+ "class": "cx('root')",
2149
+ "attr.data-p": "containerDataP"
2150
+ }
2151
+ },
2152
+ providers: [
2153
+ TreeStyle,
2154
+ {
2155
+ provide: TREE_INSTANCE,
2156
+ useExisting: Tree
2157
+ },
2158
+ {
2159
+ provide: PARENT_INSTANCE,
2160
+ useExisting: Tree
2161
+ }
2162
+ ],
2163
+ queries: [
2164
+ {
2165
+ propertyName: "filterTemplate",
2166
+ first: true,
2167
+ predicate: ["filter"],
2168
+ isSignal: true
2169
+ },
2170
+ {
2171
+ propertyName: "nodeTemplate",
2172
+ first: true,
2173
+ predicate: ["node"],
2174
+ isSignal: true
2175
+ },
2176
+ {
2177
+ propertyName: "headerTemplate",
2178
+ first: true,
2179
+ predicate: ["header"],
2180
+ isSignal: true
2181
+ },
2182
+ {
2183
+ propertyName: "footerTemplate",
2184
+ first: true,
2185
+ predicate: ["footer"],
2186
+ isSignal: true
2187
+ },
2188
+ {
2189
+ propertyName: "loaderTemplate",
2190
+ first: true,
2191
+ predicate: ["loader"],
2192
+ isSignal: true
2193
+ },
2194
+ {
2195
+ propertyName: "emptyTemplate",
2196
+ first: true,
2197
+ predicate: ["empty"],
2198
+ isSignal: true
2199
+ },
2200
+ {
2201
+ propertyName: "togglerIconTemplate",
2202
+ first: true,
2203
+ predicate: ["togglericon"],
2204
+ isSignal: true
2205
+ },
2206
+ {
2207
+ propertyName: "checkboxIconTemplate",
2208
+ first: true,
2209
+ predicate: ["checkboxicon"],
2210
+ isSignal: true
2211
+ },
2212
+ {
2213
+ propertyName: "loadingIconTemplate",
2214
+ first: true,
2215
+ predicate: ["loadingicon"],
2216
+ isSignal: true
2217
+ },
2218
+ {
2219
+ propertyName: "filterIconTemplate",
2220
+ first: true,
2221
+ predicate: ["filtericon"],
2222
+ isSignal: true
2223
+ }
2224
+ ],
2225
+ viewQueries: [
2226
+ {
2227
+ propertyName: "filterViewChild",
2228
+ first: true,
2229
+ predicate: ["filter"],
2230
+ descendants: true,
2231
+ isSignal: true
2232
+ },
2233
+ {
2234
+ propertyName: "scroller",
2235
+ first: true,
2236
+ predicate: ["scroller"],
2237
+ descendants: true,
2238
+ isSignal: true
2239
+ },
2240
+ {
2241
+ propertyName: "wrapperViewChild",
2242
+ first: true,
2243
+ predicate: ["wrapper"],
2244
+ descendants: true,
2245
+ isSignal: true
2246
+ },
2247
+ {
2248
+ propertyName: "contentViewChild",
2249
+ first: true,
2250
+ predicate: ["content"],
2251
+ descendants: true,
2252
+ isSignal: true
2253
+ }
2254
+ ],
2255
+ usesInheritance: true,
2256
+ hostDirectives: [{ directive: i1.Bind }],
2257
+ ngImport: i0,
2258
+ template: `
2083
2259
  @if (showLoadingMask()) {
2084
2260
  <div [class]="cx('mask')" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
2085
2261
  @if (loadingIcon()) {
@@ -2211,15 +2387,155 @@ class Tree extends BaseComponent {
2211
2387
  </div>
2212
2388
  }
2213
2389
  <ng-container *ngTemplateOutlet="footerTemplate()"></ng-container>
2214
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller", 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: "component", type: Search, selector: "svg[data-p-icon=\"search\"]" }, { kind: "component", type: Spinner, selector: "svg[data-p-icon=\"spinner\"]" }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: IconField, selector: "p-iconfield, p-icon-field", inputs: ["hostName", "iconPosition"] }, { kind: "component", type: InputIcon, selector: "p-inputicon", inputs: ["hostName"] }, { 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: i2.AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "directive", type: Bind, selector: "[pBind]", inputs: ["pBind"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2215
- }
2216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: Tree, decorators: [{
2217
- type: Component,
2218
- args: [{
2219
- selector: 'p-tree',
2220
- standalone: true,
2221
- imports: [NgTemplateOutlet, Scroller, Search, Spinner, InputText, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind],
2222
- template: `
2390
+ `,
2391
+ isInline: true,
2392
+ dependencies: [
2393
+ {
2394
+ kind: "directive",
2395
+ type: NgTemplateOutlet,
2396
+ selector: "[ngTemplateOutlet]",
2397
+ inputs: [
2398
+ "ngTemplateOutletContext",
2399
+ "ngTemplateOutlet",
2400
+ "ngTemplateOutletInjector"
2401
+ ]
2402
+ },
2403
+ {
2404
+ kind: "component",
2405
+ type: Scroller,
2406
+ selector: "p-scroller, p-virtualscroller, p-virtual-scroller",
2407
+ inputs: [
2408
+ "hostName",
2409
+ "id",
2410
+ "style",
2411
+ "styleClass",
2412
+ "tabindex",
2413
+ "items",
2414
+ "itemSize",
2415
+ "scrollHeight",
2416
+ "scrollWidth",
2417
+ "orientation",
2418
+ "step",
2419
+ "delay",
2420
+ "resizeDelay",
2421
+ "appendOnly",
2422
+ "inline",
2423
+ "lazy",
2424
+ "disabled",
2425
+ "loaderDisabled",
2426
+ "columns",
2427
+ "showSpacer",
2428
+ "showLoader",
2429
+ "numToleratedItems",
2430
+ "loading",
2431
+ "autoSize",
2432
+ "trackBy",
2433
+ "options"
2434
+ ],
2435
+ outputs: [
2436
+ "onLazyLoad",
2437
+ "onScroll",
2438
+ "onScrollIndexChange"
2439
+ ]
2440
+ },
2441
+ {
2442
+ kind: "component",
2443
+ type: Search,
2444
+ selector: "svg[data-p-icon=\"search\"]"
2445
+ },
2446
+ {
2447
+ kind: "component",
2448
+ type: Spinner,
2449
+ selector: "svg[data-p-icon=\"spinner\"]"
2450
+ },
2451
+ {
2452
+ kind: "directive",
2453
+ type: InputText,
2454
+ selector: "[pInputText]",
2455
+ inputs: [
2456
+ "hostName",
2457
+ "pInputTextPT",
2458
+ "pInputTextUnstyled",
2459
+ "pSize",
2460
+ "variant",
2461
+ "fluid",
2462
+ "invalid"
2463
+ ]
2464
+ },
2465
+ {
2466
+ kind: "component",
2467
+ type: IconField,
2468
+ selector: "p-iconfield, p-icon-field",
2469
+ inputs: ["hostName", "iconPosition"]
2470
+ },
2471
+ {
2472
+ kind: "component",
2473
+ type: InputIcon,
2474
+ selector: "p-inputicon",
2475
+ inputs: ["hostName"]
2476
+ },
2477
+ {
2478
+ kind: "component",
2479
+ type: UITreeNode,
2480
+ selector: "p-treenode",
2481
+ inputs: [
2482
+ "rowNode",
2483
+ "node",
2484
+ "parentNode",
2485
+ "root",
2486
+ "index",
2487
+ "firstChild",
2488
+ "lastChild",
2489
+ "level",
2490
+ "indentation",
2491
+ "itemSize",
2492
+ "loadingMode"
2493
+ ]
2494
+ },
2495
+ {
2496
+ kind: "ngmodule",
2497
+ type: AutoFocusModule
2498
+ },
2499
+ {
2500
+ kind: "directive",
2501
+ type: i2.AutoFocus,
2502
+ selector: "[pAutoFocus]",
2503
+ inputs: ["pAutoFocus"]
2504
+ },
2505
+ {
2506
+ kind: "directive",
2507
+ type: Bind,
2508
+ selector: "[pBind]",
2509
+ inputs: ["pBind"]
2510
+ }
2511
+ ],
2512
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2513
+ encapsulation: i0.ViewEncapsulation.None
2514
+ });
2515
+ };
2516
+ i0.ɵɵngDeclareClassMetadata({
2517
+ minVersion: "12.0.0",
2518
+ version: "22.2.0",
2519
+ ngImport: i0,
2520
+ type: Tree,
2521
+ decorators: [{
2522
+ type: Component,
2523
+ args: [{
2524
+ selector: "p-tree",
2525
+ standalone: true,
2526
+ imports: [
2527
+ NgTemplateOutlet,
2528
+ Scroller,
2529
+ Search,
2530
+ Spinner,
2531
+ InputText,
2532
+ IconField,
2533
+ InputIcon,
2534
+ UITreeNode,
2535
+ AutoFocusModule,
2536
+ Bind
2537
+ ],
2538
+ template: `
2223
2539
  @if (showLoadingMask()) {
2224
2540
  <div [class]="cx('mask')" [pBind]="ptm('mask')" animate.enter="p-overlay-mask-enter-active" animate.leave="p-overlay-mask-leave-active">
2225
2541
  @if (loadingIcon()) {
@@ -2352,36 +2668,513 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
2352
2668
  }
2353
2669
  <ng-container *ngTemplateOutlet="footerTemplate()"></ng-container>
2354
2670
  `,
2355
- changeDetection: ChangeDetectionStrategy.OnPush,
2356
- encapsulation: ViewEncapsulation.None,
2357
- providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }],
2358
- host: {
2359
- '[class]': "cx('root')",
2360
- '[attr.data-p]': 'containerDataP',
2361
- '(drop)': 'onDrop($event)',
2362
- '(dragover)': 'onDragOver($event)',
2363
- '(dragenter)': 'onDragEnter()',
2364
- '(dragleave)': 'onDragLeave($event)'
2365
- },
2366
- hostDirectives: [Bind]
2367
- }]
2368
- }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], loadingMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMode", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], collapsedKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedKeys", required: false }] }, { type: i0.Output, args: ["collapsedKeysChange"] }], selectionKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionKeys", required: false }] }, { type: i0.Output, args: ["selectionKeysChange"] }], contextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenu", required: false }] }], contextMenuSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuSelection", required: false }] }, { type: i0.Output, args: ["contextMenuSelectionChange"] }], draggableScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggableScope", required: false }] }], droppableScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "droppableScope", required: false }] }], draggableNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggableNodes", required: false }] }], droppableNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "droppableNodes", required: false }] }], metaKeySelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaKeySelection", required: false }] }], propagateSelectionUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateSelectionUp", required: false }] }], propagateSelectionDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateSelectionDown", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingIcon", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], togglerAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "togglerAriaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], validateDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "validateDrop", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], filterInputAutoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterInputAutoFocus", required: false }] }], filterBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterBy", required: false }] }], filterMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterMode", required: false }] }], filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: false }] }], filteredNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "filteredNodes", required: false }] }, { type: i0.Output, args: ["filteredNodesChange"] }], filterLocale: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterLocale", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], virtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScroll", required: false }] }], virtualScrollItemSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollItemSize", required: false }] }], virtualScrollOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScrollOptions", required: false }] }], indentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentation", required: false }] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], highlightOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightOnSelect", required: false }] }], onNodeSelect: [{ type: i0.Output, args: ["onNodeSelect"] }], onNodeUnselect: [{ type: i0.Output, args: ["onNodeUnselect"] }], onNodeExpand: [{ type: i0.Output, args: ["onNodeExpand"] }], onNodeCollapse: [{ type: i0.Output, args: ["onNodeCollapse"] }], onNodeContextMenuSelect: [{ type: i0.Output, args: ["onNodeContextMenuSelect"] }], onNodeDoubleClick: [{ type: i0.Output, args: ["onNodeDoubleClick"] }], onNodeDrop: [{ type: i0.Output, args: ["onNodeDrop"] }], onLazyLoad: [{ type: i0.Output, args: ["onLazyLoad"] }], onScroll: [{ type: i0.Output, args: ["onScroll"] }], onScrollIndexChange: [{ type: i0.Output, args: ["onScrollIndexChange"] }], onFilter: [{ type: i0.Output, args: ["onFilter"] }], filterTemplate: [{ type: i0.ContentChild, args: ['filter', { ...{ descendants: false }, isSignal: true }] }], nodeTemplate: [{ type: i0.ContentChild, args: ['node', { ...{ descendants: false }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { ...{ descendants: false }, isSignal: true }] }], footerTemplate: [{ type: i0.ContentChild, args: ['footer', { ...{ descendants: false }, isSignal: true }] }], loaderTemplate: [{ type: i0.ContentChild, args: ['loader', { ...{ descendants: false }, isSignal: true }] }], emptyTemplate: [{ type: i0.ContentChild, args: ['empty', { ...{ descendants: false }, isSignal: true }] }], togglerIconTemplate: [{ type: i0.ContentChild, args: ['togglericon', { ...{ descendants: false }, isSignal: true }] }], checkboxIconTemplate: [{ type: i0.ContentChild, args: ['checkboxicon', { ...{ descendants: false }, isSignal: true }] }], loadingIconTemplate: [{ type: i0.ContentChild, args: ['loadingicon', { ...{ descendants: false }, isSignal: true }] }], filterIconTemplate: [{ type: i0.ContentChild, args: ['filtericon', { ...{ descendants: false }, isSignal: true }] }], filterViewChild: [{ type: i0.ViewChild, args: ['filter', { isSignal: true }] }], scroller: [{ type: i0.ViewChild, args: ['scroller', { isSignal: true }] }], wrapperViewChild: [{ type: i0.ViewChild, args: ['wrapper', { isSignal: true }] }], contentViewChild: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }] } });
2369
- class TreeModule {
2370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2371
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.2", ngImport: i0, type: TreeModule, imports: [Tree], exports: [Tree] });
2372
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeModule, imports: [Tree] });
2373
- }
2374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: TreeModule, decorators: [{
2375
- type: NgModule,
2376
- args: [{
2377
- imports: [Tree],
2378
- exports: [Tree]
2379
- }]
2380
- }] });
2381
-
2382
- /**
2383
- * Generated bundle index. Do not edit.
2384
- */
2385
-
2671
+ changeDetection: ChangeDetectionStrategy.OnPush,
2672
+ encapsulation: ViewEncapsulation.None,
2673
+ providers: [
2674
+ TreeStyle,
2675
+ {
2676
+ provide: TREE_INSTANCE,
2677
+ useExisting: Tree
2678
+ },
2679
+ {
2680
+ provide: PARENT_INSTANCE,
2681
+ useExisting: Tree
2682
+ }
2683
+ ],
2684
+ host: {
2685
+ "[class]": "cx('root')",
2686
+ "[attr.data-p]": "containerDataP",
2687
+ "(drop)": "onDrop($event)",
2688
+ "(dragover)": "onDragOver($event)",
2689
+ "(dragenter)": "onDragEnter()",
2690
+ "(dragleave)": "onDragLeave($event)"
2691
+ },
2692
+ hostDirectives: [Bind]
2693
+ }]
2694
+ }],
2695
+ ctorParameters: () => [],
2696
+ propDecorators: {
2697
+ value: [{
2698
+ type: i0.Input,
2699
+ args: [{
2700
+ isSignal: true,
2701
+ alias: "value",
2702
+ required: false
2703
+ }]
2704
+ }],
2705
+ selectionMode: [{
2706
+ type: i0.Input,
2707
+ args: [{
2708
+ isSignal: true,
2709
+ alias: "selectionMode",
2710
+ required: false
2711
+ }]
2712
+ }],
2713
+ loadingMode: [{
2714
+ type: i0.Input,
2715
+ args: [{
2716
+ isSignal: true,
2717
+ alias: "loadingMode",
2718
+ required: false
2719
+ }]
2720
+ }],
2721
+ selection: [{
2722
+ type: i0.Input,
2723
+ args: [{
2724
+ isSignal: true,
2725
+ alias: "selection",
2726
+ required: false
2727
+ }]
2728
+ }, {
2729
+ type: i0.Output,
2730
+ args: ["selectionChange"]
2731
+ }],
2732
+ collapsedKeys: [{
2733
+ type: i0.Input,
2734
+ args: [{
2735
+ isSignal: true,
2736
+ alias: "collapsedKeys",
2737
+ required: false
2738
+ }]
2739
+ }, {
2740
+ type: i0.Output,
2741
+ args: ["collapsedKeysChange"]
2742
+ }],
2743
+ selectionKeys: [{
2744
+ type: i0.Input,
2745
+ args: [{
2746
+ isSignal: true,
2747
+ alias: "selectionKeys",
2748
+ required: false
2749
+ }]
2750
+ }, {
2751
+ type: i0.Output,
2752
+ args: ["selectionKeysChange"]
2753
+ }],
2754
+ contextMenu: [{
2755
+ type: i0.Input,
2756
+ args: [{
2757
+ isSignal: true,
2758
+ alias: "contextMenu",
2759
+ required: false
2760
+ }]
2761
+ }],
2762
+ contextMenuSelection: [{
2763
+ type: i0.Input,
2764
+ args: [{
2765
+ isSignal: true,
2766
+ alias: "contextMenuSelection",
2767
+ required: false
2768
+ }]
2769
+ }, {
2770
+ type: i0.Output,
2771
+ args: ["contextMenuSelectionChange"]
2772
+ }],
2773
+ draggableScope: [{
2774
+ type: i0.Input,
2775
+ args: [{
2776
+ isSignal: true,
2777
+ alias: "draggableScope",
2778
+ required: false
2779
+ }]
2780
+ }],
2781
+ droppableScope: [{
2782
+ type: i0.Input,
2783
+ args: [{
2784
+ isSignal: true,
2785
+ alias: "droppableScope",
2786
+ required: false
2787
+ }]
2788
+ }],
2789
+ draggableNodes: [{
2790
+ type: i0.Input,
2791
+ args: [{
2792
+ isSignal: true,
2793
+ alias: "draggableNodes",
2794
+ required: false
2795
+ }]
2796
+ }],
2797
+ droppableNodes: [{
2798
+ type: i0.Input,
2799
+ args: [{
2800
+ isSignal: true,
2801
+ alias: "droppableNodes",
2802
+ required: false
2803
+ }]
2804
+ }],
2805
+ metaKeySelection: [{
2806
+ type: i0.Input,
2807
+ args: [{
2808
+ isSignal: true,
2809
+ alias: "metaKeySelection",
2810
+ required: false
2811
+ }]
2812
+ }],
2813
+ propagateSelectionUp: [{
2814
+ type: i0.Input,
2815
+ args: [{
2816
+ isSignal: true,
2817
+ alias: "propagateSelectionUp",
2818
+ required: false
2819
+ }]
2820
+ }],
2821
+ propagateSelectionDown: [{
2822
+ type: i0.Input,
2823
+ args: [{
2824
+ isSignal: true,
2825
+ alias: "propagateSelectionDown",
2826
+ required: false
2827
+ }]
2828
+ }],
2829
+ loading: [{
2830
+ type: i0.Input,
2831
+ args: [{
2832
+ isSignal: true,
2833
+ alias: "loading",
2834
+ required: false
2835
+ }]
2836
+ }],
2837
+ loadingIcon: [{
2838
+ type: i0.Input,
2839
+ args: [{
2840
+ isSignal: true,
2841
+ alias: "loadingIcon",
2842
+ required: false
2843
+ }]
2844
+ }],
2845
+ emptyMessage: [{
2846
+ type: i0.Input,
2847
+ args: [{
2848
+ isSignal: true,
2849
+ alias: "emptyMessage",
2850
+ required: false
2851
+ }]
2852
+ }],
2853
+ ariaLabel: [{
2854
+ type: i0.Input,
2855
+ args: [{
2856
+ isSignal: true,
2857
+ alias: "ariaLabel",
2858
+ required: false
2859
+ }]
2860
+ }],
2861
+ togglerAriaLabel: [{
2862
+ type: i0.Input,
2863
+ args: [{
2864
+ isSignal: true,
2865
+ alias: "togglerAriaLabel",
2866
+ required: false
2867
+ }]
2868
+ }],
2869
+ ariaLabelledBy: [{
2870
+ type: i0.Input,
2871
+ args: [{
2872
+ isSignal: true,
2873
+ alias: "ariaLabelledBy",
2874
+ required: false
2875
+ }]
2876
+ }],
2877
+ validateDrop: [{
2878
+ type: i0.Input,
2879
+ args: [{
2880
+ isSignal: true,
2881
+ alias: "validateDrop",
2882
+ required: false
2883
+ }]
2884
+ }],
2885
+ filter: [{
2886
+ type: i0.Input,
2887
+ args: [{
2888
+ isSignal: true,
2889
+ alias: "filter",
2890
+ required: false
2891
+ }]
2892
+ }],
2893
+ filterInputAutoFocus: [{
2894
+ type: i0.Input,
2895
+ args: [{
2896
+ isSignal: true,
2897
+ alias: "filterInputAutoFocus",
2898
+ required: false
2899
+ }]
2900
+ }],
2901
+ filterBy: [{
2902
+ type: i0.Input,
2903
+ args: [{
2904
+ isSignal: true,
2905
+ alias: "filterBy",
2906
+ required: false
2907
+ }]
2908
+ }],
2909
+ filterMode: [{
2910
+ type: i0.Input,
2911
+ args: [{
2912
+ isSignal: true,
2913
+ alias: "filterMode",
2914
+ required: false
2915
+ }]
2916
+ }],
2917
+ filterPlaceholder: [{
2918
+ type: i0.Input,
2919
+ args: [{
2920
+ isSignal: true,
2921
+ alias: "filterPlaceholder",
2922
+ required: false
2923
+ }]
2924
+ }],
2925
+ filteredNodes: [{
2926
+ type: i0.Input,
2927
+ args: [{
2928
+ isSignal: true,
2929
+ alias: "filteredNodes",
2930
+ required: false
2931
+ }]
2932
+ }, {
2933
+ type: i0.Output,
2934
+ args: ["filteredNodesChange"]
2935
+ }],
2936
+ filterLocale: [{
2937
+ type: i0.Input,
2938
+ args: [{
2939
+ isSignal: true,
2940
+ alias: "filterLocale",
2941
+ required: false
2942
+ }]
2943
+ }],
2944
+ scrollHeight: [{
2945
+ type: i0.Input,
2946
+ args: [{
2947
+ isSignal: true,
2948
+ alias: "scrollHeight",
2949
+ required: false
2950
+ }]
2951
+ }],
2952
+ lazy: [{
2953
+ type: i0.Input,
2954
+ args: [{
2955
+ isSignal: true,
2956
+ alias: "lazy",
2957
+ required: false
2958
+ }]
2959
+ }],
2960
+ virtualScroll: [{
2961
+ type: i0.Input,
2962
+ args: [{
2963
+ isSignal: true,
2964
+ alias: "virtualScroll",
2965
+ required: false
2966
+ }]
2967
+ }],
2968
+ virtualScrollItemSize: [{
2969
+ type: i0.Input,
2970
+ args: [{
2971
+ isSignal: true,
2972
+ alias: "virtualScrollItemSize",
2973
+ required: false
2974
+ }]
2975
+ }],
2976
+ virtualScrollOptions: [{
2977
+ type: i0.Input,
2978
+ args: [{
2979
+ isSignal: true,
2980
+ alias: "virtualScrollOptions",
2981
+ required: false
2982
+ }]
2983
+ }],
2984
+ indentation: [{
2985
+ type: i0.Input,
2986
+ args: [{
2987
+ isSignal: true,
2988
+ alias: "indentation",
2989
+ required: false
2990
+ }]
2991
+ }],
2992
+ trackBy: [{
2993
+ type: i0.Input,
2994
+ args: [{
2995
+ isSignal: true,
2996
+ alias: "trackBy",
2997
+ required: false
2998
+ }]
2999
+ }],
3000
+ highlightOnSelect: [{
3001
+ type: i0.Input,
3002
+ args: [{
3003
+ isSignal: true,
3004
+ alias: "highlightOnSelect",
3005
+ required: false
3006
+ }]
3007
+ }],
3008
+ onNodeSelect: [{
3009
+ type: i0.Output,
3010
+ args: ["onNodeSelect"]
3011
+ }],
3012
+ onNodeUnselect: [{
3013
+ type: i0.Output,
3014
+ args: ["onNodeUnselect"]
3015
+ }],
3016
+ onNodeExpand: [{
3017
+ type: i0.Output,
3018
+ args: ["onNodeExpand"]
3019
+ }],
3020
+ onNodeCollapse: [{
3021
+ type: i0.Output,
3022
+ args: ["onNodeCollapse"]
3023
+ }],
3024
+ onNodeContextMenuSelect: [{
3025
+ type: i0.Output,
3026
+ args: ["onNodeContextMenuSelect"]
3027
+ }],
3028
+ onNodeDoubleClick: [{
3029
+ type: i0.Output,
3030
+ args: ["onNodeDoubleClick"]
3031
+ }],
3032
+ onNodeDrop: [{
3033
+ type: i0.Output,
3034
+ args: ["onNodeDrop"]
3035
+ }],
3036
+ onLazyLoad: [{
3037
+ type: i0.Output,
3038
+ args: ["onLazyLoad"]
3039
+ }],
3040
+ onScroll: [{
3041
+ type: i0.Output,
3042
+ args: ["onScroll"]
3043
+ }],
3044
+ onScrollIndexChange: [{
3045
+ type: i0.Output,
3046
+ args: ["onScrollIndexChange"]
3047
+ }],
3048
+ onFilter: [{
3049
+ type: i0.Output,
3050
+ args: ["onFilter"]
3051
+ }],
3052
+ filterTemplate: [{
3053
+ type: i0.ContentChild,
3054
+ args: ["filter", {
3055
+ descendants: false,
3056
+ isSignal: true
3057
+ }]
3058
+ }],
3059
+ nodeTemplate: [{
3060
+ type: i0.ContentChild,
3061
+ args: ["node", {
3062
+ descendants: false,
3063
+ isSignal: true
3064
+ }]
3065
+ }],
3066
+ headerTemplate: [{
3067
+ type: i0.ContentChild,
3068
+ args: ["header", {
3069
+ descendants: false,
3070
+ isSignal: true
3071
+ }]
3072
+ }],
3073
+ footerTemplate: [{
3074
+ type: i0.ContentChild,
3075
+ args: ["footer", {
3076
+ descendants: false,
3077
+ isSignal: true
3078
+ }]
3079
+ }],
3080
+ loaderTemplate: [{
3081
+ type: i0.ContentChild,
3082
+ args: ["loader", {
3083
+ descendants: false,
3084
+ isSignal: true
3085
+ }]
3086
+ }],
3087
+ emptyTemplate: [{
3088
+ type: i0.ContentChild,
3089
+ args: ["empty", {
3090
+ descendants: false,
3091
+ isSignal: true
3092
+ }]
3093
+ }],
3094
+ togglerIconTemplate: [{
3095
+ type: i0.ContentChild,
3096
+ args: ["togglericon", {
3097
+ descendants: false,
3098
+ isSignal: true
3099
+ }]
3100
+ }],
3101
+ checkboxIconTemplate: [{
3102
+ type: i0.ContentChild,
3103
+ args: ["checkboxicon", {
3104
+ descendants: false,
3105
+ isSignal: true
3106
+ }]
3107
+ }],
3108
+ loadingIconTemplate: [{
3109
+ type: i0.ContentChild,
3110
+ args: ["loadingicon", {
3111
+ descendants: false,
3112
+ isSignal: true
3113
+ }]
3114
+ }],
3115
+ filterIconTemplate: [{
3116
+ type: i0.ContentChild,
3117
+ args: ["filtericon", {
3118
+ descendants: false,
3119
+ isSignal: true
3120
+ }]
3121
+ }],
3122
+ filterViewChild: [{
3123
+ type: i0.ViewChild,
3124
+ args: ["filter", { isSignal: true }]
3125
+ }],
3126
+ scroller: [{
3127
+ type: i0.ViewChild,
3128
+ args: ["scroller", { isSignal: true }]
3129
+ }],
3130
+ wrapperViewChild: [{
3131
+ type: i0.ViewChild,
3132
+ args: ["wrapper", { isSignal: true }]
3133
+ }],
3134
+ contentViewChild: [{
3135
+ type: i0.ViewChild,
3136
+ args: ["content", { isSignal: true }]
3137
+ }]
3138
+ }
3139
+ });
3140
+ var TreeModule = class TreeModule {
3141
+ static ɵfac = i0.ɵɵngDeclareFactory({
3142
+ minVersion: "12.0.0",
3143
+ version: "22.2.0",
3144
+ ngImport: i0,
3145
+ type: TreeModule,
3146
+ deps: [],
3147
+ target: i0.ɵɵFactoryTarget.NgModule
3148
+ });
3149
+ static ɵmod = i0.ɵɵngDeclareNgModule({
3150
+ minVersion: "14.0.0",
3151
+ version: "22.2.0",
3152
+ ngImport: i0,
3153
+ type: TreeModule,
3154
+ imports: [Tree],
3155
+ exports: [Tree]
3156
+ });
3157
+ static ɵinj = i0.ɵɵngDeclareInjector({
3158
+ minVersion: "12.0.0",
3159
+ version: "22.2.0",
3160
+ ngImport: i0,
3161
+ type: TreeModule,
3162
+ imports: [Tree]
3163
+ });
3164
+ };
3165
+ i0.ɵɵngDeclareClassMetadata({
3166
+ minVersion: "12.0.0",
3167
+ version: "22.2.0",
3168
+ ngImport: i0,
3169
+ type: TreeModule,
3170
+ decorators: [{
3171
+ type: NgModule,
3172
+ args: [{
3173
+ imports: [Tree],
3174
+ exports: [Tree]
3175
+ }]
3176
+ }]
3177
+ });
2386
3178
  export { Tree, TreeClasses, TreeModule, TreeStyle };
2387
- //# sourceMappingURL=primeng-tree.mjs.map
3179
+
3180
+ //# sourceMappingURL=primeng-tree.mjs.map