primereact 9.4.0 → 9.5.0

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 (504) hide show
  1. package/api/api.cjs.js +1 -0
  2. package/api/api.cjs.min.js +1 -1
  3. package/api/api.d.ts +7 -6
  4. package/api/api.esm.js +1 -0
  5. package/api/api.esm.min.js +1 -1
  6. package/api/api.js +1 -0
  7. package/api/api.min.js +1 -1
  8. package/autocomplete/autocomplete.cjs.js +24 -6
  9. package/autocomplete/autocomplete.cjs.min.js +1 -1
  10. package/autocomplete/autocomplete.d.ts +4 -0
  11. package/autocomplete/autocomplete.esm.js +24 -6
  12. package/autocomplete/autocomplete.esm.min.js +1 -1
  13. package/autocomplete/autocomplete.js +24 -6
  14. package/autocomplete/autocomplete.min.css +1 -1
  15. package/autocomplete/autocomplete.min.js +1 -1
  16. package/breadcrumb/breadcrumb.cjs.js +87 -49
  17. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  18. package/breadcrumb/breadcrumb.d.ts +53 -1
  19. package/breadcrumb/breadcrumb.esm.js +88 -50
  20. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  21. package/breadcrumb/breadcrumb.js +88 -51
  22. package/breadcrumb/breadcrumb.min.css +1 -1
  23. package/breadcrumb/breadcrumb.min.js +1 -1
  24. package/calendar/calendar.cjs.js +8 -1
  25. package/calendar/calendar.cjs.min.js +1 -1
  26. package/calendar/calendar.d.ts +5 -2
  27. package/calendar/calendar.esm.js +8 -1
  28. package/calendar/calendar.esm.min.js +1 -1
  29. package/calendar/calendar.js +8 -1
  30. package/calendar/calendar.min.js +1 -1
  31. package/carousel/carousel.cjs.js +135 -82
  32. package/carousel/carousel.cjs.min.js +1 -1
  33. package/carousel/carousel.d.ts +113 -1
  34. package/carousel/carousel.esm.js +136 -83
  35. package/carousel/carousel.esm.min.js +1 -1
  36. package/carousel/carousel.js +136 -84
  37. package/carousel/carousel.min.js +1 -1
  38. package/cascadeselect/cascadeselect.cjs.js +27 -23
  39. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  40. package/cascadeselect/cascadeselect.d.ts +5 -0
  41. package/cascadeselect/cascadeselect.esm.js +27 -23
  42. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  43. package/cascadeselect/cascadeselect.js +28 -24
  44. package/cascadeselect/cascadeselect.min.js +1 -1
  45. package/chart/chart.cjs.js +28 -43
  46. package/chart/chart.cjs.min.js +1 -1
  47. package/chart/chart.d.ts +30 -0
  48. package/chart/chart.esm.js +15 -30
  49. package/chart/chart.esm.min.js +1 -1
  50. package/chart/chart.js +140 -156
  51. package/chart/chart.min.js +1 -1
  52. package/checkbox/checkbox.cjs.js +21 -15
  53. package/checkbox/checkbox.cjs.min.js +1 -1
  54. package/checkbox/checkbox.d.ts +5 -0
  55. package/checkbox/checkbox.esm.js +22 -16
  56. package/checkbox/checkbox.esm.min.js +1 -1
  57. package/checkbox/checkbox.js +21 -15
  58. package/checkbox/checkbox.min.js +1 -1
  59. package/chips/chips.cjs.js +24 -17
  60. package/chips/chips.cjs.min.js +1 -1
  61. package/chips/chips.d.ts +5 -0
  62. package/chips/chips.esm.js +24 -17
  63. package/chips/chips.esm.min.js +1 -1
  64. package/chips/chips.js +25 -19
  65. package/chips/chips.min.js +1 -1
  66. package/colorpicker/colorpicker.cjs.js +4 -0
  67. package/colorpicker/colorpicker.cjs.min.js +1 -1
  68. package/colorpicker/colorpicker.d.ts +5 -0
  69. package/colorpicker/colorpicker.esm.js +4 -0
  70. package/colorpicker/colorpicker.esm.min.js +1 -1
  71. package/colorpicker/colorpicker.js +4 -0
  72. package/colorpicker/colorpicker.min.js +1 -1
  73. package/confirmdialog/confirmdialog.cjs.js +2 -2
  74. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  75. package/confirmdialog/confirmdialog.esm.js +2 -2
  76. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  77. package/confirmdialog/confirmdialog.js +2 -2
  78. package/confirmdialog/confirmdialog.min.js +1 -1
  79. package/contextmenu/contextmenu.cjs.js +111 -61
  80. package/contextmenu/contextmenu.cjs.min.js +1 -1
  81. package/contextmenu/contextmenu.d.ts +92 -1
  82. package/contextmenu/contextmenu.esm.js +112 -62
  83. package/contextmenu/contextmenu.esm.min.js +1 -1
  84. package/contextmenu/contextmenu.js +112 -63
  85. package/contextmenu/contextmenu.min.js +1 -1
  86. package/core/core.js +12873 -1829
  87. package/core/core.min.js +34 -34
  88. package/datatable/datatable.cjs.js +181 -175
  89. package/datatable/datatable.cjs.min.js +1 -1
  90. package/datatable/datatable.esm.js +181 -175
  91. package/datatable/datatable.esm.min.js +1 -1
  92. package/datatable/datatable.js +181 -175
  93. package/datatable/datatable.min.js +1 -1
  94. package/dock/dock.cjs.js +82 -45
  95. package/dock/dock.cjs.min.js +1 -1
  96. package/dock/dock.d.ts +66 -0
  97. package/dock/dock.esm.js +83 -46
  98. package/dock/dock.esm.min.js +1 -1
  99. package/dock/dock.js +83 -47
  100. package/dock/dock.min.js +1 -1
  101. package/dropdown/dropdown.cjs.js +2 -2
  102. package/dropdown/dropdown.cjs.min.js +1 -1
  103. package/dropdown/dropdown.esm.js +2 -2
  104. package/dropdown/dropdown.esm.min.js +1 -1
  105. package/dropdown/dropdown.js +3 -3
  106. package/dropdown/dropdown.min.js +1 -1
  107. package/fileupload/fileupload.cjs.js +168 -137
  108. package/fileupload/fileupload.cjs.min.js +1 -1
  109. package/fileupload/fileupload.d.ts +150 -1
  110. package/fileupload/fileupload.esm.js +169 -138
  111. package/fileupload/fileupload.esm.min.js +1 -1
  112. package/fileupload/fileupload.js +168 -137
  113. package/fileupload/fileupload.min.js +1 -1
  114. package/galleria/galleria.cjs.js +131 -118
  115. package/galleria/galleria.cjs.min.js +1 -1
  116. package/galleria/galleria.d.ts +156 -2
  117. package/galleria/galleria.esm.js +132 -119
  118. package/galleria/galleria.esm.min.js +1 -1
  119. package/galleria/galleria.js +130 -118
  120. package/galleria/galleria.min.js +1 -1
  121. package/hooks/hooks.cjs.js +5 -1
  122. package/hooks/hooks.cjs.min.js +1 -1
  123. package/hooks/hooks.esm.js +2 -1
  124. package/hooks/hooks.esm.min.js +1 -1
  125. package/hooks/hooks.js +6 -3
  126. package/hooks/hooks.min.js +1 -1
  127. package/icons/arrowdown/index.cjs.js +410 -2
  128. package/icons/arrowdown/index.cjs.min.js +1 -1
  129. package/icons/arrowdown/index.esm.js +410 -2
  130. package/icons/arrowdown/index.esm.min.js +1 -1
  131. package/icons/arrowdown/index.js +410 -2
  132. package/icons/arrowdown/index.min.js +1 -1
  133. package/icons/arrowup/index.cjs.js +410 -2
  134. package/icons/arrowup/index.cjs.min.js +1 -1
  135. package/icons/arrowup/index.esm.js +410 -2
  136. package/icons/arrowup/index.esm.min.js +1 -1
  137. package/icons/arrowup/index.js +410 -2
  138. package/icons/arrowup/index.min.js +1 -1
  139. package/icons/ban/index.cjs.js +410 -2
  140. package/icons/ban/index.cjs.min.js +1 -1
  141. package/icons/ban/index.esm.js +410 -2
  142. package/icons/ban/index.esm.min.js +1 -1
  143. package/icons/ban/index.js +410 -2
  144. package/icons/ban/index.min.js +1 -1
  145. package/icons/download/index.cjs.js +410 -2
  146. package/icons/download/index.cjs.min.js +1 -1
  147. package/icons/download/index.esm.js +410 -2
  148. package/icons/download/index.esm.min.js +1 -1
  149. package/icons/download/index.js +410 -2
  150. package/icons/download/index.min.js +1 -1
  151. package/icons/exclamationtriangle/index.cjs.js +410 -2
  152. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  153. package/icons/exclamationtriangle/index.esm.js +410 -2
  154. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  155. package/icons/exclamationtriangle/index.js +410 -2
  156. package/icons/exclamationtriangle/index.min.js +1 -1
  157. package/icons/eyeslash/index.cjs.js +410 -2
  158. package/icons/eyeslash/index.cjs.min.js +1 -1
  159. package/icons/eyeslash/index.esm.js +410 -2
  160. package/icons/eyeslash/index.esm.min.js +1 -1
  161. package/icons/eyeslash/index.js +410 -2
  162. package/icons/eyeslash/index.min.js +1 -1
  163. package/icons/filter/index.cjs.js +410 -2
  164. package/icons/filter/index.cjs.min.js +1 -1
  165. package/icons/filter/index.esm.js +410 -2
  166. package/icons/filter/index.esm.min.js +1 -1
  167. package/icons/filter/index.js +410 -2
  168. package/icons/filter/index.min.js +1 -1
  169. package/icons/filterslash/index.cjs.js +410 -2
  170. package/icons/filterslash/index.cjs.min.js +1 -1
  171. package/icons/filterslash/index.esm.js +410 -2
  172. package/icons/filterslash/index.esm.min.js +1 -1
  173. package/icons/filterslash/index.js +410 -2
  174. package/icons/filterslash/index.min.js +1 -1
  175. package/icons/infocircle/index.cjs.js +410 -2
  176. package/icons/infocircle/index.cjs.min.js +1 -1
  177. package/icons/infocircle/index.esm.js +410 -2
  178. package/icons/infocircle/index.esm.min.js +1 -1
  179. package/icons/infocircle/index.js +410 -2
  180. package/icons/infocircle/index.min.js +1 -1
  181. package/icons/pencil/index.cjs.js +410 -2
  182. package/icons/pencil/index.cjs.min.js +1 -1
  183. package/icons/pencil/index.esm.js +410 -2
  184. package/icons/pencil/index.esm.min.js +1 -1
  185. package/icons/pencil/index.js +410 -2
  186. package/icons/pencil/index.min.js +1 -1
  187. package/icons/plus/index.cjs.js +410 -2
  188. package/icons/plus/index.cjs.min.js +1 -1
  189. package/icons/plus/index.esm.js +410 -2
  190. package/icons/plus/index.esm.min.js +1 -1
  191. package/icons/plus/index.js +410 -2
  192. package/icons/plus/index.min.js +1 -1
  193. package/icons/refresh/index.cjs.js +410 -2
  194. package/icons/refresh/index.cjs.min.js +1 -1
  195. package/icons/refresh/index.esm.js +410 -2
  196. package/icons/refresh/index.esm.min.js +1 -1
  197. package/icons/refresh/index.js +410 -2
  198. package/icons/refresh/index.min.js +1 -1
  199. package/icons/search/index.cjs.js +410 -2
  200. package/icons/search/index.cjs.min.js +1 -1
  201. package/icons/search/index.esm.js +410 -2
  202. package/icons/search/index.esm.min.js +1 -1
  203. package/icons/search/index.js +410 -2
  204. package/icons/search/index.min.js +1 -1
  205. package/icons/searchminus/index.cjs.js +410 -2
  206. package/icons/searchminus/index.cjs.min.js +1 -1
  207. package/icons/searchminus/index.esm.js +410 -2
  208. package/icons/searchminus/index.esm.min.js +1 -1
  209. package/icons/searchminus/index.js +410 -2
  210. package/icons/searchminus/index.min.js +1 -1
  211. package/icons/searchplus/index.cjs.js +410 -2
  212. package/icons/searchplus/index.cjs.min.js +1 -1
  213. package/icons/searchplus/index.esm.js +410 -2
  214. package/icons/searchplus/index.esm.min.js +1 -1
  215. package/icons/searchplus/index.js +410 -2
  216. package/icons/searchplus/index.min.js +1 -1
  217. package/icons/sortalt/index.cjs.js +410 -2
  218. package/icons/sortalt/index.cjs.min.js +1 -1
  219. package/icons/sortalt/index.esm.js +410 -2
  220. package/icons/sortalt/index.esm.min.js +1 -1
  221. package/icons/sortalt/index.js +410 -2
  222. package/icons/sortalt/index.min.js +1 -1
  223. package/icons/sortamountdown/index.cjs.js +410 -2
  224. package/icons/sortamountdown/index.cjs.min.js +1 -1
  225. package/icons/sortamountdown/index.esm.js +410 -2
  226. package/icons/sortamountdown/index.esm.min.js +1 -1
  227. package/icons/sortamountdown/index.js +410 -2
  228. package/icons/sortamountdown/index.min.js +1 -1
  229. package/icons/sortamountupalt/index.cjs.js +410 -2
  230. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  231. package/icons/sortamountupalt/index.esm.js +410 -2
  232. package/icons/sortamountupalt/index.esm.min.js +1 -1
  233. package/icons/sortamountupalt/index.js +410 -2
  234. package/icons/sortamountupalt/index.min.js +1 -1
  235. package/icons/spinner/index.cjs.js +410 -2
  236. package/icons/spinner/index.cjs.min.js +1 -1
  237. package/icons/spinner/index.esm.js +410 -2
  238. package/icons/spinner/index.esm.min.js +1 -1
  239. package/icons/spinner/index.js +410 -2
  240. package/icons/spinner/index.min.js +1 -1
  241. package/icons/star/index.cjs.js +410 -2
  242. package/icons/star/index.cjs.min.js +1 -1
  243. package/icons/star/index.esm.js +410 -2
  244. package/icons/star/index.esm.min.js +1 -1
  245. package/icons/star/index.js +410 -2
  246. package/icons/star/index.min.js +1 -1
  247. package/icons/starfill/index.cjs.js +410 -2
  248. package/icons/starfill/index.cjs.min.js +1 -1
  249. package/icons/starfill/index.esm.js +410 -2
  250. package/icons/starfill/index.esm.min.js +1 -1
  251. package/icons/starfill/index.js +410 -2
  252. package/icons/starfill/index.min.js +1 -1
  253. package/icons/thlarge/index.cjs.js +410 -2
  254. package/icons/thlarge/index.cjs.min.js +1 -1
  255. package/icons/thlarge/index.esm.js +410 -2
  256. package/icons/thlarge/index.esm.min.js +1 -1
  257. package/icons/thlarge/index.js +410 -2
  258. package/icons/thlarge/index.min.js +1 -1
  259. package/icons/timescircle/index.cjs.js +410 -2
  260. package/icons/timescircle/index.cjs.min.js +1 -1
  261. package/icons/timescircle/index.esm.js +410 -2
  262. package/icons/timescircle/index.esm.min.js +1 -1
  263. package/icons/timescircle/index.js +410 -2
  264. package/icons/timescircle/index.min.js +1 -1
  265. package/icons/trash/index.cjs.js +410 -2
  266. package/icons/trash/index.cjs.min.js +1 -1
  267. package/icons/trash/index.esm.js +410 -2
  268. package/icons/trash/index.esm.min.js +1 -1
  269. package/icons/trash/index.js +410 -2
  270. package/icons/trash/index.min.js +1 -1
  271. package/icons/undo/index.cjs.js +410 -2
  272. package/icons/undo/index.cjs.min.js +1 -1
  273. package/icons/undo/index.esm.js +410 -2
  274. package/icons/undo/index.esm.min.js +1 -1
  275. package/icons/undo/index.js +410 -2
  276. package/icons/undo/index.min.js +1 -1
  277. package/icons/upload/index.cjs.js +410 -2
  278. package/icons/upload/index.cjs.min.js +1 -1
  279. package/icons/upload/index.esm.js +410 -2
  280. package/icons/upload/index.esm.min.js +1 -1
  281. package/icons/upload/index.js +410 -2
  282. package/icons/upload/index.min.js +1 -1
  283. package/icons/windowmaximize/index.cjs.js +410 -2
  284. package/icons/windowmaximize/index.cjs.min.js +1 -1
  285. package/icons/windowmaximize/index.esm.js +410 -2
  286. package/icons/windowmaximize/index.esm.min.js +1 -1
  287. package/icons/windowmaximize/index.js +410 -2
  288. package/icons/windowmaximize/index.min.js +1 -1
  289. package/icons/windowminimize/index.cjs.js +410 -2
  290. package/icons/windowminimize/index.cjs.min.js +1 -1
  291. package/icons/windowminimize/index.esm.js +410 -2
  292. package/icons/windowminimize/index.esm.min.js +1 -1
  293. package/icons/windowminimize/index.js +410 -2
  294. package/icons/windowminimize/index.min.js +1 -1
  295. package/image/image.cjs.js +472 -78
  296. package/image/image.cjs.min.js +1 -1
  297. package/image/image.d.ts +130 -3
  298. package/image/image.esm.js +474 -80
  299. package/image/image.esm.min.js +1 -1
  300. package/image/image.js +473 -80
  301. package/image/image.min.js +1 -1
  302. package/inputmask/inputmask.cjs.js +18 -16
  303. package/inputmask/inputmask.cjs.min.js +1 -1
  304. package/inputmask/inputmask.esm.js +18 -16
  305. package/inputmask/inputmask.esm.min.js +1 -1
  306. package/inputmask/inputmask.js +18 -16
  307. package/inputmask/inputmask.min.js +1 -1
  308. package/inputnumber/inputnumber.cjs.js +0 -2
  309. package/inputnumber/inputnumber.cjs.min.js +1 -1
  310. package/inputnumber/inputnumber.esm.js +0 -2
  311. package/inputnumber/inputnumber.esm.min.js +1 -1
  312. package/inputnumber/inputnumber.js +0 -2
  313. package/inputnumber/inputnumber.min.js +1 -1
  314. package/inputswitch/inputswitch.cjs.js +7 -0
  315. package/inputswitch/inputswitch.cjs.min.js +1 -1
  316. package/inputswitch/inputswitch.d.ts +5 -0
  317. package/inputswitch/inputswitch.esm.js +7 -0
  318. package/inputswitch/inputswitch.esm.min.js +1 -1
  319. package/inputswitch/inputswitch.js +8 -2
  320. package/inputswitch/inputswitch.min.js +1 -1
  321. package/megamenu/megamenu.cjs.js +147 -96
  322. package/megamenu/megamenu.cjs.min.js +1 -1
  323. package/megamenu/megamenu.d.ts +142 -2
  324. package/megamenu/megamenu.esm.js +147 -96
  325. package/megamenu/megamenu.esm.min.js +1 -1
  326. package/megamenu/megamenu.js +145 -95
  327. package/megamenu/megamenu.min.js +1 -1
  328. package/menu/menu.cjs.js +94 -55
  329. package/menu/menu.cjs.min.js +1 -1
  330. package/menu/menu.d.ts +71 -0
  331. package/menu/menu.esm.js +95 -56
  332. package/menu/menu.esm.min.js +1 -1
  333. package/menu/menu.js +95 -57
  334. package/menu/menu.min.js +1 -1
  335. package/menubar/menubar.cjs.js +118 -110
  336. package/menubar/menubar.cjs.min.js +1 -1
  337. package/menubar/menubar.d.ts +94 -1
  338. package/menubar/menubar.esm.js +119 -111
  339. package/menubar/menubar.esm.min.js +1 -1
  340. package/menubar/menubar.js +119 -112
  341. package/menubar/menubar.min.js +1 -1
  342. package/message/message.cjs.js +66 -46
  343. package/message/message.cjs.min.js +1 -1
  344. package/message/message.d.ts +35 -2
  345. package/message/message.esm.js +67 -47
  346. package/message/message.esm.min.js +1 -1
  347. package/message/message.js +67 -48
  348. package/message/message.min.js +1 -1
  349. package/messages/messages.cjs.js +63 -62
  350. package/messages/messages.cjs.min.js +1 -1
  351. package/messages/messages.d.ts +51 -2
  352. package/messages/messages.esm.js +63 -62
  353. package/messages/messages.esm.min.js +1 -1
  354. package/messages/messages.js +63 -63
  355. package/messages/messages.min.js +1 -1
  356. package/multiselect/multiselect.cjs.js +32 -29
  357. package/multiselect/multiselect.cjs.min.js +1 -1
  358. package/multiselect/multiselect.d.ts +5 -0
  359. package/multiselect/multiselect.esm.js +33 -30
  360. package/multiselect/multiselect.esm.min.js +1 -1
  361. package/multiselect/multiselect.js +32 -29
  362. package/multiselect/multiselect.min.js +1 -1
  363. package/multistatecheckbox/multistatecheckbox.cjs.js +15 -11
  364. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  365. package/multistatecheckbox/multistatecheckbox.d.ts +5 -0
  366. package/multistatecheckbox/multistatecheckbox.esm.js +15 -11
  367. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  368. package/multistatecheckbox/multistatecheckbox.js +15 -11
  369. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  370. package/package.json +1 -1
  371. package/paginator/paginator.d.ts +3 -3
  372. package/panelmenu/panelmenu.cjs.js +145 -83
  373. package/panelmenu/panelmenu.cjs.min.js +1 -1
  374. package/panelmenu/panelmenu.d.ts +124 -2
  375. package/panelmenu/panelmenu.esm.js +145 -83
  376. package/panelmenu/panelmenu.esm.min.js +1 -1
  377. package/panelmenu/panelmenu.js +144 -83
  378. package/panelmenu/panelmenu.min.js +1 -1
  379. package/primereact.all.cjs.js +2250 -1578
  380. package/primereact.all.cjs.min.js +1 -1
  381. package/primereact.all.esm.js +2250 -1578
  382. package/primereact.all.esm.min.js +1 -1
  383. package/primereact.all.js +2250 -1578
  384. package/primereact.all.min.js +1 -1
  385. package/radiobutton/radiobutton.cjs.js +16 -9
  386. package/radiobutton/radiobutton.cjs.min.js +1 -1
  387. package/radiobutton/radiobutton.d.ts +5 -0
  388. package/radiobutton/radiobutton.esm.js +16 -9
  389. package/radiobutton/radiobutton.esm.min.js +1 -1
  390. package/radiobutton/radiobutton.js +17 -11
  391. package/radiobutton/radiobutton.min.js +1 -1
  392. package/resources/primereact.css +275 -267
  393. package/resources/primereact.min.css +1 -1
  394. package/resources/themes/arya-blue/theme.css +13 -7
  395. package/resources/themes/arya-green/theme.css +13 -7
  396. package/resources/themes/arya-orange/theme.css +13 -7
  397. package/resources/themes/arya-purple/theme.css +13 -7
  398. package/resources/themes/bootstrap4-dark-blue/theme.css +13 -7
  399. package/resources/themes/bootstrap4-dark-purple/theme.css +13 -7
  400. package/resources/themes/bootstrap4-light-blue/theme.css +13 -7
  401. package/resources/themes/bootstrap4-light-purple/theme.css +13 -7
  402. package/resources/themes/fluent-light/theme.css +13 -7
  403. package/resources/themes/lara-dark-blue/theme.css +13 -7
  404. package/resources/themes/lara-dark-indigo/theme.css +13 -7
  405. package/resources/themes/lara-dark-purple/theme.css +13 -7
  406. package/resources/themes/lara-dark-teal/theme.css +13 -7
  407. package/resources/themes/lara-light-blue/theme.css +13 -7
  408. package/resources/themes/lara-light-indigo/theme.css +13 -7
  409. package/resources/themes/lara-light-purple/theme.css +13 -7
  410. package/resources/themes/lara-light-teal/theme.css +13 -7
  411. package/resources/themes/luna-amber/theme.css +13 -7
  412. package/resources/themes/luna-blue/theme.css +13 -7
  413. package/resources/themes/luna-green/theme.css +13 -7
  414. package/resources/themes/luna-pink/theme.css +13 -7
  415. package/resources/themes/md-dark-deeppurple/theme.css +13 -7
  416. package/resources/themes/md-dark-indigo/theme.css +13 -7
  417. package/resources/themes/md-light-deeppurple/theme.css +13 -7
  418. package/resources/themes/md-light-indigo/theme.css +13 -7
  419. package/resources/themes/mdc-dark-deeppurple/theme.css +13 -7
  420. package/resources/themes/mdc-dark-indigo/theme.css +13 -7
  421. package/resources/themes/mdc-light-deeppurple/theme.css +13 -7
  422. package/resources/themes/mdc-light-indigo/theme.css +13 -7
  423. package/resources/themes/mira/theme.css +13 -7
  424. package/resources/themes/nano/theme.css +13 -7
  425. package/resources/themes/nova/theme.css +13 -7
  426. package/resources/themes/nova-accent/theme.css +13 -7
  427. package/resources/themes/nova-alt/theme.css +13 -7
  428. package/resources/themes/rhea/theme.css +13 -7
  429. package/resources/themes/saga-blue/theme.css +13 -7
  430. package/resources/themes/saga-green/theme.css +13 -7
  431. package/resources/themes/saga-orange/theme.css +13 -7
  432. package/resources/themes/saga-purple/theme.css +13 -7
  433. package/resources/themes/soho-dark/theme.css +13 -7
  434. package/resources/themes/soho-light/theme.css +13 -7
  435. package/resources/themes/tailwind-light/theme.css +13 -7
  436. package/resources/themes/vela-blue/theme.css +13 -7
  437. package/resources/themes/vela-green/theme.css +13 -7
  438. package/resources/themes/vela-orange/theme.css +13 -7
  439. package/resources/themes/vela-purple/theme.css +13 -7
  440. package/resources/themes/viva-dark/theme.css +13 -7
  441. package/resources/themes/viva-light/theme.css +13 -7
  442. package/slidemenu/slidemenu.cjs.js +121 -111
  443. package/slidemenu/slidemenu.cjs.min.js +1 -1
  444. package/slidemenu/slidemenu.d.ts +98 -1
  445. package/slidemenu/slidemenu.esm.js +122 -112
  446. package/slidemenu/slidemenu.esm.min.js +1 -1
  447. package/slidemenu/slidemenu.js +122 -113
  448. package/slidemenu/slidemenu.min.js +1 -1
  449. package/steps/steps.cjs.js +78 -45
  450. package/steps/steps.cjs.min.js +1 -1
  451. package/steps/steps.d.ts +50 -0
  452. package/steps/steps.esm.js +79 -46
  453. package/steps/steps.esm.min.js +1 -1
  454. package/steps/steps.js +79 -47
  455. package/steps/steps.min.js +1 -1
  456. package/tabmenu/tabmenu.cjs.js +83 -47
  457. package/tabmenu/tabmenu.cjs.min.js +1 -1
  458. package/tabmenu/tabmenu.d.ts +62 -0
  459. package/tabmenu/tabmenu.esm.js +84 -48
  460. package/tabmenu/tabmenu.esm.min.js +1 -1
  461. package/tabmenu/tabmenu.js +84 -49
  462. package/tabmenu/tabmenu.min.js +1 -1
  463. package/tieredmenu/tieredmenu.cjs.js +104 -59
  464. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  465. package/tieredmenu/tieredmenu.d.ts +83 -2
  466. package/tieredmenu/tieredmenu.esm.js +105 -60
  467. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  468. package/tieredmenu/tieredmenu.js +105 -61
  469. package/tieredmenu/tieredmenu.min.js +1 -1
  470. package/toast/toast.cjs.js +72 -71
  471. package/toast/toast.cjs.min.js +1 -1
  472. package/toast/toast.d.ts +120 -2
  473. package/toast/toast.esm.js +73 -72
  474. package/toast/toast.esm.min.js +1 -1
  475. package/toast/toast.js +70 -70
  476. package/toast/toast.min.js +1 -1
  477. package/togglebutton/togglebutton.cjs.js +6 -0
  478. package/togglebutton/togglebutton.cjs.min.js +1 -1
  479. package/togglebutton/togglebutton.esm.js +6 -0
  480. package/togglebutton/togglebutton.esm.min.js +1 -1
  481. package/togglebutton/togglebutton.js +7 -2
  482. package/togglebutton/togglebutton.min.js +1 -1
  483. package/treeselect/treeselect.cjs.js +3 -0
  484. package/treeselect/treeselect.cjs.min.js +1 -1
  485. package/treeselect/treeselect.d.ts +5 -0
  486. package/treeselect/treeselect.esm.js +3 -0
  487. package/treeselect/treeselect.esm.min.js +1 -1
  488. package/treeselect/treeselect.js +3 -0
  489. package/treeselect/treeselect.min.js +1 -1
  490. package/tristatecheckbox/tristatecheckbox.cjs.js +14 -7
  491. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  492. package/tristatecheckbox/tristatecheckbox.d.ts +5 -0
  493. package/tristatecheckbox/tristatecheckbox.esm.js +14 -7
  494. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  495. package/tristatecheckbox/tristatecheckbox.js +15 -9
  496. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  497. package/utils/utils.cjs.js +25 -4
  498. package/utils/utils.cjs.min.js +1 -1
  499. package/utils/utils.d.ts +1 -1
  500. package/utils/utils.esm.js +22 -4
  501. package/utils/utils.esm.min.js +1 -1
  502. package/utils/utils.js +26 -6
  503. package/utils/utils.min.js +1 -1
  504. package/web-types.json +1 -1
