primeng 0.0.0-watch

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 (507) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +11 -0
  3. package/accordion/index.d.ts +255 -0
  4. package/animateonscroll/index.d.ts +71 -0
  5. package/api/index.d.ts +1820 -0
  6. package/autocomplete/index.d.ts +925 -0
  7. package/autofocus/index.d.ts +31 -0
  8. package/avatar/index.d.ts +115 -0
  9. package/avatargroup/index.d.ts +60 -0
  10. package/badge/index.d.ts +156 -0
  11. package/base/index.d.ts +63 -0
  12. package/basecomponent/index.d.ts +54 -0
  13. package/baseeditableholder/index.d.ts +45 -0
  14. package/baseinput/index.d.ts +73 -0
  15. package/basemodelholder/index.d.ts +12 -0
  16. package/blockui/index.d.ts +114 -0
  17. package/breadcrumb/index.d.ts +179 -0
  18. package/button/index.d.ts +478 -0
  19. package/buttongroup/index.d.ts +43 -0
  20. package/card/index.d.ts +154 -0
  21. package/carousel/index.d.ts +443 -0
  22. package/cascadeselect/index.d.ts +729 -0
  23. package/chart/index.d.ts +128 -0
  24. package/checkbox/index.d.ts +248 -0
  25. package/chip/index.d.ts +165 -0
  26. package/colorpicker/index.d.ts +329 -0
  27. package/config/index.d.ts +89 -0
  28. package/confirmdialog/index.d.ts +358 -0
  29. package/confirmpopup/index.d.ts +218 -0
  30. package/contextmenu/index.d.ts +356 -0
  31. package/dataview/index.d.ts +539 -0
  32. package/datepicker/index.d.ts +1191 -0
  33. package/dialog/index.d.ts +531 -0
  34. package/divider/index.d.ts +114 -0
  35. package/dock/index.d.ts +201 -0
  36. package/dom/index.d.ts +109 -0
  37. package/dragdrop/index.d.ts +121 -0
  38. package/drawer/index.d.ts +309 -0
  39. package/dynamicdialog/index.d.ts +544 -0
  40. package/editor/index.d.ts +306 -0
  41. package/fesm2022/primeng-accordion.mjs +593 -0
  42. package/fesm2022/primeng-accordion.mjs.map +1 -0
  43. package/fesm2022/primeng-animateonscroll.mjs +178 -0
  44. package/fesm2022/primeng-animateonscroll.mjs.map +1 -0
  45. package/fesm2022/primeng-api.mjs +836 -0
  46. package/fesm2022/primeng-api.mjs.map +1 -0
  47. package/fesm2022/primeng-autocomplete.mjs +2073 -0
  48. package/fesm2022/primeng-autocomplete.mjs.map +1 -0
  49. package/fesm2022/primeng-autofocus.mjs +83 -0
  50. package/fesm2022/primeng-autofocus.mjs.map +1 -0
  51. package/fesm2022/primeng-avatar.mjs +181 -0
  52. package/fesm2022/primeng-avatar.mjs.map +1 -0
  53. package/fesm2022/primeng-avatargroup.mjs +103 -0
  54. package/fesm2022/primeng-avatargroup.mjs.map +1 -0
  55. package/fesm2022/primeng-badge.mjs +366 -0
  56. package/fesm2022/primeng-badge.mjs.map +1 -0
  57. package/fesm2022/primeng-base.mjs +127 -0
  58. package/fesm2022/primeng-base.mjs.map +1 -0
  59. package/fesm2022/primeng-basecomponent.mjs +173 -0
  60. package/fesm2022/primeng-basecomponent.mjs.map +1 -0
  61. package/fesm2022/primeng-baseeditableholder.mjs +67 -0
  62. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -0
  63. package/fesm2022/primeng-baseinput.mjs +85 -0
  64. package/fesm2022/primeng-baseinput.mjs.map +1 -0
  65. package/fesm2022/primeng-basemodelholder.mjs +25 -0
  66. package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
  67. package/fesm2022/primeng-blockui.mjs +237 -0
  68. package/fesm2022/primeng-blockui.mjs.map +1 -0
  69. package/fesm2022/primeng-breadcrumb.mjs +457 -0
  70. package/fesm2022/primeng-breadcrumb.mjs.map +1 -0
  71. package/fesm2022/primeng-button.mjs +864 -0
  72. package/fesm2022/primeng-button.mjs.map +1 -0
  73. package/fesm2022/primeng-buttongroup.mjs +109 -0
  74. package/fesm2022/primeng-buttongroup.mjs.map +1 -0
  75. package/fesm2022/primeng-card.mjs +271 -0
  76. package/fesm2022/primeng-card.mjs.map +1 -0
  77. package/fesm2022/primeng-carousel.mjs +1101 -0
  78. package/fesm2022/primeng-carousel.mjs.map +1 -0
  79. package/fesm2022/primeng-cascadeselect.mjs +1778 -0
  80. package/fesm2022/primeng-cascadeselect.mjs.map +1 -0
  81. package/fesm2022/primeng-chart.mjs +246 -0
  82. package/fesm2022/primeng-chart.mjs.map +1 -0
  83. package/fesm2022/primeng-checkbox.mjs +441 -0
  84. package/fesm2022/primeng-checkbox.mjs.map +1 -0
  85. package/fesm2022/primeng-chip.mjs +323 -0
  86. package/fesm2022/primeng-chip.mjs.map +1 -0
  87. package/fesm2022/primeng-colorpicker.mjs +865 -0
  88. package/fesm2022/primeng-colorpicker.mjs.map +1 -0
  89. package/fesm2022/primeng-config.mjs +289 -0
  90. package/fesm2022/primeng-config.mjs.map +1 -0
  91. package/fesm2022/primeng-confirmdialog.mjs +823 -0
  92. package/fesm2022/primeng-confirmdialog.mjs.map +1 -0
  93. package/fesm2022/primeng-confirmpopup.mjs +630 -0
  94. package/fesm2022/primeng-confirmpopup.mjs.map +1 -0
  95. package/fesm2022/primeng-contextmenu.mjs +1410 -0
  96. package/fesm2022/primeng-contextmenu.mjs.map +1 -0
  97. package/fesm2022/primeng-dataview.mjs +812 -0
  98. package/fesm2022/primeng-dataview.mjs.map +1 -0
  99. package/fesm2022/primeng-datepicker.mjs +4373 -0
  100. package/fesm2022/primeng-datepicker.mjs.map +1 -0
  101. package/fesm2022/primeng-dialog.mjs +1278 -0
  102. package/fesm2022/primeng-dialog.mjs.map +1 -0
  103. package/fesm2022/primeng-divider.mjs +145 -0
  104. package/fesm2022/primeng-divider.mjs.map +1 -0
  105. package/fesm2022/primeng-dock.mjs +540 -0
  106. package/fesm2022/primeng-dock.mjs.map +1 -0
  107. package/fesm2022/primeng-dom.mjs +775 -0
  108. package/fesm2022/primeng-dom.mjs.map +1 -0
  109. package/fesm2022/primeng-dragdrop.mjs +336 -0
  110. package/fesm2022/primeng-dragdrop.mjs.map +1 -0
  111. package/fesm2022/primeng-drawer.mjs +738 -0
  112. package/fesm2022/primeng-drawer.mjs.map +1 -0
  113. package/fesm2022/primeng-dynamicdialog.mjs +1242 -0
  114. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -0
  115. package/fesm2022/primeng-editor.mjs +511 -0
  116. package/fesm2022/primeng-editor.mjs.map +1 -0
  117. package/fesm2022/primeng-fieldset.mjs +417 -0
  118. package/fesm2022/primeng-fieldset.mjs.map +1 -0
  119. package/fesm2022/primeng-fileupload.mjs +1561 -0
  120. package/fesm2022/primeng-fileupload.mjs.map +1 -0
  121. package/fesm2022/primeng-floatlabel.mjs +103 -0
  122. package/fesm2022/primeng-floatlabel.mjs.map +1 -0
  123. package/fesm2022/primeng-fluid.mjs +80 -0
  124. package/fesm2022/primeng-fluid.mjs.map +1 -0
  125. package/fesm2022/primeng-focustrap.mjs +110 -0
  126. package/fesm2022/primeng-focustrap.mjs.map +1 -0
  127. package/fesm2022/primeng-galleria.mjs +1874 -0
  128. package/fesm2022/primeng-galleria.mjs.map +1 -0
  129. package/fesm2022/primeng-iconfield.mjs +101 -0
  130. package/fesm2022/primeng-iconfield.mjs.map +1 -0
  131. package/fesm2022/primeng-icons-angledoubledown.mjs +37 -0
  132. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -0
  133. package/fesm2022/primeng-icons-angledoubleleft.mjs +37 -0
  134. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -0
  135. package/fesm2022/primeng-icons-angledoubleright.mjs +37 -0
  136. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -0
  137. package/fesm2022/primeng-icons-angledoubleup.mjs +37 -0
  138. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -0
  139. package/fesm2022/primeng-icons-angledown.mjs +33 -0
  140. package/fesm2022/primeng-icons-angledown.mjs.map +1 -0
  141. package/fesm2022/primeng-icons-angleleft.mjs +33 -0
  142. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -0
  143. package/fesm2022/primeng-icons-angleright.mjs +33 -0
  144. package/fesm2022/primeng-icons-angleright.mjs.map +1 -0
  145. package/fesm2022/primeng-icons-angleup.mjs +33 -0
  146. package/fesm2022/primeng-icons-angleup.mjs.map +1 -0
  147. package/fesm2022/primeng-icons-arrowdown.mjs +57 -0
  148. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -0
  149. package/fesm2022/primeng-icons-arrowdownleft.mjs +33 -0
  150. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -0
  151. package/fesm2022/primeng-icons-arrowdownright.mjs +33 -0
  152. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -0
  153. package/fesm2022/primeng-icons-arrowleft.mjs +57 -0
  154. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -0
  155. package/fesm2022/primeng-icons-arrowright.mjs +37 -0
  156. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -0
  157. package/fesm2022/primeng-icons-arrowup.mjs +57 -0
  158. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -0
  159. package/fesm2022/primeng-icons-ban.mjs +53 -0
  160. package/fesm2022/primeng-icons-ban.mjs.map +1 -0
  161. package/fesm2022/primeng-icons-bars.mjs +37 -0
  162. package/fesm2022/primeng-icons-bars.mjs.map +1 -0
  163. package/fesm2022/primeng-icons-baseicon.mjs +102 -0
  164. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -0
  165. package/fesm2022/primeng-icons-blank.mjs +23 -0
  166. package/fesm2022/primeng-icons-blank.mjs.map +1 -0
  167. package/fesm2022/primeng-icons-calendar.mjs +33 -0
  168. package/fesm2022/primeng-icons-calendar.mjs.map +1 -0
  169. package/fesm2022/primeng-icons-caretleft.mjs +33 -0
  170. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -0
  171. package/fesm2022/primeng-icons-caretright.mjs +33 -0
  172. package/fesm2022/primeng-icons-caretright.mjs.map +1 -0
  173. package/fesm2022/primeng-icons-check.mjs +33 -0
  174. package/fesm2022/primeng-icons-check.mjs.map +1 -0
  175. package/fesm2022/primeng-icons-chevrondown.mjs +33 -0
  176. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -0
  177. package/fesm2022/primeng-icons-chevronleft.mjs +33 -0
  178. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -0
  179. package/fesm2022/primeng-icons-chevronright.mjs +33 -0
  180. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -0
  181. package/fesm2022/primeng-icons-chevronup.mjs +33 -0
  182. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -0
  183. package/fesm2022/primeng-icons-exclamationtriangle.mjs +69 -0
  184. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -0
  185. package/fesm2022/primeng-icons-eye.mjs +37 -0
  186. package/fesm2022/primeng-icons-eye.mjs.map +1 -0
  187. package/fesm2022/primeng-icons-eyeslash.mjs +57 -0
  188. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -0
  189. package/fesm2022/primeng-icons-filter.mjs +53 -0
  190. package/fesm2022/primeng-icons-filter.mjs.map +1 -0
  191. package/fesm2022/primeng-icons-filterfill.mjs +33 -0
  192. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -0
  193. package/fesm2022/primeng-icons-filterslash.mjs +57 -0
  194. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -0
  195. package/fesm2022/primeng-icons-home.mjs +57 -0
  196. package/fesm2022/primeng-icons-home.mjs.map +1 -0
  197. package/fesm2022/primeng-icons-infocircle.mjs +57 -0
  198. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -0
  199. package/fesm2022/primeng-icons-minus.mjs +33 -0
  200. package/fesm2022/primeng-icons-minus.mjs.map +1 -0
  201. package/fesm2022/primeng-icons-pencil.mjs +53 -0
  202. package/fesm2022/primeng-icons-pencil.mjs.map +1 -0
  203. package/fesm2022/primeng-icons-plus.mjs +53 -0
  204. package/fesm2022/primeng-icons-plus.mjs.map +1 -0
  205. package/fesm2022/primeng-icons-refresh.mjs +57 -0
  206. package/fesm2022/primeng-icons-refresh.mjs.map +1 -0
  207. package/fesm2022/primeng-icons-search.mjs +57 -0
  208. package/fesm2022/primeng-icons-search.mjs.map +1 -0
  209. package/fesm2022/primeng-icons-searchminus.mjs +57 -0
  210. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -0
  211. package/fesm2022/primeng-icons-searchplus.mjs +57 -0
  212. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -0
  213. package/fesm2022/primeng-icons-sortalt.mjs +65 -0
  214. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -0
  215. package/fesm2022/primeng-icons-sortamountdown.mjs +53 -0
  216. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -0
  217. package/fesm2022/primeng-icons-sortamountupalt.mjs +53 -0
  218. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -0
  219. package/fesm2022/primeng-icons-spinner.mjs +53 -0
  220. package/fesm2022/primeng-icons-spinner.mjs.map +1 -0
  221. package/fesm2022/primeng-icons-star.mjs +53 -0
  222. package/fesm2022/primeng-icons-star.mjs.map +1 -0
  223. package/fesm2022/primeng-icons-starfill.mjs +53 -0
  224. package/fesm2022/primeng-icons-starfill.mjs.map +1 -0
  225. package/fesm2022/primeng-icons-thlarge.mjs +57 -0
  226. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -0
  227. package/fesm2022/primeng-icons-times.mjs +33 -0
  228. package/fesm2022/primeng-icons-times.mjs.map +1 -0
  229. package/fesm2022/primeng-icons-timescircle.mjs +57 -0
  230. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -0
  231. package/fesm2022/primeng-icons-trash.mjs +57 -0
  232. package/fesm2022/primeng-icons-trash.mjs.map +1 -0
  233. package/fesm2022/primeng-icons-undo.mjs +57 -0
  234. package/fesm2022/primeng-icons-undo.mjs.map +1 -0
  235. package/fesm2022/primeng-icons-upload.mjs +57 -0
  236. package/fesm2022/primeng-icons-upload.mjs.map +1 -0
  237. package/fesm2022/primeng-icons-windowmaximize.mjs +57 -0
  238. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -0
  239. package/fesm2022/primeng-icons-windowminimize.mjs +57 -0
  240. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -0
  241. package/fesm2022/primeng-icons.mjs +63 -0
  242. package/fesm2022/primeng-icons.mjs.map +1 -0
  243. package/fesm2022/primeng-iftalabel.mjs +89 -0
  244. package/fesm2022/primeng-iftalabel.mjs.map +1 -0
  245. package/fesm2022/primeng-image.mjs +705 -0
  246. package/fesm2022/primeng-image.mjs.map +1 -0
  247. package/fesm2022/primeng-imagecompare.mjs +192 -0
  248. package/fesm2022/primeng-imagecompare.mjs.map +1 -0
  249. package/fesm2022/primeng-inplace.mjs +319 -0
  250. package/fesm2022/primeng-inplace.mjs.map +1 -0
  251. package/fesm2022/primeng-inputgroup.mjs +128 -0
  252. package/fesm2022/primeng-inputgroup.mjs.map +1 -0
  253. package/fesm2022/primeng-inputgroupaddon.mjs +83 -0
  254. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -0
  255. package/fesm2022/primeng-inputicon.mjs +71 -0
  256. package/fesm2022/primeng-inputicon.mjs.map +1 -0
  257. package/fesm2022/primeng-inputmask.mjs +926 -0
  258. package/fesm2022/primeng-inputmask.mjs.map +1 -0
  259. package/fesm2022/primeng-inputnumber.mjs +1621 -0
  260. package/fesm2022/primeng-inputnumber.mjs.map +1 -0
  261. package/fesm2022/primeng-inputotp.mjs +443 -0
  262. package/fesm2022/primeng-inputotp.mjs.map +1 -0
  263. package/fesm2022/primeng-inputtext.mjs +145 -0
  264. package/fesm2022/primeng-inputtext.mjs.map +1 -0
  265. package/fesm2022/primeng-keyfilter.mjs +267 -0
  266. package/fesm2022/primeng-keyfilter.mjs.map +1 -0
  267. package/fesm2022/primeng-knob.mjs +491 -0
  268. package/fesm2022/primeng-knob.mjs.map +1 -0
  269. package/fesm2022/primeng-listbox.mjs +1925 -0
  270. package/fesm2022/primeng-listbox.mjs.map +1 -0
  271. package/fesm2022/primeng-megamenu.mjs +1493 -0
  272. package/fesm2022/primeng-megamenu.mjs.map +1 -0
  273. package/fesm2022/primeng-menu.mjs +1069 -0
  274. package/fesm2022/primeng-menu.mjs.map +1 -0
  275. package/fesm2022/primeng-menubar.mjs +1391 -0
  276. package/fesm2022/primeng-menubar.mjs.map +1 -0
  277. package/fesm2022/primeng-message.mjs +420 -0
  278. package/fesm2022/primeng-message.mjs.map +1 -0
  279. package/fesm2022/primeng-metergroup.mjs +393 -0
  280. package/fesm2022/primeng-metergroup.mjs.map +1 -0
  281. package/fesm2022/primeng-multiselect.mjs +2519 -0
  282. package/fesm2022/primeng-multiselect.mjs.map +1 -0
  283. package/fesm2022/primeng-orderlist.mjs +890 -0
  284. package/fesm2022/primeng-orderlist.mjs.map +1 -0
  285. package/fesm2022/primeng-organizationchart.mjs +520 -0
  286. package/fesm2022/primeng-organizationchart.mjs.map +1 -0
  287. package/fesm2022/primeng-overlay.mjs +776 -0
  288. package/fesm2022/primeng-overlay.mjs.map +1 -0
  289. package/fesm2022/primeng-overlaybadge.mjs +151 -0
  290. package/fesm2022/primeng-overlaybadge.mjs.map +1 -0
  291. package/fesm2022/primeng-paginator.mjs +802 -0
  292. package/fesm2022/primeng-paginator.mjs.map +1 -0
  293. package/fesm2022/primeng-panel.mjs +595 -0
  294. package/fesm2022/primeng-panel.mjs.map +1 -0
  295. package/fesm2022/primeng-panelmenu.mjs +1442 -0
  296. package/fesm2022/primeng-panelmenu.mjs.map +1 -0
  297. package/fesm2022/primeng-password.mjs +1156 -0
  298. package/fesm2022/primeng-password.mjs.map +1 -0
  299. package/fesm2022/primeng-picklist.mjs +2057 -0
  300. package/fesm2022/primeng-picklist.mjs.map +1 -0
  301. package/fesm2022/primeng-popover.mjs +611 -0
  302. package/fesm2022/primeng-popover.mjs.map +1 -0
  303. package/fesm2022/primeng-progressbar.mjs +196 -0
  304. package/fesm2022/primeng-progressbar.mjs.map +1 -0
  305. package/fesm2022/primeng-progressspinner.mjs +140 -0
  306. package/fesm2022/primeng-progressspinner.mjs.map +1 -0
  307. package/fesm2022/primeng-radiobutton.mjs +358 -0
  308. package/fesm2022/primeng-radiobutton.mjs.map +1 -0
  309. package/fesm2022/primeng-rating.mjs +388 -0
  310. package/fesm2022/primeng-rating.mjs.map +1 -0
  311. package/fesm2022/primeng-ripple.mjs +190 -0
  312. package/fesm2022/primeng-ripple.mjs.map +1 -0
  313. package/fesm2022/primeng-scroller.mjs +1306 -0
  314. package/fesm2022/primeng-scroller.mjs.map +1 -0
  315. package/fesm2022/primeng-scrollpanel.mjs +560 -0
  316. package/fesm2022/primeng-scrollpanel.mjs.map +1 -0
  317. package/fesm2022/primeng-scrolltop.mjs +339 -0
  318. package/fesm2022/primeng-scrolltop.mjs.map +1 -0
  319. package/fesm2022/primeng-select.mjs +2250 -0
  320. package/fesm2022/primeng-select.mjs.map +1 -0
  321. package/fesm2022/primeng-selectbutton.mjs +413 -0
  322. package/fesm2022/primeng-selectbutton.mjs.map +1 -0
  323. package/fesm2022/primeng-skeleton.mjs +154 -0
  324. package/fesm2022/primeng-skeleton.mjs.map +1 -0
  325. package/fesm2022/primeng-slider.mjs +843 -0
  326. package/fesm2022/primeng-slider.mjs.map +1 -0
  327. package/fesm2022/primeng-speeddial.mjs +901 -0
  328. package/fesm2022/primeng-speeddial.mjs.map +1 -0
  329. package/fesm2022/primeng-splitbutton.mjs +598 -0
  330. package/fesm2022/primeng-splitbutton.mjs.map +1 -0
  331. package/fesm2022/primeng-splitter.mjs +587 -0
  332. package/fesm2022/primeng-splitter.mjs.map +1 -0
  333. package/fesm2022/primeng-stepper.mjs +683 -0
  334. package/fesm2022/primeng-stepper.mjs.map +1 -0
  335. package/fesm2022/primeng-steps.mjs +424 -0
  336. package/fesm2022/primeng-steps.mjs.map +1 -0
  337. package/fesm2022/primeng-styleclass.mjs +354 -0
  338. package/fesm2022/primeng-styleclass.mjs.map +1 -0
  339. package/fesm2022/primeng-table.mjs +7540 -0
  340. package/fesm2022/primeng-table.mjs.map +1 -0
  341. package/fesm2022/primeng-tabs.mjs +794 -0
  342. package/fesm2022/primeng-tabs.mjs.map +1 -0
  343. package/fesm2022/primeng-tag.mjs +176 -0
  344. package/fesm2022/primeng-tag.mjs.map +1 -0
  345. package/fesm2022/primeng-terminal.mjs +254 -0
  346. package/fesm2022/primeng-terminal.mjs.map +1 -0
  347. package/fesm2022/primeng-textarea.mjs +197 -0
  348. package/fesm2022/primeng-textarea.mjs.map +1 -0
  349. package/fesm2022/primeng-tieredmenu.mjs +1457 -0
  350. package/fesm2022/primeng-tieredmenu.mjs.map +1 -0
  351. package/fesm2022/primeng-timeline.mjs +228 -0
  352. package/fesm2022/primeng-timeline.mjs.map +1 -0
  353. package/fesm2022/primeng-toast.mjs +751 -0
  354. package/fesm2022/primeng-toast.mjs.map +1 -0
  355. package/fesm2022/primeng-togglebutton.mjs +361 -0
  356. package/fesm2022/primeng-togglebutton.mjs.map +1 -0
  357. package/fesm2022/primeng-toggleswitch.mjs +330 -0
  358. package/fesm2022/primeng-toggleswitch.mjs.map +1 -0
  359. package/fesm2022/primeng-toolbar.mjs +189 -0
  360. package/fesm2022/primeng-toolbar.mjs.map +1 -0
  361. package/fesm2022/primeng-tooltip.mjs +757 -0
  362. package/fesm2022/primeng-tooltip.mjs.map +1 -0
  363. package/fesm2022/primeng-tree.mjs +2188 -0
  364. package/fesm2022/primeng-tree.mjs.map +1 -0
  365. package/fesm2022/primeng-treeselect.mjs +1328 -0
  366. package/fesm2022/primeng-treeselect.mjs.map +1 -0
  367. package/fesm2022/primeng-treetable.mjs +5080 -0
  368. package/fesm2022/primeng-treetable.mjs.map +1 -0
  369. package/fesm2022/primeng-ts-helpers.mjs +4 -0
  370. package/fesm2022/primeng-ts-helpers.mjs.map +1 -0
  371. package/fesm2022/primeng-usestyle.mjs +52 -0
  372. package/fesm2022/primeng-usestyle.mjs.map +1 -0
  373. package/fesm2022/primeng-utils.mjs +332 -0
  374. package/fesm2022/primeng-utils.mjs.map +1 -0
  375. package/fesm2022/primeng.mjs +6 -0
  376. package/fesm2022/primeng.mjs.map +1 -0
  377. package/fieldset/index.d.ts +217 -0
  378. package/fileupload/index.d.ts +786 -0
  379. package/floatlabel/index.d.ts +59 -0
  380. package/fluid/index.d.ts +48 -0
  381. package/focustrap/index.d.ts +36 -0
  382. package/galleria/index.d.ts +710 -0
  383. package/iconfield/index.d.ts +64 -0
  384. package/icons/angledoubledown/index.d.ts +9 -0
  385. package/icons/angledoubleleft/index.d.ts +9 -0
  386. package/icons/angledoubleright/index.d.ts +9 -0
  387. package/icons/angledoubleup/index.d.ts +9 -0
  388. package/icons/angledown/index.d.ts +9 -0
  389. package/icons/angleleft/index.d.ts +9 -0
  390. package/icons/angleright/index.d.ts +9 -0
  391. package/icons/angleup/index.d.ts +9 -0
  392. package/icons/arrowdown/index.d.ts +12 -0
  393. package/icons/arrowdownleft/index.d.ts +9 -0
  394. package/icons/arrowdownright/index.d.ts +9 -0
  395. package/icons/arrowleft/index.d.ts +11 -0
  396. package/icons/arrowright/index.d.ts +9 -0
  397. package/icons/arrowup/index.d.ts +11 -0
  398. package/icons/ban/index.d.ts +11 -0
  399. package/icons/bars/index.d.ts +9 -0
  400. package/icons/baseicon/index.d.ts +33 -0
  401. package/icons/blank/index.d.ts +9 -0
  402. package/icons/calendar/index.d.ts +9 -0
  403. package/icons/caretleft/index.d.ts +9 -0
  404. package/icons/caretright/index.d.ts +9 -0
  405. package/icons/check/index.d.ts +9 -0
  406. package/icons/chevrondown/index.d.ts +9 -0
  407. package/icons/chevronleft/index.d.ts +9 -0
  408. package/icons/chevronright/index.d.ts +9 -0
  409. package/icons/chevronup/index.d.ts +9 -0
  410. package/icons/exclamationtriangle/index.d.ts +12 -0
  411. package/icons/eye/index.d.ts +9 -0
  412. package/icons/eyeslash/index.d.ts +11 -0
  413. package/icons/filter/index.d.ts +11 -0
  414. package/icons/filterfill/index.d.ts +9 -0
  415. package/icons/filterslash/index.d.ts +11 -0
  416. package/icons/home/index.d.ts +11 -0
  417. package/icons/index.d.ts +53 -0
  418. package/icons/infocircle/index.d.ts +11 -0
  419. package/icons/minus/index.d.ts +9 -0
  420. package/icons/pencil/index.d.ts +11 -0
  421. package/icons/plus/index.d.ts +11 -0
  422. package/icons/refresh/index.d.ts +11 -0
  423. package/icons/search/index.d.ts +11 -0
  424. package/icons/searchminus/index.d.ts +11 -0
  425. package/icons/searchplus/index.d.ts +11 -0
  426. package/icons/sortalt/index.d.ts +11 -0
  427. package/icons/sortamountdown/index.d.ts +11 -0
  428. package/icons/sortamountupalt/index.d.ts +11 -0
  429. package/icons/spinner/index.d.ts +11 -0
  430. package/icons/star/index.d.ts +11 -0
  431. package/icons/starfill/index.d.ts +11 -0
  432. package/icons/thlarge/index.d.ts +11 -0
  433. package/icons/times/index.d.ts +9 -0
  434. package/icons/timescircle/index.d.ts +11 -0
  435. package/icons/trash/index.d.ts +11 -0
  436. package/icons/undo/index.d.ts +11 -0
  437. package/icons/upload/index.d.ts +11 -0
  438. package/icons/windowmaximize/index.d.ts +11 -0
  439. package/icons/windowminimize/index.d.ts +11 -0
  440. package/iftalabel/index.d.ts +50 -0
  441. package/image/index.d.ts +376 -0
  442. package/imagecompare/index.d.ts +93 -0
  443. package/index.d.ts +2 -0
  444. package/inplace/index.d.ts +183 -0
  445. package/inputgroup/index.d.ts +58 -0
  446. package/inputgroupaddon/index.d.ts +45 -0
  447. package/inputicon/index.d.ts +36 -0
  448. package/inputmask/index.d.ts +282 -0
  449. package/inputnumber/index.d.ts +466 -0
  450. package/inputotp/index.d.ts +209 -0
  451. package/inputtext/index.d.ts +89 -0
  452. package/keyfilter/index.d.ts +66 -0
  453. package/knob/index.d.ts +206 -0
  454. package/listbox/index.d.ts +802 -0
  455. package/megamenu/index.d.ts +408 -0
  456. package/menu/index.d.ts +341 -0
  457. package/menubar/index.d.ts +418 -0
  458. package/message/index.d.ts +195 -0
  459. package/metergroup/index.d.ts +291 -0
  460. package/multiselect/index.d.ts +1060 -0
  461. package/orderlist/index.d.ts +464 -0
  462. package/organizationchart/index.d.ts +285 -0
  463. package/overlay/index.d.ts +255 -0
  464. package/overlaybadge/index.d.ts +73 -0
  465. package/package.json +725 -0
  466. package/paginator/index.d.ts +393 -0
  467. package/panel/index.d.ts +266 -0
  468. package/panelmenu/index.d.ts +380 -0
  469. package/password/index.d.ts +436 -0
  470. package/picklist/index.d.ts +906 -0
  471. package/popover/index.d.ts +176 -0
  472. package/progressbar/index.d.ts +112 -0
  473. package/progressspinner/index.d.ts +85 -0
  474. package/radiobutton/index.d.ts +201 -0
  475. package/rating/index.d.ts +218 -0
  476. package/ripple/index.d.ts +62 -0
  477. package/scroller/index.d.ts +614 -0
  478. package/scrollpanel/index.d.ts +161 -0
  479. package/scrolltop/index.d.ts +158 -0
  480. package/select/index.d.ts +923 -0
  481. package/selectbutton/index.d.ts +221 -0
  482. package/skeleton/index.d.ts +96 -0
  483. package/slider/index.d.ts +255 -0
  484. package/speeddial/index.d.ts +454 -0
  485. package/splitbutton/index.d.ts +306 -0
  486. package/splitter/index.d.ts +239 -0
  487. package/stepper/index.d.ts +297 -0
  488. package/steps/index.d.ts +152 -0
  489. package/styleclass/index.d.ts +115 -0
  490. package/table/index.d.ts +2700 -0
  491. package/tabs/index.d.ts +321 -0
  492. package/tag/index.d.ts +114 -0
  493. package/terminal/index.d.ts +134 -0
  494. package/textarea/index.d.ts +108 -0
  495. package/tieredmenu/index.d.ts +430 -0
  496. package/timeline/index.d.ts +170 -0
  497. package/toast/index.d.ts +320 -0
  498. package/togglebutton/index.d.ts +243 -0
  499. package/toggleswitch/index.d.ts +188 -0
  500. package/toolbar/index.d.ts +118 -0
  501. package/tooltip/index.d.ts +247 -0
  502. package/tree/index.d.ts +847 -0
  503. package/treeselect/index.d.ts +655 -0
  504. package/treetable/index.d.ts +1727 -0
  505. package/ts-helpers/index.d.ts +6 -0
  506. package/usestyle/index.d.ts +15 -0
  507. package/utils/index.d.ts +43 -0
