primeng 20.3.0 → 21.0.0-rc.1

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 (543) hide show
  1. package/fesm2022/primeng-accordion.mjs +103 -114
  2. package/fesm2022/primeng-accordion.mjs.map +1 -1
  3. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  4. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  5. package/fesm2022/primeng-api.mjs +31 -31
  6. package/fesm2022/primeng-api.mjs.map +1 -1
  7. package/fesm2022/primeng-autocomplete.mjs +134 -78
  8. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  9. package/fesm2022/primeng-autofocus.mjs +7 -7
  10. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  11. package/fesm2022/primeng-avatar.mjs +40 -17
  12. package/fesm2022/primeng-avatar.mjs.map +1 -1
  13. package/fesm2022/primeng-avatargroup.mjs +10 -10
  14. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  15. package/fesm2022/primeng-badge.mjs +56 -24
  16. package/fesm2022/primeng-badge.mjs.map +1 -1
  17. package/fesm2022/primeng-base.mjs +3 -3
  18. package/fesm2022/primeng-basecomponent.mjs +23 -20
  19. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  20. package/fesm2022/primeng-baseeditableholder.mjs +10 -10
  21. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  22. package/fesm2022/primeng-baseinput.mjs +15 -15
  23. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  24. package/fesm2022/primeng-basemodelholder.mjs +5 -5
  25. package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
  26. package/fesm2022/primeng-bind.mjs +13 -13
  27. package/fesm2022/primeng-bind.mjs.map +1 -1
  28. package/fesm2022/primeng-blockui.mjs +44 -24
  29. package/fesm2022/primeng-blockui.mjs.map +1 -1
  30. package/fesm2022/primeng-breadcrumb.mjs +99 -56
  31. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  32. package/fesm2022/primeng-button.mjs +212 -93
  33. package/fesm2022/primeng-button.mjs.map +1 -1
  34. package/fesm2022/primeng-buttongroup.mjs +10 -10
  35. package/fesm2022/primeng-card.mjs +31 -11
  36. package/fesm2022/primeng-card.mjs.map +1 -1
  37. package/fesm2022/primeng-carousel.mjs +23 -17
  38. package/fesm2022/primeng-carousel.mjs.map +1 -1
  39. package/fesm2022/primeng-cascadeselect.mjs +55 -46
  40. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  41. package/fesm2022/primeng-chart.mjs +10 -10
  42. package/fesm2022/primeng-chart.mjs.map +1 -1
  43. package/fesm2022/primeng-checkbox.mjs +37 -27
  44. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  45. package/fesm2022/primeng-chip.mjs +28 -12
  46. package/fesm2022/primeng-chip.mjs.map +1 -1
  47. package/fesm2022/primeng-classnames.mjs +10 -10
  48. package/fesm2022/primeng-classnames.mjs.map +1 -1
  49. package/fesm2022/primeng-colorpicker.mjs +120 -189
  50. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  51. package/fesm2022/primeng-config.mjs +16 -22
  52. package/fesm2022/primeng-config.mjs.map +1 -1
  53. package/fesm2022/primeng-confirmdialog.mjs +60 -56
  54. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  55. package/fesm2022/primeng-confirmpopup.mjs +269 -218
  56. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  57. package/fesm2022/primeng-contextmenu.mjs +556 -445
  58. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  59. package/fesm2022/primeng-dataview.mjs +21 -11
  60. package/fesm2022/primeng-dataview.mjs.map +1 -1
  61. package/fesm2022/primeng-datepicker.mjs +818 -861
  62. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  63. package/fesm2022/primeng-dialog.mjs +393 -313
  64. package/fesm2022/primeng-dialog.mjs.map +1 -1
  65. package/fesm2022/primeng-divider.mjs +19 -11
  66. package/fesm2022/primeng-divider.mjs.map +1 -1
  67. package/fesm2022/primeng-dock.mjs +51 -24
  68. package/fesm2022/primeng-dock.mjs.map +1 -1
  69. package/fesm2022/primeng-dragdrop.mjs +10 -10
  70. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  71. package/fesm2022/primeng-drawer.mjs +277 -261
  72. package/fesm2022/primeng-drawer.mjs.map +1 -1
  73. package/fesm2022/primeng-dynamicdialog.mjs +34 -19
  74. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  75. package/fesm2022/primeng-editor.mjs +12 -12
  76. package/fesm2022/primeng-editor.mjs.map +1 -1
  77. package/fesm2022/primeng-fieldset.mjs +108 -90
  78. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  79. package/fesm2022/primeng-fileupload.mjs +76 -66
  80. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  81. package/fesm2022/primeng-floatlabel.mjs +10 -10
  82. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  83. package/fesm2022/primeng-fluid.mjs +10 -10
  84. package/fesm2022/primeng-focustrap.mjs +7 -7
  85. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  86. package/fesm2022/primeng-galleria.mjs +261 -137
  87. package/fesm2022/primeng-galleria.mjs.map +1 -1
  88. package/fesm2022/primeng-iconfield.mjs +10 -10
  89. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  90. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  91. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  92. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  93. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  94. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  95. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  96. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  97. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  98. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  99. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  100. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  101. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  102. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  103. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  104. package/fesm2022/primeng-icons-ban.mjs +3 -3
  105. package/fesm2022/primeng-icons-bars.mjs +3 -3
  106. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  107. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  108. package/fesm2022/primeng-icons-blank.mjs +3 -3
  109. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  110. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  111. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  112. package/fesm2022/primeng-icons-check.mjs +3 -3
  113. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  114. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  115. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  116. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  117. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  118. package/fesm2022/primeng-icons-eye.mjs +3 -3
  119. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  120. package/fesm2022/primeng-icons-filter.mjs +3 -3
  121. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  122. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  123. package/fesm2022/primeng-icons-home.mjs +3 -3
  124. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  125. package/fesm2022/primeng-icons-minus.mjs +3 -3
  126. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  127. package/fesm2022/primeng-icons-plus.mjs +3 -3
  128. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  129. package/fesm2022/primeng-icons-search.mjs +3 -3
  130. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  131. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  132. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  133. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  134. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  135. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  136. package/fesm2022/primeng-icons-star.mjs +3 -3
  137. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  138. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  139. package/fesm2022/primeng-icons-times.mjs +3 -3
  140. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  141. package/fesm2022/primeng-icons-trash.mjs +3 -3
  142. package/fesm2022/primeng-icons-undo.mjs +3 -3
  143. package/fesm2022/primeng-icons-upload.mjs +3 -3
  144. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  145. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  146. package/fesm2022/primeng-iftalabel.mjs +10 -10
  147. package/fesm2022/primeng-image.mjs +225 -182
  148. package/fesm2022/primeng-image.mjs.map +1 -1
  149. package/fesm2022/primeng-imagecompare.mjs +12 -12
  150. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  151. package/fesm2022/primeng-inplace.mjs +22 -22
  152. package/fesm2022/primeng-inplace.mjs.map +1 -1
  153. package/fesm2022/primeng-inputgroup.mjs +10 -10
  154. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  155. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  156. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  157. package/fesm2022/primeng-inputicon.mjs +10 -10
  158. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  159. package/fesm2022/primeng-inputmask.mjs +16 -13
  160. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  161. package/fesm2022/primeng-inputnumber.mjs +42 -17
  162. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  163. package/fesm2022/primeng-inputotp.mjs +25 -17
  164. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  165. package/fesm2022/primeng-inputtext.mjs +51 -20
  166. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  167. package/fesm2022/primeng-keyfilter.mjs +7 -7
  168. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  169. package/fesm2022/primeng-knob.mjs +25 -25
  170. package/fesm2022/primeng-knob.mjs.map +1 -1
  171. package/fesm2022/primeng-listbox.mjs +60 -27
  172. package/fesm2022/primeng-listbox.mjs.map +1 -1
  173. package/fesm2022/primeng-megamenu.mjs +136 -52
  174. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  175. package/fesm2022/primeng-menu.mjs +291 -272
  176. package/fesm2022/primeng-menu.mjs.map +1 -1
  177. package/fesm2022/primeng-menubar.mjs +168 -59
  178. package/fesm2022/primeng-menubar.mjs.map +1 -1
  179. package/fesm2022/primeng-message.mjs +121 -145
  180. package/fesm2022/primeng-message.mjs.map +1 -1
  181. package/fesm2022/primeng-metergroup.mjs +108 -25
  182. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  183. package/fesm2022/primeng-motion.mjs +660 -0
  184. package/fesm2022/primeng-motion.mjs.map +1 -0
  185. package/fesm2022/primeng-multiselect.mjs +196 -77
  186. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  187. package/fesm2022/primeng-orderlist.mjs +69 -19
  188. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  189. package/fesm2022/primeng-organizationchart.mjs +25 -27
  190. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  191. package/fesm2022/primeng-overlay.mjs +207 -114
  192. package/fesm2022/primeng-overlay.mjs.map +1 -1
  193. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  194. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  195. package/fesm2022/primeng-paginator.mjs +28 -20
  196. package/fesm2022/primeng-paginator.mjs.map +1 -1
  197. package/fesm2022/primeng-panel.mjs +71 -128
  198. package/fesm2022/primeng-panel.mjs.map +1 -1
  199. package/fesm2022/primeng-panelmenu.mjs +303 -205
  200. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  201. package/fesm2022/primeng-password.mjs +185 -184
  202. package/fesm2022/primeng-password.mjs.map +1 -1
  203. package/fesm2022/primeng-picklist.mjs +133 -95
  204. package/fesm2022/primeng-picklist.mjs.map +1 -1
  205. package/fesm2022/primeng-popover.mjs +151 -246
  206. package/fesm2022/primeng-popover.mjs.map +1 -1
  207. package/fesm2022/primeng-progressbar.mjs +28 -18
  208. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  209. package/fesm2022/primeng-progressspinner.mjs +10 -10
  210. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  211. package/fesm2022/primeng-radiobutton.mjs +30 -18
  212. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  213. package/fesm2022/primeng-rating.mjs +23 -12
  214. package/fesm2022/primeng-rating.mjs.map +1 -1
  215. package/fesm2022/primeng-ripple.mjs +22 -15
  216. package/fesm2022/primeng-ripple.mjs.map +1 -1
  217. package/fesm2022/primeng-scroller.mjs +19 -11
  218. package/fesm2022/primeng-scroller.mjs.map +1 -1
  219. package/fesm2022/primeng-scrollpanel.mjs +26 -22
  220. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  221. package/fesm2022/primeng-scrolltop.mjs +107 -110
  222. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  223. package/fesm2022/primeng-select.mjs +116 -65
  224. package/fesm2022/primeng-select.mjs.map +1 -1
  225. package/fesm2022/primeng-selectbutton.mjs +25 -15
  226. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  227. package/fesm2022/primeng-skeleton.mjs +23 -15
  228. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  229. package/fesm2022/primeng-slider.mjs +50 -25
  230. package/fesm2022/primeng-slider.mjs.map +1 -1
  231. package/fesm2022/primeng-speeddial.mjs +32 -29
  232. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  233. package/fesm2022/primeng-splitbutton.mjs +55 -31
  234. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  235. package/fesm2022/primeng-splitter.mjs +27 -18
  236. package/fesm2022/primeng-splitter.mjs.map +1 -1
  237. package/fesm2022/primeng-stepper.mjs +134 -154
  238. package/fesm2022/primeng-stepper.mjs.map +1 -1
  239. package/fesm2022/primeng-steps.mjs +13 -11
  240. package/fesm2022/primeng-steps.mjs.map +1 -1
  241. package/fesm2022/primeng-styleclass.mjs +8 -8
  242. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  243. package/fesm2022/primeng-table.mjs +719 -550
  244. package/fesm2022/primeng-table.mjs.map +1 -1
  245. package/fesm2022/primeng-tabs.mjs +134 -133
  246. package/fesm2022/primeng-tabs.mjs.map +1 -1
  247. package/fesm2022/primeng-tag.mjs +22 -11
  248. package/fesm2022/primeng-tag.mjs.map +1 -1
  249. package/fesm2022/primeng-terminal.mjs +14 -15
  250. package/fesm2022/primeng-terminal.mjs.map +1 -1
  251. package/fesm2022/primeng-textarea.mjs +39 -17
  252. package/fesm2022/primeng-textarea.mjs.map +1 -1
  253. package/fesm2022/primeng-tieredmenu.mjs +581 -474
  254. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  255. package/fesm2022/primeng-timeline.mjs +36 -23
  256. package/fesm2022/primeng-timeline.mjs.map +1 -1
  257. package/fesm2022/primeng-toast.mjs +155 -129
  258. package/fesm2022/primeng-toast.mjs.map +1 -1
  259. package/fesm2022/primeng-togglebutton.mjs +28 -14
  260. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  261. package/fesm2022/primeng-toggleswitch.mjs +28 -23
  262. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  263. package/fesm2022/primeng-toolbar.mjs +13 -13
  264. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  265. package/fesm2022/primeng-tooltip.mjs +40 -17
  266. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  267. package/fesm2022/primeng-tree.mjs +185 -108
  268. package/fesm2022/primeng-tree.mjs.map +1 -1
  269. package/fesm2022/primeng-treeselect.mjs +70 -43
  270. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  271. package/fesm2022/primeng-treetable.mjs +169 -127
  272. package/fesm2022/primeng-treetable.mjs.map +1 -1
  273. package/fesm2022/primeng-types-motion.mjs +4 -0
  274. package/fesm2022/primeng-types-motion.mjs.map +1 -0
  275. package/fesm2022/primeng-usestyle.mjs +3 -3
  276. package/package.json +653 -645
  277. package/{accordion/index.d.ts → types/primeng-accordion.d.ts} +37 -26
  278. package/{api/index.d.ts → types/primeng-api.d.ts} +27 -1
  279. package/{autocomplete/index.d.ts → types/primeng-autocomplete.d.ts} +37 -27
  280. package/{avatar/index.d.ts → types/primeng-avatar.d.ts} +18 -1
  281. package/{badge/index.d.ts → types/primeng-badge.d.ts} +36 -17
  282. package/{basecomponent/index.d.ts → types/primeng-basecomponent.d.ts} +6 -5
  283. package/{bind/index.d.ts → types/primeng-bind.d.ts} +2 -2
  284. package/{breadcrumb/index.d.ts → types/primeng-breadcrumb.d.ts} +7 -7
  285. package/{button/index.d.ts → types/primeng-button.d.ts} +89 -40
  286. package/{card/index.d.ts → types/primeng-card.d.ts} +30 -10
  287. package/{carousel/index.d.ts → types/primeng-carousel.d.ts} +16 -16
  288. package/{cascadeselect/index.d.ts → types/primeng-cascadeselect.d.ts} +33 -27
  289. package/{checkbox/index.d.ts → types/primeng-checkbox.d.ts} +5 -4
  290. package/{chip/index.d.ts → types/primeng-chip.d.ts} +14 -2
  291. package/{classnames/index.d.ts → types/primeng-classnames.d.ts} +1 -1
  292. package/{colorpicker/index.d.ts → types/primeng-colorpicker.d.ts} +28 -29
  293. package/{config/index.d.ts → types/primeng-config.d.ts} +0 -6
  294. package/{confirmdialog/index.d.ts → types/primeng-confirmdialog.d.ts} +51 -23
  295. package/{confirmpopup/index.d.ts → types/primeng-confirmpopup.d.ts} +64 -26
  296. package/{contextmenu/index.d.ts → types/primeng-contextmenu.d.ts} +47 -34
  297. package/{dataview/index.d.ts → types/primeng-dataview.d.ts} +19 -13
  298. package/{datepicker/index.d.ts → types/primeng-datepicker.d.ts} +52 -35
  299. package/{dialog/index.d.ts → types/primeng-dialog.d.ts} +92 -47
  300. package/{divider/index.d.ts → types/primeng-divider.d.ts} +1 -0
  301. package/{dock/index.d.ts → types/primeng-dock.d.ts} +8 -3
  302. package/{drawer/index.d.ts → types/primeng-drawer.d.ts} +51 -37
  303. package/{dynamicdialog/index.d.ts → types/primeng-dynamicdialog.d.ts} +22 -9
  304. package/{fieldset/index.d.ts → types/primeng-fieldset.d.ts} +43 -24
  305. package/{fileupload/index.d.ts → types/primeng-fileupload.d.ts} +31 -28
  306. package/{galleria/index.d.ts → types/primeng-galleria.d.ts} +96 -31
  307. package/{image/index.d.ts → types/primeng-image.d.ts} +69 -40
  308. package/{imagecompare/index.d.ts → types/primeng-imagecompare.d.ts} +6 -6
  309. package/{inplace/index.d.ts → types/primeng-inplace.d.ts} +10 -10
  310. package/{inputmask/index.d.ts → types/primeng-inputmask.d.ts} +3 -3
  311. package/{inputnumber/index.d.ts → types/primeng-inputnumber.d.ts} +10 -9
  312. package/{inputotp/index.d.ts → types/primeng-inputotp.d.ts} +6 -43
  313. package/types/primeng-inputtext.d.ts +116 -0
  314. package/{knob/index.d.ts → types/primeng-knob.d.ts} +1 -1
  315. package/{listbox/index.d.ts → types/primeng-listbox.d.ts} +41 -23
  316. package/{megamenu/index.d.ts → types/primeng-megamenu.d.ts} +23 -19
  317. package/{menu/index.d.ts → types/primeng-menu.d.ts} +31 -20
  318. package/{menubar/index.d.ts → types/primeng-menubar.d.ts} +19 -16
  319. package/{message/index.d.ts → types/primeng-message.d.ts} +22 -12
  320. package/{metergroup/index.d.ts → types/primeng-metergroup.d.ts} +44 -12
  321. package/types/primeng-motion.d.ts +396 -0
  322. package/{multiselect/index.d.ts → types/primeng-multiselect.d.ts} +119 -41
  323. package/{orderlist/index.d.ts → types/primeng-orderlist.d.ts} +25 -21
  324. package/{overlay/index.d.ts → types/primeng-overlay.d.ts} +88 -20
  325. package/{paginator/index.d.ts → types/primeng-paginator.d.ts} +25 -25
  326. package/{panel/index.d.ts → types/primeng-panel.d.ts} +30 -17
  327. package/{panelmenu/index.d.ts → types/primeng-panelmenu.d.ts} +25 -28
  328. package/{password/index.d.ts → types/primeng-password.d.ts} +74 -27
  329. package/{picklist/index.d.ts → types/primeng-picklist.d.ts} +59 -67
  330. package/{popover/index.d.ts → types/primeng-popover.d.ts} +32 -14
  331. package/{progressbar/index.d.ts → types/primeng-progressbar.d.ts} +9 -5
  332. package/{radiobutton/index.d.ts → types/primeng-radiobutton.d.ts} +1 -0
  333. package/{rating/index.d.ts → types/primeng-rating.d.ts} +11 -6
  334. package/{scroller/index.d.ts → types/primeng-scroller.d.ts} +17 -9
  335. package/{scrollpanel/index.d.ts → types/primeng-scrollpanel.d.ts} +3 -3
  336. package/{scrolltop/index.d.ts → types/primeng-scrolltop.d.ts} +21 -9
  337. package/{select/index.d.ts → types/primeng-select.d.ts} +46 -36
  338. package/{selectbutton/index.d.ts → types/primeng-selectbutton.d.ts} +7 -4
  339. package/{skeleton/index.d.ts → types/primeng-skeleton.d.ts} +1 -0
  340. package/{slider/index.d.ts → types/primeng-slider.d.ts} +1 -0
  341. package/{speeddial/index.d.ts → types/primeng-speeddial.d.ts} +17 -17
  342. package/{splitbutton/index.d.ts → types/primeng-splitbutton.d.ts} +23 -12
  343. package/{splitter/index.d.ts → types/primeng-splitter.d.ts} +1 -0
  344. package/{stepper/index.d.ts → types/primeng-stepper.d.ts} +12 -7
  345. package/{table/index.d.ts → types/primeng-table.d.ts} +51 -10
  346. package/{tabs/index.d.ts → types/primeng-tabs.d.ts} +57 -56
  347. package/{tag/index.d.ts → types/primeng-tag.d.ts} +7 -2
  348. package/{textarea/index.d.ts → types/primeng-textarea.d.ts} +14 -1
  349. package/{tieredmenu/index.d.ts → types/primeng-tieredmenu.d.ts} +51 -33
  350. package/{timeline/index.d.ts → types/primeng-timeline.d.ts} +14 -7
  351. package/{toast/index.d.ts → types/primeng-toast.d.ts} +40 -13
  352. package/{togglebutton/index.d.ts → types/primeng-togglebutton.d.ts} +10 -5
  353. package/{toggleswitch/index.d.ts → types/primeng-toggleswitch.d.ts} +6 -18
  354. package/{toolbar/index.d.ts → types/primeng-toolbar.d.ts} +9 -9
  355. package/{tooltip/index.d.ts → types/primeng-tooltip.d.ts} +21 -3
  356. package/{tree/index.d.ts → types/primeng-tree.d.ts} +77 -53
  357. package/{treeselect/index.d.ts → types/primeng-treeselect.d.ts} +62 -42
  358. package/{treetable/index.d.ts → types/primeng-treetable.d.ts} +55 -53
  359. package/types/{accordion/index.d.ts → primeng-types-accordion.d.ts} +9 -0
  360. package/types/{autocomplete/index.d.ts → primeng-types-autocomplete.d.ts} +76 -63
  361. package/types/{breadcrumb/index.d.ts → primeng-types-breadcrumb.d.ts} +27 -1
  362. package/types/{button/index.d.ts → primeng-types-button.d.ts} +37 -18
  363. package/types/{card/index.d.ts → primeng-types-card.d.ts} +10 -10
  364. package/types/{carousel/index.d.ts → primeng-types-carousel.d.ts} +22 -19
  365. package/types/{cascadeselect/index.d.ts → primeng-types-cascadeselect.d.ts} +44 -27
  366. package/types/{checkbox/index.d.ts → primeng-types-checkbox.d.ts} +22 -3
  367. package/types/{chip/index.d.ts → primeng-types-chip.d.ts} +4 -4
  368. package/types/{colorpicker/index.d.ts → primeng-types-colorpicker.d.ts} +5 -0
  369. package/types/{confirmdialog/index.d.ts → primeng-types-confirmdialog.d.ts} +46 -20
  370. package/types/{confirmpopup/index.d.ts → primeng-types-confirmpopup.d.ts} +36 -13
  371. package/types/{contextmenu/index.d.ts → primeng-types-contextmenu.d.ts} +31 -18
  372. package/types/{dataview/index.d.ts → primeng-types-dataview.d.ts} +63 -44
  373. package/types/{datepicker/index.d.ts → primeng-types-datepicker.d.ts} +111 -54
  374. package/types/{dialog/index.d.ts → primeng-types-dialog.d.ts} +15 -6
  375. package/types/{dock/index.d.ts → primeng-types-dock.d.ts} +13 -10
  376. package/types/{drawer/index.d.ts → primeng-types-drawer.d.ts} +12 -7
  377. package/types/{fieldset/index.d.ts → primeng-types-fieldset.d.ts} +15 -6
  378. package/types/primeng-types-fileupload.d.ts +360 -0
  379. package/types/{galleria/index.d.ts → primeng-types-galleria.d.ts} +72 -55
  380. package/types/{image/index.d.ts → primeng-types-image.d.ts} +45 -94
  381. package/types/{imagecompare/index.d.ts → primeng-types-imagecompare.d.ts} +16 -1
  382. package/types/{inplace/index.d.ts → primeng-types-inplace.d.ts} +18 -7
  383. package/types/{inputmask/index.d.ts → primeng-types-inputmask.d.ts} +1 -1
  384. package/types/{inputnumber/index.d.ts → primeng-types-inputnumber.d.ts} +3 -3
  385. package/types/primeng-types-inputotp.d.ts +101 -0
  386. package/types/{listbox/index.d.ts → primeng-types-listbox.d.ts} +123 -44
  387. package/types/{megamenu/index.d.ts → primeng-types-megamenu.d.ts} +30 -14
  388. package/types/{menu/index.d.ts → primeng-types-menu.d.ts} +35 -22
  389. package/types/{menubar/index.d.ts → primeng-types-menubar.d.ts} +23 -20
  390. package/types/{message/index.d.ts → primeng-types-message.d.ts} +36 -1
  391. package/types/{metergroup/index.d.ts → primeng-types-metergroup.d.ts} +78 -80
  392. package/types/primeng-types-motion.d.ts +26 -0
  393. package/types/{multiselect/index.d.ts → primeng-types-multiselect.d.ts} +135 -83
  394. package/types/{orderlist/index.d.ts → primeng-types-orderlist.d.ts} +44 -35
  395. package/types/primeng-types-overlay.d.ts +60 -0
  396. package/types/{paginator/index.d.ts → primeng-types-paginator.d.ts} +42 -6
  397. package/types/{panel/index.d.ts → primeng-types-panel.d.ts} +38 -1
  398. package/types/{panelmenu/index.d.ts → primeng-types-panelmenu.d.ts} +27 -10
  399. package/types/{password/index.d.ts → primeng-types-password.d.ts} +30 -7
  400. package/types/{picklist/index.d.ts → primeng-types-picklist.d.ts} +69 -74
  401. package/types/{popover/index.d.ts → primeng-types-popover.d.ts} +19 -12
  402. package/types/{progressbar/index.d.ts → primeng-types-progressbar.d.ts} +13 -9
  403. package/types/{rating/index.d.ts → primeng-types-rating.d.ts} +19 -7
  404. package/types/{scroller/index.d.ts → primeng-types-scroller.d.ts} +60 -50
  405. package/types/{scrollpanel/index.d.ts → primeng-types-scrollpanel.d.ts} +1 -1
  406. package/types/{scrolltop/index.d.ts → primeng-types-scrolltop.d.ts} +19 -10
  407. package/types/{select/index.d.ts → primeng-types-select.d.ts} +80 -49
  408. package/types/{selectbutton/index.d.ts → primeng-types-selectbutton.d.ts} +17 -2
  409. package/types/{speeddial/index.d.ts → primeng-types-speeddial.d.ts} +35 -17
  410. package/types/{splitbutton/index.d.ts → primeng-types-splitbutton.d.ts} +4 -4
  411. package/types/{splitter/index.d.ts → primeng-types-splitter.d.ts} +2 -2
  412. package/types/{stepper/index.d.ts → primeng-types-stepper.d.ts} +9 -0
  413. package/types/{table/index.d.ts → primeng-types-table.d.ts} +20 -11
  414. package/types/{tag/index.d.ts → primeng-types-tag.d.ts} +2 -2
  415. package/types/{tieredmenu/index.d.ts → primeng-types-tieredmenu.d.ts} +25 -17
  416. package/types/{timeline/index.d.ts → primeng-types-timeline.d.ts} +19 -29
  417. package/types/{toast/index.d.ts → primeng-types-toast.d.ts} +39 -22
  418. package/types/{togglebutton/index.d.ts → primeng-types-togglebutton.d.ts} +25 -24
  419. package/types/{toggleswitch/index.d.ts → primeng-types-toggleswitch.d.ts} +23 -1
  420. package/types/{toolbar/index.d.ts → primeng-types-toolbar.d.ts} +6 -6
  421. package/types/{tree/index.d.ts → primeng-types-tree.d.ts} +75 -41
  422. package/types/{treeselect/index.d.ts → primeng-types-treeselect.d.ts} +80 -53
  423. package/types/{treetable/index.d.ts → primeng-types-treetable.d.ts} +145 -156
  424. package/inputtext/index.d.ts +0 -97
  425. package/types/fileupload/index.d.ts +0 -576
  426. package/types/inputotp/index.d.ts +0 -31
  427. package/types/overlay/index.d.ts +0 -28
  428. /package/{animateonscroll/index.d.ts → types/primeng-animateonscroll.d.ts} +0 -0
  429. /package/{autofocus/index.d.ts → types/primeng-autofocus.d.ts} +0 -0
  430. /package/{avatargroup/index.d.ts → types/primeng-avatargroup.d.ts} +0 -0
  431. /package/{base/index.d.ts → types/primeng-base.d.ts} +0 -0
  432. /package/{baseeditableholder/index.d.ts → types/primeng-baseeditableholder.d.ts} +0 -0
  433. /package/{baseinput/index.d.ts → types/primeng-baseinput.d.ts} +0 -0
  434. /package/{basemodelholder/index.d.ts → types/primeng-basemodelholder.d.ts} +0 -0
  435. /package/{blockui/index.d.ts → types/primeng-blockui.d.ts} +0 -0
  436. /package/{buttongroup/index.d.ts → types/primeng-buttongroup.d.ts} +0 -0
  437. /package/{chart/index.d.ts → types/primeng-chart.d.ts} +0 -0
  438. /package/{dom/index.d.ts → types/primeng-dom.d.ts} +0 -0
  439. /package/{dragdrop/index.d.ts → types/primeng-dragdrop.d.ts} +0 -0
  440. /package/{editor/index.d.ts → types/primeng-editor.d.ts} +0 -0
  441. /package/{floatlabel/index.d.ts → types/primeng-floatlabel.d.ts} +0 -0
  442. /package/{fluid/index.d.ts → types/primeng-fluid.d.ts} +0 -0
  443. /package/{focustrap/index.d.ts → types/primeng-focustrap.d.ts} +0 -0
  444. /package/{iconfield/index.d.ts → types/primeng-iconfield.d.ts} +0 -0
  445. /package/{icons/angledoubledown/index.d.ts → types/primeng-icons-angledoubledown.d.ts} +0 -0
  446. /package/{icons/angledoubleleft/index.d.ts → types/primeng-icons-angledoubleleft.d.ts} +0 -0
  447. /package/{icons/angledoubleright/index.d.ts → types/primeng-icons-angledoubleright.d.ts} +0 -0
  448. /package/{icons/angledoubleup/index.d.ts → types/primeng-icons-angledoubleup.d.ts} +0 -0
  449. /package/{icons/angledown/index.d.ts → types/primeng-icons-angledown.d.ts} +0 -0
  450. /package/{icons/angleleft/index.d.ts → types/primeng-icons-angleleft.d.ts} +0 -0
  451. /package/{icons/angleright/index.d.ts → types/primeng-icons-angleright.d.ts} +0 -0
  452. /package/{icons/angleup/index.d.ts → types/primeng-icons-angleup.d.ts} +0 -0
  453. /package/{icons/arrowdown/index.d.ts → types/primeng-icons-arrowdown.d.ts} +0 -0
  454. /package/{icons/arrowdownleft/index.d.ts → types/primeng-icons-arrowdownleft.d.ts} +0 -0
  455. /package/{icons/arrowdownright/index.d.ts → types/primeng-icons-arrowdownright.d.ts} +0 -0
  456. /package/{icons/arrowleft/index.d.ts → types/primeng-icons-arrowleft.d.ts} +0 -0
  457. /package/{icons/arrowright/index.d.ts → types/primeng-icons-arrowright.d.ts} +0 -0
  458. /package/{icons/arrowup/index.d.ts → types/primeng-icons-arrowup.d.ts} +0 -0
  459. /package/{icons/ban/index.d.ts → types/primeng-icons-ban.d.ts} +0 -0
  460. /package/{icons/bars/index.d.ts → types/primeng-icons-bars.d.ts} +0 -0
  461. /package/{icons/baseicon/index.d.ts → types/primeng-icons-baseicon.d.ts} +0 -0
  462. /package/{icons/blank/index.d.ts → types/primeng-icons-blank.d.ts} +0 -0
  463. /package/{icons/calendar/index.d.ts → types/primeng-icons-calendar.d.ts} +0 -0
  464. /package/{icons/caretleft/index.d.ts → types/primeng-icons-caretleft.d.ts} +0 -0
  465. /package/{icons/caretright/index.d.ts → types/primeng-icons-caretright.d.ts} +0 -0
  466. /package/{icons/check/index.d.ts → types/primeng-icons-check.d.ts} +0 -0
  467. /package/{icons/chevrondown/index.d.ts → types/primeng-icons-chevrondown.d.ts} +0 -0
  468. /package/{icons/chevronleft/index.d.ts → types/primeng-icons-chevronleft.d.ts} +0 -0
  469. /package/{icons/chevronright/index.d.ts → types/primeng-icons-chevronright.d.ts} +0 -0
  470. /package/{icons/chevronup/index.d.ts → types/primeng-icons-chevronup.d.ts} +0 -0
  471. /package/{icons/exclamationtriangle/index.d.ts → types/primeng-icons-exclamationtriangle.d.ts} +0 -0
  472. /package/{icons/eye/index.d.ts → types/primeng-icons-eye.d.ts} +0 -0
  473. /package/{icons/eyeslash/index.d.ts → types/primeng-icons-eyeslash.d.ts} +0 -0
  474. /package/{icons/filter/index.d.ts → types/primeng-icons-filter.d.ts} +0 -0
  475. /package/{icons/filterfill/index.d.ts → types/primeng-icons-filterfill.d.ts} +0 -0
  476. /package/{icons/filterslash/index.d.ts → types/primeng-icons-filterslash.d.ts} +0 -0
  477. /package/{icons/home/index.d.ts → types/primeng-icons-home.d.ts} +0 -0
  478. /package/{icons/infocircle/index.d.ts → types/primeng-icons-infocircle.d.ts} +0 -0
  479. /package/{icons/minus/index.d.ts → types/primeng-icons-minus.d.ts} +0 -0
  480. /package/{icons/pencil/index.d.ts → types/primeng-icons-pencil.d.ts} +0 -0
  481. /package/{icons/plus/index.d.ts → types/primeng-icons-plus.d.ts} +0 -0
  482. /package/{icons/refresh/index.d.ts → types/primeng-icons-refresh.d.ts} +0 -0
  483. /package/{icons/search/index.d.ts → types/primeng-icons-search.d.ts} +0 -0
  484. /package/{icons/searchminus/index.d.ts → types/primeng-icons-searchminus.d.ts} +0 -0
  485. /package/{icons/searchplus/index.d.ts → types/primeng-icons-searchplus.d.ts} +0 -0
  486. /package/{icons/sortalt/index.d.ts → types/primeng-icons-sortalt.d.ts} +0 -0
  487. /package/{icons/sortamountdown/index.d.ts → types/primeng-icons-sortamountdown.d.ts} +0 -0
  488. /package/{icons/sortamountupalt/index.d.ts → types/primeng-icons-sortamountupalt.d.ts} +0 -0
  489. /package/{icons/spinner/index.d.ts → types/primeng-icons-spinner.d.ts} +0 -0
  490. /package/{icons/star/index.d.ts → types/primeng-icons-star.d.ts} +0 -0
  491. /package/{icons/starfill/index.d.ts → types/primeng-icons-starfill.d.ts} +0 -0
  492. /package/{icons/thlarge/index.d.ts → types/primeng-icons-thlarge.d.ts} +0 -0
  493. /package/{icons/times/index.d.ts → types/primeng-icons-times.d.ts} +0 -0
  494. /package/{icons/timescircle/index.d.ts → types/primeng-icons-timescircle.d.ts} +0 -0
  495. /package/{icons/trash/index.d.ts → types/primeng-icons-trash.d.ts} +0 -0
  496. /package/{icons/undo/index.d.ts → types/primeng-icons-undo.d.ts} +0 -0
  497. /package/{icons/upload/index.d.ts → types/primeng-icons-upload.d.ts} +0 -0
  498. /package/{icons/windowmaximize/index.d.ts → types/primeng-icons-windowmaximize.d.ts} +0 -0
  499. /package/{icons/windowminimize/index.d.ts → types/primeng-icons-windowminimize.d.ts} +0 -0
  500. /package/{icons/index.d.ts → types/primeng-icons.d.ts} +0 -0
  501. /package/{iftalabel/index.d.ts → types/primeng-iftalabel.d.ts} +0 -0
  502. /package/{inputgroup/index.d.ts → types/primeng-inputgroup.d.ts} +0 -0
  503. /package/{inputgroupaddon/index.d.ts → types/primeng-inputgroupaddon.d.ts} +0 -0
  504. /package/{inputicon/index.d.ts → types/primeng-inputicon.d.ts} +0 -0
  505. /package/{keyfilter/index.d.ts → types/primeng-keyfilter.d.ts} +0 -0
  506. /package/{organizationchart/index.d.ts → types/primeng-organizationchart.d.ts} +0 -0
  507. /package/{overlaybadge/index.d.ts → types/primeng-overlaybadge.d.ts} +0 -0
  508. /package/{passthrough/index.d.ts → types/primeng-passthrough.d.ts} +0 -0
  509. /package/{progressspinner/index.d.ts → types/primeng-progressspinner.d.ts} +0 -0
  510. /package/{ripple/index.d.ts → types/primeng-ripple.d.ts} +0 -0
  511. /package/{steps/index.d.ts → types/primeng-steps.d.ts} +0 -0
  512. /package/{styleclass/index.d.ts → types/primeng-styleclass.d.ts} +0 -0
  513. /package/{terminal/index.d.ts → types/primeng-terminal.d.ts} +0 -0
  514. /package/{ts-helpers/index.d.ts → types/primeng-ts-helpers.d.ts} +0 -0
  515. /package/types/{avatar/index.d.ts → primeng-types-avatar.d.ts} +0 -0
  516. /package/types/{avatargroup/index.d.ts → primeng-types-avatargroup.d.ts} +0 -0
  517. /package/types/{badge/index.d.ts → primeng-types-badge.d.ts} +0 -0
  518. /package/types/{blockui/index.d.ts → primeng-types-blockui.d.ts} +0 -0
  519. /package/types/{chart/index.d.ts → primeng-types-chart.d.ts} +0 -0
  520. /package/types/{divider/index.d.ts → primeng-types-divider.d.ts} +0 -0
  521. /package/types/{editor/index.d.ts → primeng-types-editor.d.ts} +0 -0
  522. /package/types/{floatlabel/index.d.ts → primeng-types-floatlabel.d.ts} +0 -0
  523. /package/types/{fluid/index.d.ts → primeng-types-fluid.d.ts} +0 -0
  524. /package/types/{iconfield/index.d.ts → primeng-types-iconfield.d.ts} +0 -0
  525. /package/types/{iftalabel/index.d.ts → primeng-types-iftalabel.d.ts} +0 -0
  526. /package/types/{inputgroup/index.d.ts → primeng-types-inputgroup.d.ts} +0 -0
  527. /package/types/{inputgroupaddon/index.d.ts → primeng-types-inputgroupaddon.d.ts} +0 -0
  528. /package/types/{inputicon/index.d.ts → primeng-types-inputicon.d.ts} +0 -0
  529. /package/types/{inputtext/index.d.ts → primeng-types-inputtext.d.ts} +0 -0
  530. /package/types/{knob/index.d.ts → primeng-types-knob.d.ts} +0 -0
  531. /package/types/{organizationchart/index.d.ts → primeng-types-organizationchart.d.ts} +0 -0
  532. /package/types/{overlaybadge/index.d.ts → primeng-types-overlaybadge.d.ts} +0 -0
  533. /package/types/{progressspinner/index.d.ts → primeng-types-progressspinner.d.ts} +0 -0
  534. /package/types/{radiobutton/index.d.ts → primeng-types-radiobutton.d.ts} +0 -0
  535. /package/types/{skeleton/index.d.ts → primeng-types-skeleton.d.ts} +0 -0
  536. /package/types/{slider/index.d.ts → primeng-types-slider.d.ts} +0 -0
  537. /package/types/{tabs/index.d.ts → primeng-types-tabs.d.ts} +0 -0
  538. /package/types/{terminal/index.d.ts → primeng-types-terminal.d.ts} +0 -0
  539. /package/types/{textarea/index.d.ts → primeng-types-textarea.d.ts} +0 -0
  540. /package/types/{tooltip/index.d.ts → primeng-types-tooltip.d.ts} +0 -0
  541. /package/{usestyle/index.d.ts → types/primeng-usestyle.d.ts} +0 -0
  542. /package/{utils/index.d.ts → types/primeng-utils.d.ts} +0 -0
  543. /package/{index.d.ts → types/primeng.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  export * from 'primeng/types/contextmenu';
2
- import { trigger, transition, style as style$1, animate } from '@angular/animations';
3
2
  import * as i1 from '@angular/common';
4
3
  import { CommonModule, isPlatformBrowser } from '@angular/common';
5
4
  import * as i0 from '@angular/core';
6
- import { Injectable, InjectionToken, EventEmitter, inject, forwardRef, numberAttribute, booleanAttribute, ViewChild, Output, Input, Inject, ViewEncapsulation, Component, input, signal, computed, effect, ContentChildren, ContentChild, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
+ import { Injectable, InjectionToken, EventEmitter, signal, inject, forwardRef, numberAttribute, booleanAttribute, ViewChild, Output, Input, Inject, ViewEncapsulation, Component, input, computed, effect, ContentChildren, ContentChild, ChangeDetectionStrategy, NgModule } from '@angular/core';
7
6
  import * as i2 from '@angular/router';
8
7
  import { RouterModule } from '@angular/router';
9
- import { resolve, isNotEmpty, getOffset, getViewport, getHiddenElementOuterWidth, getOuterWidth, calculateScrollbarWidth, uuid, isIOS, isAndroid, focus, isPrintableCharacter, isEmpty, findSingle, getHiddenElementOuterHeight, findLastIndex } from '@primeuix/utils';
10
- import * as i6 from 'primeng/api';
8
+ import { resolve, isNotEmpty, getOffset, getViewport, getHiddenElementOuterWidth, getOuterWidth, calculateScrollbarWidth, uuid, isIOS, isAndroid, focus, isPrintableCharacter, isEmpty, findSingle, appendChild, getHiddenElementOuterHeight, findLastIndex } from '@primeuix/utils';
9
+ import * as i7 from 'primeng/api';
11
10
  import { SharedModule, PrimeTemplate } from 'primeng/api';
12
11
  import * as i5 from 'primeng/badge';
13
12
  import { BadgeModule } from 'primeng/badge';
14
13
  import { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';
15
14
  import * as i4 from 'primeng/bind';
16
15
  import { BindModule } from 'primeng/bind';
17
- import { DomHandler } from 'primeng/dom';
18
16
  import { AngleRightIcon } from 'primeng/icons';
17
+ import * as i6 from 'primeng/motion';
18
+ import { MotionModule } from 'primeng/motion';
19
19
  import { Ripple } from 'primeng/ripple';
20
20
  import * as i3 from 'primeng/tooltip';
21
21
  import { TooltipModule } from 'primeng/tooltip';
@@ -51,10 +51,10 @@ class ContextMenuStyle extends BaseStyle {
51
51
  style = style;
52
52
  classes = classes;
53
53
  inlineStyles = inlineStyles;
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
55
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuStyle });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
55
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuStyle });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuStyle, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuStyle, decorators: [{
58
58
  type: Injectable
59
59
  }] });