@@ -10,13 +10,130 @@
10
10
  import * as React from 'react';
11
11
  import { CSSTransitionProps } from '../csstransition';
12
12
  import { MenuItem } from '../menuitem';
13
- import { IconType } from '../utils/utils';
13
+ import { IconType, PassThroughType } from '../utils/utils';
14
+
15
+ export declare type PanelMenuPassThroughType<T> = PassThroughType<T, PanelMenuPassThroughMethodOptions>;
16
+
17
+ /**
18
+ * Custom passthrough(pt) option method.
19
+ */
20
+ export interface PanelMenuPassThroughMethodOptions {
21
+ props: PanelMenuProps;
22
+ state: PanelMenuState;
23
+ context: PanelMenuContext;
24
+ }
25
+
26
+ /**
27
+ * Custom passthrough(pt) options.
28
+ * @see {@link PanelMenuProps.pt}
29
+ */
30
+ export interface PanelMenuPassThroughOptions {
31
+ /**
32
+ * Uses to pass attributes to the root's DOM element.
33
+ */
34
+ root?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
35
+ /**
36
+ * Uses to pass attributes to the panel's DOM element.
37
+ */
38
+ panel?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
39
+ /**
40
+ * Uses to pass attributes to the header's DOM element.
41
+ */
42
+ header?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
43
+ /**
44
+ * Uses to pass attributes to the header action's DOM element.
45
+ */
46
+ headerAction?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLAnchorElement>>;
47
+ /**
48
+ * Uses to pass attributes to the submenuIcon's DOM element.
49
+ */
50
+ submenuIcon?: PanelMenuPassThroughType<React.SVGProps<SVGSVGElement> | React.HTMLAttributes<HTMLSpanElement>>;
51
+ /**
52
+ * Uses to pass attributes to the header icon's DOM element.
53
+ */
54
+ headerIcon?: PanelMenuPassThroughType<React.SVGProps<SVGSVGElement> | React.HTMLAttributes<HTMLSpanElement>>;
55
+ /**
56
+ * Uses to pass attributes to the header submenu icon's DOM element.
57
+ */
58
+ headerSubmenuIcon?: PanelMenuPassThroughType<React.SVGProps<SVGSVGElement> | React.HTMLAttributes<HTMLSpanElement>>;
59
+ /**
60
+ * Uses to pass attributes to the header label's DOM element.
61
+ */
62
+ headerLabel?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLSpanElement>>;
63
+ /**
64
+ * Uses to pass attributes to the toggleable content's DOM element.
65
+ */
66
+ toggleableContent?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
67
+ /**
68
+ * Uses to pass attributes to the header toggleable content's DOM element.
69
+ */
70
+ headerToggleableContent?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
71
+ /**
72
+ * Uses to pass attributes to the menu content's DOM element.
73
+ */
74
+ menuContent?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
75
+ /**
76
+ * Uses to pass attributes to the list's DOM element.
77
+ */
78
+ menu?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLUListElement>>;
79
+ /**
80
+ * Uses to pass attributes to the list item's DOM element.
81
+ */
82
+ menuitem?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLLIElement>>;
83
+ /**
84
+ * Uses to pass attributes to the action's DOM element.
85
+ */
86
+ action?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLAnchorElement>>;
87
+ /**
88
+ * Uses to pass attributes to the icon's DOM element.
89
+ */
90
+ icon?: PanelMenuPassThroughType<React.SVGProps<SVGSVGElement> | React.HTMLAttributes<HTMLSpanElement>>;
91
+ /**
92
+ * Uses to pass attributes to the label's DOM element.
93
+ */
94
+ label?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLSpanElement>>;
95
+ /**
96
+ * Uses to pass attributes to the separator's DOM element.
97
+ */
98
+ separator?: PanelMenuPassThroughType<React.HTMLAttributes<HTMLLIElement>>;
99
+ }
100
+
101
+ /**
102
+ * Defines current inline state in PanelMenu component.
103
+ */
104
+ export interface PanelMenuState {
105
+ /**
106
+ * Current id state as a string.
107
+ */
108
+ id: string;
109
+ /**
110
+ * Active item path.
111
+ * @type {MenuItem}
112
+ */
113
+ activeItem: MenuItem[];
114
+ /**
115
+ * Whether the menu is visible or not.
116
+ * @defaultValue false
117
+ */
118
+ animationDisabled: boolean;
119
+ }
120
+
121
+ /**
122
+ * Defines current options in PanelMenu component.
123
+ */
124
+ export interface PanelMenuContext {
125
+ /**
126
+ * Current active state of menuitem as a boolean.
127
+ * @defaultValue false
128
+ */
129
+ active: boolean;
130
+ }
14
131
 
