primeng 20.3.0 → 21.0.0-beta.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 (537) hide show
  1. package/fesm2022/primeng-accordion.mjs +88 -99
  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 +95 -41
  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 +24 -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 +49 -17
  16. package/fesm2022/primeng-badge.mjs.map +1 -1
  17. package/fesm2022/primeng-base.mjs +3 -3
  18. package/fesm2022/primeng-basecomponent.mjs +17 -14
  19. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  20. package/fesm2022/primeng-baseeditableholder.mjs +4 -4
  21. package/fesm2022/primeng-baseinput.mjs +4 -4
  22. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  23. package/fesm2022/primeng-bind.mjs +8 -8
  24. package/fesm2022/primeng-bind.mjs.map +1 -1
  25. package/fesm2022/primeng-blockui.mjs +44 -24
  26. package/fesm2022/primeng-blockui.mjs.map +1 -1
  27. package/fesm2022/primeng-breadcrumb.mjs +15 -13
  28. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  29. package/fesm2022/primeng-button.mjs +198 -79
  30. package/fesm2022/primeng-button.mjs.map +1 -1
  31. package/fesm2022/primeng-buttongroup.mjs +10 -10
  32. package/fesm2022/primeng-card.mjs +10 -10
  33. package/fesm2022/primeng-card.mjs.map +1 -1
  34. package/fesm2022/primeng-carousel.mjs +18 -12
  35. package/fesm2022/primeng-carousel.mjs.map +1 -1
  36. package/fesm2022/primeng-cascadeselect.mjs +34 -25
  37. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  38. package/fesm2022/primeng-chart.mjs +10 -10
  39. package/fesm2022/primeng-chart.mjs.map +1 -1
  40. package/fesm2022/primeng-checkbox.mjs +32 -22
  41. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  42. package/fesm2022/primeng-chip.mjs +24 -12
  43. package/fesm2022/primeng-chip.mjs.map +1 -1
  44. package/fesm2022/primeng-classnames.mjs +8 -8
  45. package/fesm2022/primeng-classnames.mjs.map +1 -1
  46. package/fesm2022/primeng-colorpicker.mjs +118 -187
  47. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  48. package/fesm2022/primeng-config.mjs +6 -12
  49. package/fesm2022/primeng-config.mjs.map +1 -1
  50. package/fesm2022/primeng-confirmdialog.mjs +28 -56
  51. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  52. package/fesm2022/primeng-confirmpopup.mjs +242 -219
  53. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  54. package/fesm2022/primeng-contextmenu.mjs +493 -433
  55. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  56. package/fesm2022/primeng-dataview.mjs +14 -10
  57. package/fesm2022/primeng-dataview.mjs.map +1 -1
  58. package/fesm2022/primeng-datepicker.mjs +808 -858
  59. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  60. package/fesm2022/primeng-dialog.mjs +352 -304
  61. package/fesm2022/primeng-dialog.mjs.map +1 -1
  62. package/fesm2022/primeng-divider.mjs +19 -11
  63. package/fesm2022/primeng-divider.mjs.map +1 -1
  64. package/fesm2022/primeng-dock.mjs +16 -13
  65. package/fesm2022/primeng-dock.mjs.map +1 -1
  66. package/fesm2022/primeng-dragdrop.mjs +10 -10
  67. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  68. package/fesm2022/primeng-drawer.mjs +272 -256
  69. package/fesm2022/primeng-drawer.mjs.map +1 -1
  70. package/fesm2022/primeng-dynamicdialog.mjs +34 -19
  71. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  72. package/fesm2022/primeng-editor.mjs +12 -12
  73. package/fesm2022/primeng-editor.mjs.map +1 -1
  74. package/fesm2022/primeng-fieldset.mjs +104 -86
  75. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  76. package/fesm2022/primeng-fileupload.mjs +59 -52
  77. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  78. package/fesm2022/primeng-floatlabel.mjs +10 -10
  79. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  80. package/fesm2022/primeng-fluid.mjs +10 -10
  81. package/fesm2022/primeng-focustrap.mjs +7 -7
  82. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  83. package/fesm2022/primeng-galleria.mjs +208 -131
  84. package/fesm2022/primeng-galleria.mjs.map +1 -1
  85. package/fesm2022/primeng-iconfield.mjs +10 -10
  86. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  87. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  88. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  89. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  90. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  91. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  92. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  93. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  94. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  95. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  96. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  97. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  98. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  99. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  100. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  101. package/fesm2022/primeng-icons-ban.mjs +3 -3
  102. package/fesm2022/primeng-icons-bars.mjs +3 -3
  103. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  104. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-blank.mjs +3 -3
  106. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  107. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  108. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  109. package/fesm2022/primeng-icons-check.mjs +3 -3
  110. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  111. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  112. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  113. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  114. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  115. package/fesm2022/primeng-icons-eye.mjs +3 -3
  116. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  117. package/fesm2022/primeng-icons-filter.mjs +3 -3
  118. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  119. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  120. package/fesm2022/primeng-icons-home.mjs +3 -3
  121. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  122. package/fesm2022/primeng-icons-minus.mjs +3 -3
  123. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  124. package/fesm2022/primeng-icons-plus.mjs +3 -3
  125. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  126. package/fesm2022/primeng-icons-search.mjs +3 -3
  127. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  128. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  129. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  130. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  131. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  132. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  133. package/fesm2022/primeng-icons-star.mjs +3 -3
  134. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  135. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  136. package/fesm2022/primeng-icons-times.mjs +3 -3
  137. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  138. package/fesm2022/primeng-icons-trash.mjs +3 -3
  139. package/fesm2022/primeng-icons-undo.mjs +3 -3
  140. package/fesm2022/primeng-icons-upload.mjs +3 -3
  141. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  142. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  143. package/fesm2022/primeng-iftalabel.mjs +10 -10
  144. package/fesm2022/primeng-image.mjs +215 -172
  145. package/fesm2022/primeng-image.mjs.map +1 -1
  146. package/fesm2022/primeng-imagecompare.mjs +10 -10
  147. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  148. package/fesm2022/primeng-inplace.mjs +19 -19
  149. package/fesm2022/primeng-inplace.mjs.map +1 -1
  150. package/fesm2022/primeng-inputgroup.mjs +10 -10
  151. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  152. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  153. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  154. package/fesm2022/primeng-inputicon.mjs +10 -10
  155. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  156. package/fesm2022/primeng-inputmask.mjs +13 -11
  157. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  158. package/fesm2022/primeng-inputnumber.mjs +39 -14
  159. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  160. package/fesm2022/primeng-inputotp.mjs +16 -12
  161. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  162. package/fesm2022/primeng-inputtext.mjs +46 -15
  163. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  164. package/fesm2022/primeng-keyfilter.mjs +7 -7
  165. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  166. package/fesm2022/primeng-knob.mjs +10 -10
  167. package/fesm2022/primeng-knob.mjs.map +1 -1
  168. package/fesm2022/primeng-listbox.mjs +35 -19
  169. package/fesm2022/primeng-listbox.mjs.map +1 -1
  170. package/fesm2022/primeng-megamenu.mjs +24 -18
  171. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  172. package/fesm2022/primeng-menu.mjs +265 -254
  173. package/fesm2022/primeng-menu.mjs.map +1 -1
  174. package/fesm2022/primeng-menubar.mjs +53 -23
  175. package/fesm2022/primeng-menubar.mjs.map +1 -1
  176. package/fesm2022/primeng-message.mjs +118 -144
  177. package/fesm2022/primeng-message.mjs.map +1 -1
  178. package/fesm2022/primeng-metergroup.mjs +78 -25
  179. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  180. package/fesm2022/primeng-motion.mjs +660 -0
  181. package/fesm2022/primeng-motion.mjs.map +1 -0
  182. package/fesm2022/primeng-multiselect.mjs +113 -62
  183. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  184. package/fesm2022/primeng-orderlist.mjs +65 -19
  185. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  186. package/fesm2022/primeng-organizationchart.mjs +25 -27
  187. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  188. package/fesm2022/primeng-overlay.mjs +201 -110
  189. package/fesm2022/primeng-overlay.mjs.map +1 -1
  190. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  191. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  192. package/fesm2022/primeng-paginator.mjs +18 -14
  193. package/fesm2022/primeng-paginator.mjs.map +1 -1
  194. package/fesm2022/primeng-panel.mjs +70 -127
  195. package/fesm2022/primeng-panel.mjs.map +1 -1
  196. package/fesm2022/primeng-panelmenu.mjs +156 -170
  197. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  198. package/fesm2022/primeng-password.mjs +151 -178
  199. package/fesm2022/primeng-password.mjs.map +1 -1
  200. package/fesm2022/primeng-picklist.mjs +119 -95
  201. package/fesm2022/primeng-picklist.mjs.map +1 -1
  202. package/fesm2022/primeng-popover.mjs +149 -246
  203. package/fesm2022/primeng-popover.mjs.map +1 -1
  204. package/fesm2022/primeng-progressbar.mjs +25 -17
  205. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  206. package/fesm2022/primeng-progressspinner.mjs +10 -10
  207. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  208. package/fesm2022/primeng-radiobutton.mjs +27 -15
  209. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  210. package/fesm2022/primeng-rating.mjs +18 -11
  211. package/fesm2022/primeng-rating.mjs.map +1 -1
  212. package/fesm2022/primeng-ripple.mjs +22 -15
  213. package/fesm2022/primeng-ripple.mjs.map +1 -1
  214. package/fesm2022/primeng-scroller.mjs +13 -12
  215. package/fesm2022/primeng-scroller.mjs.map +1 -1
  216. package/fesm2022/primeng-scrollpanel.mjs +25 -21
  217. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  218. package/fesm2022/primeng-scrolltop.mjs +104 -109
  219. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  220. package/fesm2022/primeng-select.mjs +104 -55
  221. package/fesm2022/primeng-select.mjs.map +1 -1
  222. package/fesm2022/primeng-selectbutton.mjs +20 -12
  223. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  224. package/fesm2022/primeng-skeleton.mjs +23 -15
  225. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  226. package/fesm2022/primeng-slider.mjs +50 -25
  227. package/fesm2022/primeng-slider.mjs.map +1 -1
  228. package/fesm2022/primeng-speeddial.mjs +21 -17
  229. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  230. package/fesm2022/primeng-splitbutton.mjs +52 -28
  231. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  232. package/fesm2022/primeng-splitter.mjs +25 -16
  233. package/fesm2022/primeng-splitter.mjs.map +1 -1
  234. package/fesm2022/primeng-stepper.mjs +109 -125
  235. package/fesm2022/primeng-stepper.mjs.map +1 -1
  236. package/fesm2022/primeng-steps.mjs +13 -11
  237. package/fesm2022/primeng-steps.mjs.map +1 -1
  238. package/fesm2022/primeng-styleclass.mjs +8 -8
  239. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  240. package/fesm2022/primeng-table.mjs +656 -527
  241. package/fesm2022/primeng-table.mjs.map +1 -1
  242. package/fesm2022/primeng-tabs.mjs +37 -37
  243. package/fesm2022/primeng-tabs.mjs.map +1 -1
  244. package/fesm2022/primeng-tag.mjs +18 -11
  245. package/fesm2022/primeng-tag.mjs.map +1 -1
  246. package/fesm2022/primeng-terminal.mjs +14 -15
  247. package/fesm2022/primeng-terminal.mjs.map +1 -1
  248. package/fesm2022/primeng-textarea.mjs +35 -13
  249. package/fesm2022/primeng-textarea.mjs.map +1 -1
  250. package/fesm2022/primeng-tieredmenu.mjs +142 -156
  251. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  252. package/fesm2022/primeng-timeline.mjs +30 -23
  253. package/fesm2022/primeng-timeline.mjs.map +1 -1
  254. package/fesm2022/primeng-toast.mjs +150 -128
  255. package/fesm2022/primeng-toast.mjs.map +1 -1
  256. package/fesm2022/primeng-togglebutton.mjs +23 -13
  257. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  258. package/fesm2022/primeng-toggleswitch.mjs +25 -16
  259. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  260. package/fesm2022/primeng-toolbar.mjs +10 -10
  261. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  262. package/fesm2022/primeng-tooltip.mjs +37 -14
  263. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  264. package/fesm2022/primeng-tree.mjs +54 -26
  265. package/fesm2022/primeng-tree.mjs.map +1 -1
  266. package/fesm2022/primeng-treeselect.mjs +44 -36
  267. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  268. package/fesm2022/primeng-treetable.mjs +136 -99
  269. package/fesm2022/primeng-treetable.mjs.map +1 -1
  270. package/fesm2022/primeng-types-motion.mjs +4 -0
  271. package/fesm2022/primeng-types-motion.mjs.map +1 -0
  272. package/fesm2022/primeng-usestyle.mjs +3 -3
  273. package/package.json +653 -645
  274. package/{accordion/index.d.ts → types/primeng-accordion.d.ts} +37 -26
  275. package/{api/index.d.ts → types/primeng-api.d.ts} +7 -1
  276. package/{autocomplete/index.d.ts → types/primeng-autocomplete.d.ts} +13 -3
  277. package/{avatar/index.d.ts → types/primeng-avatar.d.ts} +1 -0
  278. package/{badge/index.d.ts → types/primeng-badge.d.ts} +36 -17
  279. package/{basecomponent/index.d.ts → types/primeng-basecomponent.d.ts} +6 -5
  280. package/{bind/index.d.ts → types/primeng-bind.d.ts} +2 -2
  281. package/{button/index.d.ts → types/primeng-button.d.ts} +80 -31
  282. package/{cascadeselect/index.d.ts → types/primeng-cascadeselect.d.ts} +8 -2
  283. package/{checkbox/index.d.ts → types/primeng-checkbox.d.ts} +1 -0
  284. package/{chip/index.d.ts → types/primeng-chip.d.ts} +8 -0
  285. package/{classnames/index.d.ts → types/primeng-classnames.d.ts} +1 -1
  286. package/{colorpicker/index.d.ts → types/primeng-colorpicker.d.ts} +28 -29
  287. package/{config/index.d.ts → types/primeng-config.d.ts} +0 -6
  288. package/{confirmdialog/index.d.ts → types/primeng-confirmdialog.d.ts} +7 -8
  289. package/{confirmpopup/index.d.ts → types/primeng-confirmpopup.d.ts} +39 -17
  290. package/{contextmenu/index.d.ts → types/primeng-contextmenu.d.ts} +38 -25
  291. package/{datepicker/index.d.ts → types/primeng-datepicker.d.ts} +19 -8
  292. package/{dialog/index.d.ts → types/primeng-dialog.d.ts} +36 -19
  293. package/{divider/index.d.ts → types/primeng-divider.d.ts} +1 -0
  294. package/{drawer/index.d.ts → types/primeng-drawer.d.ts} +36 -22
  295. package/{dynamicdialog/index.d.ts → types/primeng-dynamicdialog.d.ts} +14 -2
  296. package/{fieldset/index.d.ts → types/primeng-fieldset.d.ts} +31 -12
  297. package/{galleria/index.d.ts → types/primeng-galleria.d.ts} +26 -6
  298. package/{image/index.d.ts → types/primeng-image.d.ts} +44 -15
  299. package/{inputnumber/index.d.ts → types/primeng-inputnumber.d.ts} +1 -0
  300. package/types/primeng-inputtext.d.ts +116 -0
  301. package/{listbox/index.d.ts → types/primeng-listbox.d.ts} +2 -0
  302. package/{menu/index.d.ts → types/primeng-menu.d.ts} +14 -7
  303. package/{message/index.d.ts → types/primeng-message.d.ts} +13 -5
  304. package/{metergroup/index.d.ts → types/primeng-metergroup.d.ts} +2 -0
  305. package/types/primeng-motion.d.ts +396 -0
  306. package/{multiselect/index.d.ts → types/primeng-multiselect.d.ts} +13 -3
  307. package/{overlay/index.d.ts → types/primeng-overlay.d.ts} +80 -15
  308. package/{panel/index.d.ts → types/primeng-panel.d.ts} +19 -6
  309. package/{panelmenu/index.d.ts → types/primeng-panelmenu.d.ts} +14 -19
  310. package/{password/index.d.ts → types/primeng-password.d.ts} +33 -14
  311. package/{picklist/index.d.ts → types/primeng-picklist.d.ts} +6 -4
  312. package/{popover/index.d.ts → types/primeng-popover.d.ts} +27 -11
  313. package/{progressbar/index.d.ts → types/primeng-progressbar.d.ts} +3 -1
  314. package/{radiobutton/index.d.ts → types/primeng-radiobutton.d.ts} +1 -0
  315. package/{rating/index.d.ts → types/primeng-rating.d.ts} +1 -0
  316. package/{scrolltop/index.d.ts → types/primeng-scrolltop.d.ts} +15 -5
  317. package/{select/index.d.ts → types/primeng-select.d.ts} +13 -3
  318. package/{selectbutton/index.d.ts → types/primeng-selectbutton.d.ts} +1 -0
  319. package/{skeleton/index.d.ts → types/primeng-skeleton.d.ts} +1 -0
  320. package/{slider/index.d.ts → types/primeng-slider.d.ts} +1 -0
  321. package/{speeddial/index.d.ts → types/primeng-speeddial.d.ts} +2 -2
  322. package/{splitbutton/index.d.ts → types/primeng-splitbutton.d.ts} +17 -6
  323. package/{splitter/index.d.ts → types/primeng-splitter.d.ts} +1 -0
  324. package/{stepper/index.d.ts → types/primeng-stepper.d.ts} +12 -7
  325. package/{table/index.d.ts → types/primeng-table.d.ts} +50 -10
  326. package/{tag/index.d.ts → types/primeng-tag.d.ts} +1 -0
  327. package/{textarea/index.d.ts → types/primeng-textarea.d.ts} +14 -1
  328. package/{tieredmenu/index.d.ts → types/primeng-tieredmenu.d.ts} +14 -8
  329. package/{timeline/index.d.ts → types/primeng-timeline.d.ts} +1 -0
  330. package/{toast/index.d.ts → types/primeng-toast.d.ts} +28 -5
  331. package/{togglebutton/index.d.ts → types/primeng-togglebutton.d.ts} +1 -0
  332. package/{toggleswitch/index.d.ts → types/primeng-toggleswitch.d.ts} +1 -0
  333. package/{tooltip/index.d.ts → types/primeng-tooltip.d.ts} +21 -3
  334. package/{tree/index.d.ts → types/primeng-tree.d.ts} +2 -0
  335. package/{treeselect/index.d.ts → types/primeng-treeselect.d.ts} +22 -17
  336. package/{treetable/index.d.ts → types/primeng-treetable.d.ts} +2 -0
  337. package/types/{accordion/index.d.ts → primeng-types-accordion.d.ts} +9 -0
  338. package/types/{autocomplete/index.d.ts → primeng-types-autocomplete.d.ts} +1 -1
  339. package/types/{checkbox/index.d.ts → primeng-types-checkbox.d.ts} +18 -1
  340. package/types/{colorpicker/index.d.ts → primeng-types-colorpicker.d.ts} +5 -0
  341. package/types/{confirmpopup/index.d.ts → primeng-types-confirmpopup.d.ts} +5 -0
  342. package/types/{contextmenu/index.d.ts → primeng-types-contextmenu.d.ts} +5 -0
  343. package/types/{datepicker/index.d.ts → primeng-types-datepicker.d.ts} +5 -0
  344. package/types/{dialog/index.d.ts → primeng-types-dialog.d.ts} +5 -0
  345. package/types/{drawer/index.d.ts → primeng-types-drawer.d.ts} +5 -0
  346. package/types/{fieldset/index.d.ts → primeng-types-fieldset.d.ts} +9 -0
  347. package/types/{galleria/index.d.ts → primeng-types-galleria.d.ts} +5 -0
  348. package/types/{image/index.d.ts → primeng-types-image.d.ts} +5 -0
  349. package/types/{menu/index.d.ts → primeng-types-menu.d.ts} +5 -0
  350. package/types/{message/index.d.ts → primeng-types-message.d.ts} +5 -0
  351. package/types/{metergroup/index.d.ts → primeng-types-metergroup.d.ts} +27 -4
  352. package/types/primeng-types-motion.d.ts +26 -0
  353. package/types/{multiselect/index.d.ts → primeng-types-multiselect.d.ts} +8 -1
  354. package/types/{overlay/index.d.ts → primeng-types-overlay.d.ts} +5 -0
  355. package/types/{panel/index.d.ts → primeng-types-panel.d.ts} +9 -0
  356. package/types/{panelmenu/index.d.ts → primeng-types-panelmenu.d.ts} +9 -0
  357. package/types/{password/index.d.ts → primeng-types-password.d.ts} +11 -0
  358. package/types/{popover/index.d.ts → primeng-types-popover.d.ts} +5 -0
  359. package/types/{scrolltop/index.d.ts → primeng-types-scrolltop.d.ts} +5 -0
  360. package/types/{stepper/index.d.ts → primeng-types-stepper.d.ts} +9 -0
  361. package/types/{table/index.d.ts → primeng-types-table.d.ts} +20 -11
  362. package/types/{tieredmenu/index.d.ts → primeng-types-tieredmenu.d.ts} +5 -0
  363. package/types/{toast/index.d.ts → primeng-types-toast.d.ts} +5 -0
  364. package/inputtext/index.d.ts +0 -97
  365. /package/{animateonscroll/index.d.ts → types/primeng-animateonscroll.d.ts} +0 -0
  366. /package/{autofocus/index.d.ts → types/primeng-autofocus.d.ts} +0 -0
  367. /package/{avatargroup/index.d.ts → types/primeng-avatargroup.d.ts} +0 -0
  368. /package/{base/index.d.ts → types/primeng-base.d.ts} +0 -0
  369. /package/{baseeditableholder/index.d.ts → types/primeng-baseeditableholder.d.ts} +0 -0
  370. /package/{baseinput/index.d.ts → types/primeng-baseinput.d.ts} +0 -0
  371. /package/{basemodelholder/index.d.ts → types/primeng-basemodelholder.d.ts} +0 -0
  372. /package/{blockui/index.d.ts → types/primeng-blockui.d.ts} +0 -0
  373. /package/{breadcrumb/index.d.ts → types/primeng-breadcrumb.d.ts} +0 -0
  374. /package/{buttongroup/index.d.ts → types/primeng-buttongroup.d.ts} +0 -0
  375. /package/{card/index.d.ts → types/primeng-card.d.ts} +0 -0
  376. /package/{carousel/index.d.ts → types/primeng-carousel.d.ts} +0 -0
  377. /package/{chart/index.d.ts → types/primeng-chart.d.ts} +0 -0
  378. /package/{dataview/index.d.ts → types/primeng-dataview.d.ts} +0 -0
  379. /package/{dock/index.d.ts → types/primeng-dock.d.ts} +0 -0
  380. /package/{dom/index.d.ts → types/primeng-dom.d.ts} +0 -0
  381. /package/{dragdrop/index.d.ts → types/primeng-dragdrop.d.ts} +0 -0
  382. /package/{editor/index.d.ts → types/primeng-editor.d.ts} +0 -0
  383. /package/{fileupload/index.d.ts → types/primeng-fileupload.d.ts} +0 -0
  384. /package/{floatlabel/index.d.ts → types/primeng-floatlabel.d.ts} +0 -0
  385. /package/{fluid/index.d.ts → types/primeng-fluid.d.ts} +0 -0
  386. /package/{focustrap/index.d.ts → types/primeng-focustrap.d.ts} +0 -0
  387. /package/{iconfield/index.d.ts → types/primeng-iconfield.d.ts} +0 -0
  388. /package/{icons/angledoubledown/index.d.ts → types/primeng-icons-angledoubledown.d.ts} +0 -0
  389. /package/{icons/angledoubleleft/index.d.ts → types/primeng-icons-angledoubleleft.d.ts} +0 -0
  390. /package/{icons/angledoubleright/index.d.ts → types/primeng-icons-angledoubleright.d.ts} +0 -0
  391. /package/{icons/angledoubleup/index.d.ts → types/primeng-icons-angledoubleup.d.ts} +0 -0
  392. /package/{icons/angledown/index.d.ts → types/primeng-icons-angledown.d.ts} +0 -0
  393. /package/{icons/angleleft/index.d.ts → types/primeng-icons-angleleft.d.ts} +0 -0
  394. /package/{icons/angleright/index.d.ts → types/primeng-icons-angleright.d.ts} +0 -0
  395. /package/{icons/angleup/index.d.ts → types/primeng-icons-angleup.d.ts} +0 -0
  396. /package/{icons/arrowdown/index.d.ts → types/primeng-icons-arrowdown.d.ts} +0 -0
  397. /package/{icons/arrowdownleft/index.d.ts → types/primeng-icons-arrowdownleft.d.ts} +0 -0
  398. /package/{icons/arrowdownright/index.d.ts → types/primeng-icons-arrowdownright.d.ts} +0 -0
  399. /package/{icons/arrowleft/index.d.ts → types/primeng-icons-arrowleft.d.ts} +0 -0
  400. /package/{icons/arrowright/index.d.ts → types/primeng-icons-arrowright.d.ts} +0 -0
  401. /package/{icons/arrowup/index.d.ts → types/primeng-icons-arrowup.d.ts} +0 -0
  402. /package/{icons/ban/index.d.ts → types/primeng-icons-ban.d.ts} +0 -0
  403. /package/{icons/bars/index.d.ts → types/primeng-icons-bars.d.ts} +0 -0
  404. /package/{icons/baseicon/index.d.ts → types/primeng-icons-baseicon.d.ts} +0 -0
  405. /package/{icons/blank/index.d.ts → types/primeng-icons-blank.d.ts} +0 -0
  406. /package/{icons/calendar/index.d.ts → types/primeng-icons-calendar.d.ts} +0 -0
  407. /package/{icons/caretleft/index.d.ts → types/primeng-icons-caretleft.d.ts} +0 -0
  408. /package/{icons/caretright/index.d.ts → types/primeng-icons-caretright.d.ts} +0 -0
  409. /package/{icons/check/index.d.ts → types/primeng-icons-check.d.ts} +0 -0
  410. /package/{icons/chevrondown/index.d.ts → types/primeng-icons-chevrondown.d.ts} +0 -0
  411. /package/{icons/chevronleft/index.d.ts → types/primeng-icons-chevronleft.d.ts} +0 -0
  412. /package/{icons/chevronright/index.d.ts → types/primeng-icons-chevronright.d.ts} +0 -0
  413. /package/{icons/chevronup/index.d.ts → types/primeng-icons-chevronup.d.ts} +0 -0
  414. /package/{icons/exclamationtriangle/index.d.ts → types/primeng-icons-exclamationtriangle.d.ts} +0 -0
  415. /package/{icons/eye/index.d.ts → types/primeng-icons-eye.d.ts} +0 -0
  416. /package/{icons/eyeslash/index.d.ts → types/primeng-icons-eyeslash.d.ts} +0 -0
  417. /package/{icons/filter/index.d.ts → types/primeng-icons-filter.d.ts} +0 -0
  418. /package/{icons/filterfill/index.d.ts → types/primeng-icons-filterfill.d.ts} +0 -0
  419. /package/{icons/filterslash/index.d.ts → types/primeng-icons-filterslash.d.ts} +0 -0
  420. /package/{icons/home/index.d.ts → types/primeng-icons-home.d.ts} +0 -0
  421. /package/{icons/infocircle/index.d.ts → types/primeng-icons-infocircle.d.ts} +0 -0
  422. /package/{icons/minus/index.d.ts → types/primeng-icons-minus.d.ts} +0 -0
  423. /package/{icons/pencil/index.d.ts → types/primeng-icons-pencil.d.ts} +0 -0
  424. /package/{icons/plus/index.d.ts → types/primeng-icons-plus.d.ts} +0 -0
  425. /package/{icons/refresh/index.d.ts → types/primeng-icons-refresh.d.ts} +0 -0
  426. /package/{icons/search/index.d.ts → types/primeng-icons-search.d.ts} +0 -0
  427. /package/{icons/searchminus/index.d.ts → types/primeng-icons-searchminus.d.ts} +0 -0
  428. /package/{icons/searchplus/index.d.ts → types/primeng-icons-searchplus.d.ts} +0 -0
  429. /package/{icons/sortalt/index.d.ts → types/primeng-icons-sortalt.d.ts} +0 -0
  430. /package/{icons/sortamountdown/index.d.ts → types/primeng-icons-sortamountdown.d.ts} +0 -0
  431. /package/{icons/sortamountupalt/index.d.ts → types/primeng-icons-sortamountupalt.d.ts} +0 -0
  432. /package/{icons/spinner/index.d.ts → types/primeng-icons-spinner.d.ts} +0 -0
  433. /package/{icons/star/index.d.ts → types/primeng-icons-star.d.ts} +0 -0
  434. /package/{icons/starfill/index.d.ts → types/primeng-icons-starfill.d.ts} +0 -0
  435. /package/{icons/thlarge/index.d.ts → types/primeng-icons-thlarge.d.ts} +0 -0
  436. /package/{icons/times/index.d.ts → types/primeng-icons-times.d.ts} +0 -0
  437. /package/{icons/timescircle/index.d.ts → types/primeng-icons-timescircle.d.ts} +0 -0
  438. /package/{icons/trash/index.d.ts → types/primeng-icons-trash.d.ts} +0 -0
  439. /package/{icons/undo/index.d.ts → types/primeng-icons-undo.d.ts} +0 -0
  440. /package/{icons/upload/index.d.ts → types/primeng-icons-upload.d.ts} +0 -0
  441. /package/{icons/windowmaximize/index.d.ts → types/primeng-icons-windowmaximize.d.ts} +0 -0
  442. /package/{icons/windowminimize/index.d.ts → types/primeng-icons-windowminimize.d.ts} +0 -0
  443. /package/{icons/index.d.ts → types/primeng-icons.d.ts} +0 -0
  444. /package/{iftalabel/index.d.ts → types/primeng-iftalabel.d.ts} +0 -0
  445. /package/{imagecompare/index.d.ts → types/primeng-imagecompare.d.ts} +0 -0
  446. /package/{inplace/index.d.ts → types/primeng-inplace.d.ts} +0 -0
  447. /package/{inputgroup/index.d.ts → types/primeng-inputgroup.d.ts} +0 -0
  448. /package/{inputgroupaddon/index.d.ts → types/primeng-inputgroupaddon.d.ts} +0 -0
  449. /package/{inputicon/index.d.ts → types/primeng-inputicon.d.ts} +0 -0
  450. /package/{inputmask/index.d.ts → types/primeng-inputmask.d.ts} +0 -0
  451. /package/{inputotp/index.d.ts → types/primeng-inputotp.d.ts} +0 -0
  452. /package/{keyfilter/index.d.ts → types/primeng-keyfilter.d.ts} +0 -0
  453. /package/{knob/index.d.ts → types/primeng-knob.d.ts} +0 -0
  454. /package/{megamenu/index.d.ts → types/primeng-megamenu.d.ts} +0 -0
  455. /package/{menubar/index.d.ts → types/primeng-menubar.d.ts} +0 -0
  456. /package/{orderlist/index.d.ts → types/primeng-orderlist.d.ts} +0 -0
  457. /package/{organizationchart/index.d.ts → types/primeng-organizationchart.d.ts} +0 -0
  458. /package/{overlaybadge/index.d.ts → types/primeng-overlaybadge.d.ts} +0 -0
  459. /package/{paginator/index.d.ts → types/primeng-paginator.d.ts} +0 -0
  460. /package/{passthrough/index.d.ts → types/primeng-passthrough.d.ts} +0 -0
  461. /package/{progressspinner/index.d.ts → types/primeng-progressspinner.d.ts} +0 -0
  462. /package/{ripple/index.d.ts → types/primeng-ripple.d.ts} +0 -0
  463. /package/{scroller/index.d.ts → types/primeng-scroller.d.ts} +0 -0
  464. /package/{scrollpanel/index.d.ts → types/primeng-scrollpanel.d.ts} +0 -0
  465. /package/{steps/index.d.ts → types/primeng-steps.d.ts} +0 -0
  466. /package/{styleclass/index.d.ts → types/primeng-styleclass.d.ts} +0 -0
  467. /package/{tabs/index.d.ts → types/primeng-tabs.d.ts} +0 -0
  468. /package/{terminal/index.d.ts → types/primeng-terminal.d.ts} +0 -0
  469. /package/{toolbar/index.d.ts → types/primeng-toolbar.d.ts} +0 -0
  470. /package/{ts-helpers/index.d.ts → types/primeng-ts-helpers.d.ts} +0 -0
  471. /package/types/{avatar/index.d.ts → primeng-types-avatar.d.ts} +0 -0
  472. /package/types/{avatargroup/index.d.ts → primeng-types-avatargroup.d.ts} +0 -0
  473. /package/types/{badge/index.d.ts → primeng-types-badge.d.ts} +0 -0
  474. /package/types/{blockui/index.d.ts → primeng-types-blockui.d.ts} +0 -0
  475. /package/types/{breadcrumb/index.d.ts → primeng-types-breadcrumb.d.ts} +0 -0
  476. /package/types/{button/index.d.ts → primeng-types-button.d.ts} +0 -0
  477. /package/types/{card/index.d.ts → primeng-types-card.d.ts} +0 -0
  478. /package/types/{carousel/index.d.ts → primeng-types-carousel.d.ts} +0 -0
  479. /package/types/{cascadeselect/index.d.ts → primeng-types-cascadeselect.d.ts} +0 -0
  480. /package/types/{chart/index.d.ts → primeng-types-chart.d.ts} +0 -0
  481. /package/types/{chip/index.d.ts → primeng-types-chip.d.ts} +0 -0
  482. /package/types/{confirmdialog/index.d.ts → primeng-types-confirmdialog.d.ts} +0 -0
  483. /package/types/{dataview/index.d.ts → primeng-types-dataview.d.ts} +0 -0
  484. /package/types/{divider/index.d.ts → primeng-types-divider.d.ts} +0 -0
  485. /package/types/{dock/index.d.ts → primeng-types-dock.d.ts} +0 -0
  486. /package/types/{editor/index.d.ts → primeng-types-editor.d.ts} +0 -0
  487. /package/types/{fileupload/index.d.ts → primeng-types-fileupload.d.ts} +0 -0
  488. /package/types/{floatlabel/index.d.ts → primeng-types-floatlabel.d.ts} +0 -0
  489. /package/types/{fluid/index.d.ts → primeng-types-fluid.d.ts} +0 -0
  490. /package/types/{iconfield/index.d.ts → primeng-types-iconfield.d.ts} +0 -0
  491. /package/types/{iftalabel/index.d.ts → primeng-types-iftalabel.d.ts} +0 -0
  492. /package/types/{imagecompare/index.d.ts → primeng-types-imagecompare.d.ts} +0 -0
  493. /package/types/{inplace/index.d.ts → primeng-types-inplace.d.ts} +0 -0
  494. /package/types/{inputgroup/index.d.ts → primeng-types-inputgroup.d.ts} +0 -0
  495. /package/types/{inputgroupaddon/index.d.ts → primeng-types-inputgroupaddon.d.ts} +0 -0
  496. /package/types/{inputicon/index.d.ts → primeng-types-inputicon.d.ts} +0 -0
  497. /package/types/{inputmask/index.d.ts → primeng-types-inputmask.d.ts} +0 -0
  498. /package/types/{inputnumber/index.d.ts → primeng-types-inputnumber.d.ts} +0 -0
  499. /package/types/{inputotp/index.d.ts → primeng-types-inputotp.d.ts} +0 -0
  500. /package/types/{inputtext/index.d.ts → primeng-types-inputtext.d.ts} +0 -0
  501. /package/types/{knob/index.d.ts → primeng-types-knob.d.ts} +0 -0
  502. /package/types/{listbox/index.d.ts → primeng-types-listbox.d.ts} +0 -0
  503. /package/types/{megamenu/index.d.ts → primeng-types-megamenu.d.ts} +0 -0
  504. /package/types/{menubar/index.d.ts → primeng-types-menubar.d.ts} +0 -0
  505. /package/types/{orderlist/index.d.ts → primeng-types-orderlist.d.ts} +0 -0
  506. /package/types/{organizationchart/index.d.ts → primeng-types-organizationchart.d.ts} +0 -0
  507. /package/types/{overlaybadge/index.d.ts → primeng-types-overlaybadge.d.ts} +0 -0
  508. /package/types/{paginator/index.d.ts → primeng-types-paginator.d.ts} +0 -0
  509. /package/types/{picklist/index.d.ts → primeng-types-picklist.d.ts} +0 -0
  510. /package/types/{progressbar/index.d.ts → primeng-types-progressbar.d.ts} +0 -0
  511. /package/types/{progressspinner/index.d.ts → primeng-types-progressspinner.d.ts} +0 -0
  512. /package/types/{radiobutton/index.d.ts → primeng-types-radiobutton.d.ts} +0 -0
  513. /package/types/{rating/index.d.ts → primeng-types-rating.d.ts} +0 -0
  514. /package/types/{scroller/index.d.ts → primeng-types-scroller.d.ts} +0 -0
  515. /package/types/{scrollpanel/index.d.ts → primeng-types-scrollpanel.d.ts} +0 -0
  516. /package/types/{select/index.d.ts → primeng-types-select.d.ts} +0 -0
  517. /package/types/{selectbutton/index.d.ts → primeng-types-selectbutton.d.ts} +0 -0
  518. /package/types/{skeleton/index.d.ts → primeng-types-skeleton.d.ts} +0 -0
  519. /package/types/{slider/index.d.ts → primeng-types-slider.d.ts} +0 -0
  520. /package/types/{speeddial/index.d.ts → primeng-types-speeddial.d.ts} +0 -0
  521. /package/types/{splitbutton/index.d.ts → primeng-types-splitbutton.d.ts} +0 -0
  522. /package/types/{splitter/index.d.ts → primeng-types-splitter.d.ts} +0 -0
  523. /package/types/{tabs/index.d.ts → primeng-types-tabs.d.ts} +0 -0
  524. /package/types/{tag/index.d.ts → primeng-types-tag.d.ts} +0 -0
  525. /package/types/{terminal/index.d.ts → primeng-types-terminal.d.ts} +0 -0
  526. /package/types/{textarea/index.d.ts → primeng-types-textarea.d.ts} +0 -0
  527. /package/types/{timeline/index.d.ts → primeng-types-timeline.d.ts} +0 -0
  528. /package/types/{togglebutton/index.d.ts → primeng-types-togglebutton.d.ts} +0 -0
  529. /package/types/{toggleswitch/index.d.ts → primeng-types-toggleswitch.d.ts} +0 -0
  530. /package/types/{toolbar/index.d.ts → primeng-types-toolbar.d.ts} +0 -0
  531. /package/types/{tooltip/index.d.ts → primeng-types-tooltip.d.ts} +0 -0
  532. /package/types/{tree/index.d.ts → primeng-types-tree.d.ts} +0 -0
  533. /package/types/{treeselect/index.d.ts → primeng-types-treeselect.d.ts} +0 -0
  534. /package/types/{treetable/index.d.ts → primeng-types-treetable.d.ts} +0 -0
  535. /package/{usestyle/index.d.ts → types/primeng-usestyle.d.ts} +0 -0
  536. /package/{utils/index.d.ts → types/primeng-utils.d.ts} +0 -0
  537. /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.0", ngImport: i0, type: ContextMenuStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