60
60
  /**
@@ -117,7 +117,15 @@ class ContextMenuSub extends BaseComponent {
117
117
  el;
118
118
  renderer;
119
119
  contextMenu;
120
- visible = false;
120
+ get visible() {
121
+ return this._visible;
122
+ }
123
+ set visible(value) {
124
+ this._visible = value;
125
+ if (this._visible || this.root) {
126
+ this.render.set(true);
127
+ }
128
+ }
121
129
  items;
122
130
  itemTemplate;
123
131
  root = false;
@@ -130,6 +138,7 @@ class ContextMenuSub extends BaseComponent {
130
138
  level = 0;
131
139
  focusedItemId;
132
140
  activeItemPath;
141
+ motionOptions;
133
142
  tabindex = 0;
134
143
  itemClick = new EventEmitter();
135
144
  itemMouseEnter = new EventEmitter();
@@ -137,15 +146,22 @@ class ContextMenuSub extends BaseComponent {
137
146
  menuBlur = new EventEmitter();
138
147
  menuKeydown = new EventEmitter();
139
148
  sublistViewChild;
149
+ render = signal(false, { ...(ngDevMode ? { debugName: "render" } : {}) });
140
150
  hostName = 'ContextMenu';
141
151
  _componentStyle = inject(ContextMenuStyle);
142
152
  $pcContextMenu = inject(CONTEXTMENU_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
143
153
  $pcContextMenuSub = inject(CONTEXTMENUSUB_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
154
+ _visible = false;
144
155
  constructor(el, renderer, contextMenu) {
145
156
  super();
146
157
  this.el = el;
147
158
  this.renderer = renderer;
148
159
  this.contextMenu = contextMenu;
160
+ this.contextMenu.handleSubmenuAfterLeave = () => {
161
+ if (this.root) {
162
+ this.onAfterLeave();
163
+ }
164
+ };
149
165
  }
150
166
  getItemProp(processedItem, name, params = null) {
151
167
  return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
@@ -190,11 +206,11 @@ class ContextMenuSub extends BaseComponent {
190
206
  this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
191
207
  this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });
192
208
  }
193
- onEnter(event, sublist) {
194
- if (event.fromState === 'void' && event.toState) {
195
- const sublist = event.element;
196
- this.position(sublist);
197
- }
209
+ onBeforeEnter(event) {
210
+ this.position(event.element);
211
+ }
212
+ onAfterLeave() {
213
+ this.render.set(false);
198
214
  }
199
215
  // TODO: will be removed later. Helper method to get PT from parent ContextMenu if available, otherwise use own PT
200
216
  _ptm(section, options) {
@@ -225,323 +241,390 @@ class ContextMenuSub extends BaseComponent {
225
241
  sublist.style.left = itemOuterWidth + 'px';
226
242
  }
227
243
  }
228
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuSub, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: forwardRef(() => ContextMenu) }], target: i0.ɵɵFactoryTarget.Component });
229
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.4", type: ContextMenuSub, isStandalone: true, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: { visible: ["visible", "visible", booleanAttribute], items: "items", itemTemplate: "itemTemplate", root: ["root", "root", booleanAttribute], autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], popup: ["popup", "popup", booleanAttribute], menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: ["level", "level", numberAttribute], focusedItemId: "focusedItemId", activeItemPath: "activeItemPath", tabindex: ["tabindex", "tabindex", numberAttribute] }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, providers: [ContextMenuStyle, { provide: CONTEXTMENUSUB_INSTANCE, useExisting: ContextMenuSub }, { provide: PARENT_INSTANCE, useExisting: ContextMenuSub }], viewQueries: [{ propertyName: "sublistViewChild", first: true, predicate: ["sublist"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
230
- <ul
231
- *ngIf="root ? true : visible"
232
- #sublist
233
- role="menu"
234
- [class]="root ? cx('rootList') : cx('submenu')"
235
- [pBind]="_ptm(root ? 'rootList' : 'submenu')"
236
- [@overlayAnimation]="visible"
237
- (@overlayAnimation.start)="onEnter($event, sublist)"
238
- [attr.id]="menuId + '_list'"
239
- [tabindex]="tabindex"
240
- [attr.aria-label]="ariaLabel"
241
- [attr.aria-labelledBy]="ariaLabelledBy"
242
- [attr.aria-activedescendant]="focusedItemId"
243
- [attr.aria-orientation]="'vertical'"
244
- (keydown)="menuKeydown.emit($event)"
245
- (focus)="menuFocus.emit($event)"
246
- (blur)="menuBlur.emit($event)"
247
- >
248
- <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
249
- <li
250
- *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
251
- [attr.id]="getItemId(processedItem)"
252
- [style]="getItemProp(processedItem, 'style')"
253
- [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))"
254
- role="separator"
255
- [pBind]="_ptm('separator')"
256
- ></li>
257
- <li
258
- #listItem
259
- *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
260
- role="menuitem"
261
- [attr.id]="getItemId(processedItem)"
262
- [attr.data-p-highlight]="isItemActive(processedItem)"
263
- [attr.data-p-focused]="isItemFocused(processedItem)"
264
- [attr.data-p-disabled]="isItemDisabled(processedItem)"
265
- [attr.aria-label]="getItemLabel(processedItem)"
266
- [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
267
- [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
268
- [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
269
- [attr.aria-level]="level + 1"
270
- [attr.aria-setsize]="getAriaSetSize()"
271
- [attr.aria-posinset]="getAriaPosInset(index)"
272
- [style]="getItemProp(processedItem, 'style')"
273
- [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
274
- [pBind]="getPTOptions(processedItem, index, 'item')"
275
- pTooltip
276
- [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
277
- >
278
- <div [class]="cx('itemContent')" [pBind]="getPTOptions(processedItem, index, 'itemContent')" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
279
- <ng-container *ngIf="!itemTemplate">
280
- <a
281
- *ngIf="!getItemProp(processedItem, 'routerLink')"
282
- [attr.href]="getItemProp(processedItem, 'url')"
283
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
284
- [target]="getItemProp(processedItem, 'target')"
285
- [class]="cx('itemLink')"
286
- [attr.tabindex]="-1"
287
- [pBind]="getPTOptions(processedItem, index, 'itemLink')"
288
- pRipple
289
- >
290
- <span
291
- *ngIf="getItemProp(processedItem, 'icon')"
292
- [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
293
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
294
- [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
295
- [attr.aria-hidden]="true"
244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuSub, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: forwardRef(() => ContextMenu) }], target: i0.ɵɵFactoryTarget.Component });
245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: ContextMenuSub, isStandalone: true, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: { visible: "visible", items: "items", itemTemplate: "itemTemplate", root: ["root", "root", booleanAttribute], autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], popup: ["popup", "popup", booleanAttribute], menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: ["level", "level", numberAttribute], focusedItemId: "focusedItemId", activeItemPath: "activeItemPath", motionOptions: "motionOptions", tabindex: ["tabindex", "tabindex", numberAttribute] }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, providers: [ContextMenuStyle, { provide: CONTEXTMENUSUB_INSTANCE, useExisting: ContextMenuSub }, { provide: PARENT_INSTANCE, useExisting: ContextMenuSub }], viewQueries: [{ propertyName: "sublistViewChild", first: true, predicate: ["sublist"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
246
+ @if (render()) {
247
+ <ul
248
+ #sublist
249
+ role="menu"
250
+ [class]="root ? cx('rootList') : cx('submenu')"
251
+ [pBind]="_ptm(root ? 'rootList' : 'submenu')"
252
+ [attr.id]="menuId + '_list'"
253
+ [tabindex]="tabindex"
254
+ [attr.aria-label]="ariaLabel"
255
+ [attr.aria-labelledBy]="ariaLabelledBy"
256
+ [attr.aria-activedescendant]="focusedItemId"
257
+ [attr.aria-orientation]="'vertical'"
258
+ (keydown)="menuKeydown.emit($event)"
259
+ (focus)="menuFocus.emit($event)"
260
+ (blur)="menuBlur.emit($event)"
261
+ [pMotion]="root ? true : visible"
262
+ [pMotionAppear]="true"
263
+ [pMotionName]="'p-anchored-overlay'"
264
+ [pMotionOptions]="motionOptions"
265
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
266
+ (pMotionOnAfterLeave)="onAfterLeave()"
267
+ >
268
+ <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
269
+ <li
270
+ *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
271
+ [attr.id]="getItemId(processedItem)"
272
+ [style]="getItemProp(processedItem, 'style')"
273
+ [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))"
274
+ role="separator"
275
+ [pBind]="_ptm('separator')"
276
+ ></li>
277
+ <li
278
+ #listItem
279
+ *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
280
+ role="menuitem"
281
+ [attr.id]="getItemId(processedItem)"
282
+ [attr.data-p-highlight]="isItemActive(processedItem)"
283
+ [attr.data-p-focused]="isItemFocused(processedItem)"
284
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
285
+ [attr.aria-label]="getItemLabel(processedItem)"
286
+ [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
287
+ [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
288
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
289
+ [attr.aria-level]="level + 1"
290
+ [attr.aria-setsize]="getAriaSetSize()"
291
+ [attr.aria-posinset]="getAriaPosInset(index)"
292
+ [style]="getItemProp(processedItem, 'style')"
293
+ [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
294
+ [pBind]="getPTOptions(processedItem, index, 'item')"
295
+ pTooltip
296
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
297
+ [pTooltipUnstyled]="unstyled()"
298
+ >
299
+ <div [class]="cx('itemContent')" [pBind]="getPTOptions(processedItem, index, 'itemContent')" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
300
+ <ng-container *ngIf="!itemTemplate">
301
+ <a
302
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
303
+ [attr.href]="getItemProp(processedItem, 'url')"
304
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
305
+ [attr.title]="getItemProp(processedItem, 'title')"
306
+ [target]="getItemProp(processedItem, 'target')"
307
+ [class]="cn(cx('itemLink'), getItemProp(processedItem, 'linkClass'))"
308
+ [ngStyle]="getItemProp(processedItem, 'linkStyle')"
296
309
  [attr.tabindex]="-1"
310
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
311
+ pRipple
297
312
  >
298
- </span>
299
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
300
- {{ getItemLabel(processedItem) }}
301
- </span>
302
- <ng-template #htmlLabel> <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span> </ng-template>
303
- <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
304
- <ng-container *ngIf="isItemGroup(processedItem)">
305
- <svg
306
- data-p-icon="angle-right"
307
- *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
308
- [class]="cx('submenuIcon')"
309
- [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
313
+ <span
314
+ *ngIf="getItemProp(processedItem, 'icon')"
315
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'), getItemProp(processedItem, 'iconClass'))"
316
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
317
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
310
318
  [attr.aria-hidden]="true"
311
- />
312
- <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
313
- </ng-container>
314
- </a>
315
- <a
316
- *ngIf="getItemProp(processedItem, 'routerLink')"
317
- [routerLink]="getItemProp(processedItem, 'routerLink')"
318
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
319
- [attr.tabindex]="-1"
320
- [queryParams]="getItemProp(processedItem, 'queryParams')"
321
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinActiveOptions') || { exact: false }"
322
- [target]="getItemProp(processedItem, 'target')"
323
- [class]="cx('itemLink')"
324
- [fragment]="getItemProp(processedItem, 'fragment')"
325
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
326
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
327
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
328
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
329
- [state]="getItemProp(processedItem, 'state')"
330
- [pBind]="getPTOptions(processedItem, index, 'itemLink')"
331
- pRipple
332
- >
333
- <span
334
- *ngIf="getItemProp(processedItem, 'icon')"
335
- [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
336
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
337
- [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
338
- [attr.aria-hidden]="true"
319
+ [attr.tabindex]="-1"
320
+ >
321
+ </span>
322
+ <span
323
+ *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel"
324
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
325
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
326
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
327
+ >
328
+ {{ getItemLabel(processedItem) }}
329
+ </span>
330
+ <ng-template #htmlLabel>
331
+ <span
332
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
333
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
334
+ [innerHTML]="getItemLabel(processedItem)"
335
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
336
+ ></span>
337
+ </ng-template>
338
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
339
+ <ng-container *ngIf="isItemGroup(processedItem)">
340
+ <svg
341
+ data-p-icon="angle-right"
342
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
343
+ [class]="cx('submenuIcon')"
344
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
345
+ [attr.aria-hidden]="true"
346
+ />
347
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
348
+ </ng-container>
349
+ </a>
350
+ <a
351
+ *ngIf="getItemProp(processedItem, 'routerLink')"
352
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
353
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
354
+ [attr.title]="getItemProp(processedItem, 'title')"
339
355
  [attr.tabindex]="-1"
356
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
357
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
358
+ [target]="getItemProp(processedItem, 'target')"
359
+ [class]="cn(cx('itemLink'), getItemProp(processedItem, 'linkClass'))"
360
+ [ngStyle]="getItemProp(processedItem, 'linkStyle')"
361
+ [fragment]="getItemProp(processedItem, 'fragment')"
362
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
363
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
364
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
365
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
366
+ [state]="getItemProp(processedItem, 'state')"
367
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
368
+ pRipple
340
369
  >
341
- </span>
342
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
343
- {{ getItemLabel(processedItem) }}
344
- </span>
345
- <ng-template #htmlLabel>
346
- <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span>
347
- </ng-template>
348
- <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
349
- <ng-container *ngIf="isItemGroup(processedItem)">
350
- <svg
351
- data-p-icon="angle-right"
352
- *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
353
- [class]="cx('submenuIcon')"
354
- [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
370
+ <span
371
+ *ngIf="getItemProp(processedItem, 'icon')"
372
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'), getItemProp(processedItem, 'iconClass'))"
373
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
374
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
355
375
  [attr.aria-hidden]="true"
356
- />
357
- <ng-template *ngTemplateOutlet="!contextMenu.submenuIconTemplate || !contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
358
- </ng-container>
359
- </a>
360
- </ng-container>
361
- <ng-container *ngIf="itemTemplate">
362
- <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
363
- </ng-container>
364
- </div>
376
+ [attr.tabindex]="-1"
377
+ >
378
+ </span>
379
+ <span
380
+ *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel"
381
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
382
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
383
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
384
+ >
385
+ {{ getItemLabel(processedItem) }}
386
+ </span>
387
+ <ng-template #htmlLabel>
388
+ <span
389
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
390
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
391
+ [innerHTML]="getItemLabel(processedItem)"
392
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
393
+ ></span>
394
+ </ng-template>
395
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
396
+ <ng-container *ngIf="isItemGroup(processedItem)">
397
+ <svg
398
+ data-p-icon="angle-right"
399
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
400
+ [class]="cx('submenuIcon')"
401
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
402
+ [attr.aria-hidden]="true"
403
+ />
404
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
405
+ </ng-container>
406
+ </a>
407
+ </ng-container>
408
+ <ng-container *ngIf="itemTemplate">
409
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
410
+ </ng-container>
411
+ </div>
365
412
 
366
- <p-contextmenu-sub
367
- *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
368
- [items]="processedItem.items"
369
- [itemTemplate]="itemTemplate"
370
- [menuId]="menuId"
371
- [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
372
- [activeItemPath]="activeItemPath"
373
- [focusedItemId]="focusedItemId"
374
- [level]="level + 1"
375
- (itemClick)="itemClick.emit($event)"
376
- (itemMouseEnter)="onItemMouseEnter($event)"
377
- [pt]="pt()"
378
- />
379
- </li>
380
- </ng-template>
381
- </ul>
382
- `, isInline: true, dependencies: [{ kind: "component", type: ContextMenuSub, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: ["visible", "items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], 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: 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", "ptTooltip"] }, { kind: "directive", type: i4.Bind, selector: "[pBind]", inputs: ["pBind"] }, { kind: "component", type: AngleRightIcon, selector: "[data-p-icon=\"angle-right\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i5.Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }], animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 })]), transition(':leave', [style$1({ opacity: 0 })])])], encapsulation: i0.ViewEncapsulation.None });
413
+ <p-contextmenu-sub
414
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
415
+ [items]="processedItem.items"
416
+ [itemTemplate]="itemTemplate"
417
+ [menuId]="menuId"
418
+ [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
419
+ [activeItemPath]="activeItemPath"
420
+ [focusedItemId]="focusedItemId"
421
+ [level]="level + 1"
422
+ (itemClick)="itemClick.emit($event)"
423
+ (itemMouseEnter)="onItemMouseEnter($event)"
424
+ [pt]="pt()"
425
+ [motionOptions]="motionOptions"
426
+ [unstyled]="unstyled()"
427
+ />
428
+ </li>
429
+ </ng-template>
430
+ </ul>
431
+ }
432
+ `, isInline: true, dependencies: [{ kind: "component", type: ContextMenuSub, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: ["visible", "items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "motionOptions", "tabindex"], 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: 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", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "directive", type: i4.Bind, selector: "[pBind]", inputs: ["pBind"] }, { kind: "component", type: AngleRightIcon, selector: "[data-p-icon=\"angle-right\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i5.Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "ngmodule", type: MotionModule }, { kind: "directive", type: i6.MotionDirective, selector: "[pMotion]", inputs: ["pMotion", "pMotionName", "pMotionType", "pMotionSafe", "pMotionDisabled", "pMotionAppear", "pMotionEnter", "pMotionLeave", "pMotionDuration", "pMotionHideStrategy", "pMotionEnterFromClass", "pMotionEnterToClass", "pMotionEnterActiveClass", "pMotionLeaveFromClass", "pMotionLeaveToClass", "pMotionLeaveActiveClass", "pMotionOptions"], outputs: ["pMotionOnBeforeEnter", "pMotionOnEnter", "pMotionOnAfterEnter", "pMotionOnEnterCancelled", "pMotionOnBeforeLeave", "pMotionOnLeave", "pMotionOnAfterLeave", "pMotionOnLeaveCancelled"] }], encapsulation: i0.ViewEncapsulation.None });
383
433
  }
384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuSub, decorators: [{
434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuSub, decorators: [{
385
435
  type: Component,
386
436
  args: [{
387
437
  selector: 'p-contextMenuSub, p-contextmenu-sub',
388
438
  standalone: true,
389
- imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleRightIcon, BadgeModule, SharedModule, BindModule],
439
+ imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleRightIcon, BadgeModule, SharedModule, BindModule, MotionModule],
390
440
  template: `
391
- <ul
392
- *ngIf="root ? true : visible"
393
- #sublist
394
- role="menu"
395
- [class]="root ? cx('rootList') : cx('submenu')"
396
- [pBind]="_ptm(root ? 'rootList' : 'submenu')"
397
- [@overlayAnimation]="visible"
398
- (@overlayAnimation.start)="onEnter($event, sublist)"
399
- [attr.id]="menuId + '_list'"
400
- [tabindex]="tabindex"
401
- [attr.aria-label]="ariaLabel"
402
- [attr.aria-labelledBy]="ariaLabelledBy"
403
- [attr.aria-activedescendant]="focusedItemId"
404
- [attr.aria-orientation]="'vertical'"
405
- (keydown)="menuKeydown.emit($event)"
406
- (focus)="menuFocus.emit($event)"
407
- (blur)="menuBlur.emit($event)"
408
- >
409
- <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
410
- <li
411
- *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
412
- [attr.id]="getItemId(processedItem)"
413
- [style]="getItemProp(processedItem, 'style')"
414
- [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))"
415
- role="separator"
416
- [pBind]="_ptm('separator')"
417
- ></li>
418
- <li
419
- #listItem
420
- *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
421
- role="menuitem"
422
- [attr.id]="getItemId(processedItem)"
423
- [attr.data-p-highlight]="isItemActive(processedItem)"
424
- [attr.data-p-focused]="isItemFocused(processedItem)"
425
- [attr.data-p-disabled]="isItemDisabled(processedItem)"
426
- [attr.aria-label]="getItemLabel(processedItem)"
427
- [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
428
- [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
429
- [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
430
- [attr.aria-level]="level + 1"
431
- [attr.aria-setsize]="getAriaSetSize()"
432
- [attr.aria-posinset]="getAriaPosInset(index)"
433
- [style]="getItemProp(processedItem, 'style')"
434
- [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
435
- [pBind]="getPTOptions(processedItem, index, 'item')"
436
- pTooltip
437
- [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
438
- >
439
- <div [class]="cx('itemContent')" [pBind]="getPTOptions(processedItem, index, 'itemContent')" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
440
- <ng-container *ngIf="!itemTemplate">
441
- <a
442
- *ngIf="!getItemProp(processedItem, 'routerLink')"
443
- [attr.href]="getItemProp(processedItem, 'url')"
444
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
445
- [target]="getItemProp(processedItem, 'target')"
446
- [class]="cx('itemLink')"
447
- [attr.tabindex]="-1"
448
- [pBind]="getPTOptions(processedItem, index, 'itemLink')"
449
- pRipple
450
- >
451
- <span
452
- *ngIf="getItemProp(processedItem, 'icon')"
453
- [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
454
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
455
- [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
456
- [attr.aria-hidden]="true"
441
+ @if (render()) {
442
+ <ul
443
+ #sublist
444
+ role="menu"
445
+ [class]="root ? cx('rootList') : cx('submenu')"
446
+ [pBind]="_ptm(root ? 'rootList' : 'submenu')"
447
+ [attr.id]="menuId + '_list'"
448
+ [tabindex]="tabindex"
449
+ [attr.aria-label]="ariaLabel"
450
+ [attr.aria-labelledBy]="ariaLabelledBy"
451
+ [attr.aria-activedescendant]="focusedItemId"
452
+ [attr.aria-orientation]="'vertical'"
453
+ (keydown)="menuKeydown.emit($event)"
454
+ (focus)="menuFocus.emit($event)"
455
+ (blur)="menuBlur.emit($event)"
456
+ [pMotion]="root ? true : visible"
457
+ [pMotionAppear]="true"
458
+ [pMotionName]="'p-anchored-overlay'"
459
+ [pMotionOptions]="motionOptions"
460
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
461
+ (pMotionOnAfterLeave)="onAfterLeave()"
462
+ >
463
+ <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
464
+ <li
465
+ *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
466
+ [attr.id]="getItemId(processedItem)"
467
+ [style]="getItemProp(processedItem, 'style')"
468
+ [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))"
469
+ role="separator"
470
+ [pBind]="_ptm('separator')"
471
+ ></li>
472
+ <li
473
+ #listItem
474
+ *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
475
+ role="menuitem"
476
+ [attr.id]="getItemId(processedItem)"
477
+ [attr.data-p-highlight]="isItemActive(processedItem)"
478
+ [attr.data-p-focused]="isItemFocused(processedItem)"
479
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
480
+ [attr.aria-label]="getItemLabel(processedItem)"
481
+ [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
482
+ [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
483
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
484
+ [attr.aria-level]="level + 1"
485
+ [attr.aria-setsize]="getAriaSetSize()"
486
+ [attr.aria-posinset]="getAriaPosInset(index)"
487
+ [style]="getItemProp(processedItem, 'style')"
488
+ [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
489
+ [pBind]="getPTOptions(processedItem, index, 'item')"
490
+ pTooltip
491
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
492
+ [pTooltipUnstyled]="unstyled()"
493
+ >
494
+ <div [class]="cx('itemContent')" [pBind]="getPTOptions(processedItem, index, 'itemContent')" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
495
+ <ng-container *ngIf="!itemTemplate">
496
+ <a
497
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
498
+ [attr.href]="getItemProp(processedItem, 'url')"
499
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
500
+ [attr.title]="getItemProp(processedItem, 'title')"
501
+ [target]="getItemProp(processedItem, 'target')"
502
+ [class]="cn(cx('itemLink'), getItemProp(processedItem, 'linkClass'))"
503
+ [ngStyle]="getItemProp(processedItem, 'linkStyle')"
457
504
  [attr.tabindex]="-1"
505
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
506
+ pRipple
458
507
  >
459
- </span>
460
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
461
- {{ getItemLabel(processedItem) }}
462
- </span>
463
- <ng-template #htmlLabel> <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span> </ng-template>
464
- <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
465
- <ng-container *ngIf="isItemGroup(processedItem)">
466
- <svg
467
- data-p-icon="angle-right"
468
- *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
469
- [class]="cx('submenuIcon')"
470
- [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
508
+ <span
509
+ *ngIf="getItemProp(processedItem, 'icon')"
510
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'), getItemProp(processedItem, 'iconClass'))"
511
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
512
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
471
513
  [attr.aria-hidden]="true"
472
- />
473
- <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
474
- </ng-container>
475
- </a>
476
- <a
477
- *ngIf="getItemProp(processedItem, 'routerLink')"
478
- [routerLink]="getItemProp(processedItem, 'routerLink')"
479
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
480
- [attr.tabindex]="-1"
481
- [queryParams]="getItemProp(processedItem, 'queryParams')"
482
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinActiveOptions') || { exact: false }"
483
- [target]="getItemProp(processedItem, 'target')"
484
- [class]="cx('itemLink')"
485
- [fragment]="getItemProp(processedItem, 'fragment')"
486
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
487
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
488
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
489
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
490
- [state]="getItemProp(processedItem, 'state')"
491
- [pBind]="getPTOptions(processedItem, index, 'itemLink')"
492
- pRipple
493
- >
494
- <span
495
- *ngIf="getItemProp(processedItem, 'icon')"
496
- [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
497
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
498
- [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
499
- [attr.aria-hidden]="true"
514
+ [attr.tabindex]="-1"
515
+ >
516
+ </span>
517
+ <span
518
+ *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel"
519
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
520
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
521
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
522
+ >
523
+ {{ getItemLabel(processedItem) }}
524
+ </span>
525
+ <ng-template #htmlLabel>
526
+ <span
527
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
528
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
529
+ [innerHTML]="getItemLabel(processedItem)"
530
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
531
+ ></span>
532
+ </ng-template>
533
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
534
+ <ng-container *ngIf="isItemGroup(processedItem)">
535
+ <svg
536
+ data-p-icon="angle-right"
537
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
538
+ [class]="cx('submenuIcon')"
539
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
540
+ [attr.aria-hidden]="true"
541
+ />
542
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
543
+ </ng-container>
544
+ </a>
545
+ <a
546
+ *ngIf="getItemProp(processedItem, 'routerLink')"
547
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
548
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
549
+ [attr.title]="getItemProp(processedItem, 'title')"
500
550
  [attr.tabindex]="-1"
551
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
552
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
553
+ [target]="getItemProp(processedItem, 'target')"
554
+ [class]="cn(cx('itemLink'), getItemProp(processedItem, 'linkClass'))"
555
+ [ngStyle]="getItemProp(processedItem, 'linkStyle')"
556
+ [fragment]="getItemProp(processedItem, 'fragment')"
557
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
558
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
559
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
560
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
561
+ [state]="getItemProp(processedItem, 'state')"
562
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
563
+ pRipple
501
564
  >
502
- </span>
503
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
504
- {{ getItemLabel(processedItem) }}
505
- </span>
506
- <ng-template #htmlLabel>
507
- <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span>
508
- </ng-template>
509
- <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
510
- <ng-container *ngIf="isItemGroup(processedItem)">
511
- <svg
512
- data-p-icon="angle-right"
513
- *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
514
- [class]="cx('submenuIcon')"
515
- [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
565
+ <span
566
+ *ngIf="getItemProp(processedItem, 'icon')"
567
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'), getItemProp(processedItem, 'iconClass'))"
568
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
569
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
516
570
  [attr.aria-hidden]="true"
517
- />
518
- <ng-template *ngTemplateOutlet="!contextMenu.submenuIconTemplate || !contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
519
- </ng-container>
520
- </a>
521
- </ng-container>
522
- <ng-container *ngIf="itemTemplate">
523
- <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
524
- </ng-container>
525
- </div>
571
+ [attr.tabindex]="-1"
572
+ >
573
+ </span>
574
+ <span
575
+ *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel"
576
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
577
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
578
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
579
+ >
580
+ {{ getItemLabel(processedItem) }}
581
+ </span>
582
+ <ng-template #htmlLabel>
583
+ <span
584
+ [class]="cn(cx('itemLabel'), getItemProp(processedItem, 'labelClass'))"
585
+ [ngStyle]="getItemProp(processedItem, 'labelStyle')"
586
+ [innerHTML]="getItemLabel(processedItem)"
587
+ [pBind]="getPTOptions(processedItem, index, 'itemLabel')"
588
+ ></span>
589
+ </ng-template>
590
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
591
+ <ng-container *ngIf="isItemGroup(processedItem)">
592
+ <svg
593
+ data-p-icon="angle-right"
594
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
595
+ [class]="cx('submenuIcon')"
596
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
597
+ [attr.aria-hidden]="true"
598
+ />
599
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
600
+ </ng-container>
601
+ </a>
602
+ </ng-container>
603
+ <ng-container *ngIf="itemTemplate">
604
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
605
+ </ng-container>
606
+ </div>
526
607
 
527
- <p-contextmenu-sub
528
- *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
529
- [items]="processedItem.items"
530
- [itemTemplate]="itemTemplate"
531
- [menuId]="menuId"
532
- [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
533
- [activeItemPath]="activeItemPath"
534
- [focusedItemId]="focusedItemId"
535
- [level]="level + 1"
536
- (itemClick)="itemClick.emit($event)"
537
- (itemMouseEnter)="onItemMouseEnter($event)"
538
- [pt]="pt()"
539
- />
540
- </li>
541
- </ng-template>
542
- </ul>
608
+ <p-contextmenu-sub
609
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
610
+ [items]="processedItem.items"
611
+ [itemTemplate]="itemTemplate"
612
+ [menuId]="menuId"
613
+ [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
614
+ [activeItemPath]="activeItemPath"
615
+ [focusedItemId]="focusedItemId"
616
+ [level]="level + 1"
617
+ (itemClick)="itemClick.emit($event)"
618
+ (itemMouseEnter)="onItemMouseEnter($event)"
619
+ [pt]="pt()"
620
+ [motionOptions]="motionOptions"
621
+ [unstyled]="unstyled()"
622
+ />
623
+ </li>
624
+ </ng-template>
625
+ </ul>
626
+ }
543
627
  `,
544
- animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 })]), transition(':leave', [style$1({ opacity: 0 })])])],
545
628
  encapsulation: ViewEncapsulation.None,
546
629
  providers: [ContextMenuStyle, { provide: CONTEXTMENUSUB_INSTANCE, useExisting: ContextMenuSub }, { provide: PARENT_INSTANCE, useExisting: ContextMenuSub }]
547
630
  }]
@@ -549,8 +632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
549
632
  type: Inject,
550
633
  args: [forwardRef(() => ContextMenu)]
551
634
  }] }], propDecorators: { visible: [{
552
- type: Input,
553
- args: [{ transform: booleanAttribute }]
635
+ type: Input
554
636
  }], items: [{
555
637
  type: Input
556
638
  }], itemTemplate: [{
@@ -580,6 +662,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
580
662
  type: Input
581
663
  }], activeItemPath: [{
582
664
  type: Input
665
+ }], motionOptions: [{
666
+ type: Input
583
667
  }], tabindex: [{
584
668
  type: Input,
585
669
  args: [{ transform: numberAttribute }]
@@ -679,7 +763,18 @@ class ContextMenu extends BaseComponent {
679
763
  * @defaultValue 'self'
680
764
  * @group Props
681
765
  */