15
132
  /**
16
133
  * Defines valid properties in PanelMenu component. In addition to these, all properties of HTMLDivElement can be used in this component.
17
134
  * @group Properties
18
135
  */
19
- export interface PanelMenuProps extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref'> {
136
+ export interface PanelMenuProps extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref' | 'pt'> {
20
137
  /**
21
138
  * An array of menuitems.
22
139
  */
@@ -39,6 +156,11 @@ export interface PanelMenuProps extends Omit<React.DetailedHTMLProps<React.HTMLA
39
156
  * @readonly
40
157
  */
41
158
  children?: React.ReactNode | undefined;
159
+ /**
160
+ * Uses to pass attributes to DOM elements inside the component.
161
+ * @type {PanelMenuPassThroughOptions}
162
+ */
163
+ pt?: PanelMenuPassThroughOptions;
42
164
  }
43
165
 
44
166
  /**
@@ -1,23 +1,50 @@
1
1
  import * as React from 'react';
2
2
  import { CSSTransition } from 'primereact/csstransition';
3
3
  import { useMountEffect, useUpdateEffect } from 'primereact/hooks';
4
- import { ObjectUtils, classNames, IconUtils, UniqueComponentId } from 'primereact/utils';
5
- import { ChevronRightIcon } from 'primereact/icons/chevronright';
6
4
  import { ChevronDownIcon } from 'primereact/icons/chevrondown';
5
+ import { ChevronRightIcon } from 'primereact/icons/chevronright';
6
+ import { classNames, mergeProps, IconUtils, ObjectUtils, UniqueComponentId } from 'primereact/utils';
7
+ import { ComponentBase } from 'primereact/componentbase';
7
8
 
8
- function _extends() {
9
- _extends = Object.assign ? Object.assign.bind() : function (target) {
10
- for (var i = 1; i < arguments.length; i++) {
11
- var source = arguments[i];
12
- for (var key in source) {
13
- if (Object.prototype.hasOwnProperty.call(source, key)) {
14
- target[key] = source[key];
15
- }
16
- }
17
- }
18
- return target;
19
- };
20
- return _extends.apply(this, arguments);
9
+ function _typeof(obj) {
10
+ "@babel/helpers - typeof";
11
+
12
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
13
+ return typeof obj;
14
+ } : function (obj) {
15
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16
+ }, _typeof(obj);
17
+ }
18
+
19
+ function _toPrimitive(input, hint) {
20
+ if (_typeof(input) !== "object" || input === null) return input;
21
+ var prim = input[Symbol.toPrimitive];
22
+ if (prim !== undefined) {
23
+ var res = prim.call(input, hint || "default");
24
+ if (_typeof(res) !== "object") return res;
25
+ throw new TypeError("@@toPrimitive must return a primitive value.");
26
+ }
27
+ return (hint === "string" ? String : Number)(input);
28
+ }
29
+
30
+ function _toPropertyKey(arg) {
31
+ var key = _toPrimitive(arg, "string");
32
+ return _typeof(key) === "symbol" ? key : String(key);
33
+ }
34
+
35
+ function _defineProperty(obj, key, value) {
36
+ key = _toPropertyKey(key);
37
+ if (key in obj) {
38
+ Object.defineProperty(obj, key, {
39
+ value: value,
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true
43
+ });
44
+ } else {
45
+ obj[key] = value;
46
+ }
47
+ return obj;
21
48
  }
22
49
 
23
50
  function _arrayLikeToArray(arr, len) {
@@ -91,7 +118,7 @@ function _slicedToArray(arr, i) {
91
118
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
92
119
  }
93
120
 
94
- var PanelMenuBase = {
121
+ var PanelMenuBase = ComponentBase.extend({
95
122
  defaultProps: {
96
123
  __TYPE: 'Panel',
97
124
  id: null,
@@ -102,20 +129,23 @@ var PanelMenuBase = {
102
129
  multiple: false,
103
130
  transitionOptions: null,
104
131
  children: undefined
105
- },
106
- getProps: function getProps(props) {
107
- return ObjectUtils.getMergedProps(props, PanelMenuBase.defaultProps);
108
- },
109
- getOtherProps: function getOtherProps(props) {
110
- return ObjectUtils.getDiffProps(props, PanelMenuBase.defaultProps);
111
132
  }
112
- };
133
+ });
113
134
 
135
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
136
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
114
137
  var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
115
138
  var _React$useState = React.useState(null),
116
139
  _React$useState2 = _slicedToArray(_React$useState, 2),
117
140
  activeItemState = _React$useState2[0],
118
141
  setActiveItemState = _React$useState2[1];
142
+ var getPTOptions = function getPTOptions(item, key) {
143
+ return props.ptm(key, {
144
+ context: {
145
+ active: isItemActive(item)
146
+ }
147
+ });
148
+ };
119
149
  var findActiveItem = function findActiveItem() {
120
150
  if (props.model) {
121
151
  if (props.multiple) {
@@ -171,16 +201,21 @@ var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
171
201
  });
172
202
  var createSeparator = function createSeparator(index) {
173
203
  var key = 'separator_' + index;
174
- return /*#__PURE__*/React.createElement("li", {
204
+ var separatorProps = mergeProps({
175
205
  key: key,
176
- className: "p-menu-separator"
177
- });
206
+ className: 'p-menu-separator'
207
+ }, props.ptm('separator'));
208
+ return /*#__PURE__*/React.createElement("li", separatorProps);
178
209
  };