55
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", 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.0", 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,338 @@ 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.0", 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.0", 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
+ [target]="getItemProp(processedItem, 'target')"
306
+ [class]="cx('itemLink')"
296
307
  [attr.tabindex]="-1"
308
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
309
+ pRipple
297
310
  >
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')"
311
+ <span
312
+ *ngIf="getItemProp(processedItem, 'icon')"
313
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
314
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
315
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
310
316
  [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"
317
+ [attr.tabindex]="-1"
318
+ >
319
+ </span>
320
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
321
+ {{ getItemLabel(processedItem) }}
322
+ </span>
323
+ <ng-template #htmlLabel> <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span> </ng-template>
324
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
325
+ <ng-container *ngIf="isItemGroup(processedItem)">
326
+ <svg
327
+ data-p-icon="angle-right"
328
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
329
+ [class]="cx('submenuIcon')"
330
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
331
+ [attr.aria-hidden]="true"
332
+ />
333
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
334
+ </ng-container>
335
+ </a>
336
+ <a
337
+ *ngIf="getItemProp(processedItem, 'routerLink')"
338
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
339
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
339
340
  [attr.tabindex]="-1"
341
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
342
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinActiveOptions') || { exact: false }"
343
+ [target]="getItemProp(processedItem, 'target')"
344
+ [class]="cx('itemLink')"
345
+ [fragment]="getItemProp(processedItem, 'fragment')"
346
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
347
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
348
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
349
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
350
+ [state]="getItemProp(processedItem, 'state')"
351
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
352
+ pRipple
340
353
  >
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')"
354
+ <span
355
+ *ngIf="getItemProp(processedItem, 'icon')"
356
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
357
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
358
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
355
359
  [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>
360
+ [attr.tabindex]="-1"
361
+ >
362
+ </span>
363
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
364
+ {{ getItemLabel(processedItem) }}
365
+ </span>
366
+ <ng-template #htmlLabel>
367
+ <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span>
368
+ </ng-template>
369
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
370
+ <ng-container *ngIf="isItemGroup(processedItem)">
371
+ <svg
372
+ data-p-icon="angle-right"
373
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
374
+ [class]="cx('submenuIcon')"
375
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
376
+ [attr.aria-hidden]="true"
377
+ />
378
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
379
+ </ng-container>
380
+ </a>
381
+ </ng-container>
382
+ <ng-container *ngIf="itemTemplate">
383
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
384
+ </ng-container>
385
+ </div>
365
386
 
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 });
387
+ <p-contextmenu-sub
388
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
389
+ [items]="processedItem.items"
390
+ [itemTemplate]="itemTemplate"
391
+ [menuId]="menuId"
392
+ [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
393
+ [activeItemPath]="activeItemPath"
394
+ [focusedItemId]="focusedItemId"
395
+ [level]="level + 1"
396
+ (itemClick)="itemClick.emit($event)"
397
+ (itemMouseEnter)="onItemMouseEnter($event)"
398
+ [pt]="pt()"
399
+ [motionOptions]="motionOptions"
400
+ [unstyled]="unstyled()"
401
+ />
402
+ </li>
403
+ </ng-template>
404
+ </ul>
405
+ }
406
+ `, 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
407
  }
384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuSub, decorators: [{
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenuSub, decorators: [{
385
409
  type: Component,
386
410
  args: [{
387
411
  selector: 'p-contextMenuSub, p-contextmenu-sub',
388
412
  standalone: true,
389
- imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleRightIcon, BadgeModule, SharedModule, BindModule],
413
+ imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleRightIcon, BadgeModule, SharedModule, BindModule, MotionModule],
390
414
  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"
415
+ @if (render()) {
416
+ <ul
417
+ #sublist
418
+ role="menu"
419
+ [class]="root ? cx('rootList') : cx('submenu')"
420
+ [pBind]="_ptm(root ? 'rootList' : 'submenu')"
421
+ [attr.id]="menuId + '_list'"
422
+ [tabindex]="tabindex"
423
+ [attr.aria-label]="ariaLabel"
424
+ [attr.aria-labelledBy]="ariaLabelledBy"
425
+ [attr.aria-activedescendant]="focusedItemId"
426
+ [attr.aria-orientation]="'vertical'"
427
+ (keydown)="menuKeydown.emit($event)"
428
+ (focus)="menuFocus.emit($event)"
429
+ (blur)="menuBlur.emit($event)"
430
+ [pMotion]="root ? true : visible"
431
+ [pMotionAppear]="true"
432
+ [pMotionName]="'p-anchored-overlay'"
433
+ [pMotionOptions]="motionOptions"
434
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
435
+ (pMotionOnAfterLeave)="onAfterLeave()"
436
+ >
437
+ <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
438
+ <li
439
+ *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
440
+ [attr.id]="getItemId(processedItem)"
441
+ [style]="getItemProp(processedItem, 'style')"
442
+ [class]="cn(cx('separator'), getItemProp(processedItem, 'styleClass'))"
443
+ role="separator"
444
+ [pBind]="_ptm('separator')"
445
+ ></li>
446
+ <li
447
+ #listItem
448
+ *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
449
+ role="menuitem"
450
+ [attr.id]="getItemId(processedItem)"
451
+ [attr.data-p-highlight]="isItemActive(processedItem)"
452
+ [attr.data-p-focused]="isItemFocused(processedItem)"
453
+ [attr.data-p-disabled]="isItemDisabled(processedItem)"
454
+ [attr.aria-label]="getItemLabel(processedItem)"
455
+ [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
456
+ [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
457
+ [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
458
+ [attr.aria-level]="level + 1"
459
+ [attr.aria-setsize]="getAriaSetSize()"
460
+ [attr.aria-posinset]="getAriaPosInset(index)"
461
+ [style]="getItemProp(processedItem, 'style')"
462
+ [class]="cn(cx('item', { instance: this, processedItem }), getItemProp(processedItem, 'styleClass'))"
463
+ [pBind]="getPTOptions(processedItem, index, 'item')"
464
+ pTooltip
465
+ [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
466
+ [pTooltipUnstyled]="unstyled()"
467
+ >
468
+ <div [class]="cx('itemContent')" [pBind]="getPTOptions(processedItem, index, 'itemContent')" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
469
+ <ng-container *ngIf="!itemTemplate">
470
+ <a
471
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
472
+ [attr.href]="getItemProp(processedItem, 'url')"
473
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
474
+ [target]="getItemProp(processedItem, 'target')"
475
+ [class]="cx('itemLink')"
457
476
  [attr.tabindex]="-1"
477
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
478
+ pRipple
458
479
  >
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')"
480
+ <span
481
+ *ngIf="getItemProp(processedItem, 'icon')"
482
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
483
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
484
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
471
485
  [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"
486
+ [attr.tabindex]="-1"
487
+ >
488
+ </span>
489
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
490
+ {{ getItemLabel(processedItem) }}
491
+ </span>
492
+ <ng-template #htmlLabel> <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span> </ng-template>
493
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
494
+ <ng-container *ngIf="isItemGroup(processedItem)">
495
+ <svg
496
+ data-p-icon="angle-right"
497
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
498
+ [class]="cx('submenuIcon')"
499
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
500
+ [attr.aria-hidden]="true"
501
+ />
502
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
503
+ </ng-container>
504
+ </a>
505
+ <a
506
+ *ngIf="getItemProp(processedItem, 'routerLink')"
507
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
508
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
500
509
  [attr.tabindex]="-1"
510
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
511
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinActiveOptions') || { exact: false }"
512
+ [target]="getItemProp(processedItem, 'target')"
513
+ [class]="cx('itemLink')"
514
+ [fragment]="getItemProp(processedItem, 'fragment')"
515
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
516
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
517
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
518
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
519
+ [state]="getItemProp(processedItem, 'state')"
520
+ [pBind]="getPTOptions(processedItem, index, 'itemLink')"
521
+ pRipple
501
522
  >
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')"
523
+ <span
524
+ *ngIf="getItemProp(processedItem, 'icon')"
525
+ [class]="cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))"
526
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
527
+ [pBind]="getPTOptions(processedItem, index, 'itemIcon')"
516
528
  [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>
529
+ [attr.tabindex]="-1"
530
+ >
531
+ </span>
532
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" [class]="cx('itemLabel')" [pBind]="getPTOptions(processedItem, index, 'itemLabel')">
533
+ {{ getItemLabel(processedItem) }}
534
+ </span>
535
+ <ng-template #htmlLabel>
536
+ <span [class]="cx('itemLabel')" [innerHTML]="getItemLabel(processedItem)" [pBind]="getPTOptions(processedItem, index, 'itemLabel')"></span>
537
+ </ng-template>
538
+ <p-badge *ngIf="getItemProp(processedItem, 'badge')" [class]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" [unstyled]="unstyled()" />
539
+ <ng-container *ngIf="isItemGroup(processedItem)">
540
+ <svg
541
+ data-p-icon="angle-right"
542
+ *ngIf="!contextMenu.submenuIconTemplate && !contextMenu._submenuIconTemplate"
543
+ [class]="cx('submenuIcon')"
544
+ [pBind]="getPTOptions(processedItem, index, 'submenuIcon')"
545
+ [attr.aria-hidden]="true"
546
+ />
547
+ <ng-template *ngTemplateOutlet="contextMenu.submenuIconTemplate || contextMenu._submenuIconTemplate; context: { class: 'p-contextmenu-submenu-icon' }" [attr.aria-hidden]="true"></ng-template>
548
+ </ng-container>
549
+ </a>
550
+ </ng-container>
551
+ <ng-container *ngIf="itemTemplate">
552
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
553
+ </ng-container>
554
+ </div>
526
555
 
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>
556
+ <p-contextmenu-sub
557
+ *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
558
+ [items]="processedItem.items"
559
+ [itemTemplate]="itemTemplate"
560
+ [menuId]="menuId"
561
+ [visible]="isItemActive(processedItem) && isItemGroup(processedItem)"
562
+ [activeItemPath]="activeItemPath"
563
+ [focusedItemId]="focusedItemId"
564
+ [level]="level + 1"
565
+ (itemClick)="itemClick.emit($event)"
566
+ (itemMouseEnter)="onItemMouseEnter($event)"
567
+ [pt]="pt()"
568
+ [motionOptions]="motionOptions"
569
+ [unstyled]="unstyled()"
570
+ />
571
+ </li>
572
+ </ng-template>
573
+ </ul>
574
+ }
543
575
  `,