@@ -0,0 +1,1442 @@
1
+ import { trigger, state, transition, style as style$1, animate } from '@angular/animations';
2
+ import * as i1 from '@angular/common';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable, EventEmitter, inject, forwardRef, booleanAttribute, numberAttribute, ViewChild, Output, Input, ViewEncapsulation, Component, signal, computed, ChangeDetectionStrategy, ContentChildren, ContentChild, NgModule } from '@angular/core';
6
+ import * as i2 from '@angular/router';
7
+ import { RouterModule } from '@angular/router';
8
+ import { resolve, isNotEmpty, findLast, findSingle, isPrintableCharacter, isEmpty, uuid, equals, focus, getAttribute } from '@primeuix/utils';
9
+ import { SharedModule, PrimeTemplate } from 'primeng/api';
10
+ import { BaseComponent } from 'primeng/basecomponent';
11
+ import { ChevronDownIcon, ChevronRightIcon } from 'primeng/icons';
12
+ import * as i3 from 'primeng/tooltip';
13
+ import { TooltipModule } from 'primeng/tooltip';
14
+ import { style } from '@primeuix/styles/panelmenu';
15
+ import { BaseStyle } from 'primeng/base';
16
+
17
+ const theme = /*css*/ `
18
+ ${style}
19
+ /*For PrimeNG*/
20
+ .p-panelmenu-item:not(.ng-animating) {
21
+ overflow: hidden;
22
+ }
23
+
24
+ .p-panelmenu-panel {
25
+ overflow: hidden;
26
+ }
27
+
28
+ .p-panelmenu-root-list,
29
+ .p-panelmenu-submenu,
30
+ .p-panelmenu-item-link {
31
+ outline: 0 none;
32
+ }
33
+ `;
34
+ const classes = {
35
+ root: () => ['p-panelmenu p-component'],
36
+ panel: 'p-panelmenu-panel',
37
+ header: ({ instance, item }) => [
38
+ 'p-panelmenu-header',
39
+ {
40
+ 'p-panelmenu-header-active': instance.isItemActive(item) && !!item.items,
41
+ 'p-disabled': instance.isItemDisabled(item)
42
+ }
43
+ ],
44
+ headerContent: 'p-panelmenu-header-content',
45
+ headerLink: 'p-panelmenu-header-link',
46
+ headerIcon: 'p-panelmenu-header-icon',
47
+ headerLabel: 'p-panelmenu-header-label',
48
+ contentContainer: ({ instance, processedItem }) => ['p-panelmenu-content-container', { 'p-panelmenu-expanded': instance.isItemActive(processedItem) }],
49
+ content: 'p-panelmenu-content',
50
+ rootList: 'p-panelmenu-root-list',
51
+ item: ({ instance, processedItem }) => [
52
+ 'p-panelmenu-item',
53
+ {
54
+ 'p-focus': instance.isItemFocused(processedItem) && !instance.isItemDisabled(processedItem),
55
+ 'p-disabled': instance.isItemDisabled(processedItem)
56
+ }
57
+ ],
58
+ itemContent: 'p-panelmenu-item-content',
59
+ itemLink: 'p-panelmenu-item-link',
60
+ itemIcon: 'p-panelmenu-item-icon',
61
+ itemLabel: 'p-panelmenu-item-label',
62
+ submenuIcon: 'p-panelmenu-submenu-icon',
63
+ submenu: 'p-panelmenu-submenu',
64
+ separator: 'p-menuitem-separator',
65
+ badge: 'p-menuitem-badge'
66
+ };
67
+ class PanelMenuStyle extends BaseStyle {
68
+ name = 'panelmenu';
69
+ theme = theme;
70
+ classes = classes;
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuStyle });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuStyle, decorators: [{
75
+ type: Injectable
76
+ }] });
77
+ /**
78
+ *
79
+ * PanelMenu is a hybrid of Accordion and Tree components.
80
+ *
81
+ * [Live Demo](https://www.primeng.org/panelmenu/)
82
+ *
83
+ * @module panelmenustyle
84
+ *
85
+ */
86
+ var PanelMenuClasses;
87
+ (function (PanelMenuClasses) {
88
+ /**
89
+ * Class name of the root element
90
+ */
91
+ PanelMenuClasses["root"] = "p-panelmenu";
92
+ /**
93
+ * Class name of the panel element
94
+ */
95
+ PanelMenuClasses["panel"] = "p-panelmenu-panel";
96
+ /**
97
+ * Class name of the header element
98
+ */
99
+ PanelMenuClasses["header"] = "p-panelmenu-header";
100
+ /**
101
+ * Class name of the header content element
102
+ */
103
+ PanelMenuClasses["headerContent"] = "p-panelmenu-header-content";
104
+ /**
105
+ * Class name of the header link element
106
+ */
107
+ PanelMenuClasses["headerLink"] = "p-panelmenu-header-link";
108
+ /**
109
+ * Class name of the header icon element
110
+ */
111
+ PanelMenuClasses["headerIcon"] = "p-panelmenu-header-icon";
112
+ /**
113
+ * Class name of the header label element
114
+ */
115
+ PanelMenuClasses["headerLabel"] = "p-panelmenu-header-label";
116
+ /**
117
+ * Class name of the content container element
118
+ */
119
+ PanelMenuClasses["contentContainer"] = "p-panelmenu-content-container";
120
+ /**
121
+ * Class name of the content element
122
+ */
123
+ PanelMenuClasses["content"] = "p-panelmenu-content";
124
+ /**
125
+ * Class name of the root list element
126
+ */
127
+ PanelMenuClasses["rootList"] = "p-panelmenu-root-list";
128
+ /**
129
+ * Class name of the item element
130
+ */
131
+ PanelMenuClasses["item"] = "p-panelmenu-item";
132
+ /**
133
+ * Class name of the item content element
134
+ */
135
+ PanelMenuClasses["itemContent"] = "p-panelmenu-item-content";
136
+ /**
137
+ * Class name of the item link element
138
+ */
139
+ PanelMenuClasses["itemLink"] = "p-panelmenu-item-link";
140
+ /**
141
+ * Class name of the item icon element
142
+ */
143
+ PanelMenuClasses["itemIcon"] = "p-panelmenu-item-icon";
144
+ /**
145
+ * Class name of the item label element
146
+ */
147
+ PanelMenuClasses["itemLabel"] = "p-panelmenu-item-label";
148
+ /**
149
+ * Class name of the submenu icon element
150
+ */
151
+ PanelMenuClasses["submenuIcon"] = "p-panelmenu-submenu-icon";
152
+ /**
153
+ * Class name of the submenu element
154
+ */
155
+ PanelMenuClasses["submenu"] = "p-panelmenu-submenu";
156
+ PanelMenuClasses["separator"] = "p-menuitem-separator";
157
+ })(PanelMenuClasses || (PanelMenuClasses = {}));
158
+
159
+ class PanelMenuSub extends BaseComponent {
160
+ panelId;
161
+ focusedItemId;
162
+ items;
163
+ itemTemplate;
164
+ level = 0;
165
+ activeItemPath;
166
+ root;
167
+ tabindex;
168
+ transitionOptions;
169
+ parentExpanded;
170
+ itemToggle = new EventEmitter();
171
+ menuFocus = new EventEmitter();
172
+ menuBlur = new EventEmitter();
173
+ menuKeyDown = new EventEmitter();
174
+ listViewChild;
175
+ panelMenu = inject(forwardRef(() => PanelMenu));
176
+ _componentStyle = inject(PanelMenuStyle);
177
+ getItemId(processedItem) {
178
+ return processedItem.item?.id ?? `${this.panelId}_${processedItem.key}`;
179
+ }
180
+ getItemKey(processedItem) {
181
+ return this.getItemId(processedItem);
182
+ }
183
+ getItemClass(processedItem) {
184
+ return {
185
+ 'p-panelmenu-item': true,
186
+ 'p-disabled': this.isItemDisabled(processedItem),
187
+ 'p-focus': this.isItemFocused(processedItem)
188
+ };
189
+ }
190
+ getItemProp(processedItem, name, params) {
191
+ return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
192
+ }
193
+ getItemLabel(processedItem) {
194
+ return this.getItemProp(processedItem, 'label');
195
+ }
196
+ isItemExpanded(processedItem) {
197
+ return processedItem.expanded;
198
+ }
199
+ isItemActive(processedItem) {
200
+ return this.isItemExpanded(processedItem) || this.activeItemPath.some((path) => path && path.key === processedItem.key);
201
+ }
202
+ isItemVisible(processedItem) {
203
+ return this.getItemProp(processedItem, 'visible') !== false;
204
+ }
205
+ isItemDisabled(processedItem) {
206
+ return this.getItemProp(processedItem, 'disabled');
207
+ }
208
+ isItemFocused(processedItem) {
209
+ return this.focusedItemId === this.getItemId(processedItem);
210
+ }
211
+ isItemGroup(processedItem) {
212
+ return isNotEmpty(processedItem.items);
213
+ }
214
+ getAnimation(processedItem) {
215
+ return this.isItemActive(processedItem) ? { value: 'visible', params: { transitionParams: this.transitionOptions, height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
216
+ }
217
+ getAriaSetSize() {
218
+ return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
219
+ }
220
+ getAriaPosInset(index) {
221
+ return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
222
+ }
223
+ onItemClick(event, processedItem) {
224
+ if (!this.isItemDisabled(processedItem)) {
225
+ this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
226
+ this.itemToggle.emit({ processedItem, expanded: !this.isItemActive(processedItem) });
227
+ }
228
+ }
229
+ onItemToggle(event) {
230
+ this.itemToggle.emit(event);
231
+ }
232
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuSub, deps: null, target: i0.ɵɵFactoryTarget.Component });
233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.4", type: PanelMenuSub, isStandalone: true, selector: "p-panelMenuSub, p-panelmenu-sub", inputs: { panelId: "panelId", focusedItemId: "focusedItemId", items: "items", itemTemplate: "itemTemplate", level: ["level", "level", numberAttribute], activeItemPath: "activeItemPath", root: ["root", "root", booleanAttribute], tabindex: ["tabindex", "tabindex", numberAttribute], transitionOptions: "transitionOptions", parentExpanded: ["parentExpanded", "parentExpanded", booleanAttribute] }, outputs: { itemToggle: "itemToggle", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeyDown: "menuKeyDown" }, providers: [PanelMenuStyle], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["list"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
234
+ <ul
235
+ #list
236
+ [class]="root ? cn(cx('rootList'), cx('submenu')) : cx('submenu')"
237
+ role="tree"
238
+ [tabindex]="-1"
239
+ [attr.aria-activedescendant]="focusedItemId"
240
+ [attr.data-pc-section]="'menu'"
241
+ [attr.aria-hidden]="!parentExpanded"
242
+ (focusin)="menuFocus.emit($event)"
243
+ (focusout)="menuBlur.emit($event)"
244
+ (keydown)="menuKeyDown.emit($event)"
245
+ >
246
+ <ng-template ngFor let-processedItem let-index="index" [ngForOf]="items">
247
+ <li *ngIf="processedItem.separator" [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))" role="separator"></li>
248
+ <li
249
+ *ngIf="!processedItem.separator && isItemVisible(processedItem)"
250
+ role="treeitem"
251
+ [attr.id]="getItemId(processedItem)"
252
+ [attr.aria-label]="getItemProp(processedItem, 'label')"
253
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
254
+ [attr.aria-level]="level + 1"
255
+ [attr.aria-setsize]="getAriaSetSize()"
256
+ [attr.aria-posinset]="getAriaPosInset(index)"
257
+ [class]="cn(cx('item', { processedItem }), getItemProp(processedItem, 'styleClass'))"
258
+ [ngStyle]="getItemProp(processedItem, 'style')"
259
+ [pTooltip]="getItemProp(processedItem, 'tooltip')"
260
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
261
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
262
+ >
263
+ <div [class]="cx('itemContent')" (click)="onItemClick($event, processedItem)">
264
+ <ng-container *ngIf="!itemTemplate">
265
+ <a
266
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
267
+ [attr.href]="getItemProp(processedItem, 'url')"
268
+ [class]="cx('itemLink')"
269
+ [target]="getItemProp(processedItem, 'target')"
270
+ [attr.data-pc-section]="'action'"
271
+ [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
272
+ >
273
+ <ng-container *ngIf="isItemGroup(processedItem)">
274
+ <ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
275
+ <svg data-p-icon="chevron-down" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" *ngIf="isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
276
+ <svg data-p-icon="chevron-right" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" *ngIf="!isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
277
+ </ng-container>
278
+ <ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate || panelMenu._submenuIconTemplate"></ng-template>
279
+ </ng-container>
280
+ <span [class]="cx('itemIcon', { processedItem })" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
281
+ <span [class]="cx('itemLabel')" *ngIf="processedItem.item?.escape !== false; else htmlLabel">{{ getItemProp(processedItem, 'label') }}</span>
282
+ <ng-template #htmlLabel><span [class]="cx('itemLabel')" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
283
+ </a>
284
+ <a
285
+ *ngIf="getItemProp(processedItem, 'routerLink')"
286
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
287
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
288
+ [routerLinkActive]="'p-panelmenu-item-link-active'"
289
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
290
+ [class]="cx('itemLink')"
291
+ [target]="getItemProp(processedItem, 'target')"
292
+ [attr.title]="getItemProp(processedItem, 'title')"
293
+ [fragment]="getItemProp(processedItem, 'fragment')"
294
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
295
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
296
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
297
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
298
+ [state]="getItemProp(processedItem, 'state')"
299
+ [attr.data-pc-section]="'action'"
300
+ [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
301
+ >
302
+ <ng-container *ngIf="isItemGroup(processedItem)">
303
+ <ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
304
+ <svg data-p-icon="chevron-down" *ngIf="isItemActive(processedItem)" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
305
+ <svg data-p-icon="chevron-right" *ngIf="!isItemActive(processedItem)" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
306
+ </ng-container>
307
+ <ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate && panelMenu._submenuIconTemplate"></ng-template>
308
+ </ng-container>
309
+ <span [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
310
+ <span *ngIf="getItemProp(processedItem, 'label')" [class]="cx('itemLabel')" [innerHTML]="getItemProp(processedItem, 'label')"></span>
311
+
312
+ <span [class]="cn(cx('badge'), getItemProp(processedItem, 'badgeStyleClass'))" *ngIf="processedItem.badge">{{ processedItem.badge }}</span>
313
+ </a>
314
+ </ng-container>
315
+ <ng-container *ngIf="itemTemplate">
316
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
317
+ </ng-container>
318
+ </div>
319
+ <div [@submenu]="getAnimation(processedItem)">
320
+ <p-panelmenu-sub
321
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem) && isItemExpanded(processedItem)"
322
+ [id]="getItemId(processedItem) + '_list'"
323
+ [panelId]="panelId"
324
+ [items]="processedItem?.items"
325
+ [itemTemplate]="itemTemplate"
326
+ [transitionOptions]="transitionOptions"
327
+ [focusedItemId]="focusedItemId"
328
+ [activeItemPath]="activeItemPath"
329
+ [level]="level + 1"
330
+ [parentExpanded]="!!parentExpanded && isItemExpanded(processedItem)"
331
+ (itemToggle)="onItemToggle($event)"
332
+ ></p-panelmenu-sub>
333
+ </div>
334
+ </li>
335
+ </ng-template>
336
+ </ul>
337
+ `, isInline: true, dependencies: [{ kind: "component", type: PanelMenuSub, selector: "p-panelMenuSub, p-panelmenu-sub", inputs: ["panelId", "focusedItemId", "items", "itemTemplate", "level", "activeItemPath", "root", "tabindex", "transitionOptions", "parentExpanded"], outputs: ["itemToggle", "menuFocus", "menuBlur", "menuKeyDown"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "ngmodule", type: SharedModule }], animations: [
338
+ trigger('submenu', [
339
+ state('hidden', style$1({
340
+ height: '0'
341
+ })),
342
+ state('visible', style$1({
343
+ height: '*'
344
+ })),
345
+ transition('visible <=> hidden', [animate('{{transitionParams}}')]),
346
+ transition('void => *', animate(0))
347
+ ])
348
+ ], encapsulation: i0.ViewEncapsulation.None });
349
+ }
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuSub, decorators: [{
351
+ type: Component,
352
+ args: [{
353
+ selector: 'p-panelMenuSub, p-panelmenu-sub',
354
+ imports: [CommonModule, RouterModule, TooltipModule, ChevronDownIcon, ChevronRightIcon, SharedModule],
355
+ standalone: true,
356
+ template: `
357
+ <ul
358
+ #list
359
+ [class]="root ? cn(cx('rootList'), cx('submenu')) : cx('submenu')"
360
+ role="tree"
361
+ [tabindex]="-1"
362
+ [attr.aria-activedescendant]="focusedItemId"
363
+ [attr.data-pc-section]="'menu'"
364
+ [attr.aria-hidden]="!parentExpanded"
365
+ (focusin)="menuFocus.emit($event)"
366
+ (focusout)="menuBlur.emit($event)"
367
+ (keydown)="menuKeyDown.emit($event)"
368
+ >
369
+ <ng-template ngFor let-processedItem let-index="index" [ngForOf]="items">
370
+ <li *ngIf="processedItem.separator" [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))" role="separator"></li>
371
+ <li
372
+ *ngIf="!processedItem.separator && isItemVisible(processedItem)"
373
+ role="treeitem"
374
+ [attr.id]="getItemId(processedItem)"
375
+ [attr.aria-label]="getItemProp(processedItem, 'label')"
376
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
377
+ [attr.aria-level]="level + 1"
378
+ [attr.aria-setsize]="getAriaSetSize()"
379
+ [attr.aria-posinset]="getAriaPosInset(index)"
380
+ [class]="cn(cx('item', { processedItem }), getItemProp(processedItem, 'styleClass'))"
381
+ [ngStyle]="getItemProp(processedItem, 'style')"
382
+ [pTooltip]="getItemProp(processedItem, 'tooltip')"
383
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
384
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
385
+ >
386
+ <div [class]="cx('itemContent')" (click)="onItemClick($event, processedItem)">
387
+ <ng-container *ngIf="!itemTemplate">
388
+ <a
389
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
390
+ [attr.href]="getItemProp(processedItem, 'url')"
391
+ [class]="cx('itemLink')"
392
+ [target]="getItemProp(processedItem, 'target')"
393
+ [attr.data-pc-section]="'action'"
394
+ [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
395
+ >
396
+ <ng-container *ngIf="isItemGroup(processedItem)">
397
+ <ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
398
+ <svg data-p-icon="chevron-down" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" *ngIf="isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
399
+ <svg data-p-icon="chevron-right" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" *ngIf="!isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
400
+ </ng-container>
401
+ <ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate || panelMenu._submenuIconTemplate"></ng-template>
402
+ </ng-container>
403
+ <span [class]="cx('itemIcon', { processedItem })" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
404
+ <span [class]="cx('itemLabel')" *ngIf="processedItem.item?.escape !== false; else htmlLabel">{{ getItemProp(processedItem, 'label') }}</span>
405
+ <ng-template #htmlLabel><span [class]="cx('itemLabel')" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
406
+ </a>
407
+ <a
408
+ *ngIf="getItemProp(processedItem, 'routerLink')"
409
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
410
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
411
+ [routerLinkActive]="'p-panelmenu-item-link-active'"
412
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
413
+ [class]="cx('itemLink')"
414
+ [target]="getItemProp(processedItem, 'target')"
415
+ [attr.title]="getItemProp(processedItem, 'title')"
416
+ [fragment]="getItemProp(processedItem, 'fragment')"
417
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
418
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
419
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
420
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
421
+ [state]="getItemProp(processedItem, 'state')"
422
+ [attr.data-pc-section]="'action'"
423
+ [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
424
+ >
425
+ <ng-container *ngIf="isItemGroup(processedItem)">
426
+ <ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
427
+ <svg data-p-icon="chevron-down" *ngIf="isItemActive(processedItem)" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
428
+ <svg data-p-icon="chevron-right" *ngIf="!isItemActive(processedItem)" [class]="cn(cx('submenuIcon'), getItemProp(processedItem, 'icon'))" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
429
+ </ng-container>
430
+ <ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate && panelMenu._submenuIconTemplate"></ng-template>
431
+ </ng-container>
432
+ <span [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
433
+ <span *ngIf="getItemProp(processedItem, 'label')" [class]="cx('itemLabel')" [innerHTML]="getItemProp(processedItem, 'label')"></span>
434
+
435
+ <span [class]="cn(cx('badge'), getItemProp(processedItem, 'badgeStyleClass'))" *ngIf="processedItem.badge">{{ processedItem.badge }}</span>
436
+ </a>
437
+ </ng-container>
438
+ <ng-container *ngIf="itemTemplate">
439
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
440
+ </ng-container>
441
+ </div>
442
+ <div [@submenu]="getAnimation(processedItem)">
443
+ <p-panelmenu-sub
444
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem) && isItemExpanded(processedItem)"
445
+ [id]="getItemId(processedItem) + '_list'"
446
+ [panelId]="panelId"
447
+ [items]="processedItem?.items"
448
+ [itemTemplate]="itemTemplate"
449
+ [transitionOptions]="transitionOptions"
450
+ [focusedItemId]="focusedItemId"
451
+ [activeItemPath]="activeItemPath"
452
+ [level]="level + 1"
453
+ [parentExpanded]="!!parentExpanded && isItemExpanded(processedItem)"
454
+ (itemToggle)="onItemToggle($event)"
455
+ ></p-panelmenu-sub>
456
+ </div>
457
+ </li>
458
+ </ng-template>
459
+ </ul>
460
+ `,
461
+ animations: [
462
+ trigger('submenu', [
463
+ state('hidden', style$1({
464
+ height: '0'
465
+ })),
466
+ state('visible', style$1({
467
+ height: '*'
468
+ })),
469
+ transition('visible <=> hidden', [animate('{{transitionParams}}')]),
470
+ transition('void => *', animate(0))
471
+ ])
472
+ ],
473
+ encapsulation: ViewEncapsulation.None,
474
+ providers: [PanelMenuStyle]
475
+ }]
476
+ }], propDecorators: { panelId: [{
477
+ type: Input
478
+ }], focusedItemId: [{
479
+ type: Input
480
+ }], items: [{
481
+ type: Input
482
+ }], itemTemplate: [{
483
+ type: Input
484
+ }], level: [{
485
+ type: Input,
486
+ args: [{ transform: numberAttribute }]
487
+ }], activeItemPath: [{
488
+ type: Input
489
+ }], root: [{
490
+ type: Input,
491
+ args: [{ transform: booleanAttribute }]
492
+ }], tabindex: [{
493
+ type: Input,
494
+ args: [{ transform: numberAttribute }]
495
+ }], transitionOptions: [{
496
+ type: Input
497
+ }], parentExpanded: [{
498
+ type: Input,
499
+ args: [{ transform: booleanAttribute }]
500
+ }], itemToggle: [{
501
+ type: Output
502
+ }], menuFocus: [{
503
+ type: Output
504
+ }], menuBlur: [{
505
+ type: Output
506
+ }], menuKeyDown: [{
507
+ type: Output
508
+ }], listViewChild: [{
509
+ type: ViewChild,
510
+ args: ['list']
511
+ }] } });
512
+ class PanelMenuList extends BaseComponent {
513
+ panelId;
514
+ id;
515
+ items;
516
+ itemTemplate;
517
+ parentExpanded;
518
+ expanded;
519
+ transitionOptions;
520
+ root;
521
+ tabindex;
522
+ activeItem;
523
+ itemToggle = new EventEmitter();
524
+ headerFocus = new EventEmitter();
525
+ subMenuViewChild;
526
+ searchTimeout;
527
+ searchValue;
528
+ focused;
529
+ focusedItem = signal(null, ...(ngDevMode ? [{ debugName: "focusedItem" }] : []));
530
+ activeItemPath = signal([], ...(ngDevMode ? [{ debugName: "activeItemPath" }] : []));
531
+ processedItems = signal([], ...(ngDevMode ? [{ debugName: "processedItems" }] : []));
532
+ visibleItems = computed(() => {
533
+ const processedItems = this.processedItems();
534
+ return this.flatItems(processedItems);
535
+ }, ...(ngDevMode ? [{ debugName: "visibleItems" }] : []));
536
+ get focusedItemId() {
537
+ const focusedItem = this.focusedItem();
538
+ return focusedItem && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(this.focusedItem()) ? `${this.panelId}_${this.focusedItem().key}` : undefined;
539
+ }
540
+ ngOnChanges(changes) {
541
+ this.processedItems.set(this.createProcessedItems(changes?.items?.currentValue || this.items || []));
542
+ }
543
+ getItemProp(processedItem, name) {
544
+ return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;
545
+ }
546
+ getItemLabel(processedItem) {
547
+ return this.getItemProp(processedItem, 'label');
548
+ }
549
+ isItemVisible(processedItem) {
550
+ return this.getItemProp(processedItem, 'visible') !== false;
551
+ }
552
+ isItemDisabled(processedItem) {
553
+ return this.getItemProp(processedItem, 'disabled');
554
+ }
555
+ isItemActive(processedItem) {
556
+ return this.activeItemPath().some((path) => path.key === processedItem.parentKey);
557
+ }
558
+ isItemGroup(processedItem) {
559
+ return isNotEmpty(processedItem.items);
560
+ }
561
+ isElementInPanel(event, element) {
562
+ const panel = event.currentTarget.closest('[data-pc-section="panel"]');
563
+ return panel && panel.contains(element);
564
+ }
565
+ isItemMatched(processedItem) {
566
+ return this.isValidItem(processedItem) && this.getItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
567
+ }
568
+ isVisibleItem(processedItem) {
569
+ return !!processedItem && (processedItem.level === 0 || this.isItemActive(processedItem)) && this.isItemVisible(processedItem);
570
+ }
571
+ isValidItem(processedItem) {
572
+ return !!processedItem && !this.isItemDisabled(processedItem) && !processedItem.separator;
573
+ }
574
+ findFirstItem() {
575
+ return this.visibleItems().find((processedItem) => this.isValidItem(processedItem));
576
+ }
577
+ findLastItem() {
578
+ return findLast(this.visibleItems(), (processedItem) => this.isValidItem(processedItem));
579
+ }
580
+ findItemByEventTarget(target) {
581
+ let parentNode = target;
582
+ while (parentNode && parentNode.tagName?.toLowerCase() !== 'li') {
583
+ parentNode = parentNode?.parentNode;
584
+ }
585
+ return parentNode?.id && this.visibleItems().find((processedItem) => this.isValidItem(processedItem) && `${this.panelId}_${processedItem.key}` === parentNode.id);
586
+ }
587
+ createProcessedItems(items, level = 0, parent = {}, parentKey = '') {
588
+ const processedItems = [];
589
+ items &&
590
+ items.forEach((item, index) => {
591
+ const key = (parentKey !== '' ? parentKey + '_' : '') + index;
592
+ const newItem = {
593
+ icon: item.icon,
594
+ expanded: item.expanded,
595
+ separator: item.separator,
596
+ item,
597
+ index,
598
+ level,
599
+ key,
600
+ parent,
601
+ parentKey
602
+ };
603
+ newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);
604
+ processedItems.push(newItem);
605
+ });
606
+ return processedItems;
607
+ }
608
+ findProcessedItemByItemKey(key, processedItems, level = 0) {
609
+ processedItems = processedItems || this.processedItems();
610
+ if (processedItems && processedItems.length) {
611
+ for (let i = 0; i < processedItems.length; i++) {
612
+ const processedItem = processedItems[i];
613
+ if (this.getItemProp(processedItem, 'key') === key)
614
+ return processedItem;
615
+ const matchedItem = this.findProcessedItemByItemKey(key, processedItem.items, level + 1);
616
+ if (matchedItem)
617
+ return matchedItem;
618
+ }
619
+ }
620
+ }
621
+ flatItems(processedItems, processedFlattenItems = []) {
622
+ processedItems &&
623
+ processedItems.forEach((processedItem) => {
624
+ if (this.isVisibleItem(processedItem)) {
625
+ processedFlattenItems.push(processedItem);
626
+ this.flatItems(processedItem.items, processedFlattenItems);
627
+ }
628
+ });
629
+ return processedFlattenItems;
630
+ }
631
+ changeFocusedItem(event) {
632
+ const { originalEvent, processedItem, focusOnNext, selfCheck, allowHeaderFocus = true } = event;
633
+ if (isNotEmpty(this.focusedItem()) && this.focusedItem().key !== processedItem.key) {
634
+ this.focusedItem.set(processedItem);
635
+ this.scrollInView();
636
+ }
637
+ else if (allowHeaderFocus) {
638
+ this.headerFocus.emit({ originalEvent, focusOnNext, selfCheck });
639
+ }
640
+ }
641
+ scrollInView() {
642
+ const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
643
+ if (element) {
644
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
645
+ }
646
+ }
647
+ onFocus(event) {
648
+ if (!this.focused) {
649
+ this.focused = true;
650
+ const focusedItem = this.focusedItem() || (this.isElementInPanel(event, event.relatedTarget) ? this.findItemByEventTarget(event.target) || this.findFirstItem() : this.findLastItem());
651
+ if (event.relatedTarget !== null)
652
+ this.focusedItem.set(focusedItem);
653
+ }
654
+ }
655
+ onBlur(event) {
656
+ const target = event.relatedTarget;
657
+ if (this.focused && !this.el.nativeElement.contains(target)) {
658
+ this.focused = false;
659
+ this.focusedItem.set(null);
660
+ this.searchValue = '';
661
+ }
662
+ }
663
+ onItemToggle(event) {
664
+ const { processedItem, expanded } = event;
665
+ // Update the original item object's 'expanded' property
666
+ if (processedItem.item) {
667
+ processedItem.item.expanded = !processedItem.item.expanded;
668
+ }
669
+ // Recreate processedItems with updated 'expanded' states
670
+ this.processedItems.set(this.createProcessedItems(this.items || [], 0, {}, ''));
671
+ // Update activeItemPath
672
+ const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== processedItem.parentKey);
673
+ if (expanded) {
674
+ activeItemPath.push(processedItem);
675
+ }
676
+ this.activeItemPath.set(activeItemPath);
677
+ // Update focusedItem
678
+ this.focusedItem.set(processedItem);
679
+ }
680
+ onKeyDown(event) {
681
+ const metaKey = event.metaKey || event.ctrlKey;
682
+ switch (event.code) {
683
+ case 'ArrowDown':
684
+ this.onArrowDownKey(event);
685
+ break;
686
+ case 'ArrowUp':
687
+ this.onArrowUpKey(event);
688
+ break;
689
+ case 'ArrowLeft':
690
+ this.onArrowLeftKey(event);
691
+ break;
692
+ case 'ArrowRight':
693
+ this.onArrowRightKey(event);
694
+ break;
695
+ case 'Home':
696
+ this.onHomeKey(event);
697
+ break;
698
+ case 'End':
699
+ this.onEndKey(event);
700
+ break;
701
+ case 'Space':
702
+ this.onSpaceKey(event);
703
+ break;
704
+ case 'Enter':
705
+ this.onEnterKey(event);
706
+ break;
707
+ case 'Escape':
708
+ case 'Tab':
709
+ case 'PageDown':
710
+ case 'PageUp':
711
+ case 'Backspace':
712
+ case 'ShiftLeft':
713
+ case 'ShiftRight':
714
+ //NOOP
715
+ break;
716
+ default:
717
+ if (!metaKey && isPrintableCharacter(event.key)) {
718
+ this.searchItems(event, event.key);
719
+ }
720
+ break;
721
+ }
722
+ }
723
+ onArrowDownKey(event) {
724
+ const processedItem = isNotEmpty(this.focusedItem()) ? this.findNextItem(this.focusedItem()) : this.findFirstItem();
725
+ this.changeFocusedItem({ originalEvent: event, processedItem, focusOnNext: true });
726
+ event.preventDefault();
727
+ }
728
+ onArrowUpKey(event) {
729
+ const processedItem = isNotEmpty(this.focusedItem()) ? this.findPrevItem(this.focusedItem()) : this.findLastItem();
730
+ this.changeFocusedItem({ originalEvent: event, processedItem, selfCheck: true });
731
+ event.preventDefault();
732
+ }
733
+ onArrowLeftKey(event) {
734
+ if (isNotEmpty(this.focusedItem())) {
735
+ const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
736
+ if (matched) {
737
+ const activeItemPath = this.activeItemPath().filter((p) => p.key !== this.focusedItem().key);
738
+ this.activeItemPath.set(activeItemPath);
739
+ }
740
+ else {
741
+ const focusedItem = isNotEmpty(this.focusedItem().parent) ? this.focusedItem().parent : this.focusedItem();
742
+ this.focusedItem.set(focusedItem);
743
+ }
744
+ event.preventDefault();
745
+ }
746
+ }
747
+ onArrowRightKey(event) {
748
+ if (isNotEmpty(this.focusedItem())) {
749
+ const grouped = this.isItemGroup(this.focusedItem());
750
+ if (grouped) {
751
+ const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
752
+ if (matched) {
753
+ this.onArrowDownKey(event);
754
+ }
755
+ else {
756
+ const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== this.focusedItem().parentKey);
757
+ activeItemPath.push(this.focusedItem());
758
+ this.activeItemPath.set(activeItemPath);
759
+ }
760
+ }
761
+ event.preventDefault();
762
+ }
763
+ }
764
+ onHomeKey(event) {
765
+ this.changeFocusedItem({ originalEvent: event, processedItem: this.findFirstItem(), allowHeaderFocus: false });
766
+ event.preventDefault();
767
+ }
768
+ onEndKey(event) {
769
+ this.changeFocusedItem({ originalEvent: event, processedItem: this.findLastItem(), focusOnNext: true, allowHeaderFocus: false });
770
+ event.preventDefault();
771
+ }
772
+ onEnterKey(event) {
773
+ if (isNotEmpty(this.focusedItem())) {
774
+ const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
775
+ const anchorElement = element && (findSingle(element, '[data-pc-section="action"]') || findSingle(element, 'a,button'));
776
+ anchorElement ? anchorElement.click() : element && element.click();
777
+ }
778
+ event.preventDefault();
779
+ }
780
+ onSpaceKey(event) {
781
+ this.onEnterKey(event);
782
+ }
783
+ findNextItem(processedItem) {
784
+ const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
785
+ const matchedItem = index < this.visibleItems().length - 1
786
+ ? this.visibleItems()
787
+ .slice(index + 1)
788
+ .find((pItem) => this.isValidItem(pItem))
789
+ : undefined;
790
+ return matchedItem || processedItem;
791
+ }
792
+ findPrevItem(processedItem) {
793
+ const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
794
+ const matchedItem = index > 0 ? findLast(this.visibleItems().slice(0, index), (pItem) => this.isValidItem(pItem)) : undefined;
795
+ return matchedItem || processedItem;
796
+ }
797
+ searchItems(event, char) {
798
+ this.searchValue = (this.searchValue || '') + char;
799
+ let matchedItem = null;
800
+ let matched = false;
801
+ if (isNotEmpty(this.focusedItem())) {
802
+ const focusedItemIndex = this.visibleItems().findIndex((processedItem) => processedItem.key === this.focusedItem().key);
803
+ matchedItem = this.visibleItems()
804
+ .slice(focusedItemIndex)
805
+ .find((processedItem) => this.isItemMatched(processedItem));
806
+ matchedItem = isEmpty(matchedItem)
807
+ ? this.visibleItems()
808
+ .slice(0, focusedItemIndex)
809
+ .find((processedItem) => this.isItemMatched(processedItem))
810
+ : matchedItem;
811
+ }
812
+ else {
813
+ matchedItem = this.visibleItems().find((processedItem) => this.isItemMatched(processedItem));
814
+ }
815
+ if (isNotEmpty(matchedItem)) {
816
+ matched = true;
817
+ }
818
+ if (isEmpty(matchedItem) && isEmpty(this.focusedItem())) {
819
+ matchedItem = this.findFirstItem();
820
+ }
821
+ if (isNotEmpty(matchedItem)) {
822
+ this.changeFocusedItem({
823
+ originalEvent: event,
824
+ processedItem: matchedItem,
825
+ allowHeaderFocus: false
826
+ });
827
+ }
828
+ if (this.searchTimeout) {
829
+ clearTimeout(this.searchTimeout);
830
+ }
831
+ this.searchTimeout = setTimeout(() => {
832
+ this.searchValue = '';
833
+ this.searchTimeout = null;
834
+ }, 500);
835
+ return matched;
836
+ }
837
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuList, deps: null, target: i0.ɵɵFactoryTarget.Component });
838
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.4", type: PanelMenuList, isStandalone: true, selector: "p-panelMenuList, p-panel-menu-list", inputs: { panelId: "panelId", id: "id", items: "items", itemTemplate: "itemTemplate", parentExpanded: ["parentExpanded", "parentExpanded", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute], transitionOptions: "transitionOptions", root: ["root", "root", booleanAttribute], tabindex: ["tabindex", "tabindex", numberAttribute], activeItem: "activeItem" }, outputs: { itemToggle: "itemToggle", headerFocus: "headerFocus" }, viewQueries: [{ propertyName: "subMenuViewChild", first: true, predicate: ["submenu"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
839
+ <p-panelmenu-sub
840
+ #submenu
841
+ [root]="true"
842
+ [id]="panelId + '_list'"
843
+ [panelId]="panelId"
844
+ [tabindex]="tabindex"
845
+ [itemTemplate]="itemTemplate"
846
+ [focusedItemId]="focused ? focusedItemId : undefined"
847
+ [activeItemPath]="activeItemPath()"
848
+ [transitionOptions]="transitionOptions"
849
+ [items]="processedItems()"
850
+ [parentExpanded]="parentExpanded"
851
+ (itemToggle)="onItemToggle($event)"
852
+ (keydown)="onKeyDown($event)"
853
+ (menuFocus)="onFocus($event)"
854
+ (menuBlur)="onBlur($event)"
855
+ ></p-panelmenu-sub>
856
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PanelMenuSub, selector: "p-panelMenuSub, p-panelmenu-sub", inputs: ["panelId", "focusedItemId", "items", "itemTemplate", "level", "activeItemPath", "root", "tabindex", "transitionOptions", "parentExpanded"], outputs: ["itemToggle", "menuFocus", "menuBlur", "menuKeyDown"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
857
+ }
858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuList, decorators: [{
859
+ type: Component,
860
+ args: [{
861
+ selector: 'p-panelMenuList, p-panel-menu-list',
862
+ imports: [CommonModule, PanelMenuSub, RouterModule, TooltipModule, SharedModule],
863
+ standalone: true,
864
+ template: `
865
+ <p-panelmenu-sub
866
+ #submenu
867
+ [root]="true"
868
+ [id]="panelId + '_list'"
869
+ [panelId]="panelId"
870
+ [tabindex]="tabindex"
871
+ [itemTemplate]="itemTemplate"
872
+ [focusedItemId]="focused ? focusedItemId : undefined"
873
+ [activeItemPath]="activeItemPath()"
874
+ [transitionOptions]="transitionOptions"
875
+ [items]="processedItems()"
876
+ [parentExpanded]="parentExpanded"
877
+ (itemToggle)="onItemToggle($event)"
878
+ (keydown)="onKeyDown($event)"
879
+ (menuFocus)="onFocus($event)"
880
+ (menuBlur)="onBlur($event)"
881
+ ></p-panelmenu-sub>
882
+ `,
883
+ changeDetection: ChangeDetectionStrategy.OnPush,
884
+ encapsulation: ViewEncapsulation.None
885
+ }]
886
+ }], propDecorators: { panelId: [{
887
+ type: Input
888
+ }], id: [{
889
+ type: Input
890
+ }], items: [{
891
+ type: Input
892
+ }], itemTemplate: [{
893
+ type: Input
894
+ }], parentExpanded: [{
895
+ type: Input,
896
+ args: [{ transform: booleanAttribute }]
897
+ }], expanded: [{
898
+ type: Input,
899
+ args: [{ transform: booleanAttribute }]
900
+ }], transitionOptions: [{
901
+ type: Input
902
+ }], root: [{
903
+ type: Input,
904
+ args: [{ transform: booleanAttribute }]
905
+ }], tabindex: [{
906
+ type: Input,
907
+ args: [{ transform: numberAttribute }]
908
+ }], activeItem: [{
909
+ type: Input
910
+ }], itemToggle: [{
911
+ type: Output
912
+ }], headerFocus: [{
913
+ type: Output
914
+ }], subMenuViewChild: [{
915
+ type: ViewChild,
916
+ args: ['submenu']
917
+ }] } });
918
+ /**
919
+ * PanelMenu is a hybrid of Accordion and Tree components.
920
+ * @group Components
921
+ */
922
+ class PanelMenu extends BaseComponent {
923
+ /**
924
+ * An array of menuitems.
925
+ * @group Props
926
+ */
927
+ model;
928
+ /**
929
+ * Style class of the component.
930
+ * @deprecated since v20.0.0, use `class` instead.
931
+ * @group Props
932
+ */
933
+ styleClass;
934
+ /**
935
+ * Whether multiple tabs can be activated at the same time or not.
936
+ * @group Props
937
+ */
938
+ multiple = false;
939
+ /**
940
+ * Transition options of the animation.
941
+ * @group Props
942
+ */
943
+ transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
944
+ /**
945
+ * Current id state as a string.
946
+ * @group Props
947
+ */
948
+ id;
949
+ /**
950
+ * Index of the element in tabbing order.
951
+ * @group Props
952
+ */
953
+ tabindex = 0;
954
+ containerViewChild;
955
+ /**
956
+ * Template option of submenu icon.
957
+ * @group Templates
958
+ */
959
+ submenuIconTemplate;
960
+ /**
961
+ * Template option of header icon.
962
+ * @group Templates
963
+ */
964
+ headerIconTemplate;
965
+ /**
966
+ * Template option of item.
967
+ * @group Templates
968
+ */
969
+ itemTemplate;
970
+ templates;
971
+ _submenuIconTemplate;
972
+ _headerIconTemplate;
973
+ _itemTemplate;
974
+ animating;
975
+ activeItem = signal(null, ...(ngDevMode ? [{ debugName: "activeItem" }] : []));
976
+ _componentStyle = inject(PanelMenuStyle);
977
+ ngOnInit() {
978
+ super.ngOnInit();
979
+ this.id = this.id || uuid('pn_id_');
980
+ }
981
+ ngAfterContentInit() {
982
+ this.templates?.forEach((item) => {
983
+ switch (item.getType()) {
984
+ case 'submenuicon':
985
+ this._submenuIconTemplate = item.template;
986
+ break;
987
+ case 'headericon':
988
+ this._headerIconTemplate = item.template;
989
+ break;
990
+ case 'item':
991
+ this._itemTemplate = item.template;
992
+ break;
993
+ default:
994
+ this._itemTemplate = item.template;
995
+ break;
996
+ }
997
+ });
998
+ }
999
+ /**
1000
+ * Collapses open panels.
1001
+ * @group Method
1002
+ */
1003
+ collapseAll() {
1004
+ for (let item of this.model) {
1005
+ if (item.expanded) {
1006
+ item.expanded = false;
1007
+ }
1008
+ }
1009
+ this.cd.detectChanges();
1010
+ }
1011
+ onToggleDone() {
1012
+ this.animating = false;
1013
+ this.cd.markForCheck();
1014
+ }
1015
+ changeActiveItem(event, item, index, selfActive = false) {
1016
+ if (!this.isItemDisabled(item)) {
1017
+ const activeItem = selfActive ? item : this.activeItem && equals(item, this.activeItem) ? null : item;
1018
+ this.activeItem.set(activeItem);
1019
+ }
1020
+ }
1021
+ getAnimation(item) {
1022
+ return item.expanded ? { value: 'visible', params: { transitionParams: this.animating ? this.transitionOptions : '0ms', height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
1023
+ }
1024
+ getItemProp(item, name) {
1025
+ return item ? resolve(item[name]) : undefined;
1026
+ }
1027
+ getItemLabel(item) {
1028
+ return this.getItemProp(item, 'label');
1029
+ }
1030
+ isItemActive(item) {
1031
+ return item.expanded;
1032
+ }
1033
+ isItemVisible(item) {
1034
+ return this.getItemProp(item, 'visible') !== false;
1035
+ }
1036
+ isItemDisabled(item) {
1037
+ return this.getItemProp(item, 'disabled');
1038
+ }
1039
+ isItemGroup(item) {
1040
+ return isNotEmpty(item.items);
1041
+ }
1042
+ getPanelId(index, item) {
1043
+ return item && item.id ? item.id : `${this.id}_${index}`;
1044
+ }
1045
+ getHeaderId(item, index) {
1046
+ return item.id ? item.id + '_header' : `${this.getPanelId(index)}_header`;
1047
+ }
1048
+ getContentId(item, index) {
1049
+ return item.id ? item.id + '_content' : `${this.getPanelId(index)}_content`;
1050
+ }
1051
+ updateFocusedHeader(event) {
1052
+ const { originalEvent, focusOnNext, selfCheck } = event;
1053
+ const panelElement = originalEvent.currentTarget.closest('[data-pc-section="panel"]');
1054
+ const header = selfCheck ? findSingle(panelElement, '[data-pc-section="header"]') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);
1055
+ header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);
1056
+ }
1057
+ changeFocusedHeader(event, element) {
1058
+ element && focus(element);
1059
+ }
1060
+ findNextHeader(panelElement, selfCheck = false) {
1061
+ const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;
1062
+ const headerElement = findSingle(nextPanelElement, '[data-pc-section="header"]');
1063
+ return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;
1064
+ }
1065
+ findPrevHeader(panelElement, selfCheck = false) {
1066
+ const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;
1067
+ const headerElement = findSingle(prevPanelElement, '[data-pc-section="header"]');
1068
+ return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;
1069
+ }
1070
+ findFirstHeader() {
1071
+ return this.findNextHeader(this.containerViewChild.nativeElement.firstElementChild, true);
1072
+ }
1073
+ findLastHeader() {
1074
+ return this.findPrevHeader(this.containerViewChild.nativeElement.lastElementChild, true);
1075
+ }
1076
+ onHeaderClick(event, item, index) {
1077
+ if (this.isItemDisabled(item)) {
1078
+ event.preventDefault();
1079
+ return;
1080
+ }
1081
+ if (item.command) {
1082
+ item.command({ originalEvent: event, item });
1083
+ }
1084
+ if (!this.multiple) {
1085
+ for (let modelItem of this.model) {
1086
+ if (item !== modelItem && modelItem.expanded) {
1087
+ modelItem.expanded = false;
1088
+ }
1089
+ }
1090
+ }
1091
+ item.expanded = !item.expanded;
1092
+ this.changeActiveItem(event, item, index);
1093
+ this.animating = true;
1094
+ focus(event.currentTarget);
1095
+ }
1096
+ onHeaderKeyDown(event, item, index) {
1097
+ switch (event.code) {
1098
+ case 'ArrowDown':
1099
+ this.onHeaderArrowDownKey(event);
1100
+ break;
1101
+ case 'ArrowUp':
1102
+ this.onHeaderArrowUpKey(event);
1103
+ break;
1104
+ case 'Home':
1105
+ this.onHeaderHomeKey(event);
1106
+ break;
1107
+ case 'End':
1108
+ this.onHeaderEndKey(event);
1109
+ break;
1110
+ case 'Enter':
1111
+ case 'Space':
1112
+ this.onHeaderEnterKey(event, item, index);
1113
+ break;
1114
+ default:
1115
+ break;
1116
+ }
1117
+ }
1118
+ onHeaderArrowDownKey(event) {
1119
+ const rootList = getAttribute(event.currentTarget, 'data-p-highlight') === true ? findSingle(event.currentTarget.nextElementSibling, '[data-pc-section="menu"]') : null;
1120
+ rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });
1121
+ event.preventDefault();
1122
+ }
1123
+ onHeaderArrowUpKey(event) {
1124
+ const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();
1125
+ const rootList = getAttribute(prevHeader, 'data-p-highlight') === true ? findSingle(prevHeader.nextElementSibling, '[data-pc-section="menu"]') : null;
1126
+ rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });
1127
+ event.preventDefault();
1128
+ }
1129
+ onHeaderHomeKey(event) {
1130
+ this.changeFocusedHeader(event, this.findFirstHeader());
1131
+ event.preventDefault();
1132
+ }
1133
+ onHeaderEndKey(event) {
1134
+ this.changeFocusedHeader(event, this.findLastHeader());
1135
+ event.preventDefault();
1136
+ }
1137
+ onHeaderEnterKey(event, item, index) {
1138
+ const headerAction = findSingle(event.currentTarget, '[data-pc-section="headeraction"]');
1139
+ headerAction ? headerAction.click() : this.onHeaderClick(event, item, index);
1140
+ event.preventDefault();
1141
+ }
1142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenu, deps: null, target: i0.ɵɵFactoryTarget.Component });
1143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.4", type: PanelMenu, isStandalone: true, selector: "p-panelMenu, p-panelmenu, p-panel-menu", inputs: { model: "model", styleClass: "styleClass", multiple: ["multiple", "multiple", booleanAttribute], transitionOptions: "transitionOptions", id: "id", tabindex: ["tabindex", "tabindex", numberAttribute] }, host: { attributes: { "data-pc-section": "root", "data-pc-name": "panelmenu" }, properties: { "class": "cn(cx(\"root\"), styleClass)" } }, providers: [PanelMenuStyle], queries: [{ propertyName: "submenuIconTemplate", first: true, predicate: ["submenuicon"] }, { propertyName: "headerIconTemplate", first: true, predicate: ["headericon"] }, { propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1144
+ <ng-container *ngFor="let item of model; let f = first; let l = last; let i = index">
1145
+ <div *ngIf="isItemVisible(item)" [class]="cn(cx('panel'), getItemProp(item, 'headerClass'))" [ngStyle]="getItemProp(item, 'style')" [attr.data-pc-section]="'panel'">
1146
+ <div
1147
+ [class]="cn(cx('header', { item }), getItemProp(item, 'styleClass'))"
1148
+ [ngStyle]="getItemProp(item, 'style')"
1149
+ [pTooltip]="getItemProp(item, 'tooltip')"
1150
+ [attr.id]="getHeaderId(item, i)"
1151
+ [tabindex]="0"
1152
+ role="button"
1153
+ [tooltipOptions]="getItemProp(item, 'tooltipOptions')"
1154
+ [attr.aria-expanded]="isItemActive(item)"
1155
+ [attr.aria-label]="getItemProp(item, 'label')"
1156
+ [attr.aria-controls]="getContentId(item, i)"
1157
+ [attr.aria-disabled]="isItemDisabled(item)"
1158
+ [attr.data-p-highlight]="isItemActive(item)"
1159
+ [attr.data-p-disabled]="isItemDisabled(item)"
1160
+ [attr.data-pc-section]="'header'"
1161
+ (click)="onHeaderClick($event, item, i)"
1162
+ (keydown)="onHeaderKeyDown($event, item, i)"
1163
+ >
1164
+ <div [class]="cx('headerContent')">
1165
+ <ng-container *ngIf="!itemTemplate && !_itemTemplate">
1166
+ <a
1167
+ *ngIf="!getItemProp(item, 'routerLink')"
1168
+ [attr.href]="getItemProp(item, 'url')"
1169
+ [attr.tabindex]="-1"
1170
+ [target]="getItemProp(item, 'target')"
1171
+ [attr.title]="getItemProp(item, 'title')"
1172
+ [class]="cx('headerLink')"
1173
+ [attr.data-pc-section]="'headeraction'"
1174
+ >
1175
+ <ng-container *ngIf="isItemGroup(item)">
1176
+ <ng-container *ngIf="!headerIconTemplate && !_headerIconTemplate">
1177
+ <svg data-p-icon="chevron-down" [class]="cx('headerIcon')" *ngIf="isItemActive(item)" />
1178
+ <svg data-p-icon="chevron-right" [class]="cx('headerIcon')" *ngIf="!isItemActive(item)" />
1179
+ </ng-container>
1180
+ <ng-template *ngTemplateOutlet="headerIconTemplate || _headerIconTemplate"></ng-template>
1181
+ </ng-container>
1182
+ <span [class]="cn(cx('headerIcon'), item.icon)" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1183
+ <span [class]="cx('headerLabel')" *ngIf="getItemProp(item, 'escape') !== false; else htmlLabel">{{ getItemProp(item, 'label') }}</span>
1184
+ <ng-template #htmlLabel><span [class]="cx('headerLabel')" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1185
+ <span [class]="cn(cx('badge'), getItemProp(item, 'badgeStyleClass'))" *ngIf="getItemProp(item, 'badge')">{{ getItemProp(item, 'badge') }}</span>
1186
+ </a>
1187
+ </ng-container>
1188
+ <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
1189
+ <a
1190
+ *ngIf="getItemProp(item, 'routerLink')"
1191
+ [routerLink]="getItemProp(item, 'routerLink')"
1192
+ [queryParams]="getItemProp(item, 'queryParams')"
1193
+ [routerLinkActive]="'p-panelmenu-item-link-active'"
1194
+ [routerLinkActiveOptions]="getItemProp(item, 'routerLinkActiveOptions') || { exact: false }"
1195
+ [target]="getItemProp(item, 'target')"
1196
+ [class]="cx('headerLink')"
1197
+ [attr.tabindex]="-1"
1198
+ [fragment]="getItemProp(item, 'fragment')"
1199
+ [queryParamsHandling]="getItemProp(item, 'queryParamsHandling')"
1200
+ [preserveFragment]="getItemProp(item, 'preserveFragment')"
1201
+ [skipLocationChange]="getItemProp(item, 'skipLocationChange')"
1202
+ [replaceUrl]="getItemProp(item, 'replaceUrl')"
1203
+ [state]="getItemProp(item, 'state')"
1204
+ [attr.data-pc-section]="'headeraction'"
1205
+ >
1206
+ <ng-container *ngIf="isItemGroup(item)">
1207
+ <ng-container *ngIf="!headerIconTemplate && !_headerIconTemplate">
1208
+ <svg data-p-icon="chevron-down" [class]="cx('headerIcon')" *ngIf="isItemActive(item)" />
1209
+ <svg data-p-icon="chevron-right" [class]="cx('headerIcon')" *ngIf="!isItemActive(item)" />
1210
+ </ng-container>
1211
+ <ng-template *ngTemplateOutlet="headerIconTemplate || _headerIconTemplate"></ng-template>
1212
+ </ng-container>
1213
+ <span [class]="cn(cx('headerIcon'), item.icon)" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1214
+ <span [class]="cx('headerLabel')" *ngIf="getItemProp(item, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(item, 'label') }}</span>
1215
+ <ng-template #htmlRouteLabel><span [class]="cx('headerLabel')" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1216
+ <span *ngIf="getItemProp(item, 'badge')" [class]="cn(cx('badge'), getItemProp(item, 'badgeStyleClass'))">{{ getItemProp(item, 'badge') }}</span>
1217
+ </a>
1218
+ </div>
1219
+ </div>
1220
+ <div
1221
+ *ngIf="isItemGroup(item)"
1222
+ [class]="cx('contentContainer', { processedItem: item })"
1223
+ [@rootItem]="getAnimation(item)"
1224
+ (@rootItem.done)="onToggleDone()"
1225
+ role="region"
1226
+ [attr.id]="getContentId(item, i)"
1227
+ [attr.aria-labelledby]="getHeaderId(item, i)"
1228
+ [attr.data-pc-section]="'toggleablecontent'"
1229
+ >
1230
+ <div [class]="cx('content')" [attr.data-pc-section]="'menucontent'">
1231
+ <p-panelMenuList
1232
+ [panelId]="getPanelId(i, item)"
1233
+ [items]="getItemProp(item, 'items')"
1234
+ [itemTemplate]="itemTemplate || _itemTemplate"
1235
+ [transitionOptions]="transitionOptions"
1236
+ [root]="true"
1237
+ [activeItem]="activeItem()"
1238
+ [tabindex]="tabindex"
1239
+ [parentExpanded]="isItemActive(item)"
1240
+ (headerFocus)="updateFocusedHeader($event)"
1241
+ ></p-panelMenuList>
1242
+ </div>
1243
+ </div>
1244
+ </div>
1245
+ </ng-container>
1246
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: PanelMenuList, selector: "p-panelMenuList, p-panel-menu-list", inputs: ["panelId", "id", "items", "itemTemplate", "parentExpanded", "expanded", "transitionOptions", "root", "tabindex", "activeItem"], outputs: ["itemToggle", "headerFocus"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: ChevronDownIcon, selector: "[data-p-icon=\"chevron-down\"]" }, { kind: "component", type: ChevronRightIcon, selector: "[data-p-icon=\"chevron-right\"]" }, { kind: "ngmodule", type: SharedModule }], animations: [
1247
+ trigger('rootItem', [
1248
+ state('hidden', style$1({
1249
+ height: '0',
1250
+ visibility: 'hidden'
1251
+ })),
1252
+ state('visible', style$1({
1253
+ height: '*',
1254
+ visibility: '*'
1255
+ })),
1256
+ transition('visible <=> hidden', [animate('{{transitionParams}}')]),
1257
+ transition('void => *', animate(0))
1258
+ ])
1259
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1260
+ }
1261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenu, decorators: [{
1262
+ type: Component,
1263
+ args: [{
1264
+ selector: 'p-panelMenu, p-panelmenu, p-panel-menu',
1265
+ imports: [CommonModule, PanelMenuList, RouterModule, TooltipModule, ChevronDownIcon, ChevronRightIcon, SharedModule],
1266
+ standalone: true,
1267
+ template: `
1268
+ <ng-container *ngFor="let item of model; let f = first; let l = last; let i = index">
1269
+ <div *ngIf="isItemVisible(item)" [class]="cn(cx('panel'), getItemProp(item, 'headerClass'))" [ngStyle]="getItemProp(item, 'style')" [attr.data-pc-section]="'panel'">
1270
+ <div
1271
+ [class]="cn(cx('header', { item }), getItemProp(item, 'styleClass'))"
1272
+ [ngStyle]="getItemProp(item, 'style')"
1273
+ [pTooltip]="getItemProp(item, 'tooltip')"
1274
+ [attr.id]="getHeaderId(item, i)"
1275
+ [tabindex]="0"
1276
+ role="button"
1277
+ [tooltipOptions]="getItemProp(item, 'tooltipOptions')"
1278
+ [attr.aria-expanded]="isItemActive(item)"
1279
+ [attr.aria-label]="getItemProp(item, 'label')"
1280
+ [attr.aria-controls]="getContentId(item, i)"
1281
+ [attr.aria-disabled]="isItemDisabled(item)"
1282
+ [attr.data-p-highlight]="isItemActive(item)"
1283
+ [attr.data-p-disabled]="isItemDisabled(item)"
1284
+ [attr.data-pc-section]="'header'"
1285
+ (click)="onHeaderClick($event, item, i)"
1286
+ (keydown)="onHeaderKeyDown($event, item, i)"
1287
+ >
1288
+ <div [class]="cx('headerContent')">
1289
+ <ng-container *ngIf="!itemTemplate && !_itemTemplate">
1290
+ <a
1291
+ *ngIf="!getItemProp(item, 'routerLink')"
1292
+ [attr.href]="getItemProp(item, 'url')"
1293
+ [attr.tabindex]="-1"
1294
+ [target]="getItemProp(item, 'target')"
1295
+ [attr.title]="getItemProp(item, 'title')"
1296
+ [class]="cx('headerLink')"
1297
+ [attr.data-pc-section]="'headeraction'"
1298
+ >
1299
+ <ng-container *ngIf="isItemGroup(item)">
1300
+ <ng-container *ngIf="!headerIconTemplate && !_headerIconTemplate">
1301
+ <svg data-p-icon="chevron-down" [class]="cx('headerIcon')" *ngIf="isItemActive(item)" />
1302
+ <svg data-p-icon="chevron-right" [class]="cx('headerIcon')" *ngIf="!isItemActive(item)" />
1303
+ </ng-container>
1304
+ <ng-template *ngTemplateOutlet="headerIconTemplate || _headerIconTemplate"></ng-template>
1305
+ </ng-container>
1306
+ <span [class]="cn(cx('headerIcon'), item.icon)" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1307
+ <span [class]="cx('headerLabel')" *ngIf="getItemProp(item, 'escape') !== false; else htmlLabel">{{ getItemProp(item, 'label') }}</span>
1308
+ <ng-template #htmlLabel><span [class]="cx('headerLabel')" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1309
+ <span [class]="cn(cx('badge'), getItemProp(item, 'badgeStyleClass'))" *ngIf="getItemProp(item, 'badge')">{{ getItemProp(item, 'badge') }}</span>
1310
+ </a>
1311
+ </ng-container>
1312
+ <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
1313
+ <a
1314
+ *ngIf="getItemProp(item, 'routerLink')"
1315
+ [routerLink]="getItemProp(item, 'routerLink')"
1316
+ [queryParams]="getItemProp(item, 'queryParams')"
1317
+ [routerLinkActive]="'p-panelmenu-item-link-active'"
1318
+ [routerLinkActiveOptions]="getItemProp(item, 'routerLinkActiveOptions') || { exact: false }"
1319
+ [target]="getItemProp(item, 'target')"
1320
+ [class]="cx('headerLink')"
1321
+ [attr.tabindex]="-1"
1322
+ [fragment]="getItemProp(item, 'fragment')"
1323
+ [queryParamsHandling]="getItemProp(item, 'queryParamsHandling')"
1324
+ [preserveFragment]="getItemProp(item, 'preserveFragment')"
1325
+ [skipLocationChange]="getItemProp(item, 'skipLocationChange')"
1326
+ [replaceUrl]="getItemProp(item, 'replaceUrl')"
1327
+ [state]="getItemProp(item, 'state')"
1328
+ [attr.data-pc-section]="'headeraction'"
1329
+ >
1330
+ <ng-container *ngIf="isItemGroup(item)">
1331
+ <ng-container *ngIf="!headerIconTemplate && !_headerIconTemplate">
1332
+ <svg data-p-icon="chevron-down" [class]="cx('headerIcon')" *ngIf="isItemActive(item)" />
1333
+ <svg data-p-icon="chevron-right" [class]="cx('headerIcon')" *ngIf="!isItemActive(item)" />
1334
+ </ng-container>
1335
+ <ng-template *ngTemplateOutlet="headerIconTemplate || _headerIconTemplate"></ng-template>
1336
+ </ng-container>
1337
+ <span [class]="cn(cx('headerIcon'), item.icon)" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1338
+ <span [class]="cx('headerLabel')" *ngIf="getItemProp(item, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(item, 'label') }}</span>
1339
+ <ng-template #htmlRouteLabel><span [class]="cx('headerLabel')" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1340
+ <span *ngIf="getItemProp(item, 'badge')" [class]="cn(cx('badge'), getItemProp(item, 'badgeStyleClass'))">{{ getItemProp(item, 'badge') }}</span>
1341
+ </a>
1342
+ </div>
1343
+ </div>
1344
+ <div
1345
+ *ngIf="isItemGroup(item)"
1346
+ [class]="cx('contentContainer', { processedItem: item })"
1347
+ [@rootItem]="getAnimation(item)"
1348
+ (@rootItem.done)="onToggleDone()"
1349
+ role="region"
1350
+ [attr.id]="getContentId(item, i)"
1351
+ [attr.aria-labelledby]="getHeaderId(item, i)"
1352
+ [attr.data-pc-section]="'toggleablecontent'"
1353
+ >
1354
+ <div [class]="cx('content')" [attr.data-pc-section]="'menucontent'">
1355
+ <p-panelMenuList
1356
+ [panelId]="getPanelId(i, item)"
1357
+ [items]="getItemProp(item, 'items')"
1358
+ [itemTemplate]="itemTemplate || _itemTemplate"
1359
+ [transitionOptions]="transitionOptions"
1360
+ [root]="true"
1361
+ [activeItem]="activeItem()"
1362
+ [tabindex]="tabindex"
1363
+ [parentExpanded]="isItemActive(item)"
1364
+ (headerFocus)="updateFocusedHeader($event)"
1365
+ ></p-panelMenuList>
1366
+ </div>
1367
+ </div>
1368
+ </div>
1369
+ </ng-container>
1370
+ `,
1371
+ animations: [
1372
+ trigger('rootItem', [
1373
+ state('hidden', style$1({
1374
+ height: '0',
1375
+ visibility: 'hidden'
1376
+ })),
1377
+ state('visible', style$1({
1378
+ height: '*',
1379
+ visibility: '*'
1380
+ })),
1381
+ transition('visible <=> hidden', [animate('{{transitionParams}}')]),
1382
+ transition('void => *', animate(0))
1383
+ ])
1384
+ ],
1385
+ changeDetection: ChangeDetectionStrategy.OnPush,
1386
+ encapsulation: ViewEncapsulation.None,
1387
+ providers: [PanelMenuStyle],
1388
+ host: {
1389
+ '[class]': 'cn(cx("root"), styleClass)',
1390
+ 'data-pc-section': 'root',
1391
+ 'data-pc-name': 'panelmenu'
1392
+ }
1393
+ }]
1394
+ }], propDecorators: { model: [{
1395
+ type: Input
1396
+ }], styleClass: [{
1397
+ type: Input
1398
+ }], multiple: [{
1399
+ type: Input,
1400
+ args: [{ transform: booleanAttribute }]
1401
+ }], transitionOptions: [{
1402
+ type: Input
1403
+ }], id: [{
1404
+ type: Input
1405
+ }], tabindex: [{
1406
+ type: Input,
1407
+ args: [{ transform: numberAttribute }]
1408
+ }], containerViewChild: [{
1409
+ type: ViewChild,
1410
+ args: ['container']
1411
+ }], submenuIconTemplate: [{
1412
+ type: ContentChild,
1413
+ args: ['submenuicon', { descendants: false }]
1414
+ }], headerIconTemplate: [{
1415
+ type: ContentChild,
1416
+ args: ['headericon', { descendants: false }]
1417
+ }], itemTemplate: [{
1418
+ type: ContentChild,
1419
+ args: ['item', { descendants: false }]
1420
+ }], templates: [{
1421
+ type: ContentChildren,
1422
+ args: [PrimeTemplate]
1423
+ }] } });
1424
+ class PanelMenuModule {
1425
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1426
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuModule, imports: [PanelMenu, SharedModule], exports: [PanelMenu, SharedModule] });
1427
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuModule, imports: [PanelMenu, SharedModule, SharedModule] });
1428
+ }
1429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PanelMenuModule, decorators: [{
1430
+ type: NgModule,
1431
+ args: [{
1432
+ imports: [PanelMenu, SharedModule],
1433
+ exports: [PanelMenu, SharedModule]
1434
+ }]
1435
+ }] });
1436
+
1437
+ /**
1438
+ * Generated bundle index. Do not edit.
1439
+ */
1440
+
1441
+ export { PanelMenu, PanelMenuClasses, PanelMenuList, PanelMenuModule, PanelMenuStyle, PanelMenuSub };
1442
+ //# sourceMappingURL=primeng-panelmenu.mjs.map