179
210
  var createSubmenu = function createSubmenu(item, active) {
180
211
  var className = classNames('p-toggleable-content', {
181
212
  'p-toggleable-content-collapsed': !active
182
213
  });
183
214
  var submenuRef = /*#__PURE__*/React.createRef();
215
+ var toggleableContentProps = mergeProps({
216
+ ref: submenuRef,
217
+ className: className
218
+ }, props.ptm('toggleableContent'));
184
219
  if (item.items) {
185
220
  return /*#__PURE__*/React.createElement(CSSTransition, {
186
221
  nodeRef: submenuRef,
@@ -191,14 +226,12 @@ var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
191
226
  },
192
227
  "in": active,
193
228
  unmountOnExit: true
194
- }, /*#__PURE__*/React.createElement("div", {
195
- ref: submenuRef,
196
- className: className
197
- }, /*#__PURE__*/React.createElement(PanelMenuSub, {
229
+ }, /*#__PURE__*/React.createElement("div", toggleableContentProps, /*#__PURE__*/React.createElement(PanelMenuSub, {
198
230
  menuProps: props.menuProps,
199
231
  model: item.items,
200
232
  multiple: props.multiple,
201
- submenuIcon: props.submenuIcon
233
+ submenuIcon: props.submenuIcon,
234
+ ptm: props.ptm
202
235
  })));
203
236
  }
204
237
  return null;
@@ -214,31 +247,33 @@ var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
214
247
  'p-disabled': item.disabled
215
248
  });