544
- animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 })]), transition(':leave', [style$1({ opacity: 0 })])])],
545
576
  encapsulation: ViewEncapsulation.None,
546
577
  providers: [ContextMenuStyle, { provide: CONTEXTMENUSUB_INSTANCE, useExisting: ContextMenuSub }, { provide: PARENT_INSTANCE, useExisting: ContextMenuSub }]
547
578
  }]
@@ -549,8 +580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
549
580
  type: Inject,
550
581
  args: [forwardRef(() => ContextMenu)]
551
582
  }] }], propDecorators: { visible: [{
552
- type: Input,
553
- args: [{ transform: booleanAttribute }]
583
+ type: Input
554
584
  }], items: [{
555
585
  type: Input
556
586
  }], itemTemplate: [{
@@ -580,6 +610,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
580
610
  type: Input
581
611
  }], activeItemPath: [{
582
612
  type: Input
613
+ }], motionOptions: [{
614
+ type: Input
583
615
  }], tabindex: [{
584
616
  type: Input,
585
617
  args: [{ transform: numberAttribute }]
@@ -680,6 +712,17 @@ class ContextMenu extends BaseComponent {
680
712
  * @group Props
681
713
  */
682
714
  appendTo = input(undefined, ...(ngDevMode ? [{ debugName: "appendTo" }] : []));
715
+ /**
716
+ * The motion options.
717
+ * @group Props
718
+ */
719
+ motionOptions = input(undefined, ...(ngDevMode ? [{ debugName: "motionOptions" }] : []));
720
+ computedMotionOptions = computed(() => {
721
+ return {
722
+ ...this.ptm('motion'),
723
+ ...this.motionOptions()
724
+ };
725
+ }, ...(ngDevMode ? [{ debugName: "computedMotionOptions" }] : []));
683
726
  /**
684
727
  * Callback to invoke when overlay menu is shown.
685
728
  * @group Emits
@@ -691,8 +734,8 @@ class ContextMenu extends BaseComponent {
691
734
  */
692
735
  onHide = new EventEmitter();
693
736
  rootmenu;
694
- containerViewChild;
695
737
  container;
738
+ handleSubmenuAfterLeave = null;
696
739
  outsideClickListener;
697
740
  resizeListener;
698
741
  triggerEventListener;
@@ -702,6 +745,7 @@ class ContextMenu extends BaseComponent {
702
745
  pageX;
703
746
  pageY;
704
747
  visible = signal(false, ...(ngDevMode ? [{ debugName: "visible" }] : []));
748
+ render = signal(false, ...(ngDevMode ? [{ debugName: "render" }] : []));
705
749
  focused = false;
706
750
  activeItemPath = signal([], ...(ngDevMode ? [{ debugName: "activeItemPath" }] : []));
707
751
  focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null }, ...(ngDevMode ? [{ debugName: "focusedItemInfo" }] : []));
@@ -784,7 +828,7 @@ class ContextMenu extends BaseComponent {
784
828
  if (!this.documentClickListener) {
785
829
  const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
786
830
  this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {
787
- if (this.containerViewChild?.nativeElement?.offsetParent && this.isOutsideClicked(event) && !event.ctrlKey && event.button !== 2) {
831
+ if (this.container?.offsetParent && this.isOutsideClicked(event) && !event.ctrlKey && event.button !== 2) {
788
832
  this.hide();
789
833
  }
790
834
  });
@@ -1084,32 +1128,43 @@ class ContextMenu extends BaseComponent {
1084
1128
  this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
1085
1129
  this.searchValue = '';
1086
1130
  }
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
- }
1131
+ onBeforeEnter(event) {
1132
+ this.container = event.element;
1133
+ this.position();
1134
+ this.moveOnTop();
1135
+ this.$attrSelector && this.container?.setAttribute(this.$attrSelector, '');
1136
+ this.appendOverlay();
1099
1137
  }
1100
- onOverlayAnimationEnd(event) {
1101
- switch (event.toState) {
1102
- case 'void':
1103
- this.onOverlayHide();
1104
- break;
1105
- }
1138
+ onAfterEnter() {
1139
+ this.bindGlobalListeners();
1140
+ focus(this.rootmenu?.sublistViewChild?.nativeElement);
1141
+ }
1142
+ onBeforeLeave() {
1143
+ this.restoreOverlayAppend();
1144
+ this.onOverlayHide();
1145
+ }
1146
+ onAfterLeave() {
1147
+ this.handleSubmenuAfterLeave?.();
1148
+ this.render.set(false);
1106
1149
  }
1107
1150
  appendOverlay() {
1108
- DomHandler.appendOverlay(this.container, this.$appendTo() === 'body' ? this.document.body : this.$appendTo(), this.$appendTo());
1151
+ if (this.$appendTo() && this.$appendTo() !== 'self') {
1152
+ if (this.$appendTo() === 'body') {
1153
+ appendChild(this.document.body, this.container);
1154
+ }
1155
+ else {
1156
+ appendChild(this.$appendTo(), this.container);
1157
+ }
1158
+ }
1159
+ }
1160
+ restoreOverlayAppend() {
1161
+ if (this.container && this.$appendTo() !== 'self') {
1162
+ this.el.nativeElement.appendChild(this.container);
1163
+ }
1109
1164
  }
1110
1165
  moveOnTop() {
1111
- if (this.autoZIndex && this.containerViewChild) {
1112
- ZIndexUtils.set('menu', this.containerViewChild.nativeElement, this.baseZIndex + this.config.zIndex.menu);
1166
+ if (this.autoZIndex && this.container) {
1167
+ ZIndexUtils.set('menu', this.container, this.baseZIndex + this.config.zIndex.menu);
1113
1168
  }
1114
1169
  }
1115
1170
  onOverlayHide() {
@@ -1147,16 +1202,17 @@ class ContextMenu extends BaseComponent {
1147
1202
  this.pageY = event.pageY;
1148
1203
  this.onShow.emit();
1149
1204
  this.visible() ? this.position() : this.visible.set(true);
1205
+ this.render.set(true);
1150
1206
  event.stopPropagation();
1151
1207
  event.preventDefault();
1152
1208
  }
1153
1209
  position() {
1154
- if (!this.document.scrollingElement || !this.containerViewChild?.nativeElement)
1210
+ if (!this.document.scrollingElement || !this.container)
1155
1211
  return;
1156
1212
  let left = this.pageX + 1;
1157
1213
  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);
1214
+ let width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);
1215
+ let height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);
1160
1216
  let viewport = getViewport();
1161
1217
  //flip
1162
1218
  if (left + width - this.document.scrollingElement.scrollLeft > viewport.width) {
@@ -1174,8 +1230,8 @@ class ContextMenu extends BaseComponent {
1174
1230
  if (top < this.document.scrollingElement.scrollTop) {
1175
1231
  top = this.document.scrollingElement.scrollTop;
1176
1232
  }
1177
- this.containerViewChild.nativeElement.style.left = left + 'px';
1178
- this.containerViewChild.nativeElement.style.top = top + 'px';
1233
+ this.container.style.left = left + 'px';
1234
+ this.container.style.top = top + 'px';
1179
1235
  }
1180
1236
  searchItems(event, char) {
1181
1237
  this.searchValue = (this.searchValue || '') + char;
@@ -1259,7 +1315,7 @@ class ContextMenu extends BaseComponent {
1259
1315
  }
1260
1316
  }
1261
1317
  isOutsideClicked(event) {
1262
- return !(this.containerViewChild?.nativeElement?.isSameNode(event.target) || this.containerViewChild?.nativeElement?.contains(event.target));
1318
+ return !(this.container?.isSameNode(event.target) || this.container?.contains(event.target));
1263
1319
  }
1264
1320
  unbindResizeListener() {
1265
1321
  if (this.resizeListener) {
@@ -1291,105 +1347,112 @@ class ContextMenu extends BaseComponent {
1291
1347
  this.triggerEventListener = null;
1292
1348
  }
1293
1349
  }
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
1350
  onDestroy() {
1302
1351
  this.unbindGlobalListeners();
1303
1352
  this.unbindTriggerEventListener();
1304
1353
  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 });
1354
+ this.restoreOverlayAppend();
1355
+ this.onOverlayHide();
1356
+ }
1357
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenu, deps: [{ token: i7.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1358
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", 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: `
1359
+ @if (render()) {
1360
+ <div
1361
+ #container
1362
+ [attr.id]="id"
1363
+ [class]="cn(cx('root'), styleClass)"
1364
+ [style]="sx('root')"
1365
+ [ngStyle]="style"
1366
+ [pBind]="ptm('root')"
1367
+ [pMotion]="visible()"
1368
+ [pMotionName]="'p-anchored-overlay'"
1369
+ [pMotionAppear]="true"
1370
+ [pMotionOptions]="computedMotionOptions()"
1371
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
1372
+ (pMotionOnAfterEnter)="onAfterEnter()"
1373
+ (pMotionOnBeforeLeave)="onBeforeLeave()"
1374
+ (pMotionOnAfterLeave)="onAfterLeave()"
1375
+ >
1376
+ <p-contextmenu-sub
1377
+ #rootmenu
1378
+ [root]="true"
1379
+ [items]="processedItems"
1380
+ [itemTemplate]="itemTemplate || _itemTemplate"
1381
+ [menuId]="id"
1382
+ [ariaLabel]="ariaLabel"
1383
+ [ariaLabelledBy]="ariaLabelledBy"
1384
+ [baseZIndex]="baseZIndex"
1385
+ [autoZIndex]="autoZIndex"
1386
+ [visible]="submenuVisible()"
1387
+ [focusedItemId]="focused ? focusedItemId : undefined"
1388
+ [activeItemPath]="activeItemPath()"
1389
+ (itemClick)="onItemClick($event)"
1390
+ (menuFocus)="onMenuFocus($event)"
1391
+ (menuBlur)="onMenuBlur($event)"
1392
+ (menuKeydown)="onKeyDown($event)"
1393
+ (itemMouseEnter)="onItemMouseEnter($event)"
1394
+ [pt]="pt()"
1395
+ [unstyled]="unstyled()"
1396
+ [motionOptions]="computedMotionOptions()"
1397
+ />
1398
+ </div>
1399
+ }
1400
+ `, 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
1401
  }
1345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenu, decorators: [{
1402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenu, decorators: [{
1346
1403
  type: Component,
1347
1404
  args: [{
1348
1405
  selector: 'p-contextMenu, p-contextmenu, p-context-menu',
1349
1406
  standalone: true,
1350
- imports: [CommonModule, ContextMenuSub, RouterModule, TooltipModule, BadgeModule, SharedModule, BindModule],
1407
+ imports: [CommonModule, ContextMenuSub, RouterModule, TooltipModule, BadgeModule, SharedModule, BindModule, MotionModule],
1351
1408
  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>
1409
+ @if (render()) {
1410
+ <div
1411
+ #container
1412
+ [attr.id]="id"
1413
+ [class]="cn(cx('root'), styleClass)"
1414
+ [style]="sx('root')"
1415
+ [ngStyle]="style"
1416
+ [pBind]="ptm('root')"
1417
+ [pMotion]="visible()"
1418
+ [pMotionName]="'p-anchored-overlay'"
1419
+ [pMotionAppear]="true"
1420
+ [pMotionOptions]="computedMotionOptions()"
1421
+ (pMotionOnBeforeEnter)="onBeforeEnter($event)"
1422
+ (pMotionOnAfterEnter)="onAfterEnter()"
1423
+ (pMotionOnBeforeLeave)="onBeforeLeave()"
1424
+ (pMotionOnAfterLeave)="onAfterLeave()"
1425
+ >
1426
+ <p-contextmenu-sub
1427
+ #rootmenu
1428
+ [root]="true"
1429
+ [items]="processedItems"
1430
+ [itemTemplate]="itemTemplate || _itemTemplate"
1431
+ [menuId]="id"
1432
+ [ariaLabel]="ariaLabel"
1433
+ [ariaLabelledBy]="ariaLabelledBy"
1434
+ [baseZIndex]="baseZIndex"
1435
+ [autoZIndex]="autoZIndex"
1436
+ [visible]="submenuVisible()"
1437
+ [focusedItemId]="focused ? focusedItemId : undefined"
1438
+ [activeItemPath]="activeItemPath()"
1439
+ (itemClick)="onItemClick($event)"
1440
+ (menuFocus)="onMenuFocus($event)"
1441
+ (menuBlur)="onMenuBlur($event)"
1442
+ (menuKeydown)="onKeyDown($event)"
1443
+ (itemMouseEnter)="onItemMouseEnter($event)"
1444
+ [pt]="pt()"
1445
+ [unstyled]="unstyled()"
1446
+ [motionOptions]="computedMotionOptions()"
1447
+ />
1448
+ </div>
1449
+ }
1386
1450
  `,
1387
- animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0 }), animate('250ms')]), transition(':leave', [animate('.1s linear', style$1({ opacity: 0 }))])])],
1388
1451
  changeDetection: ChangeDetectionStrategy.OnPush,
