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,1391 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule, isPlatformBrowser, DOCUMENT } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, EventEmitter, inject, numberAttribute, booleanAttribute, Output, Input, ViewEncapsulation, Component, signal, effect, PLATFORM_ID, ContentChildren, ContentChild, ViewChild, Inject, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
+ import * as i2 from '@angular/router';
6
+ import { RouterModule } from '@angular/router';
7
+ import { resolve, isNotEmpty, uuid, isEmpty, focus, isTouchDevice, findSingle, isPrintableCharacter, findLastIndex } from '@primeuix/utils';
8
+ import { SharedModule, PrimeTemplate } from 'primeng/api';
9
+ import * as i4 from 'primeng/badge';
10
+ import { BadgeModule } from 'primeng/badge';
11
+ import { BaseComponent } from 'primeng/basecomponent';
12
+ import { AngleDownIcon, AngleRightIcon, BarsIcon } from 'primeng/icons';
13
+ import { Ripple } from 'primeng/ripple';
14
+ import * as i3 from 'primeng/tooltip';
15
+ import { TooltipModule } from 'primeng/tooltip';
16
+ import { ZIndexUtils } from 'primeng/utils';
17
+ import { Subject, interval } from 'rxjs';
18
+ import { debounce, filter } from 'rxjs/operators';
19
+ import { style } from '@primeuix/styles/menubar';
20
+ import { BaseStyle } from 'primeng/base';
21
+
22
+ const inlineStyles = {
23
+ submenu: ({ instance, processedItem }) => ({ display: instance.isItemActive(processedItem) ? 'flex' : 'none' })
24
+ };
25
+ const classes = {
26
+ root: ({ instance }) => [
27
+ 'p-menubar p-component',
28
+ {
29
+ 'p-menubar-mobile': instance.queryMatches,
30
+ 'p-menubar-mobile-active': instance.mobileActive
31
+ }
32
+ ],
33
+ start: 'p-menubar-start',
34
+ button: 'p-menubar-button',
35
+ rootList: 'p-menubar-root-list',
36
+ item: ({ instance, processedItem }) => [
37
+ 'p-menubar-item',
38
+ {
39
+ 'p-menubar-item-active': instance.isItemActive(processedItem),
40
+ 'p-focus': instance.isItemFocused(processedItem),
41
+ 'p-disabled': instance.isItemDisabled(processedItem)
42
+ }
43
+ ],
44
+ itemContent: 'p-menubar-item-content',
45
+ itemLink: 'p-menubar-item-link',
46
+ itemIcon: 'p-menubar-item-icon',
47
+ itemLabel: 'p-menubar-item-label',
48
+ submenuIcon: 'p-menubar-submenu-icon',
49
+ submenu: 'p-menubar-submenu',
50
+ separator: 'p-menubar-separator',
51
+ end: 'p-menubar-end'
52
+ };
53
+ class MenuBarStyle extends BaseStyle {
54
+ name = 'menubar';
55
+ theme = style;
56
+ classes = classes;
57
+ inlineStyles = inlineStyles;
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenuBarStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
59
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenuBarStyle });
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenuBarStyle, decorators: [{
62
+ type: Injectable
63
+ }] });
64
+ /**
65
+ *
66
+ * Menubar is a horizontal menu component.
67
+ *
68
+ * [Live Demo](https://www.primeng.org/menubar/)
69
+ *
70
+ * @module menubarstyle
71
+ *
72
+ */
73
+ var MenubarClasses;
74
+ (function (MenubarClasses) {
75
+ /**
76
+ * Class name of the root element
77
+ */
78
+ MenubarClasses["root"] = "p-menubar";
79
+ /**
80
+ * Class name of the start element
81
+ */
82
+ MenubarClasses["start"] = "p-menubar-start";
83
+ /**
84
+ * Class name of the button element
85
+ */
86
+ MenubarClasses["button"] = "p-menubar-button";
87
+ /**
88
+ * Class name of the root list element
89
+ */
90
+ MenubarClasses["rootList"] = "p-menubar-root-list";
91
+ /**
92
+ * Class name of the item element
93
+ */
94
+ MenubarClasses["item"] = "p-menubar-item";
95
+ /**
96
+ * Class name of the item content element
97
+ */
98
+ MenubarClasses["itemContent"] = "p-menubar-item-content";
99
+ /**
100
+ * Class name of the item link element
101
+ */
102
+ MenubarClasses["itemLink"] = "p-menubar-item-link";
103
+ /**
104
+ * Class name of the item icon element
105
+ */
106
+ MenubarClasses["itemIcon"] = "p-menubar-item-icon";
107
+ /**
108
+ * Class name of the item label element
109
+ */
110
+ MenubarClasses["itemLabel"] = "p-menubar-item-label";
111
+ /**
112
+ * Class name of the submenu icon element
113
+ */
114
+ MenubarClasses["submenuIcon"] = "p-menubar-submenu-icon";
115
+ /**
116
+ * Class name of the submenu element
117
+ */
118
+ MenubarClasses["submenu"] = "p-menubar-submenu";
119
+ /**
120
+ * Class name of the separator element
121
+ */
122
+ MenubarClasses["separator"] = "p-menubar-separator";
123
+ /**
124
+ * Class name of the end element
125
+ */
126
+ MenubarClasses["end"] = "p-menubar-end";
127
+ })(MenubarClasses || (MenubarClasses = {}));
128
+
129
+ class MenubarService {
130
+ autoHide;
131
+ autoHideDelay;
132
+ mouseLeaves = new Subject();
133
+ mouseLeft$ = this.mouseLeaves.pipe(debounce(() => interval(this.autoHideDelay)), filter((mouseLeft) => this.autoHide && mouseLeft));
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
135
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarService });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarService, decorators: [{
138
+ type: Injectable
139
+ }] });
140
+ class MenubarSub extends BaseComponent {
141
+ items;
142
+ itemTemplate;
143
+ root = false;
144
+ autoZIndex = true;
145
+ baseZIndex = 0;
146
+ mobileActive;
147
+ autoDisplay;
148
+ menuId;
149
+ ariaLabel;
150
+ ariaLabelledBy;
151
+ level = 0;
152
+ focusedItemId;
153
+ activeItemPath;
154
+ inlineStyles;
155
+ submenuiconTemplate;
156
+ itemClick = new EventEmitter();
157
+ itemMouseEnter = new EventEmitter();
158
+ menuFocus = new EventEmitter();
159
+ menuBlur = new EventEmitter();
160
+ menuKeydown = new EventEmitter();
161
+ mouseLeaveSubscriber;
162
+ menubarService = inject(MenubarService);
163
+ _componentStyle = inject(MenuBarStyle);
164
+ ngOnInit() {
165
+ super.ngOnInit();
166
+ this.mouseLeaveSubscriber = this.menubarService.mouseLeft$.subscribe(() => {
167
+ this.cd.markForCheck();
168
+ });
169
+ }
170
+ onItemClick(event, processedItem) {
171
+ this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
172
+ this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });
173
+ }
174
+ getItemProp(processedItem, name, params = null) {
175
+ return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
176
+ }
177
+ getItemId(processedItem) {
178
+ return processedItem.item && processedItem.item?.id ? processedItem.item.id : `${this.menuId}_${processedItem.key}`;
179
+ }
180
+ getItemLabelId(processedItem) {
181
+ return `${this.menuId}_${processedItem.key}_label`;
182
+ }
183
+ getItemLabel(processedItem) {
184
+ return this.getItemProp(processedItem, 'label');
185
+ }
186
+ isItemVisible(processedItem) {
187
+ return this.getItemProp(processedItem, 'visible') !== false;
188
+ }
189
+ isItemActive(processedItem) {
190
+ if (this.activeItemPath) {
191
+ return this.activeItemPath.some((path) => path.key === processedItem.key);
192
+ }
193
+ }
194
+ isItemDisabled(processedItem) {
195
+ return this.getItemProp(processedItem, 'disabled');
196
+ }
197
+ isItemFocused(processedItem) {
198
+ return this.focusedItemId === this.getItemId(processedItem);
199
+ }
200
+ isItemGroup(processedItem) {
201
+ return isNotEmpty(processedItem.items);
202
+ }
203
+ getAriaSetSize() {
204
+ return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
205
+ }
206
+ getAriaPosInset(index) {
207
+ return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
208
+ }
209
+ onItemMouseEnter(param) {
210
+ if (this.autoDisplay) {
211
+ const { event, processedItem } = param;
212
+ this.itemMouseEnter.emit({ originalEvent: event, processedItem });
213
+ }
214
+ }
215
+ ngOnDestroy() {
216
+ this.mouseLeaveSubscriber?.unsubscribe();
217
+ super.ngOnDestroy();
218
+ }
219
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarSub, deps: null, target: i0.ɵɵFactoryTarget.Component });
220
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.4", type: MenubarSub, isStandalone: true, selector: "p-menubarSub, p-menubarsub, [pMenubarSub]", inputs: { items: "items", itemTemplate: "itemTemplate", root: ["root", "root", booleanAttribute], autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], mobileActive: ["mobileActive", "mobileActive", booleanAttribute], autoDisplay: ["autoDisplay", "autoDisplay", booleanAttribute], menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: ["level", "level", numberAttribute], focusedItemId: "focusedItemId", activeItemPath: "activeItemPath", inlineStyles: "inlineStyles", submenuiconTemplate: "submenuiconTemplate" }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { attributes: { "data-pc-section": "menu", "role": "menubar" }, properties: { "id": "root ? menuId : null", "attr.aria-activedescendant": "focusedItemId", "class": "level === 0 ? cx('rootList') : cx('submenu')", "style": "inlineStyles" } }, usesInheritance: true, ngImport: i0, template: `
221
+ <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
222
+ <li
223
+ *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
224
+ [attr.id]="getItemId(processedItem)"
225
+ [style]="getItemProp(processedItem, 'style')"
226
+ [class]="cn(cx('separator'), processedItem?.styleClass)"
227
+ role="separator"
228
+ [attr.data-pc-section]="'separator'"
229
+ ></li>
230
+ <li
231
+ #listItem
232
+ *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
233
+ role="menuitem"
234
+ [attr.id]="getItemId(processedItem)"
235
+ [attr.data-pc-section]="'menuitem'"
236
+ [attr.data-p-highlight]="isItemActive(processedItem)"
237
+ [attr.data-p-focused]="isItemFocused(processedItem)"
238
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
239
+ [attr.aria-label]="getItemLabel(processedItem)"
240
+ [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
241
+ [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
242
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
243
+ [attr.aria-setsize]="getAriaSetSize()"
244
+ [attr.aria-posinset]="getAriaPosInset(index)"
245
+ [style]="getItemProp(processedItem, 'style')"
246
+ [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
247
+ pTooltip
248
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
249
+ >
250
+ <div [class]="cx('itemContent')" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
251
+ <ng-container *ngIf="!itemTemplate">
252
+ <a
253
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
254
+ [attr.href]="getItemProp(processedItem, 'url')"
255
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
256
+ [attr.data-pc-section]="'action'"
257
+ [attr.target]="getItemProp(processedItem, 'target')"
258
+ [class]="cx('itemLink')"
259
+ [attr.tabindex]="-1"
260
+ pRipple
261
+ >
262
+ <span *ngIf="getItemProp(processedItem, 'icon')" [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))" [style]="getItemProp(processedItem, 'iconStyle')" [attr.data-pc-section]="'icon'" [attr.tabindex]="-1">
263
+ </span>
264
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [attr.data-pc-section]="'label'" [id]="getItemLabelId(processedItem)">
265
+ {{ getItemLabel(processedItem) }}
266
+ </span>
267
+ <ng-template #htmlLabel>
268
+ <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'" [id]="getItemLabelId(processedItem)"></span>
269
+ </ng-template>
270
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
271
+
272
+ <ng-container *ngIf="isItemGroup(processedItem)">
273
+ <ng-container *ngIf="!submenuiconTemplate">
274
+ <svg data-p-icon="angle-down" [class]="cx('submenuIcon')" *ngIf="root" [attr.data-pc-section]="'submenuicon'" />
275
+ <svg data-p-icon="angle-right" [class]="cx('submenuIcon')" *ngIf="!root" [attr.data-pc-section]="'submenuicon'" />
276
+ </ng-container>
277
+ <ng-template *ngTemplateOutlet="submenuiconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
278
+ </ng-container>
279
+ </a>
280
+ <a
281
+ *ngIf="getItemProp(processedItem, 'routerLink')"
282
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
283
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
284
+ [attr.tabindex]="-1"
285
+ [attr.data-pc-section]="'action'"
286
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
287
+ [routerLinkActive]="'p-menubar-item-link-active'"
288
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
289
+ [target]="getItemProp(processedItem, 'target')"
290
+ [class]="cx('itemLink')"
291
+ [fragment]="getItemProp(processedItem, 'fragment')"
292
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
293
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
294
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
295
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
296
+ [state]="getItemProp(processedItem, 'state')"
297
+ pRipple
298
+ >
299
+ <span
300
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
301
+ *ngIf="getItemProp(processedItem, 'icon')"
302
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
303
+ [attr.data-pc-section]="'icon'"
304
+ [attr.tabindex]="-1"
305
+ ></span>
306
+ <span [class]="cx('itemLabel')" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
307
+ <ng-template #htmlRouteLabel><span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
308
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
309
+ <ng-container *ngIf="isItemGroup(processedItem)">
310
+ <ng-container *ngIf="!submenuiconTemplate">
311
+ <svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="root" />
312
+ <svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="!root" />
313
+ </ng-container>
314
+ <ng-template *ngTemplateOutlet="submenuiconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
315
+ </ng-container>
316
+ </a>
317
+ </ng-container>
318
+ <ng-container *ngIf="itemTemplate">
319
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item, root: root }"></ng-template>
320
+ </ng-container>
321
+ </div>
322
+ <ul
323
+ pMenubarSub
324
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
325
+ [itemTemplate]="itemTemplate"
326
+ [items]="processedItem.items"
327
+ [mobileActive]="mobileActive"
328
+ [autoDisplay]="autoDisplay"
329
+ [menuId]="menuId"
330
+ [activeItemPath]="activeItemPath"
331
+ [focusedItemId]="focusedItemId"
332
+ [level]="level + 1"
333
+ [attr.aria-labelledby]="getItemLabelId(processedItem)"
334
+ (itemClick)="itemClick.emit($event)"
335
+ (itemMouseEnter)="onItemMouseEnter($event)"
336
+ [inlineStyles]="sx('submenu', true, { instance: this, processedItem })"
337
+ ></ul>
338
+ </li>
339
+ </ng-template>
340
+ `, isInline: true, dependencies: [{ kind: "component", type: MenubarSub, selector: "p-menubarSub, p-menubarsub, [pMenubarSub]", inputs: ["items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "mobileActive", "autoDisplay", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "inlineStyles", "submenuiconTemplate"], outputs: ["itemClick", "itemMouseEnter", "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: "directive", type: Ripple, selector: "[pRipple]" }, { 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: AngleDownIcon, selector: "[data-p-icon=\"angle-down\"]" }, { kind: "component", type: AngleRightIcon, selector: "[data-p-icon=\"angle-right\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i4.Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "ngmodule", type: SharedModule }], encapsulation: i0.ViewEncapsulation.None });
341
+ }
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarSub, decorators: [{
343
+ type: Component,
344
+ args: [{
345
+ selector: 'p-menubarSub, p-menubarsub, [pMenubarSub]',
346
+ standalone: true,
347
+ imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleDownIcon, AngleRightIcon, BadgeModule, SharedModule],
348
+ template: `
349
+ <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
350
+ <li
351
+ *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
352
+ [attr.id]="getItemId(processedItem)"
353
+ [style]="getItemProp(processedItem, 'style')"
354
+ [class]="cn(cx('separator'), processedItem?.styleClass)"
355
+ role="separator"
356
+ [attr.data-pc-section]="'separator'"
357
+ ></li>
358
+ <li
359
+ #listItem
360
+ *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
361
+ role="menuitem"
362
+ [attr.id]="getItemId(processedItem)"
363
+ [attr.data-pc-section]="'menuitem'"
364
+ [attr.data-p-highlight]="isItemActive(processedItem)"
365
+ [attr.data-p-focused]="isItemFocused(processedItem)"
366
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
367
+ [attr.aria-label]="getItemLabel(processedItem)"
368
+ [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
369
+ [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
370
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
371
+ [attr.aria-setsize]="getAriaSetSize()"
372
+ [attr.aria-posinset]="getAriaPosInset(index)"
373
+ [style]="getItemProp(processedItem, 'style')"
374
+ [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
375
+ pTooltip
376
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
377
+ >
378
+ <div [class]="cx('itemContent')" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
379
+ <ng-container *ngIf="!itemTemplate">
380
+ <a
381
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
382
+ [attr.href]="getItemProp(processedItem, 'url')"
383
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
384
+ [attr.data-pc-section]="'action'"
385
+ [attr.target]="getItemProp(processedItem, 'target')"
386
+ [class]="cx('itemLink')"
387
+ [attr.tabindex]="-1"
388
+ pRipple
389
+ >
390
+ <span *ngIf="getItemProp(processedItem, 'icon')" [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))" [style]="getItemProp(processedItem, 'iconStyle')" [attr.data-pc-section]="'icon'" [attr.tabindex]="-1">
391
+ </span>
392
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [attr.data-pc-section]="'label'" [id]="getItemLabelId(processedItem)">
393
+ {{ getItemLabel(processedItem) }}
394
+ </span>
395
+ <ng-template #htmlLabel>
396
+ <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'" [id]="getItemLabelId(processedItem)"></span>
397
+ </ng-template>
398
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
399
+
400
+ <ng-container *ngIf="isItemGroup(processedItem)">
401
+ <ng-container *ngIf="!submenuiconTemplate">
402
+ <svg data-p-icon="angle-down" [class]="cx('submenuIcon')" *ngIf="root" [attr.data-pc-section]="'submenuicon'" />
403
+ <svg data-p-icon="angle-right" [class]="cx('submenuIcon')" *ngIf="!root" [attr.data-pc-section]="'submenuicon'" />
404
+ </ng-container>
405
+ <ng-template *ngTemplateOutlet="submenuiconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
406
+ </ng-container>
407
+ </a>
408
+ <a
409
+ *ngIf="getItemProp(processedItem, 'routerLink')"
410
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
411
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
412
+ [attr.tabindex]="-1"
413
+ [attr.data-pc-section]="'action'"
414
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
415
+ [routerLinkActive]="'p-menubar-item-link-active'"
416
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
417
+ [target]="getItemProp(processedItem, 'target')"
418
+ [class]="cx('itemLink')"
419
+ [fragment]="getItemProp(processedItem, 'fragment')"
420
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
421
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
422
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
423
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
424
+ [state]="getItemProp(processedItem, 'state')"
425
+ pRipple
426
+ >
427
+ <span
428
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
429
+ *ngIf="getItemProp(processedItem, 'icon')"
430
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
431
+ [attr.data-pc-section]="'icon'"
432
+ [attr.tabindex]="-1"
433
+ ></span>
434
+ <span [class]="cx('itemLabel')" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
435
+ <ng-template #htmlRouteLabel><span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
436
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
437
+ <ng-container *ngIf="isItemGroup(processedItem)">
438
+ <ng-container *ngIf="!submenuiconTemplate">
439
+ <svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="root" />
440
+ <svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="!root" />
441
+ </ng-container>
442
+ <ng-template *ngTemplateOutlet="submenuiconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
443
+ </ng-container>
444
+ </a>
445
+ </ng-container>
446
+ <ng-container *ngIf="itemTemplate">
447
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item, root: root }"></ng-template>
448
+ </ng-container>
449
+ </div>
450
+ <ul
451
+ pMenubarSub
452
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
453
+ [itemTemplate]="itemTemplate"
454
+ [items]="processedItem.items"
455
+ [mobileActive]="mobileActive"
456
+ [autoDisplay]="autoDisplay"
457
+ [menuId]="menuId"
458
+ [activeItemPath]="activeItemPath"
459
+ [focusedItemId]="focusedItemId"
460
+ [level]="level + 1"
461
+ [attr.aria-labelledby]="getItemLabelId(processedItem)"
462
+ (itemClick)="itemClick.emit($event)"
463
+ (itemMouseEnter)="onItemMouseEnter($event)"
464
+ [inlineStyles]="sx('submenu', true, { instance: this, processedItem })"
465
+ ></ul>
466
+ </li>
467
+ </ng-template>
468
+ `,
469
+ encapsulation: ViewEncapsulation.None,
470
+ host: {
471
+ '[id]': 'root ? menuId : null',
472
+ '[attr.aria-activedescendant]': 'focusedItemId',
473
+ '[class]': "level === 0 ? cx('rootList') : cx('submenu')",
474
+ 'data-pc-section': 'menu',
475
+ role: 'menubar',
476
+ '[style]': 'inlineStyles'
477
+ }
478
+ }]
479
+ }], propDecorators: { items: [{
480
+ type: Input
481
+ }], itemTemplate: [{
482
+ type: Input
483
+ }], root: [{
484
+ type: Input,
485
+ args: [{ transform: booleanAttribute }]
486
+ }], autoZIndex: [{
487
+ type: Input,
488
+ args: [{ transform: booleanAttribute }]
489
+ }], baseZIndex: [{
490
+ type: Input,
491
+ args: [{ transform: numberAttribute }]
492
+ }], mobileActive: [{
493
+ type: Input,
494
+ args: [{ transform: booleanAttribute }]
495
+ }], autoDisplay: [{
496
+ type: Input,
497
+ args: [{ transform: booleanAttribute }]
498
+ }], menuId: [{
499
+ type: Input
500
+ }], ariaLabel: [{
501
+ type: Input
502
+ }], ariaLabelledBy: [{
503
+ type: Input
504
+ }], level: [{
505
+ type: Input,
506
+ args: [{ transform: numberAttribute }]
507
+ }], focusedItemId: [{
508
+ type: Input
509
+ }], activeItemPath: [{
510
+ type: Input
511
+ }], inlineStyles: [{
512
+ type: Input
513
+ }], submenuiconTemplate: [{
514
+ type: Input
515
+ }], itemClick: [{
516
+ type: Output
517
+ }], itemMouseEnter: [{
518
+ type: Output
519
+ }], menuFocus: [{
520
+ type: Output
521
+ }], menuBlur: [{
522
+ type: Output
523
+ }], menuKeydown: [{
524
+ type: Output
525
+ }] } });
526
+ /**
527
+ * Menubar is a horizontal menu component.
528
+ * @group Components
529
+ */
530
+ class Menubar extends BaseComponent {
531
+ document;
532
+ platformId;
533
+ el;
534
+ renderer;
535
+ cd;
536
+ menubarService;
537
+ /**
538
+ * An array of menuitems.
539
+ * @group Props
540
+ */
541
+ set model(value) {
542
+ this._model = value;
543
+ this._processedItems = this.createProcessedItems(this._model || []);
544
+ }
545
+ get model() {
546
+ return this._model;
547
+ }
548
+ /**
549
+ * Class of the element.
550
+ * @deprecated since v20.0.0, use `class` instead.
551
+ * @group Props
552
+ */
553
+ styleClass;
554
+ /**
555
+ * Whether to automatically manage layering.
556
+ * @group Props
557
+ */
558
+ autoZIndex = true;
559
+ /**
560
+ * Base zIndex value to use in layering.
561
+ * @group Props
562
+ */
563
+ baseZIndex = 0;
564
+ /**
565
+ * Whether to show a root submenu on mouse over.
566
+ * @defaultValue true
567
+ * @group Props
568
+ */
569
+ autoDisplay = true;
570
+ /**
571
+ * Whether to hide a root submenu when mouse leaves.
572
+ * @group Props
573
+ */
574
+ autoHide;
575
+ /**
576
+ * The breakpoint to define the maximum width boundary.
577
+ * @group Props
578
+ */
579
+ breakpoint = '960px';
580
+ /**
581
+ * Delay to hide the root submenu in milliseconds when mouse leaves.
582
+ * @group Props
583
+ */
584
+ autoHideDelay = 100;
585
+ /**
586
+ * Current id state as a string.
587
+ * @group Props
588
+ */
589
+ id;
590
+ /**
591
+ * Defines a string value that labels an interactive element.
592
+ * @group Props
593
+ */
594
+ ariaLabel;
595
+ /**
596
+ * Identifier of the underlying input element.
597
+ * @group Props
598
+ */
599
+ ariaLabelledBy;
600
+ /**
601
+ * Callback to execute when button is focused.
602
+ * @param {FocusEvent} event - Focus event.
603
+ * @group Emits
604
+ */
605
+ onFocus = new EventEmitter();
606
+ /**
607
+ * Callback to execute when button loses focus.
608
+ * @param {FocusEvent} event - Focus event.
609
+ * @group Emits
610
+ */
611
+ onBlur = new EventEmitter();
612
+ menubutton;
613
+ rootmenu;
614
+ mobileActive;
615
+ matchMediaListener;
616
+ query;
617
+ queryMatches;
618
+ outsideClickListener;
619
+ resizeListener;
620
+ mouseLeaveSubscriber;
621
+ dirty = false;
622
+ focused = false;
623
+ activeItemPath = signal([], ...(ngDevMode ? [{ debugName: "activeItemPath" }] : []));
624
+ number = signal(0, ...(ngDevMode ? [{ debugName: "number" }] : []));
625
+ focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null }, ...(ngDevMode ? [{ debugName: "focusedItemInfo" }] : []));
626
+ searchValue = '';
627
+ searchTimeout;
628
+ _processedItems;
629
+ _componentStyle = inject(MenuBarStyle);
630
+ _model;
631
+ get visibleItems() {
632
+ const processedItem = this.activeItemPath().find((p) => p.key === this.focusedItemInfo().parentKey);
633
+ return processedItem ? processedItem.items : this.processedItems;
634
+ }
635
+ get processedItems() {
636
+ if (!this._processedItems || !this._processedItems.length) {
637
+ this._processedItems = this.createProcessedItems(this.model || []);
638
+ }
639
+ return this._processedItems;
640
+ }
641
+ get focusedItemId() {
642
+ const focusedItem = this.focusedItemInfo();
643
+ return focusedItem.item && focusedItem.item?.id ? focusedItem.item.id : focusedItem.index !== -1 ? `${this.id}${isNotEmpty(focusedItem.parentKey) ? '_' + focusedItem.parentKey : ''}_${focusedItem.index}` : null;
644
+ }
645
+ constructor(document, platformId, el, renderer, cd, menubarService) {
646
+ super();
647
+ this.document = document;
648
+ this.platformId = platformId;
649
+ this.el = el;
650
+ this.renderer = renderer;
651
+ this.cd = cd;
652
+ this.menubarService = menubarService;
653
+ effect(() => {
654
+ const path = this.activeItemPath();
655
+ if (isNotEmpty(path)) {
656
+ this.bindOutsideClickListener();
657
+ this.bindResizeListener();
658
+ }
659
+ else {
660
+ this.unbindOutsideClickListener();
661
+ this.unbindResizeListener();
662
+ }
663
+ });
664
+ }
665
+ ngOnInit() {
666
+ super.ngOnInit();
667
+ this.bindMatchMediaListener();
668
+ this.menubarService.autoHide = this.autoHide;
669
+ this.menubarService.autoHideDelay = this.autoHideDelay;
670
+ this.mouseLeaveSubscriber = this.menubarService.mouseLeft$.subscribe(() => {
671
+ this.hide();
672
+ });
673
+ this.id = this.id || uuid('pn_id_');
674
+ }
675
+ /**
676
+ * Defines template option for start.
677
+ * @group Templates
678
+ */
679
+ startTemplate;
680
+ /**
681
+ * Defines template option for end.
682
+ * @group Templates
683
+ */
684
+ endTemplate;
685
+ /**
686
+ * Defines template option for item.
687
+ * @group Templates
688
+ */
689
+ itemTemplate;
690
+ /**
691
+ * Defines template option for item.
692
+ * @group Templates
693
+ */
694
+ menuIconTemplate;
695
+ /**
696
+ * Defines template option for submenu icon.
697
+ * @group Templates
698
+ */
699
+ submenuIconTemplate;
700
+ templates;
701
+ _startTemplate;
702
+ _endTemplate;
703
+ _itemTemplate;
704
+ _menuIconTemplate;
705
+ _submenuIconTemplate;
706
+ ngAfterContentInit() {
707
+ this.templates?.forEach((item) => {
708
+ switch (item.getType()) {
709
+ case 'start':
710
+ this._startTemplate = item.template;
711
+ break;
712
+ case 'end':
713
+ this._endTemplate = item.template;
714
+ break;
715
+ case 'menuicon':
716
+ this._menuIconTemplate = item.template;
717
+ break;
718
+ case 'submenuicon':
719
+ this._submenuIconTemplate = item.template;
720
+ break;
721
+ case 'item':
722
+ this._itemTemplate = item.template;
723
+ break;
724
+ default:
725
+ this._itemTemplate = item.template;
726
+ break;
727
+ }
728
+ });
729
+ }
730
+ createProcessedItems(items, level = 0, parent = {}, parentKey = '') {
731
+ const processedItems = [];
732
+ items &&
733
+ items.forEach((item, index) => {
734
+ const key = (parentKey !== '' ? parentKey + '_' : '') + index;
735
+ const newItem = {
736
+ item,
737
+ index,
738
+ level,
739
+ key,
740
+ parent,
741
+ parentKey
742
+ };
743
+ newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);
744
+ processedItems.push(newItem);
745
+ });
746
+ return processedItems;
747
+ }
748
+ bindMatchMediaListener() {
749
+ if (isPlatformBrowser(this.platformId)) {
750
+ if (!this.matchMediaListener) {
751
+ const query = window.matchMedia(`(max-width: ${this.breakpoint})`);
752
+ this.query = query;
753
+ this.queryMatches = query.matches;
754
+ this.matchMediaListener = () => {
755
+ this.queryMatches = query.matches;
756
+ this.mobileActive = false;
757
+ this.cd.markForCheck();
758
+ };
759
+ query.addEventListener('change', this.matchMediaListener);
760
+ }
761
+ }
762
+ }
763
+ unbindMatchMediaListener() {
764
+ if (this.matchMediaListener) {
765
+ this.query.removeEventListener('change', this.matchMediaListener);
766
+ this.matchMediaListener = null;
767
+ }
768
+ }
769
+ getItemProp(item, name) {
770
+ return item ? resolve(item[name]) : undefined;
771
+ }
772
+ menuButtonClick(event) {
773
+ this.toggle(event);
774
+ }
775
+ menuButtonKeydown(event) {
776
+ (event.code === 'Enter' || event.code === 'Space') && this.menuButtonClick(event);
777
+ }
778
+ onItemClick(event) {
779
+ const { originalEvent, processedItem } = event;
780
+ const grouped = this.isProcessedItemGroup(processedItem);
781
+ const root = isEmpty(processedItem.parent);
782
+ const selected = this.isSelected(processedItem);
783
+ if (selected) {
784
+ const { index, key, level, parentKey, item } = processedItem;
785
+ this.activeItemPath.set(this.activeItemPath().filter((p) => key !== p.key && key.startsWith(p.key)));
786
+ this.focusedItemInfo.set({ index, level, parentKey, item });
787
+ this.dirty = !root;
788
+ focus(this.rootmenu.el.nativeElement);
789
+ }
790
+ else {
791
+ if (grouped) {
792
+ this.onItemChange(event);
793
+ }
794
+ else {
795
+ const rootProcessedItem = root ? processedItem : this.activeItemPath().find((p) => p.parentKey === '');
796
+ this.hide(originalEvent);
797
+ this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);
798
+ this.mobileActive = false;
799
+ focus(this.rootmenu.el.nativeElement);
800
+ }
801
+ }
802
+ }
803
+ onItemMouseEnter(event) {
804
+ if (!isTouchDevice()) {
805
+ if (this.dirty) {
806
+ this.onItemChange(event, 'hover');
807
+ }
808
+ }
809
+ else {
810
+ this.onItemChange({ event, processedItem: event.processedItem, focus: this.autoDisplay }, 'hover');
811
+ }
812
+ }
813
+ onMouseLeave(event) {
814
+ const autoHideEnabled = this.menubarService.autoHide;
815
+ const autoHideDelay = this.menubarService.autoHideDelay;
816
+ if (autoHideEnabled) {
817
+ setTimeout(() => {
818
+ this.menubarService.mouseLeaves.next(true);
819
+ }, autoHideDelay);
820
+ }
821
+ }
822
+ changeFocusedItemIndex(event, index) {
823
+ const processedItem = this.findVisibleItem(index);
824
+ if (this.focusedItemInfo().index !== index) {
825
+ const focusedItemInfo = this.focusedItemInfo();
826
+ this.focusedItemInfo.set({ ...focusedItemInfo, item: processedItem.item, index });
827
+ this.scrollInView();
828
+ }
829
+ }
830
+ scrollInView(index = -1) {
831
+ const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;
832
+ const element = findSingle(this.rootmenu.el.nativeElement, `li[id="${id}"]`);
833
+ if (element) {
834
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
835
+ }
836
+ }
837
+ onItemChange(event, type) {
838
+ const { processedItem, isFocus } = event;
839
+ if (isEmpty(processedItem))
840
+ return;
841
+ const { index, key, level, parentKey, items, item } = processedItem;
842
+ const grouped = isNotEmpty(items);
843
+ const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== parentKey && p.parentKey !== key);
844
+ grouped && activeItemPath.push(processedItem);
845
+ this.focusedItemInfo.set({ index, level, parentKey, item });
846
+ grouped && (this.dirty = true);
847
+ isFocus && focus(this.rootmenu.el.nativeElement);
848
+ if (type === 'hover' && this.queryMatches) {
849
+ return;
850
+ }
851
+ this.activeItemPath.set(activeItemPath);
852
+ }
853
+ toggle(event) {
854
+ if (this.mobileActive) {
855
+ this.mobileActive = false;
856
+ ZIndexUtils.clear(this.rootmenu.el.nativeElement);
857
+ this.hide();
858
+ }
859
+ else {
860
+ this.mobileActive = true;
861
+ ZIndexUtils.set('menu', this.rootmenu.el.nativeElement, this.config.zIndex.menu);
862
+ setTimeout(() => {
863
+ this.show();
864
+ }, 0);
865
+ }
866
+ this.bindOutsideClickListener();
867
+ event.preventDefault();
868
+ }
869
+ hide(event, isFocus) {
870
+ if (this.mobileActive) {
871
+ setTimeout(() => {
872
+ focus(this.menubutton.nativeElement);
873
+ }, 0);
874
+ }
875
+ this.activeItemPath.set([]);
876
+ this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
877
+ isFocus && focus(this.rootmenu?.el.nativeElement);
878
+ this.dirty = false;
879
+ }
880
+ show() {
881
+ const processedItem = this.findVisibleItem(this.findFirstFocusedItemIndex());
882
+ this.focusedItemInfo.set({ index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '', item: processedItem?.item });
883
+ focus(this.rootmenu?.el.nativeElement);
884
+ }
885
+ onMenuFocus(event) {
886
+ this.focused = true;
887
+ const processedItem = this.findVisibleItem(this.findFirstFocusedItemIndex());
888
+ const focusedItemInfo = this.focusedItemInfo().index !== -1 ? this.focusedItemInfo() : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '', item: processedItem?.item };
889
+ this.focusedItemInfo.set(focusedItemInfo);
890
+ this.onFocus.emit(event);
891
+ }
892
+ onMenuBlur(event) {
893
+ this.focused = false;
894
+ this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
895
+ this.searchValue = '';
896
+ this.dirty = false;
897
+ this.onBlur.emit(event);
898
+ }
899
+ onKeyDown(event) {
900
+ const metaKey = event.metaKey || event.ctrlKey;
901
+ switch (event.code) {
902
+ case 'ArrowDown':
903
+ this.onArrowDownKey(event);
904
+ break;
905
+ case 'ArrowUp':
906
+ this.onArrowUpKey(event);
907
+ break;
908
+ case 'ArrowLeft':
909
+ this.onArrowLeftKey(event);
910
+ break;
911
+ case 'ArrowRight':
912
+ this.onArrowRightKey(event);
913
+ break;
914
+ case 'Home':
915
+ this.onHomeKey(event);
916
+ break;
917
+ case 'End':
918
+ this.onEndKey(event);
919
+ break;
920
+ case 'Space':
921
+ this.onSpaceKey(event);
922
+ break;
923
+ case 'Enter':
924
+ this.onEnterKey(event);
925
+ break;
926
+ case 'Escape':
927
+ this.onEscapeKey(event);
928
+ break;
929
+ case 'Tab':
930
+ this.onTabKey(event);
931
+ break;
932
+ case 'PageDown':
933
+ case 'PageUp':
934
+ case 'Backspace':
935
+ case 'ShiftLeft':
936
+ case 'ShiftRight':
937
+ //NOOP
938
+ break;
939
+ default:
940
+ if (!metaKey && isPrintableCharacter(event.key)) {
941
+ this.searchItems(event, event.key);
942
+ }
943
+ break;
944
+ }
945
+ }
946
+ findVisibleItem(index) {
947
+ return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;
948
+ }
949
+ findFirstFocusedItemIndex() {
950
+ const selectedIndex = this.findSelectedItemIndex();
951
+ return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;
952
+ }
953
+ findFirstItemIndex() {
954
+ return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));
955
+ }
956
+ findSelectedItemIndex() {
957
+ return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));
958
+ }
959
+ isProcessedItemGroup(processedItem) {
960
+ return processedItem && isNotEmpty(processedItem.items);
961
+ }
962
+ isSelected(processedItem) {
963
+ return this.activeItemPath().some((p) => p.key === processedItem.key);
964
+ }
965
+ isValidSelectedItem(processedItem) {
966
+ return this.isValidItem(processedItem) && this.isSelected(processedItem);
967
+ }
968
+ isValidItem(processedItem) {
969
+ return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item);
970
+ }
971
+ isItemDisabled(item) {
972
+ return this.getItemProp(item, 'disabled');
973
+ }
974
+ isItemSeparator(item) {
975
+ return this.getItemProp(item, 'separator');
976
+ }
977
+ isItemMatched(processedItem) {
978
+ return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
979
+ }
980
+ isProccessedItemGroup(processedItem) {
981
+ return processedItem && isNotEmpty(processedItem.items);
982
+ }
983
+ searchItems(event, char) {
984
+ this.searchValue = (this.searchValue || '') + char;
985
+ let itemIndex = -1;
986
+ let matched = false;
987
+ if (this.focusedItemInfo().index !== -1) {
988
+ itemIndex = this.visibleItems.slice(this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem));
989
+ itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo().index;
990
+ }
991
+ else {
992
+ itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));
993
+ }
994
+ if (itemIndex !== -1) {
995
+ matched = true;
996
+ }
997
+ if (itemIndex === -1 && this.focusedItemInfo().index === -1) {
998
+ itemIndex = this.findFirstFocusedItemIndex();
999
+ }
1000
+ if (itemIndex !== -1) {
1001
+ this.changeFocusedItemIndex(event, itemIndex);
1002
+ }
1003
+ if (this.searchTimeout) {
1004
+ clearTimeout(this.searchTimeout);
1005
+ }
1006
+ this.searchTimeout = setTimeout(() => {
1007
+ this.searchValue = '';
1008
+ this.searchTimeout = null;
1009
+ }, 500);
1010
+ return matched;
1011
+ }
1012
+ getProccessedItemLabel(processedItem) {
1013
+ return processedItem ? this.getItemLabel(processedItem.item) : undefined;
1014
+ }
1015
+ getItemLabel(item) {
1016
+ return this.getItemProp(item, 'label');
1017
+ }
1018
+ onArrowDownKey(event) {
1019
+ const processedItem = this.visibleItems[this.focusedItemInfo().index];
1020
+ const root = processedItem ? isEmpty(processedItem.parent) : null;
1021
+ if (root) {
1022
+ const grouped = this.isProccessedItemGroup(processedItem);
1023
+ if (grouped) {
1024
+ this.onItemChange({ originalEvent: event, processedItem });
1025
+ this.focusedItemInfo.set({ index: -1, parentKey: processedItem.key, item: processedItem.item });
1026
+ this.onArrowRightKey(event);
1027
+ }
1028
+ }
1029
+ else {
1030
+ const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
1031
+ this.changeFocusedItemIndex(event, itemIndex);
1032
+ event.preventDefault();
1033
+ }
1034
+ }
1035
+ onArrowRightKey(event) {
1036
+ const processedItem = this.visibleItems[this.focusedItemInfo().index];
1037
+ const parentItem = processedItem ? this.activeItemPath().find((p) => p.key === processedItem.parentKey) : null;
1038
+ if (parentItem) {
1039
+ const grouped = this.isProccessedItemGroup(processedItem);
1040
+ if (grouped) {
1041
+ this.onItemChange({ originalEvent: event, processedItem });
1042
+ this.focusedItemInfo.set({ index: -1, parentKey: processedItem.key, item: processedItem.item });
1043
+ this.onArrowDownKey(event);
1044
+ }
1045
+ }
1046
+ else {
1047
+ const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
1048
+ this.changeFocusedItemIndex(event, itemIndex);
1049
+ event.preventDefault();
1050
+ }
1051
+ }
1052
+ onArrowUpKey(event) {
1053
+ const processedItem = this.visibleItems[this.focusedItemInfo().index];
1054
+ const root = isEmpty(processedItem.parent);
1055
+ if (root) {
1056
+ const grouped = this.isProccessedItemGroup(processedItem);
1057
+ if (grouped) {
1058
+ this.onItemChange({ originalEvent: event, processedItem });
1059
+ this.focusedItemInfo.set({ index: -1, parentKey: processedItem.key, item: processedItem.item });
1060
+ const itemIndex = this.findLastItemIndex();
1061
+ this.changeFocusedItemIndex(event, itemIndex);
1062
+ }
1063
+ }
1064
+ else {
1065
+ const parentItem = this.activeItemPath().find((p) => p.key === processedItem.parentKey);
1066
+ if (this.focusedItemInfo().index === 0) {
1067
+ this.focusedItemInfo.set({ index: -1, parentKey: parentItem ? parentItem.parentKey : '', item: processedItem.item });
1068
+ this.searchValue = '';
1069
+ this.onArrowLeftKey(event);
1070
+ const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== this.focusedItemInfo().parentKey);
1071
+ this.activeItemPath.set(activeItemPath);
1072
+ }
1073
+ else {
1074
+ const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
1075
+ this.changeFocusedItemIndex(event, itemIndex);
1076
+ }
1077
+ }
1078
+ event.preventDefault();
1079
+ }
1080
+ onArrowLeftKey(event) {
1081
+ const processedItem = this.visibleItems[this.focusedItemInfo().index];
1082
+ const parentItem = processedItem ? this.activeItemPath().find((p) => p.key === processedItem.parentKey) : null;
1083
+ if (parentItem) {
1084
+ this.onItemChange({ originalEvent: event, processedItem: parentItem });
1085
+ const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== this.focusedItemInfo().parentKey);
1086
+ this.activeItemPath.set(activeItemPath);
1087
+ event.preventDefault();
1088
+ }
1089
+ else {
1090
+ const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
1091
+ this.changeFocusedItemIndex(event, itemIndex);
1092
+ event.preventDefault();
1093
+ }
1094
+ }
1095
+ onHomeKey(event) {
1096
+ this.changeFocusedItemIndex(event, this.findFirstItemIndex());
1097
+ event.preventDefault();
1098
+ }
1099
+ onEndKey(event) {
1100
+ this.changeFocusedItemIndex(event, this.findLastItemIndex());
1101
+ event.preventDefault();
1102
+ }
1103
+ onSpaceKey(event) {
1104
+ this.onEnterKey(event);
1105
+ }
1106
+ onEscapeKey(event) {
1107
+ this.hide(event, true);
1108
+ this.focusedItemInfo().index = this.findFirstFocusedItemIndex();
1109
+ event.preventDefault();
1110
+ }
1111
+ onTabKey(event) {
1112
+ if (this.focusedItemInfo().index !== -1) {
1113
+ const processedItem = this.visibleItems[this.focusedItemInfo().index];
1114
+ const grouped = this.isProccessedItemGroup(processedItem);
1115
+ !grouped && this.onItemChange({ originalEvent: event, processedItem });
1116
+ }
1117
+ this.hide();
1118
+ }
1119
+ onEnterKey(event) {
1120
+ if (this.focusedItemInfo().index !== -1) {
1121
+ const element = findSingle(this.rootmenu.el.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
1122
+ const anchorElement = element && findSingle(element, 'a[data-pc-section="action"]');
1123
+ anchorElement ? anchorElement.click() : element && element.click();
1124
+ }
1125
+ event.preventDefault();
1126
+ }
1127
+ findLastFocusedItemIndex() {
1128
+ const selectedIndex = this.findSelectedItemIndex();
1129
+ return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;
1130
+ }
1131
+ findLastItemIndex() {
1132
+ return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));
1133
+ }
1134
+ findPrevItemIndex(index) {
1135
+ const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;
1136
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
1137
+ }
1138
+ findNextItemIndex(index) {
1139
+ const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;
1140
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
1141
+ }
1142
+ bindResizeListener() {
1143
+ if (isPlatformBrowser(this.platformId)) {
1144
+ if (!this.resizeListener) {
1145
+ this.resizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {
1146
+ if (!isTouchDevice()) {
1147
+ this.hide(event, true);
1148
+ }
1149
+ this.mobileActive = false;
1150
+ });
1151
+ }
1152
+ }
1153
+ }
1154
+ bindOutsideClickListener() {
1155
+ if (isPlatformBrowser(this.platformId)) {
1156
+ if (!this.outsideClickListener) {
1157
+ this.outsideClickListener = this.renderer.listen(this.document, 'click', (event) => {
1158
+ const isOutsideContainer = this.rootmenu.el.nativeElement !== event.target && !this.rootmenu.el.nativeElement.contains(event.target);
1159
+ const isOutsideMenuButton = this.mobileActive && this.menubutton.nativeElement !== event.target && !this.menubutton.nativeElement.contains(event.target);
1160
+ if (isOutsideContainer) {
1161
+ isOutsideMenuButton ? (this.mobileActive = false) : this.hide();
1162
+ }
1163
+ });
1164
+ }
1165
+ }
1166
+ }
1167
+ unbindOutsideClickListener() {
1168
+ if (this.outsideClickListener) {
1169
+ this.outsideClickListener();
1170
+ this.outsideClickListener = null;
1171
+ }
1172
+ }
1173
+ unbindResizeListener() {
1174
+ if (this.resizeListener) {
1175
+ this.resizeListener();
1176
+ this.resizeListener = null;
1177
+ }
1178
+ }
1179
+ ngOnDestroy() {
1180
+ this.mouseLeaveSubscriber?.unsubscribe();
1181
+ this.unbindOutsideClickListener();
1182
+ this.unbindResizeListener();
1183
+ this.unbindMatchMediaListener();
1184
+ super.ngOnDestroy();
1185
+ }
1186
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: Menubar, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: MenubarService }], target: i0.ɵɵFactoryTarget.Component });
1187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.4", type: Menubar, isStandalone: true, selector: "p-menubar", inputs: { model: "model", styleClass: "styleClass", autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], autoDisplay: ["autoDisplay", "autoDisplay", booleanAttribute], autoHide: ["autoHide", "autoHide", booleanAttribute], breakpoint: "breakpoint", autoHideDelay: ["autoHideDelay", "autoHideDelay", numberAttribute], id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, outputs: { onFocus: "onFocus", onBlur: "onBlur" }, host: { attributes: { "data-pc-section": "root", "data-pc-name": "menubar" }, properties: { "class": "cn(cx(\"root\"), styleClass)" } }, providers: [MenubarService, MenuBarStyle], queries: [{ propertyName: "startTemplate", first: true, predicate: ["start"] }, { propertyName: "endTemplate", first: true, predicate: ["end"] }, { propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "menuIconTemplate", first: true, predicate: ["menuicon"] }, { propertyName: "submenuIconTemplate", first: true, predicate: ["submenuicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "menubutton", first: true, predicate: ["menubutton"], descendants: true }, { propertyName: "rootmenu", first: true, predicate: ["rootmenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1188
+ <div [class]="cx('start')" *ngIf="startTemplate || _startTemplate">
1189
+ <ng-container *ngTemplateOutlet="startTemplate || _startTemplate"></ng-container>
1190
+ </div>
1191
+ <a
1192
+ #menubutton
1193
+ tabindex="0"
1194
+ role="button"
1195
+ [attr.aria-haspopup]="model.length && model.length > 0 ? true : false"
1196
+ [attr.aria-expanded]="mobileActive"
1197
+ [attr.aria-controls]="id"
1198
+ [attr.aria-label]="config.translation.aria.navigation"
1199
+ [attr.data-pc-section]="'button'"
1200
+ *ngIf="model && model.length > 0"
1201
+ [class]="cx('button')"
1202
+ (click)="menuButtonClick($event)"
1203
+ (keydown)="menuButtonKeydown($event)"
1204
+ >
1205
+ <svg data-p-icon="bars" *ngIf="!menuIconTemplate && !_menuIconTemplate" />
1206
+ <ng-template *ngTemplateOutlet="menuIconTemplate || _menuIconTemplate"></ng-template>
1207
+ </a>
1208
+ <ul
1209
+ pMenubarSub
1210
+ #rootmenu
1211
+ [items]="processedItems"
1212
+ [itemTemplate]="itemTemplate"
1213
+ tabindex="0"
1214
+ [menuId]="id"
1215
+ [root]="true"
1216
+ [baseZIndex]="baseZIndex"
1217
+ [autoZIndex]="autoZIndex"
1218
+ [mobileActive]="mobileActive"
1219
+ [autoDisplay]="autoDisplay"
1220
+ [attr.aria-label]="ariaLabel"
1221
+ [attr.aria-labelledby]="ariaLabelledBy"
1222
+ [focusedItemId]="focused ? focusedItemId : undefined"
1223
+ [submenuiconTemplate]="submenuIconTemplate || _submenuIconTemplate"
1224
+ [activeItemPath]="activeItemPath()"
1225
+ (itemClick)="onItemClick($event)"
1226
+ (focus)="onMenuFocus($event)"
1227
+ (blur)="onMenuBlur($event)"
1228
+ (keydown)="onKeyDown($event)"
1229
+ (itemMouseEnter)="onItemMouseEnter($event)"
1230
+ (mouseleave)="onMouseLeave($event)"
1231
+ ></ul>
1232
+ <div [class]="cx('end')" *ngIf="endTemplate || _endTemplate; else legacy">
1233
+ <ng-container *ngTemplateOutlet="endTemplate || _endTemplate"></ng-container>
1234
+ </div>
1235
+ <ng-template #legacy>
1236
+ <div [class]="cx('end')">
1237
+ <ng-content></ng-content>
1238
+ </div>
1239
+ </ng-template>
1240
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: MenubarSub, selector: "p-menubarSub, p-menubarsub, [pMenubarSub]", inputs: ["items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "mobileActive", "autoDisplay", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "inlineStyles", "submenuiconTemplate"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: BarsIcon, selector: "[data-p-icon=\"bars\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1241
+ }
1242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: Menubar, decorators: [{
1243
+ type: Component,
1244
+ args: [{
1245
+ selector: 'p-menubar',
1246
+ standalone: true,
1247
+ imports: [CommonModule, RouterModule, MenubarSub, TooltipModule, BarsIcon, BadgeModule, SharedModule],
1248
+ template: `
1249
+ <div [class]="cx('start')" *ngIf="startTemplate || _startTemplate">
1250
+ <ng-container *ngTemplateOutlet="startTemplate || _startTemplate"></ng-container>
1251
+ </div>
1252
+ <a
1253
+ #menubutton
1254
+ tabindex="0"
1255
+ role="button"
1256
+ [attr.aria-haspopup]="model.length && model.length > 0 ? true : false"
1257
+ [attr.aria-expanded]="mobileActive"
1258
+ [attr.aria-controls]="id"
1259
+ [attr.aria-label]="config.translation.aria.navigation"
1260
+ [attr.data-pc-section]="'button'"
1261
+ *ngIf="model && model.length > 0"
1262
+ [class]="cx('button')"
1263
+ (click)="menuButtonClick($event)"
1264
+ (keydown)="menuButtonKeydown($event)"
1265
+ >
1266
+ <svg data-p-icon="bars" *ngIf="!menuIconTemplate && !_menuIconTemplate" />
1267
+ <ng-template *ngTemplateOutlet="menuIconTemplate || _menuIconTemplate"></ng-template>
1268
+ </a>
1269
+ <ul
1270
+ pMenubarSub
1271
+ #rootmenu
1272
+ [items]="processedItems"
1273
+ [itemTemplate]="itemTemplate"
1274
+ tabindex="0"
1275
+ [menuId]="id"
1276
+ [root]="true"
1277
+ [baseZIndex]="baseZIndex"
1278
+ [autoZIndex]="autoZIndex"
1279
+ [mobileActive]="mobileActive"
1280
+ [autoDisplay]="autoDisplay"
1281
+ [attr.aria-label]="ariaLabel"
1282
+ [attr.aria-labelledby]="ariaLabelledBy"
1283
+ [focusedItemId]="focused ? focusedItemId : undefined"
1284
+ [submenuiconTemplate]="submenuIconTemplate || _submenuIconTemplate"
1285
+ [activeItemPath]="activeItemPath()"
1286
+ (itemClick)="onItemClick($event)"
1287
+ (focus)="onMenuFocus($event)"
1288
+ (blur)="onMenuBlur($event)"
1289
+ (keydown)="onKeyDown($event)"
1290
+ (itemMouseEnter)="onItemMouseEnter($event)"
1291
+ (mouseleave)="onMouseLeave($event)"
1292
+ ></ul>
1293
+ <div [class]="cx('end')" *ngIf="endTemplate || _endTemplate; else legacy">
1294
+ <ng-container *ngTemplateOutlet="endTemplate || _endTemplate"></ng-container>
1295
+ </div>
1296
+ <ng-template #legacy>
1297
+ <div [class]="cx('end')">
1298
+ <ng-content></ng-content>
1299
+ </div>
1300
+ </ng-template>
1301
+ `,
1302
+ changeDetection: ChangeDetectionStrategy.OnPush,
1303
+ encapsulation: ViewEncapsulation.None,
1304
+ providers: [MenubarService, MenuBarStyle],
1305
+ host: {
1306
+ '[class]': 'cn(cx("root"), styleClass)',
1307
+ 'data-pc-section': 'root',
1308
+ 'data-pc-name': 'menubar'
1309
+ }
1310
+ }]
1311
+ }], ctorParameters: () => [{ type: Document, decorators: [{
1312
+ type: Inject,
1313
+ args: [DOCUMENT]
1314
+ }] }, { type: undefined, decorators: [{
1315
+ type: Inject,
1316
+ args: [PLATFORM_ID]
1317
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: MenubarService }], propDecorators: { model: [{
1318
+ type: Input
1319
+ }], styleClass: [{
1320
+ type: Input
1321
+ }], autoZIndex: [{
1322
+ type: Input,
1323
+ args: [{ transform: booleanAttribute }]
1324
+ }], baseZIndex: [{
1325
+ type: Input,
1326
+ args: [{ transform: numberAttribute }]
1327
+ }], autoDisplay: [{
1328
+ type: Input,
1329
+ args: [{ transform: booleanAttribute }]
1330
+ }], autoHide: [{
1331
+ type: Input,
1332
+ args: [{ transform: booleanAttribute }]
1333
+ }], breakpoint: [{
1334
+ type: Input
1335
+ }], autoHideDelay: [{
1336
+ type: Input,
1337
+ args: [{ transform: numberAttribute }]
1338
+ }], id: [{
1339
+ type: Input
1340
+ }], ariaLabel: [{
1341
+ type: Input
1342
+ }], ariaLabelledBy: [{
1343
+ type: Input
1344
+ }], onFocus: [{
1345
+ type: Output
1346
+ }], onBlur: [{
1347
+ type: Output
1348
+ }], menubutton: [{
1349
+ type: ViewChild,
1350
+ args: ['menubutton']
1351
+ }], rootmenu: [{
1352
+ type: ViewChild,
1353
+ args: ['rootmenu']
1354
+ }], startTemplate: [{
1355
+ type: ContentChild,
1356
+ args: ['start', { descendants: false }]
1357
+ }], endTemplate: [{
1358
+ type: ContentChild,
1359
+ args: ['end', { descendants: false }]
1360
+ }], itemTemplate: [{
1361
+ type: ContentChild,
1362
+ args: ['item', { descendants: false }]
1363
+ }], menuIconTemplate: [{
1364
+ type: ContentChild,
1365
+ args: ['menuicon', { descendants: false }]
1366
+ }], submenuIconTemplate: [{
1367
+ type: ContentChild,
1368
+ args: ['submenuicon', { descendants: false }]
1369
+ }], templates: [{
1370
+ type: ContentChildren,
1371
+ args: [PrimeTemplate]
1372
+ }] } });
1373
+ class MenubarModule {
1374
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1375
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: MenubarModule, imports: [Menubar, SharedModule], exports: [Menubar, SharedModule] });
1376
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarModule, imports: [Menubar, SharedModule, SharedModule] });
1377
+ }
1378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MenubarModule, decorators: [{
1379
+ type: NgModule,
1380
+ args: [{
1381
+ imports: [Menubar, SharedModule],
1382
+ exports: [Menubar, SharedModule]
1383
+ }]
1384
+ }] });
1385
+
1386
+ /**
1387
+ * Generated bundle index. Do not edit.
1388
+ */
1389
+
1390
+ export { MenuBarStyle, Menubar, MenubarClasses, MenubarModule, MenubarService, MenubarSub };
1391
+ //# sourceMappingURL=primeng-menubar.mjs.map