216
249
  var iconClassName = classNames('p-menuitem-icon', item.icon);
217
- var icon = IconUtils.getJSXIcon(item.icon, {
218
- className: 'p-menuitem-icon'
219
- }, {
250
+ var iconProps = mergeProps({
251
+ className: iconClassName
252
+ }, getPTOptions(item, 'icon'));
253
+ var icon = IconUtils.getJSXIcon(item.icon, _objectSpread$1({}, iconProps), {
220
254
  props: props.menuProps
221
255
  });
222
- var label = item.label && /*#__PURE__*/React.createElement("span", {
223
- className: "p-menuitem-text"
224
- }, item.label);
256
+ var labelProps = mergeProps({
257
+ className: 'p-menuitem-text'
258
+ }, getPTOptions(item, 'label'));
259
+ var label = item.label && /*#__PURE__*/React.createElement("span", labelProps, item.label);
225
260
  var submenuIconClassName = 'p-panelmenu-icon';
226
- var submenuIcon = item.items && IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React.createElement(ChevronDownIcon, {
227
- className: submenuIconClassName
228
- }) : props.submenuIcon || /*#__PURE__*/React.createElement(ChevronRightIcon, {
261
+ var submenuIconProps = mergeProps({
229
262
  className: submenuIconClassName
230
- }));
263
+ }, getPTOptions(item, 'submenuicon'));
264
+ var submenuIcon = item.items && IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React.createElement(ChevronDownIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React.createElement(ChevronRightIcon, submenuIconProps));
231
265
  var submenu = createSubmenu(item, active);
232
- var content = /*#__PURE__*/React.createElement("a", {
266
+ var actionProps = mergeProps({
233
267
  href: item.url || '#',
234
268
  className: linkClassName,
235
269
  target: item.target,
236
270
  onClick: function onClick(event) {
237
271
  return onItemClick(event, item);
238
272
  },
239
- role: "menuitem",
240
- "aria-disabled": item.disabled
241
- }, submenuIcon, icon, label);
273
+ role: 'menuitem',
274
+ 'aria-disabled': item.disabled
275
+ }, getPTOptions(item, 'action'));
276
+ var content = /*#__PURE__*/React.createElement("a", actionProps, submenuIcon, icon, label);
242
277
  if (item.template) {
243
278
  var defaultContentOptions = {
244
279
  onClick: function onClick(event) {
@@ -255,13 +290,14 @@ var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
255
290
  };
256
291
  content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
257
292
  }
258
- return /*#__PURE__*/React.createElement("li", {
293
+ var menuitemProps = mergeProps({
259
294
  key: key,
260
295
  id: item.id,
261
296
  className: className,
262
297
  style: item.style,
263
- role: "none"
264
- }, content, submenu);
298
+ role: 'none'
299
+ }, getPTOptions(item, 'menuitem'));
300
+ return /*#__PURE__*/React.createElement("li", menuitemProps, content, submenu);
265
301
  };
266
302
  var createItem = function createItem(item, index) {
267
303
  return item.separator ? createSeparator(index) : createMenuItem(item, index);
@@ -271,13 +307,16 @@ var PanelMenuSub = /*#__PURE__*/React.memo(function (props) {
271
307
  };
272
308
  var className = classNames('p-submenu-list', props.className);
273
309
  var menu = createMenu();
274
- return /*#__PURE__*/React.createElement("ul", {
310
+ var menuProps = mergeProps({
275
311
  className: className,
276
- role: "tree"
277
- }, menu);
312
+ role: 'tree'
313
+ }, props.ptm('menu'));
314
+ return /*#__PURE__*/React.createElement("ul", menuProps, menu);
278
315
  });
279
316
  PanelMenuSub.displayName = 'PanelMenuSub';
280
317
 
318
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
319
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
281
320
  var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
282
321
  var props = PanelMenuBase.getProps(inProps);
283
322
  var _React$useState = React.useState(props.id),
@@ -295,6 +334,15 @@ var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
295
334
  var elementRef = React.useRef(null);
296
335
  var headerId = idState + '_header';
297
336
  var contentId = idState + '_content';
337
+ var _PanelMenuBase$setMet = PanelMenuBase.setMetaData({
338
+ props: props,
339
+ state: {
340
+ id: idState,
341
+ activeItem: activeItemState,
342
+ animationDisabled: animationDisabled
343
+ }
344
+ }),
345
+ ptm = _PanelMenuBase$setMet.ptm;
298
346
  var findActiveItem = function findActiveItem() {
299
347
  if (props.model) {
300
348
  if (props.multiple) {
@@ -345,6 +393,13 @@ var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
345
393
  var isItemActive = function isItemActive(item) {
346
394
  return activeItemState && (props.multiple ? activeItemState.indexOf(item) > -1 : activeItemState === item);
347
395
  };
396
+ var getPTOptions = function getPTOptions(item, key) {
397
+ return ptm(key, {
398
+ context: {
399
+ active: isItemActive(item)
400
+ }
401
+ });
402
+ };
348
403
  React.useImperativeHandle(ref, function () {
349
404
  return {
350
405
  props: props,
@@ -378,35 +433,37 @@ var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
378
433
  'p-disabled': item.disabled
379
434
  });
380
435
  var iconClassName = classNames('p-menuitem-icon', item.icon);
381
- var icon = IconUtils.getJSXIcon(item.icon, {
382
- className: 'p-menuitem-icon'
383
- }, {
436
+ var headerIconProps = mergeProps({
437
+ className: iconClassName
438
+ }, getPTOptions(item, 'headerIcon'));
439
+ var icon = IconUtils.getJSXIcon(item.icon, _objectSpread({}, headerIconProps), {
384
440
  props: props
385
441
  });
386
442
  var submenuIconClassName = 'p-panelmenu-icon';
387
- var submenuIcon = item.items && IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React.createElement(ChevronDownIcon, {
388
- className: submenuIconClassName
389
- }) : props.submenuIcon || /*#__PURE__*/React.createElement(ChevronRightIcon, {
443
+ var headerSubmenuIconProps = mergeProps({
390
444
  className: submenuIconClassName
391
- }));
392
- var label = item.label && /*#__PURE__*/React.createElement("span", {
393
- className: "p-menuitem-text"
394
- }, item.label);
445
+ }, getPTOptions(item, 'headerSubmenuIcon'));
446
+ var submenuIcon = item.items && IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React.createElement(ChevronDownIcon, headerSubmenuIconProps) : props.submenuIcon || /*#__PURE__*/React.createElement(ChevronRightIcon, headerSubmenuIconProps));
447
+ var headerLabelProps = mergeProps({
448
+ className: 'p-menuitem-text'
449
+ }, getPTOptions(item, 'headerLabel'));
450
+ var label = item.label && /*#__PURE__*/React.createElement("span", headerLabelProps, item.label);
395
451
  var contentWrapperClassName = classNames('p-toggleable-content', {
396
452
  'p-toggleable-content-collapsed': !active
397
453
  });
398
454
  var menuContentRef = /*#__PURE__*/React.createRef();
399
- var content = /*#__PURE__*/React.createElement("a", {
455
+ var headerActionProps = mergeProps({
400
456
  href: item.url || '#',
401
- className: "p-panelmenu-header-link",
457
+ className: 'p-panelmenu-header-link',
402
458
  onClick: function onClick(e) {
403
459
  return onItemClick(e, item);
404
460
  },
405
- "aria-expanded": active,
461
+ 'aria-expanded': active,
406
462
  id: headerId,
407
- "aria-controls": contentId,
408
- "aria-disabled": item.disabled
409
- }, submenuIcon, icon, label);
463
+ 'aria-controls': contentId,
464
+ 'aria-disabled': item.disabled
465
+ }, getPTOptions(item, 'headerAction'));
466
+ var content = /*#__PURE__*/React.createElement("a", headerActionProps, submenuIcon, icon, label);
410
467
  if (item.template) {
411
468
  var defaultContentOptions = {
412
469
  onClick: function onClick(event) {
@@ -423,14 +480,26 @@ var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
423
480
  };
424
481
  content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
425
482
  }
426
- return /*#__PURE__*/React.createElement("div", {
483
+ var panelProps = mergeProps({
427
484
  key: key,
428
485
  className: className,
429
486
  style: item.style
430
- }, /*#__PURE__*/React.createElement("div", {
487
+ }, getPTOptions(item, 'panel'));
488
+ var headerProps = mergeProps({
431
489
  className: headerClassName,
432
490
  style: item.style
433
- }, content), /*#__PURE__*/React.createElement(CSSTransition, {
491
+ }, getPTOptions(item, 'header'));
492
+ var menuContentProps = mergeProps({
493
+ className: 'p-panelmenu-content'
494
+ }, getPTOptions(item, 'menuContent'));
495
+ var headerToggleableContentProps = mergeProps({
496
+ ref: menuContentRef,
497
+ className: contentWrapperClassName,
498
+ role: 'region',
499
+ id: contentId,
500
+ 'aria-labelledby': headerId
501
+ }, getPTOptions(item, 'headerToggleableContent'));
502
+ return /*#__PURE__*/React.createElement("div", panelProps, /*#__PURE__*/React.createElement("div", headerProps, content), /*#__PURE__*/React.createElement(CSSTransition, {
434
503
  nodeRef: menuContentRef,
435
504
  classNames: "p-toggleable-content",
436
505
  timeout: {
@@ -442,34 +511,27 @@ var PanelMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
442
511
  "in": active,
443
512
  unmountOnExit: true,
444
513
  options: props.transitionOptions
445
- }, /*#__PURE__*/React.createElement("div", {
446
- ref: menuContentRef,
447
- className: contentWrapperClassName,
448
- role: "region",
449
- id: contentId,
450
- "aria-labelledby": headerId
451
- }, /*#__PURE__*/React.createElement("div", {
452
- className: "p-panelmenu-content"
453
- }, /*#__PURE__*/React.createElement(PanelMenuSub, {
514
+ }, /*#__PURE__*/React.createElement("div", headerToggleableContentProps, /*#__PURE__*/React.createElement("div", menuContentProps, /*#__PURE__*/React.createElement(PanelMenuSub, {
454
515
  menuProps: props,
455
516
  model: item.items,
456
517
  className: "p-panelmenu-root-submenu",
457
518
  multiple: props.multiple,
458
- submenuIcon: props.submenuIcon
519
+ submenuIcon: props.submenuIcon,
520
+ ptm: ptm
459
521
  })))));
460
522
  };
461
523
  var createPanels = function createPanels() {
462
524
  return props.model ? props.model.map(createPanel) : null;
463
525
  };
464
- var otherProps = PanelMenuBase.getOtherProps(props);
465
526
  var className = classNames('p-panelmenu p-component', props.className);
466
527
  var panels = createPanels();
467
- return /*#__PURE__*/React.createElement("div", _extends({
528
+ var rootProps = mergeProps({
468
529
  id: props.id,
469
530
  ref: elementRef,
470
531
  className: className,
471
532
  style: props.style
472
- }, otherProps), panels);
533
+ }, PanelMenuBase.getOtherProps(props), ptm('root'));
534
+ return /*#__PURE__*/React.createElement("div", rootProps, panels);
473
535
  }));
474
536
  PanelMenu.displayName = 'PanelMenu';
475
537
 
@@ -1 +1 @@
1
- import*as e from"react";import{CSSTransition as n}from"primereact/csstransition";import{useMountEffect as t,useUpdateEffect as l}from"primereact/hooks";import{ObjectUtils as r,classNames as a,IconUtils as o,UniqueComponentId as i}from"primereact/utils";import{ChevronRightIcon as u}from"primereact/icons/chevronright";import{ChevronDownIcon as m}from"primereact/icons/chevrondown";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},s.apply(this,arguments)}function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,l=new Array(n);t<n;t++)l[t]=e[t];return l}function p(e){if(Array.isArray(e))return c(e)}function d(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function f(e,n){if(e){if("string"==typeof e)return c(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?c(e,n):void 0}}function b(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e){return p(e)||d(e)||f(e)||b()}function y(e){if(Array.isArray(e))return e}function g(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var l,r,a,o,i=[],u=!0,m=!1;try{if(a=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(l=a.call(t)).done)&&(i.push(l.value),i.length!==n);u=!0);}catch(e){m=!0,r=e}finally{try{if(!u&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(m)throw r}}return i}}function N(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(e,n){return y(e)||g(e,n)||f(e,n)||N()}var h={defaultProps:{__TYPE:"Panel",id:null,model:null,style:null,submenuIcon:null,className:null,multiple:!1,transitionOptions:null,children:void 0},getProps:function(e){return r.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,h.defaultProps)}},x=e.memo((function(l){var i=E(e.useState(null),2),s=i[0],c=i[1],p=function(){if(l.model){if(l.multiple)return l.model.filter((function(e){return e.expanded}));var e=null;return l.model.forEach((function(n){n.expanded&&(e?n.expanded=!1:e=n)})),e}return null},d=function(e,n){if(n.disabled)e.preventDefault();else{n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n});var t=s;f(n)?(n.expanded=!1,c(l.multiple?t.filter((function(e){return e!==n})):null)):(!l.multiple&&t&&(t.expanded=!1),n.expanded=!0,c(l.multiple?[].concat(v(t||[]),[n]):n))}},f=function(e){return s&&(l.multiple?s.indexOf(e)>-1:s===e)};t((function(){c(p())}));var b=function(n){return e.createElement("li",{key:"separator_"+n,className:"p-menu-separator"})},y=function(t,r){var o=a("p-toggleable-content",{"p-toggleable-content-collapsed":!r}),i=e.createRef();return t.items?e.createElement(n,{nodeRef:i,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:r,unmountOnExit:!0},e.createElement("div",{ref:i,className:o},e.createElement(x,{menuProps:l.menuProps,model:t.items,multiple:l.multiple,submenuIcon:l.submenuIcon}))):null},g=function(n,t){if(!1===n.visible)return null;var i=n.label+"_"+t,s=f(n),c=a("p-menuitem",n.className),p=a("p-menuitem-link",{"p-disabled":n.disabled}),b=a("p-menuitem-icon",n.icon),v=o.getJSXIcon(n.icon,{className:"p-menuitem-icon"},{props:l.menuProps}),g=n.label&&e.createElement("span",{className:"p-menuitem-text"},n.label),N="p-panelmenu-icon",E=n.items&&o.getJSXIcon(s?l.submenuIcon||e.createElement(m,{className:N}):l.submenuIcon||e.createElement(u,{className:N})),h=y(n,s),x=e.createElement("a",{href:n.url||"#",className:p,target:n.target,onClick:function(e){return d(e,n)},role:"menuitem","aria-disabled":n.disabled},E,v,g);n.template&&(x=r.getJSXElement(n.template,n,{onClick:function(e){return d(e,n)},className:p,labelClassName:"p-menuitem-text",iconClassName:b,submenuIconClassName:N,element:x,props:l,leaf:!n.items,active:s}));return e.createElement("li",{key:i,id:n.id,className:c,style:n.style,role:"none"},x,h)},N=function(e,n){return e.separator?b(n):g(e,n)},h=a("p-submenu-list",l.className),I=l.model?l.model.map(N):null;return e.createElement("ul",{className:h,role:"tree"},I)}));x.displayName="PanelMenuSub";var I=e.memo(e.forwardRef((function(c,p){var d=h.getProps(c),f=E(e.useState(d.id),2),b=f[0],y=f[1],g=E(e.useState(null),2),N=g[0],I=g[1],S=E(e.useState(!1),2),P=S[0],O=S[1],k=e.useRef(null),C=b+"_header",j=b+"_content",w=function(){if(d.model){if(d.multiple)return d.model.filter((function(e){return e.expanded}));var e=null;return d.model.forEach((function(n){n.expanded&&(e?n.expanded=!1:e=n)})),e}return null},A=function(e,n){if(n.disabled)e.preventDefault();else{n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n});var t=N;_(n)?(n.expanded=!1,I(d.multiple?t.filter((function(e){return e!==n})):null)):(!d.multiple&&t&&(t.expanded=!1),n.expanded=!0,I(d.multiple?[].concat(v(t||[]),[n]):n))}},_=function(e){return N&&(d.multiple?N.indexOf(e)>-1:N===e)};e.useImperativeHandle(p,(function(){return{props:d,getElement:function(){return k.current}}})),t((function(){b||y(i()),I(w())})),l((function(){O(!0),I(w())}),[d.model]);var J=function(){O(!1)},R=function(t,l){if(!1===t.visible)return null;var i=t.label+"_"+l,s=_(t),c=a("p-panelmenu-panel",t.className),p=a("p-component p-panelmenu-header",{"p-highlight":s,"p-disabled":t.disabled}),f=a("p-menuitem-icon",t.icon),b=o.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:d}),v="p-panelmenu-icon",y=t.items&&o.getJSXIcon(s?d.submenuIcon||e.createElement(m,{className:v}):d.submenuIcon||e.createElement(u,{className:v})),g=t.label&&e.createElement("span",{className:"p-menuitem-text"},t.label),N=a("p-toggleable-content",{"p-toggleable-content-collapsed":!s}),E=e.createRef(),h=e.createElement("a",{href:t.url||"#",className:"p-panelmenu-header-link",onClick:function(e){return A(e,t)},"aria-expanded":s,id:C,"aria-controls":j,"aria-disabled":t.disabled},y,b,g);t.template&&(h=r.getJSXElement(t.template,t,{onClick:function(e){return A(e,t)},className:"p-panelmenu-header-link",labelClassName:"p-menuitem-text",submenuIconClassName:v,iconClassName:f,element:h,props:d,leaf:!t.items,active:s}));return e.createElement("div",{key:i,className:c,style:t.style},e.createElement("div",{className:p,style:t.style},h),e.createElement(n,{nodeRef:E,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},onEnter:J,disabled:P,in:s,unmountOnExit:!0,options:d.transitionOptions},e.createElement("div",{ref:E,className:N,role:"region",id:j,"aria-labelledby":C},e.createElement("div",{className:"p-panelmenu-content"},e.createElement(x,{menuProps:d,model:t.items,className:"p-panelmenu-root-submenu",multiple:d.multiple,submenuIcon:d.submenuIcon})))))},X=h.getOtherProps(d),D=a("p-panelmenu p-component",d.className),M=d.model?d.model.map(R):null;return e.createElement("div",s({id:d.id,ref:k,className:D,style:d.style},X),M)})));I.displayName="PanelMenu";export{I as PanelMenu};
1
+ import*as e from"react";import{CSSTransition as t}from"primereact/csstransition";import{useMountEffect as n,useUpdateEffect as r}from"primereact/hooks";import{ChevronDownIcon as l}from"primereact/icons/chevrondown";import{ChevronRightIcon as a}from"primereact/icons/chevronright";import{classNames as o,mergeProps as i,IconUtils as u,ObjectUtils as c,UniqueComponentId as m}from"primereact/utils";import{ComponentBase as s}from"primereact/componentbase";function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function f(e,t){if("object"!==p(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function d(e){var t=f(e,"string");return"symbol"===p(t)?t:String(t)}function b(e,t,n){return(t=d(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){if(Array.isArray(e))return y(e)}function g(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}function h(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(e){return v(e)||g(e)||O(e)||h()}function N(e){if(Array.isArray(e))return e}function S(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,a,o,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,l=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw l}}return i}}function j(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(e,t){return N(e)||S(e,t)||O(e,t)||j()}var x=s.extend({defaultProps:{__TYPE:"Panel",id:null,model:null,style:null,submenuIcon:null,className:null,multiple:!1,transitionOptions:null,children:void 0}});function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var C=e.memo((function(r){var m=P(e.useState(null),2),s=m[0],p=m[1],f=function(e,t){return r.ptm(t,{context:{active:y(e)}})},d=function(){if(r.model){if(r.multiple)return r.model.filter((function(e){return e.expanded}));var e=null;return r.model.forEach((function(t){t.expanded&&(e?t.expanded=!1:e=t)})),e}return null},b=function(e,t){if(t.disabled)e.preventDefault();else{t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t});var n=s;y(t)?(t.expanded=!1,p(r.multiple?n.filter((function(e){return e!==t})):null)):(!r.multiple&&n&&(n.expanded=!1),t.expanded=!0,p(r.multiple?[].concat(E(n||[]),[t]):t))}},y=function(e){return s&&(r.multiple?s.indexOf(e)>-1:s===e)};n((function(){p(d())}));var v=function(t){var n=i({key:"separator_"+t,className:"p-menu-separator"},r.ptm("separator"));return e.createElement("li",n)},g=function(n,l){var a=o("p-toggleable-content",{"p-toggleable-content-collapsed":!l}),u=e.createRef(),c=i({ref:u,className:a},r.ptm("toggleableContent"));return n.items?e.createElement(t,{nodeRef:u,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:l,unmountOnExit:!0},e.createElement("div",c,e.createElement(C,{menuProps:r.menuProps,model:n.items,multiple:r.multiple,submenuIcon:r.submenuIcon,ptm:r.ptm}))):null},O=function(t,n){if(!1===t.visible)return null;var m=t.label+"_"+n,s=y(t),p=o("p-menuitem",t.className),d=o("p-menuitem-link",{"p-disabled":t.disabled}),v=o("p-menuitem-icon",t.icon),O=i({className:v},f(t,"icon")),h=u.getJSXIcon(t.icon,w({},O),{props:r.menuProps}),E=i({className:"p-menuitem-text"},f(t,"label")),N=t.label&&e.createElement("span",E,t.label),S="p-panelmenu-icon",j=i({className:S},f(t,"submenuicon")),P=t.items&&u.getJSXIcon(s?r.submenuIcon||e.createElement(l,j):r.submenuIcon||e.createElement(a,j)),x=g(t,s),I=i({href:t.url||"#",className:d,target:t.target,onClick:function(e){return b(e,t)},role:"menuitem","aria-disabled":t.disabled},f(t,"action")),C=e.createElement("a",I,P,h,N);t.template&&(C=c.getJSXElement(t.template,t,{onClick:function(e){return b(e,t)},className:d,labelClassName:"p-menuitem-text",iconClassName:v,submenuIconClassName:S,element:C,props:r,leaf:!t.items,active:s}));var D=i({key:m,id:t.id,className:p,style:t.style,role:"none"},f(t,"menuitem"));return e.createElement("li",D,C,x)},h=function(e,t){return e.separator?v(t):O(e,t)},N=o("p-submenu-list",r.className),S=r.model?r.model.map(h):null,j=i({className:N,role:"tree"},r.ptm("menu"));return e.createElement("ul",j,S)}));function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}C.displayName="PanelMenuSub";var A=e.memo(e.forwardRef((function(s,p){var f=x.getProps(s),d=P(e.useState(f.id),2),b=d[0],y=d[1],v=P(e.useState(null),2),g=v[0],O=v[1],h=P(e.useState(!1),2),N=h[0],S=h[1],j=e.useRef(null),I=b+"_header",w=b+"_content",D=x.setMetaData({props:f,state:{id:b,activeItem:g,animationDisabled:N}}).ptm,A=function(){if(f.model){if(f.multiple)return f.model.filter((function(e){return e.expanded}));var e=null;return f.model.forEach((function(t){t.expanded&&(e?t.expanded=!1:e=t)})),e}return null},_=function(e,t){if(t.disabled)e.preventDefault();else{t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t});var n=g;J(t)?(t.expanded=!1,O(f.multiple?n.filter((function(e){return e!==t})):null)):(!f.multiple&&n&&(n.expanded=!1),t.expanded=!0,O(f.multiple?[].concat(E(n||[]),[t]):t))}},J=function(e){return g&&(f.multiple?g.indexOf(e)>-1:g===e)},R=function(e,t){return D(t,{context:{active:J(e)}})};e.useImperativeHandle(p,(function(){return{props:f,getElement:function(){return j.current}}})),n((function(){b||y(m()),O(A())})),r((function(){S(!0),O(A())}),[f.model]);var X=function(){S(!1)},T=function(n,r){if(!1===n.visible)return null;var m=n.label+"_"+r,s=J(n),p=o("p-panelmenu-panel",n.className),d=o("p-component p-panelmenu-header",{"p-highlight":s,"p-disabled":n.disabled}),b=o("p-menuitem-icon",n.icon),y=i({className:b},R(n,"headerIcon")),v=u.getJSXIcon(n.icon,k({},y),{props:f}),g="p-panelmenu-icon",O=i({className:g},R(n,"headerSubmenuIcon")),h=n.items&&u.getJSXIcon(s?f.submenuIcon||e.createElement(l,O):f.submenuIcon||e.createElement(a,O)),E=i({className:"p-menuitem-text"},R(n,"headerLabel")),S=n.label&&e.createElement("span",E,n.label),j=o("p-toggleable-content",{"p-toggleable-content-collapsed":!s}),P=e.createRef(),x=i({href:n.url||"#",className:"p-panelmenu-header-link",onClick:function(e){return _(e,n)},"aria-expanded":s,id:I,"aria-controls":w,"aria-disabled":n.disabled},R(n,"headerAction")),A=e.createElement("a",x,h,v,S);n.template&&(A=c.getJSXElement(n.template,n,{onClick:function(e){return _(e,n)},className:"p-panelmenu-header-link",labelClassName:"p-menuitem-text",submenuIconClassName:g,iconClassName:b,element:A,props:f,leaf:!n.items,active:s}));var T=i({key:m,className:p,style:n.style},R(n,"panel")),M=i({className:d,style:n.style},R(n,"header")),H=i({className:"p-panelmenu-content"},R(n,"menuContent")),L=i({ref:P,className:j,role:"region",id:w,"aria-labelledby":I},R(n,"headerToggleableContent"));return e.createElement("div",T,e.createElement("div",M,A),e.createElement(t,{nodeRef:P,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},onEnter:X,disabled:N,in:s,unmountOnExit:!0,options:f.transitionOptions},e.createElement("div",L,e.createElement("div",H,e.createElement(C,{menuProps:f,model:n.items,className:"p-panelmenu-root-submenu",multiple:f.multiple,submenuIcon:f.submenuIcon,ptm:D})))))},M=o("p-panelmenu p-component",f.className),H=f.model?f.model.map(T):null,L=i({id:f.id,ref:j,className:M,style:f.style},x.getOtherProps(f),D("root"));return e.createElement("div",L,H)})));A.displayName="PanelMenu";export{A as PanelMenu};