682
- appendTo = input(undefined, ...(ngDevMode ? [{ debugName: "appendTo" }] : []));
766
+ appendTo = input(undefined, { ...(ngDevMode ? { debugName: "appendTo" } : {}) });
767
+ /**
768
+ * The motion options.
769
+ * @group Props
770
+ */
771
+ motionOptions = input(undefined, { ...(ngDevMode ? { debugName: "motionOptions" } : {}) });
772
+ computedMotionOptions = computed(() => {
773
+ return {
774
+ ...this.ptm('motion'),
775
+ ...this.motionOptions()
776
+ };
777
+ }, { ...(ngDevMode ? { debugName: "computedMotionOptions" } : {}) });
683
778
  /**
684
779
  * Callback to invoke when overlay menu is shown.
685
780
  * @group Emits
@@ -691,8 +786,8 @@ class ContextMenu extends BaseComponent {
691
786
  */
692
787
  onHide = new EventEmitter();
693
788
  rootmenu;
694
- containerViewChild;
695
789
  container;
790
+ handleSubmenuAfterLeave = null;
696
791
  outsideClickListener;
697
792
  resizeListener;
698
793
  triggerEventListener;
@@ -701,20 +796,22 @@ class ContextMenu extends BaseComponent {
701
796
  touchEndListener;
702
797
  pageX;
703
798
  pageY;
704
- visible = signal(false, ...(ngDevMode ? [{ debugName: "visible" }] : []));
799
+ visible = signal(false, { ...(ngDevMode ? { debugName: "visible" } : {}) });
800
+ render = signal(false, { ...(ngDevMode ? { debugName: "render" } : {}) });
705
801
  focused = false;
706
- activeItemPath = signal([], ...(ngDevMode ? [{ debugName: "activeItemPath" }] : []));
707
- focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null }, ...(ngDevMode ? [{ debugName: "focusedItemInfo" }] : []));
708
- submenuVisible = signal(false, ...(ngDevMode ? [{ debugName: "submenuVisible" }] : []));
709
- $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), ...(ngDevMode ? [{ debugName: "$appendTo" }] : []));
802
+ activeItemPath = signal([], { ...(ngDevMode ? { debugName: "activeItemPath" } : {}) });
803
+ focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null }, { ...(ngDevMode ? { debugName: "focusedItemInfo" } : {}) });
804
+ submenuVisible = signal(false, { ...(ngDevMode ? { debugName: "submenuVisible" } : {}) });
805
+ $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), { ...(ngDevMode ? { debugName: "$appendTo" } : {}) });
710
806
  searchValue = '';