1389
1452
  encapsulation: ViewEncapsulation.None,
1390
1453
  providers: [ContextMenuStyle, { provide: CONTEXTMENU_INSTANCE, useExisting: ContextMenu }]
1391
1454
  }]
1392
- }], ctorParameters: () => [{ type: i6.OverlayService }], propDecorators: { model: [{
1455
+ }], ctorParameters: () => [{ type: i7.OverlayService }], propDecorators: { model: [{
1393
1456
  type: Input
1394
1457
  }], triggerEvent: [{
1395
1458
  type: Input
@@ -1419,16 +1482,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1419
1482
  }], pressDelay: [{
1420
1483
  type: Input,
1421
1484
  args: [{ transform: numberAttribute }]
1422
- }], onShow: [{
1485
+ }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onShow: [{
1423
1486
  type: Output
1424
1487
  }], onHide: [{
1425
1488
  type: Output
1426
1489
  }], rootmenu: [{
1427
1490
  type: ViewChild,
1428
1491
  args: ['rootmenu']
1429
- }], containerViewChild: [{
1430
- type: ViewChild,
1431
- args: ['container']
1432
1492
  }], itemTemplate: [{
1433
1493
  type: ContentChild,
1434
1494
  args: ['item', { descendants: false }]
@@ -1440,11 +1500,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1440
1500
  args: [PrimeTemplate]
1441
1501
  }] } });
1442
1502
  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] });
1503
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1504
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule], exports: [ContextMenu, SharedModule] });
1505
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenuModule, imports: [ContextMenu, SharedModule, SharedModule] });
1446
1506
  }
1447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ContextMenuModule, decorators: [{
1507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ContextMenuModule, decorators: [{
1448
1508
  type: NgModule,
1449
1509
  args: [{
1450
1510
  imports: [ContextMenu, SharedModule],