711
807
  searchTimeout;
712
808
  _processedItems;
713
809
  _model;
714
810
  pressTimer;
811
+ hideCallback;
715
812
  matchMediaListener;
716
813
  query;
717
- queryMatches;
814
+ queryMatches = signal(false, { ...(ngDevMode ? { debugName: "queryMatches" } : {}) });
718
815
  _componentStyle = inject(ContextMenuStyle);
719
816
  get visibleItems() {
720
817
  const processedItem = this.activeItemPath().find((p) => p.key === this.focusedItemInfo().parentKey);
@@ -784,7 +881,7 @@ class ContextMenu extends BaseComponent {
784
881
  if (!this.documentClickListener) {
785
882
  const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
786
883
  this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {
787
- if (this.containerViewChild?.nativeElement?.offsetParent && this.isOutsideClicked(event) && !event.ctrlKey && event.button !== 2) {
884
+ if (this.container?.offsetParent && this.isOutsideClicked(event) && !event.ctrlKey && event.button !== 2) {
788
885
  this.hide();
789
886
  }
790
887
  });
@@ -797,12 +894,12 @@ class ContextMenu extends BaseComponent {
797
894
  }
798
895
  }
799
896
  /**
800
- * Defines template option for item.
897
+ * Custom item template.
801
898
  * @group Templates
802
899
  */
803
900
  itemTemplate;
804
901
  /**
805
- * Defines template option for submenuIcon.
902
+ * Custom submenu icon template.
806
903
  * @group Templates
807
904
  */
808
905
  submenuIconTemplate;
@@ -860,9 +957,10 @@ class ContextMenu extends BaseComponent {
860
957
  if (!this.matchMediaListener) {
861
958
  const query = window.matchMedia(`(max-width: ${this.breakpoint})`);
862
959
  this.query = query;
863
- this.queryMatches = query.matches;
960
+ this.queryMatches.set(query.matches);
864
961
  this.matchMediaListener = () => {
865
- this.queryMatches = query.matches;
962
+ this.queryMatches.set(query.matches);
963
+ this.cd.markForCheck();
866
964
  };
867
965
  query.addEventListener('change', this.matchMediaListener);
868
966
  }
@@ -1069,7 +1167,7 @@ class ContextMenu extends BaseComponent {
1069
1167
  }
1070
1168
  this.focusedItemInfo.set({ index, level, parentKey, item: processedItem.item });
1071
1169
  isFocus && focus(this.rootmenu?.sublistViewChild?.nativeElement);
1072
- if (type === 'hover' && this.queryMatches) {
1170
+ if (type === 'hover' && this.queryMatches()) {
1073
1171
  return;
1074
1172
  }
1075
1173
  this.activeItemPath.set(activeItemPath);
@@ -1084,32 +1182,41 @@ class ContextMenu extends BaseComponent {
1084
1182
  this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
1085
1183
  this.searchValue = '';
1086
1184
  }
1087
- onOverlayAnimationStart(event) {
1088
- switch (event.toState) {
1089
- case 'visible':
1090
- this.container = event.element;
1091
- this.position();
1092
- this.moveOnTop();
1093
- this.$attrSelector && this.container?.setAttribute(this.$attrSelector, '');
1094
- this.appendOverlay();
1095
- this.bindGlobalListeners();
1096
- focus(this.rootmenu?.sublistViewChild?.nativeElement);
1097
- break;
1098
- }
1185
+ onBeforeEnter(event) {
1186
+ this.container = event.element;
1187
+ this.appendOverlay();
1188
+ this.moveOnTop();
1189
+ this.position();
1190
+ this.$attrSelector && this.container?.setAttribute(this.$attrSelector, '');
1099
1191
  }
1100
- onOverlayAnimationEnd(event) {
1101
- switch (event.toState) {
1102
- case 'void':
1103
- this.onOverlayHide();
1104
- break;
1105
- }
1192
+ onAfterEnter() {
1193
+ this.bindGlobalListeners();
1194
+ focus(this.rootmenu?.sublistViewChild?.nativeElement);
1195
+ }
1196
+ onAfterLeave() {
1197
+ this.restoreOverlayAppend();
1198
+ this.onOverlayHide();
1199
+ this.handleSubmenuAfterLeave?.();
1200
+ this.render.set(false);
1106
1201
  }
1107
1202
  appendOverlay() {
1108
- DomHandler.appendOverlay(this.container, this.$appendTo() === 'body' ? this.document.body : this.$appendTo(), this.$appendTo());
1203
+ if (this.$appendTo() && this.$appendTo() !== 'self') {
1204
+ if (this.$appendTo() === 'body') {
1205
+ appendChild(this.document.body, this.container);
1206
+ }
1207
+ else {
1208
+ appendChild(this.$appendTo(), this.container);
1209
+ }
1210
+ }
1211
+ }
1212
+ restoreOverlayAppend() {
1213
+ if (this.container && this.$appendTo() !== 'self') {
1214
+ this.el.nativeElement.appendChild(this.container);
1215
+ }
1109
1216
  }
1110
1217
  moveOnTop() {
1111
- if (this.autoZIndex && this.containerViewChild) {
1112
- ZIndexUtils.set('menu', this.containerViewChild.nativeElement, this.baseZIndex + this.config.zIndex.menu);
1218
+ if (this.autoZIndex && this.container) {
1219
+ ZIndexUtils.set('menu', this.container, this.baseZIndex + this.config.zIndex.menu);
1113
1220
  }
1114
1221
  }
1115
1222
  onOverlayHide() {
@@ -1133,6 +1240,7 @@ class ContextMenu extends BaseComponent {
1133
1240
  hide() {
1134
1241
  this.visible.set(false);
1135
1242
  this.onHide.emit();
1243
+ this.hideCallback?.();
1136
1244
  this.activeItemPath.set([]);
1137
1245
  this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
1138
1246
  }
@@ -1147,16 +1255,17 @@ class ContextMenu extends BaseComponent {
1147
1255
  this.pageY = event.pageY;
1148
1256
  this.onShow.emit();
1149
1257
  this.visible() ? this.position() : this.visible.set(true);
1258
+ this.render.set(true);
1150
1259
  event.stopPropagation();
1151
1260
  event.preventDefault();
1152
1261
  }
1153
1262
  position() {
1154
- if (!this.document.scrollingElement || !this.containerViewChild?.nativeElement)
1263
+ if (!this.document.scrollingElement || !this.container)
1155
1264
  return;
1156
1265
  let left = this.pageX + 1;
1157
1266
  let top = this.pageY + 1;
1158
- let width = this.containerViewChild.nativeElement.offsetParent ? this.containerViewChild.nativeElement.offsetWidth : getHiddenElementOuterWidth(this.containerViewChild.nativeElement);
1159
- let height = this.containerViewChild.nativeElement.offsetParent ? this.containerViewChild.nativeElement.offsetHeight : getHiddenElementOuterHeight(this.containerViewChild.nativeElement);
1267
+ let width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);
1268
+ let height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);
1160
1269
  let viewport = getViewport();
1161
1270
  //flip
1162
1271
  if (left + width - this.document.scrollingElement.scrollLeft > viewport.width) {
@@ -1174,8 +1283,8 @@ class ContextMenu extends BaseComponent {
1174
1283
  if (top < this.document.scrollingElement.scrollTop) {
1175
1284
  top = this.document.scrollingElement.scrollTop;
1176
1285
  }
1177
- this.containerViewChild.nativeElement.style.left = left + 'px';
1178
- this.containerViewChild.nativeElement.style.top = top + 'px';
1286
+ this.container.style.left = left + 'px';
1287
+ this.container.style.top = top + 'px';
1179
1288
  }
1180
1289
  searchItems(event, char) {
1181
1290
  this.searchValue = (this.searchValue || '') + char;
@@ -1259,7 +1368,7 @@ class ContextMenu extends BaseComponent {
1259
1368
  }
1260
1369
  }
1261
1370
  isOutsideClicked(event) {
1262
- return !(this.containerViewChild?.nativeElement?.isSameNode(event.target) || this.containerViewChild?.nativeElement?.contains(event.target));
1371
+ return !(this.container?.isSameNode(event.target) || this.container?.contains(event.target));
1263
1372
  }
1264
1373
  unbindResizeListener() {
1265
1374
  if (this.resizeListener) {
@@ -1291,105 +1400,110 @@ class ContextMenu extends BaseComponent {
1291
1400
  this.triggerEventListener = null;
1292
1401
  }
1293
1402
  }
1294
- removeAppendedElements() {
1295
- if (this.$appendTo() && this.containerViewChild) {
1296
- if (this.$appendTo() === 'body') {
1297
- this.renderer.removeChild(this.document.body, this.containerViewChild.nativeElement);
1298
- }
1299
- }
1300
- }
1301
1403
  onDestroy() {
1302
1404
  this.unbindGlobalListeners();
1303
1405
  this.unbindTriggerEventListener();
1304
1406
  this.unbindMatchMediaListener();
1305
- this.removeAppendedElements();
1306
- }
1307
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenu, deps: [{ token: i6.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1308
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.4", type: ContextMenu, isStandalone: true, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: false, isRequired: false, transformFunction: null }, triggerEvent: { classPropertyName: "triggerEvent", publicName: "triggerEvent", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: false, isRequired: false, transformFunction: null }, global: { classPropertyName: "global", publicName: "global", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, style: { classPropertyName: "style", publicName: "style", isSignal: false, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, baseZIndex: { classPropertyName: "baseZIndex", publicName: "baseZIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, breakpoint: { classPropertyName: "breakpoint", publicName: "breakpoint", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, pressDelay: { classPropertyName: "pressDelay", publicName: "pressDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onShow: "onShow", onHide: "onHide" }, providers: [ContextMenuStyle, { provide: CONTEXTMENU_INSTANCE, useExisting: ContextMenu }], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "submenuIconTemplate", first: true, predicate: ["submenuicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "rootmenu", first: true, predicate: ["rootmenu"], descendants: true }, { propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1309
- <div
1310
- #container
1311
- [attr.id]="id"
1312
- [class]="cn(cx('root'), styleClass)"
1313
- [style]="sx('root')"
1314
- [ngStyle]="style"
1315
- [pBind]="ptm('root')"
1316
- [@overlayAnimation]="{ value: 'visible' }"
1317
- (@overlayAnimation.start)="onOverlayAnimationStart($event)"
1318
- (@overlayAnimation.done)="onOverlayAnimationEnd($event)"
1319
- *ngIf="visible()"
1320
- >
1321
- <p-contextmenu-sub
1322
- #rootmenu
1323
- [root]="true"
1324
- [items]="processedItems"
1325
- [itemTemplate]="itemTemplate || _itemTemplate"
1326
- [menuId]="id"
1327
- [tabindex]="!disabled ? tabindex : -1"
1328
- [ariaLabel]="ariaLabel"
1329
- [ariaLabelledBy]="ariaLabelledBy"
1330
- [baseZIndex]="baseZIndex"
1331
- [autoZIndex]="autoZIndex"
1332
- [visible]="submenuVisible()"
1333
- [focusedItemId]="focused ? focusedItemId : undefined"
1334
- [activeItemPath]="activeItemPath()"
1335
- (itemClick)="onItemClick($event)"
1336
- (menuFocus)="onMenuFocus($event)"
1337
- (menuBlur)="onMenuBlur($event)"
1338
- (menuKeydown)="onKeyDown($event)"
1339
- (itemMouseEnter)="onItemMouseEnter($event)"
1340
- [pt]="pt()"
1341
- />
1342
- </div>
1343
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ContextMenuSub, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: ["visible", "items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Bind, selector: "[pBind]", inputs: ["pBind"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }], animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 }), animate('250ms')]), transition(':leave', [animate('.1s linear', style$1({ opacity: 0 }))])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1407
+ this.restoreOverlayAppend();
1408
+ this.onOverlayHide();
1409
+ }
1410
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenu, deps: [{ token: i7.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1411
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: ContextMenu, isStandalone: true, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: false, isRequired: false, transformFunction: null }, triggerEvent: { classPropertyName: "triggerEvent", publicName: "triggerEvent", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: false, isRequired: false, transformFunction: null }, global: { classPropertyName: "global", publicName: "global", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, style: { classPropertyName: "style", publicName: "style", isSignal: false, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, baseZIndex: { classPropertyName: "baseZIndex", publicName: "baseZIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, breakpoint: { classPropertyName: "breakpoint", publicName: "breakpoint", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: false, isRequired: false, transformFunction: null }, pressDelay: { classPropertyName: "pressDelay", publicName: "pressDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, motionOptions: { classPropertyName: "motionOptions", publicName: "motionOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onShow: "onShow", onHide: "onHide" }, providers: [ContextMenuStyle, { provide: CONTEXTMENU_INSTANCE, useExisting: ContextMenu }], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "submenuIconTemplate", first: true, predicate: ["submenuicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "rootmenu", first: true, predicate: ["rootmenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
1412
+ @if (render()) {
1413
+ <div
1414
+ #container
1415
+ [attr.id]="id"
1416
+ [class]="cn(cx('root'), styleClass)"
1417
+ [style]="sx('root')"
1418
+ [ngStyle]="style"
1419
+ [pBind]="ptm('root')"
1420
+ [pMotion]="visible()"
1421
+ [pMotionName]="'p-anchored-overlay'"
1422
+ [pMotionAppear]="true"
1423
+ [pMotionOptions]="computedMotionOptions()"
1424
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
1425
+ (pMotionOnAfterEnter)="onAfterEnter()"
1426
+ (pMotionOnAfterLeave)="onAfterLeave()"
1427
+ >
1428
+ <p-contextmenu-sub
1429
+ #rootmenu
1430
+ [root]="true"
1431
+ [items]="processedItems"
1432
+ [itemTemplate]="itemTemplate || _itemTemplate"
1433
+ [menuId]="id"
1434
+ [ariaLabel]="ariaLabel"
1435
+ [ariaLabelledBy]="ariaLabelledBy"
1436
+ [baseZIndex]="baseZIndex"
1437
+ [autoZIndex]="autoZIndex"
1438
+ [visible]="submenuVisible()"
1439
+ [focusedItemId]="focused ? focusedItemId : undefined"
1440
+ [activeItemPath]="activeItemPath()"
1441
+ (itemClick)="onItemClick($event)"
1442
+ (menuFocus)="onMenuFocus($event)"
1443
+ (menuBlur)="onMenuBlur($event)"
1444
+ (menuKeydown)="onKeyDown($event)"
1445
+ (itemMouseEnter)="onItemMouseEnter($event)"
1446
+ [pt]="pt()"
1447
+ [unstyled]="unstyled()"
1448
+ [motionOptions]="computedMotionOptions()"
1449
+ />
1450
+ </div>
1451
+ }
1452
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ContextMenuSub, selector: "p-contextMenuSub, p-contextmenu-sub", inputs: ["visible", "items", "itemTemplate", "root", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "motionOptions", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Bind, selector: "[pBind]", inputs: ["pBind"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "ngmodule", type: MotionModule }, { kind: "directive", type: i6.MotionDirective, selector: "[pMotion]", inputs: ["pMotion", "pMotionName", "pMotionType", "pMotionSafe", "pMotionDisabled", "pMotionAppear", "pMotionEnter", "pMotionLeave", "pMotionDuration", "pMotionHideStrategy", "pMotionEnterFromClass", "pMotionEnterToClass", "pMotionEnterActiveClass", "pMotionLeaveFromClass", "pMotionLeaveToClass", "pMotionLeaveActiveClass", "pMotionOptions"], outputs: ["pMotionOnBeforeEnter", "pMotionOnEnter", "pMotionOnAfterEnter", "pMotionOnEnterCancelled", "pMotionOnBeforeLeave", "pMotionOnLeave", "pMotionOnAfterLeave", "pMotionOnLeaveCancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1344
1453
  }
1345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenu, decorators: [{
1454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenu, decorators: [{
1346
1455
  type: Component,
1347
1456
  args: [{
1348
1457
  selector: 'p-contextMenu, p-contextmenu, p-context-menu',
1349
1458
  standalone: true,
1350
- imports: [CommonModule, ContextMenuSub, RouterModule, TooltipModule, BadgeModule, SharedModule, BindModule],
1459
+ imports: [CommonModule, ContextMenuSub, RouterModule, TooltipModule, BadgeModule, SharedModule, BindModule, MotionModule],
1351
1460
  template: `
1352
- <div
1353
- #container
1354
- [attr.id]="id"
1355
- [class]="cn(cx('root'), styleClass)"
1356
- [style]="sx('root')"
1357
- [ngStyle]="style"
1358
- [pBind]="ptm('root')"
1359
- [@overlayAnimation]="{ value: 'visible' }"
1360
- (@overlayAnimation.start)="onOverlayAnimationStart($event)"
1361
- (@overlayAnimation.done)="onOverlayAnimationEnd($event)"
1362
- *ngIf="visible()"
1363
- >
1364
- <p-contextmenu-sub
1365
- #rootmenu
1366
- [root]="true"
1367
- [items]="processedItems"
1368
- [itemTemplate]="itemTemplate || _itemTemplate"
1369
- [menuId]="id"
1370
- [tabindex]="!disabled ? tabindex : -1"
1371
- [ariaLabel]="ariaLabel"
1372
- [ariaLabelledBy]="ariaLabelledBy"
1373
- [baseZIndex]="baseZIndex"
1374
- [autoZIndex]="autoZIndex"
1375
- [visible]="submenuVisible()"
1376
- [focusedItemId]="focused ? focusedItemId : undefined"
1377
- [activeItemPath]="activeItemPath()"
1378
- (itemClick)="onItemClick($event)"
1379
- (menuFocus)="onMenuFocus($event)"
1380
- (menuBlur)="onMenuBlur($event)"
1381
- (menuKeydown)="onKeyDown($event)"
1382
- (itemMouseEnter)="onItemMouseEnter($event)"
1383
- [pt]="pt()"
1384
- />
1385
- </div>
1461
+ @if (render()) {
1462
+ <div
1463
+ #container
1464
+ [attr.id]="id"
1465
+ [class]="cn(cx('root'), styleClass)"
1466
+ [style]="sx('root')"
1467
+ [ngStyle]="style"
1468
+ [pBind]="ptm('root')"
1469
+ [pMotion]="visible()"
1470
+ [pMotionName]="'p-anchored-overlay'"
1471
+ [pMotionAppear]="true"
1472
+ [pMotionOptions]="computedMotionOptions()"
1473
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
1474
+ (pMotionOnAfterEnter)="onAfterEnter()"
1475
+ (pMotionOnAfterLeave)="onAfterLeave()"
1476
+ >
1477
+ <p-contextmenu-sub
1478
+ #rootmenu
1479
+ [root]="true"
1480
+ [items]="processedItems"
1481
+ [itemTemplate]="itemTemplate || _itemTemplate"
1482
+ [menuId]="id"
1483
+ [ariaLabel]="ariaLabel"
1484
+ [ariaLabelledBy]="ariaLabelledBy"
1485
+ [baseZIndex]="baseZIndex"
1486
+ [autoZIndex]="autoZIndex"
1487
+ [visible]="submenuVisible()"
1488
+ [focusedItemId]="focused ? focusedItemId : undefined"
1489
+ [activeItemPath]="activeItemPath()"
1490
+ (itemClick)="onItemClick($event)"
1491
+ (menuFocus)="onMenuFocus($event)"
1492
+ (menuBlur)="onMenuBlur($event)"
1493
+ (menuKeydown)="onKeyDown($event)"
1494
+ (itemMouseEnter)="onItemMouseEnter($event)"
1495
+ [pt]="pt()"
1496
+ [unstyled]="unstyled()"
1497
+ [motionOptions]="computedMotionOptions()"
1498
+ />
1499
+ </div>
1500
+ }
1386
1501
  `,
1387
- animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 }), animate('250ms')]), transition(':leave', [animate('.1s linear', style$1({ opacity: 0 }))])])],
1388
1502
  changeDetection: ChangeDetectionStrategy.OnPush,
1389
1503
  encapsulation: ViewEncapsulation.None,
1390
1504
  providers: [ContextMenuStyle, { provide: CONTEXTMENU_INSTANCE, useExisting: ContextMenu }]
1391
1505
  }]
1392
- }], ctorParameters: () => [{ type: i6.OverlayService }], propDecorators: { model: [{
1506
+ }], ctorParameters: () => [{ type: i7.OverlayService }], propDecorators: { model: [{
1393
1507
  type: Input
1394
1508
  }], triggerEvent: [{
1395
1509
  type: Input
@@ -1419,16 +1533,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1419
1533
  }], pressDelay: [{
1420
1534
  type: Input,
1421
1535
  args: [{ transform: numberAttribute }]
1422
- }], onShow: [{
1536
+ }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onShow: [{
1423
1537
  type: Output
1424
1538
  }], onHide: [{
1425
1539
  type: Output
1426
1540
  }], rootmenu: [{
1427
1541
  type: ViewChild,
1428
1542
  args: ['rootmenu']
1429
- }], containerViewChild: [{
1430
- type: ViewChild,
1431
- args: ['container']
1432
1543
  }], itemTemplate: [{
1433
1544
  type: ContentChild,
1434
1545
  args: ['item', { descendants: false }]
@@ -1440,11 +1551,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1440
1551
  args: [PrimeTemplate]
1441
1552
  }] } });
1442
1553
  class ContextMenuModule {
1443
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1444
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule], exports: [ContextMenu, SharedModule] });
1445
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule, SharedModule] });
1554
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1555
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule], exports: [ContextMenu, SharedModule] });
1556
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule, SharedModule] });
1446
1557
  }
1447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuModule, decorators: [{
1558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ContextMenuModule, decorators: [{
1448
1559
  type: NgModule,
1449
1560
  args: [{
1450
1561
  imports: [ContextMenu, SharedModule],