primereact 10.2.1 → 10.3.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 (558) hide show
  1. package/accordion/accordion.cjs.js +83 -11
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.d.ts +1 -1
  4. package/accordion/accordion.esm.js +83 -11
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +81 -9
  7. package/accordion/accordion.min.js +1 -1
  8. package/api/api.cjs.js +24 -0
  9. package/api/api.cjs.min.js +1 -1
  10. package/api/api.d.ts +13 -246
  11. package/api/api.esm.js +24 -0
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +24 -0
  14. package/api/api.min.js +1 -1
  15. package/breadcrumb/breadcrumb.cjs.js +12 -6
  16. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  17. package/breadcrumb/breadcrumb.esm.js +12 -6
  18. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  19. package/breadcrumb/breadcrumb.js +12 -6
  20. package/breadcrumb/breadcrumb.min.js +1 -1
  21. package/calendar/calendar.cjs.js +6 -9
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.esm.js +6 -9
  24. package/calendar/calendar.esm.min.js +1 -1
  25. package/calendar/calendar.js +6 -9
  26. package/calendar/calendar.min.js +1 -1
  27. package/carousel/carousel.cjs.js +102 -8
  28. package/carousel/carousel.cjs.min.js +1 -1
  29. package/carousel/carousel.esm.js +103 -9
  30. package/carousel/carousel.esm.min.js +1 -1
  31. package/carousel/carousel.js +102 -8
  32. package/carousel/carousel.min.js +1 -1
  33. package/cascadeselect/cascadeselect.cjs.js +24 -5
  34. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  35. package/cascadeselect/cascadeselect.esm.js +25 -6
  36. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  37. package/cascadeselect/cascadeselect.js +25 -7
  38. package/cascadeselect/cascadeselect.min.js +1 -1
  39. package/chip/chip.cjs.js +0 -1
  40. package/chip/chip.cjs.min.js +1 -1
  41. package/chip/chip.esm.js +0 -1
  42. package/chip/chip.esm.min.js +1 -1
  43. package/chip/chip.js +0 -1
  44. package/chip/chip.min.js +1 -1
  45. package/chips/chips.cjs.js +1 -2
  46. package/chips/chips.cjs.min.js +1 -1
  47. package/chips/chips.esm.js +1 -2
  48. package/chips/chips.esm.min.js +1 -1
  49. package/chips/chips.js +1 -2
  50. package/chips/chips.min.js +1 -1
  51. package/confirmdialog/confirmdialog.cjs.js +13 -8
  52. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  53. package/confirmdialog/confirmdialog.esm.js +13 -8
  54. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  55. package/confirmdialog/confirmdialog.js +13 -8
  56. package/confirmdialog/confirmdialog.min.js +1 -1
  57. package/confirmpopup/confirmpopup.cjs.js +57 -36
  58. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  59. package/confirmpopup/confirmpopup.d.ts +29 -0
  60. package/confirmpopup/confirmpopup.esm.js +57 -36
  61. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  62. package/confirmpopup/confirmpopup.js +57 -36
  63. package/confirmpopup/confirmpopup.min.js +1 -1
  64. package/contextmenu/contextmenu.cjs.js +640 -98
  65. package/contextmenu/contextmenu.cjs.min.js +1 -1
  66. package/contextmenu/contextmenu.d.ts +22 -0
  67. package/contextmenu/contextmenu.esm.js +640 -98
  68. package/contextmenu/contextmenu.esm.min.js +1 -1
  69. package/contextmenu/contextmenu.js +640 -98
  70. package/contextmenu/contextmenu.min.js +1 -1
  71. package/core/core.js +596 -130
  72. package/core/core.min.js +35 -35
  73. package/datatable/datatable.cjs.js +4 -7
  74. package/datatable/datatable.cjs.min.js +1 -1
  75. package/datatable/datatable.d.ts +1 -1
  76. package/datatable/datatable.esm.js +4 -7
  77. package/datatable/datatable.esm.min.js +1 -1
  78. package/datatable/datatable.js +4 -7
  79. package/datatable/datatable.min.js +1 -1
  80. package/dialog/dialog.cjs.js +86 -38
  81. package/dialog/dialog.cjs.min.js +1 -1
  82. package/dialog/dialog.d.ts +59 -0
  83. package/dialog/dialog.esm.js +86 -38
  84. package/dialog/dialog.esm.min.js +1 -1
  85. package/dialog/dialog.js +86 -38
  86. package/dialog/dialog.min.js +1 -1
  87. package/divider/divider.cjs.js +1 -0
  88. package/divider/divider.cjs.min.js +1 -1
  89. package/divider/divider.esm.js +1 -0
  90. package/divider/divider.esm.min.js +1 -1
  91. package/divider/divider.js +1 -0
  92. package/divider/divider.min.js +1 -1
  93. package/dock/dock.cjs.js +169 -33
  94. package/dock/dock.cjs.min.js +1 -1
  95. package/dock/dock.d.ts +15 -0
  96. package/dock/dock.esm.js +170 -34
  97. package/dock/dock.esm.min.js +1 -1
  98. package/dock/dock.js +169 -33
  99. package/dock/dock.min.js +1 -1
  100. package/dropdown/dropdown.cjs.js +25 -2
  101. package/dropdown/dropdown.cjs.min.js +1 -1
  102. package/dropdown/dropdown.esm.js +25 -2
  103. package/dropdown/dropdown.esm.min.js +1 -1
  104. package/dropdown/dropdown.js +26 -4
  105. package/dropdown/dropdown.min.js +1 -1
  106. package/fieldset/fieldset.cjs.js +12 -5
  107. package/fieldset/fieldset.cjs.min.js +1 -1
  108. package/fieldset/fieldset.esm.js +12 -5
  109. package/fieldset/fieldset.esm.min.js +1 -1
  110. package/fieldset/fieldset.js +12 -5
  111. package/fieldset/fieldset.min.js +1 -1
  112. package/fileupload/fileupload.cjs.js +14 -6
  113. package/fileupload/fileupload.cjs.min.js +1 -1
  114. package/fileupload/fileupload.d.ts +17 -1
  115. package/fileupload/fileupload.esm.js +14 -6
  116. package/fileupload/fileupload.esm.min.js +1 -1
  117. package/fileupload/fileupload.js +14 -6
  118. package/fileupload/fileupload.min.js +1 -1
  119. package/galleria/galleria.cjs.js +222 -42
  120. package/galleria/galleria.cjs.min.js +1 -1
  121. package/galleria/galleria.esm.js +224 -44
  122. package/galleria/galleria.esm.min.js +1 -1
  123. package/galleria/galleria.js +222 -42
  124. package/galleria/galleria.min.js +1 -1
  125. package/hooks/hooks.cjs.js +4 -2
  126. package/hooks/hooks.cjs.min.js +1 -1
  127. package/hooks/hooks.esm.js +4 -2
  128. package/hooks/hooks.esm.min.js +1 -1
  129. package/hooks/hooks.js +4 -2
  130. package/hooks/hooks.min.js +1 -1
  131. package/icons/arrowdown/index.cjs.js +12 -1
  132. package/icons/arrowdown/index.cjs.min.js +1 -1
  133. package/icons/arrowdown/index.esm.js +12 -1
  134. package/icons/arrowdown/index.esm.min.js +1 -1
  135. package/icons/arrowdown/index.js +12 -1
  136. package/icons/arrowdown/index.min.js +1 -1
  137. package/icons/arrowup/index.cjs.js +12 -1
  138. package/icons/arrowup/index.cjs.min.js +1 -1
  139. package/icons/arrowup/index.esm.js +12 -1
  140. package/icons/arrowup/index.esm.min.js +1 -1
  141. package/icons/arrowup/index.js +12 -1
  142. package/icons/arrowup/index.min.js +1 -1
  143. package/icons/ban/index.cjs.js +12 -1
  144. package/icons/ban/index.cjs.min.js +1 -1
  145. package/icons/ban/index.esm.js +12 -1
  146. package/icons/ban/index.esm.min.js +1 -1
  147. package/icons/ban/index.js +12 -1
  148. package/icons/ban/index.min.js +1 -1
  149. package/icons/download/index.cjs.js +12 -1
  150. package/icons/download/index.cjs.min.js +1 -1
  151. package/icons/download/index.esm.js +12 -1
  152. package/icons/download/index.esm.min.js +1 -1
  153. package/icons/download/index.js +12 -1
  154. package/icons/download/index.min.js +1 -1
  155. package/icons/exclamationtriangle/index.cjs.js +12 -1
  156. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  157. package/icons/exclamationtriangle/index.esm.js +12 -1
  158. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  159. package/icons/exclamationtriangle/index.js +12 -1
  160. package/icons/exclamationtriangle/index.min.js +1 -1
  161. package/icons/eyeslash/index.cjs.js +12 -1
  162. package/icons/eyeslash/index.cjs.min.js +1 -1
  163. package/icons/eyeslash/index.esm.js +12 -1
  164. package/icons/eyeslash/index.esm.min.js +1 -1
  165. package/icons/eyeslash/index.js +12 -1
  166. package/icons/eyeslash/index.min.js +1 -1
  167. package/icons/filter/index.cjs.js +12 -1
  168. package/icons/filter/index.cjs.min.js +1 -1
  169. package/icons/filter/index.esm.js +12 -1
  170. package/icons/filter/index.esm.min.js +1 -1
  171. package/icons/filter/index.js +12 -1
  172. package/icons/filter/index.min.js +1 -1
  173. package/icons/filterslash/index.cjs.js +12 -1
  174. package/icons/filterslash/index.cjs.min.js +1 -1
  175. package/icons/filterslash/index.esm.js +12 -1
  176. package/icons/filterslash/index.esm.min.js +1 -1
  177. package/icons/filterslash/index.js +12 -1
  178. package/icons/filterslash/index.min.js +1 -1
  179. package/icons/infocircle/index.cjs.js +12 -1
  180. package/icons/infocircle/index.cjs.min.js +1 -1
  181. package/icons/infocircle/index.esm.js +12 -1
  182. package/icons/infocircle/index.esm.min.js +1 -1
  183. package/icons/infocircle/index.js +12 -1
  184. package/icons/infocircle/index.min.js +1 -1
  185. package/icons/pencil/index.cjs.js +12 -1
  186. package/icons/pencil/index.cjs.min.js +1 -1
  187. package/icons/pencil/index.esm.js +12 -1
  188. package/icons/pencil/index.esm.min.js +1 -1
  189. package/icons/pencil/index.js +12 -1
  190. package/icons/pencil/index.min.js +1 -1
  191. package/icons/plus/index.cjs.js +12 -1
  192. package/icons/plus/index.cjs.min.js +1 -1
  193. package/icons/plus/index.esm.js +12 -1
  194. package/icons/plus/index.esm.min.js +1 -1
  195. package/icons/plus/index.js +12 -1
  196. package/icons/plus/index.min.js +1 -1
  197. package/icons/refresh/index.cjs.js +12 -1
  198. package/icons/refresh/index.cjs.min.js +1 -1
  199. package/icons/refresh/index.esm.js +12 -1
  200. package/icons/refresh/index.esm.min.js +1 -1
  201. package/icons/refresh/index.js +12 -1
  202. package/icons/refresh/index.min.js +1 -1
  203. package/icons/search/index.cjs.js +12 -1
  204. package/icons/search/index.cjs.min.js +1 -1
  205. package/icons/search/index.esm.js +12 -1
  206. package/icons/search/index.esm.min.js +1 -1
  207. package/icons/search/index.js +12 -1
  208. package/icons/search/index.min.js +1 -1
  209. package/icons/searchminus/index.cjs.js +12 -1
  210. package/icons/searchminus/index.cjs.min.js +1 -1
  211. package/icons/searchminus/index.esm.js +12 -1
  212. package/icons/searchminus/index.esm.min.js +1 -1
  213. package/icons/searchminus/index.js +12 -1
  214. package/icons/searchminus/index.min.js +1 -1
  215. package/icons/searchplus/index.cjs.js +12 -1
  216. package/icons/searchplus/index.cjs.min.js +1 -1
  217. package/icons/searchplus/index.esm.js +12 -1
  218. package/icons/searchplus/index.esm.min.js +1 -1
  219. package/icons/searchplus/index.js +12 -1
  220. package/icons/searchplus/index.min.js +1 -1
  221. package/icons/sortalt/index.cjs.js +12 -1
  222. package/icons/sortalt/index.cjs.min.js +1 -1
  223. package/icons/sortalt/index.esm.js +12 -1
  224. package/icons/sortalt/index.esm.min.js +1 -1
  225. package/icons/sortalt/index.js +12 -1
  226. package/icons/sortalt/index.min.js +1 -1
  227. package/icons/sortamountdown/index.cjs.js +12 -1
  228. package/icons/sortamountdown/index.cjs.min.js +1 -1
  229. package/icons/sortamountdown/index.esm.js +12 -1
  230. package/icons/sortamountdown/index.esm.min.js +1 -1
  231. package/icons/sortamountdown/index.js +12 -1
  232. package/icons/sortamountdown/index.min.js +1 -1
  233. package/icons/sortamountupalt/index.cjs.js +12 -1
  234. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  235. package/icons/sortamountupalt/index.esm.js +12 -1
  236. package/icons/sortamountupalt/index.esm.min.js +1 -1
  237. package/icons/sortamountupalt/index.js +12 -1
  238. package/icons/sortamountupalt/index.min.js +1 -1
  239. package/icons/spinner/index.cjs.js +12 -1
  240. package/icons/spinner/index.cjs.min.js +1 -1
  241. package/icons/spinner/index.esm.js +12 -1
  242. package/icons/spinner/index.esm.min.js +1 -1
  243. package/icons/spinner/index.js +12 -1
  244. package/icons/spinner/index.min.js +1 -1
  245. package/icons/star/index.cjs.js +12 -1
  246. package/icons/star/index.cjs.min.js +1 -1
  247. package/icons/star/index.esm.js +12 -1
  248. package/icons/star/index.esm.min.js +1 -1
  249. package/icons/star/index.js +12 -1
  250. package/icons/star/index.min.js +1 -1
  251. package/icons/starfill/index.cjs.js +12 -1
  252. package/icons/starfill/index.cjs.min.js +1 -1
  253. package/icons/starfill/index.esm.js +12 -1
  254. package/icons/starfill/index.esm.min.js +1 -1
  255. package/icons/starfill/index.js +12 -1
  256. package/icons/starfill/index.min.js +1 -1
  257. package/icons/thlarge/index.cjs.js +12 -1
  258. package/icons/thlarge/index.cjs.min.js +1 -1
  259. package/icons/thlarge/index.esm.js +12 -1
  260. package/icons/thlarge/index.esm.min.js +1 -1
  261. package/icons/thlarge/index.js +12 -1
  262. package/icons/thlarge/index.min.js +1 -1
  263. package/icons/timescircle/index.cjs.js +12 -1
  264. package/icons/timescircle/index.cjs.min.js +1 -1
  265. package/icons/timescircle/index.esm.js +12 -1
  266. package/icons/timescircle/index.esm.min.js +1 -1
  267. package/icons/timescircle/index.js +12 -1
  268. package/icons/timescircle/index.min.js +1 -1
  269. package/icons/trash/index.cjs.js +12 -1
  270. package/icons/trash/index.cjs.min.js +1 -1
  271. package/icons/trash/index.esm.js +12 -1
  272. package/icons/trash/index.esm.min.js +1 -1
  273. package/icons/trash/index.js +12 -1
  274. package/icons/trash/index.min.js +1 -1
  275. package/icons/undo/index.cjs.js +12 -1
  276. package/icons/undo/index.cjs.min.js +1 -1
  277. package/icons/undo/index.esm.js +12 -1
  278. package/icons/undo/index.esm.min.js +1 -1
  279. package/icons/undo/index.js +12 -1
  280. package/icons/undo/index.min.js +1 -1
  281. package/icons/upload/index.cjs.js +12 -1
  282. package/icons/upload/index.cjs.min.js +1 -1
  283. package/icons/upload/index.esm.js +12 -1
  284. package/icons/upload/index.esm.min.js +1 -1
  285. package/icons/upload/index.js +12 -1
  286. package/icons/upload/index.min.js +1 -1
  287. package/icons/windowmaximize/index.cjs.js +12 -1
  288. package/icons/windowmaximize/index.cjs.min.js +1 -1
  289. package/icons/windowmaximize/index.esm.js +12 -1
  290. package/icons/windowmaximize/index.esm.min.js +1 -1
  291. package/icons/windowmaximize/index.js +12 -1
  292. package/icons/windowmaximize/index.min.js +1 -1
  293. package/icons/windowminimize/index.cjs.js +12 -1
  294. package/icons/windowminimize/index.cjs.min.js +1 -1
  295. package/icons/windowminimize/index.esm.js +12 -1
  296. package/icons/windowminimize/index.esm.min.js +1 -1
  297. package/icons/windowminimize/index.js +12 -1
  298. package/icons/windowminimize/index.min.js +1 -1
  299. package/image/image.cjs.js +71 -16
  300. package/image/image.cjs.min.js +1 -1
  301. package/image/image.esm.js +71 -16
  302. package/image/image.esm.min.js +1 -1
  303. package/image/image.js +71 -16
  304. package/image/image.min.js +1 -1
  305. package/megamenu/megamenu.cjs.js +787 -168
  306. package/megamenu/megamenu.cjs.min.js +1 -1
  307. package/megamenu/megamenu.d.ts +14 -0
  308. package/megamenu/megamenu.esm.js +790 -171
  309. package/megamenu/megamenu.esm.min.js +1 -1
  310. package/megamenu/megamenu.js +787 -168
  311. package/megamenu/megamenu.min.js +1 -1
  312. package/mention/mention.cjs.js +10 -9
  313. package/mention/mention.cjs.min.js +1 -1
  314. package/mention/mention.esm.js +11 -10
  315. package/mention/mention.esm.min.js +1 -1
  316. package/mention/mention.js +10 -9
  317. package/mention/mention.min.js +1 -1
  318. package/menu/menu.cjs.js +214 -68
  319. package/menu/menu.cjs.min.js +1 -1
  320. package/menu/menu.d.ts +14 -0
  321. package/menu/menu.esm.js +214 -68
  322. package/menu/menu.esm.min.js +1 -1
  323. package/menu/menu.js +214 -68
  324. package/menu/menu.min.js +1 -1
  325. package/menubar/menubar.cjs.js +714 -179
  326. package/menubar/menubar.cjs.min.js +1 -1
  327. package/menubar/menubar.d.ts +18 -0
  328. package/menubar/menubar.esm.js +717 -182
  329. package/menubar/menubar.esm.min.js +1 -1
  330. package/menubar/menubar.js +714 -179
  331. package/menubar/menubar.min.js +1 -1
  332. package/message/message.cjs.js +2 -1
  333. package/message/message.cjs.min.js +1 -1
  334. package/message/message.esm.js +2 -1
  335. package/message/message.esm.min.js +1 -1
  336. package/message/message.js +2 -1
  337. package/message/message.min.js +1 -1
  338. package/messages/messages.cjs.js +4 -2
  339. package/messages/messages.cjs.min.js +1 -1
  340. package/messages/messages.esm.js +4 -2
  341. package/messages/messages.esm.min.js +1 -1
  342. package/messages/messages.js +4 -2
  343. package/messages/messages.min.js +1 -1
  344. package/multiselect/multiselect.cjs.js +11 -5
  345. package/multiselect/multiselect.cjs.min.js +1 -1
  346. package/multiselect/multiselect.esm.js +11 -5
  347. package/multiselect/multiselect.esm.min.js +1 -1
  348. package/multiselect/multiselect.js +12 -7
  349. package/multiselect/multiselect.min.js +1 -1
  350. package/orderlist/orderlist.cjs.js +259 -104
  351. package/orderlist/orderlist.cjs.min.js +1 -1
  352. package/orderlist/orderlist.d.ts +8 -0
  353. package/orderlist/orderlist.esm.js +260 -105
  354. package/orderlist/orderlist.esm.min.js +1 -1
  355. package/orderlist/orderlist.js +259 -104
  356. package/orderlist/orderlist.min.js +1 -1
  357. package/overlaypanel/overlaypanel.cjs.js +4 -2
  358. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  359. package/overlaypanel/overlaypanel.esm.js +4 -2
  360. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  361. package/overlaypanel/overlaypanel.js +4 -2
  362. package/overlaypanel/overlaypanel.min.js +1 -1
  363. package/package.json +1 -1
  364. package/panel/panel.cjs.js +22 -19
  365. package/panel/panel.cjs.min.js +1 -1
  366. package/panel/panel.esm.js +22 -19
  367. package/panel/panel.esm.min.js +1 -1
  368. package/panel/panel.js +22 -19
  369. package/panel/panel.min.js +1 -1
  370. package/panelmenu/panelmenu.cjs.js +775 -196
  371. package/panelmenu/panelmenu.cjs.min.js +1 -1
  372. package/panelmenu/panelmenu.d.ts +15 -0
  373. package/panelmenu/panelmenu.esm.js +776 -197
  374. package/panelmenu/panelmenu.esm.min.js +1 -1
  375. package/panelmenu/panelmenu.js +775 -196
  376. package/panelmenu/panelmenu.min.js +1 -1
  377. package/passthrough/tailwind/index.cjs.js +5 -4
  378. package/passthrough/tailwind/index.cjs.min.js +1 -1
  379. package/passthrough/tailwind/index.esm.js +5 -4
  380. package/passthrough/tailwind/index.esm.min.js +1 -1
  381. package/passthrough/tailwind/index.js +5 -4
  382. package/passthrough/tailwind/index.min.js +1 -1
  383. package/password/password.cjs.js +1 -1
  384. package/password/password.cjs.min.js +1 -1
  385. package/password/password.esm.js +1 -1
  386. package/password/password.esm.min.js +1 -1
  387. package/password/password.js +1 -1
  388. package/password/password.min.js +1 -1
  389. package/primereact.all.cjs.js +9489 -5244
  390. package/primereact.all.cjs.min.js +1 -1
  391. package/primereact.all.esm.js +9489 -5244
  392. package/primereact.all.esm.min.js +1 -1
  393. package/primereact.all.js +9489 -5244
  394. package/primereact.all.min.js +1 -1
  395. package/radiobutton/radiobutton.cjs.js +3 -2
  396. package/radiobutton/radiobutton.cjs.min.js +1 -1
  397. package/radiobutton/radiobutton.esm.js +3 -2
  398. package/radiobutton/radiobutton.esm.min.js +1 -1
  399. package/radiobutton/radiobutton.js +3 -2
  400. package/radiobutton/radiobutton.min.js +1 -1
  401. package/resources/themes/arya-blue/theme.css +844 -789
  402. package/resources/themes/arya-green/theme.css +844 -789
  403. package/resources/themes/arya-orange/theme.css +844 -789
  404. package/resources/themes/arya-purple/theme.css +844 -789
  405. package/resources/themes/bootstrap4-dark-blue/theme.css +654 -600
  406. package/resources/themes/bootstrap4-dark-purple/theme.css +654 -600
  407. package/resources/themes/bootstrap4-light-blue/theme.css +658 -604
  408. package/resources/themes/bootstrap4-light-purple/theme.css +658 -604
  409. package/resources/themes/fluent-light/theme.css +661 -622
  410. package/resources/themes/lara-dark-amber/theme.css +665 -625
  411. package/resources/themes/lara-dark-blue/theme.css +665 -625
  412. package/resources/themes/lara-dark-cyan/theme.css +665 -625
  413. package/resources/themes/lara-dark-green/theme.css +665 -625
  414. package/resources/themes/lara-dark-indigo/theme.css +665 -625
  415. package/resources/themes/lara-dark-pink/theme.css +665 -625
  416. package/resources/themes/lara-dark-purple/theme.css +665 -625
  417. package/resources/themes/lara-dark-teal/theme.css +665 -625
  418. package/resources/themes/lara-light-amber/theme.css +758 -716
  419. package/resources/themes/lara-light-blue/theme.css +992 -950
  420. package/resources/themes/lara-light-cyan/theme.css +758 -716
  421. package/resources/themes/lara-light-green/theme.css +797 -755
  422. package/resources/themes/lara-light-indigo/theme.css +1008 -966
  423. package/resources/themes/lara-light-pink/theme.css +758 -716
  424. package/resources/themes/lara-light-purple/theme.css +1008 -966
  425. package/resources/themes/lara-light-teal/theme.css +758 -716
  426. package/resources/themes/luna-amber/theme.css +931 -877
  427. package/resources/themes/luna-blue/theme.css +931 -877
  428. package/resources/themes/luna-green/theme.css +931 -877
  429. package/resources/themes/luna-pink/theme.css +931 -877
  430. package/resources/themes/md-dark-deeppurple/theme.css +900 -941
  431. package/resources/themes/md-dark-indigo/theme.css +905 -946
  432. package/resources/themes/md-light-deeppurple/theme.css +862 -903
  433. package/resources/themes/md-light-indigo/theme.css +862 -903
  434. package/resources/themes/mdc-dark-deeppurple/theme.css +900 -941
  435. package/resources/themes/mdc-dark-indigo/theme.css +905 -946
  436. package/resources/themes/mdc-light-deeppurple/theme.css +862 -903
  437. package/resources/themes/mdc-light-indigo/theme.css +862 -903
  438. package/resources/themes/mira/theme.css +1546 -1525
  439. package/resources/themes/nano/theme.css +696 -639
  440. package/resources/themes/nova/theme.css +690 -637
  441. package/resources/themes/nova-accent/theme.css +692 -636
  442. package/resources/themes/nova-alt/theme.css +690 -637
  443. package/resources/themes/rhea/theme.css +865 -809
  444. package/resources/themes/saga-blue/theme.css +883 -828
  445. package/resources/themes/saga-green/theme.css +883 -828
  446. package/resources/themes/saga-orange/theme.css +883 -828
  447. package/resources/themes/saga-purple/theme.css +883 -828
  448. package/resources/themes/soho-dark/theme.css +684 -635
  449. package/resources/themes/soho-light/theme.css +672 -625
  450. package/resources/themes/tailwind-light/theme.css +1354 -1299
  451. package/resources/themes/vela-blue/theme.css +852 -797
  452. package/resources/themes/vela-green/theme.css +852 -797
  453. package/resources/themes/vela-orange/theme.css +852 -797
  454. package/resources/themes/vela-purple/theme.css +852 -797
  455. package/resources/themes/viva-dark/theme.css +647 -613
  456. package/resources/themes/viva-light/theme.css +728 -694
  457. package/ripple/ripple.cjs.js +65 -2
  458. package/ripple/ripple.cjs.min.js +1 -1
  459. package/ripple/ripple.esm.js +65 -2
  460. package/ripple/ripple.esm.min.js +1 -1
  461. package/ripple/ripple.js +65 -2
  462. package/ripple/ripple.min.js +1 -1
  463. package/scrollpanel/scrollpanel.cjs.js +183 -3
  464. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  465. package/scrollpanel/scrollpanel.esm.js +184 -4
  466. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  467. package/scrollpanel/scrollpanel.js +183 -3
  468. package/scrollpanel/scrollpanel.min.js +1 -1
  469. package/sidebar/sidebar.cjs.js +58 -45
  470. package/sidebar/sidebar.cjs.min.js +1 -1
  471. package/sidebar/sidebar.d.ts +23 -1
  472. package/sidebar/sidebar.esm.js +58 -45
  473. package/sidebar/sidebar.esm.min.js +1 -1
  474. package/sidebar/sidebar.js +58 -45
  475. package/sidebar/sidebar.min.js +1 -1
  476. package/slidemenu/slidemenu.cjs.js +4 -2
  477. package/slidemenu/slidemenu.cjs.min.js +1 -1
  478. package/slidemenu/slidemenu.esm.js +4 -2
  479. package/slidemenu/slidemenu.esm.min.js +1 -1
  480. package/slidemenu/slidemenu.js +4 -2
  481. package/slidemenu/slidemenu.min.js +1 -1
  482. package/slider/slider.cjs.js +1 -1
  483. package/slider/slider.cjs.min.js +1 -1
  484. package/slider/slider.esm.js +1 -1
  485. package/slider/slider.esm.min.js +1 -1
  486. package/slider/slider.js +1 -1
  487. package/slider/slider.min.js +1 -1
  488. package/speeddial/speeddial.cjs.js +264 -29
  489. package/speeddial/speeddial.cjs.min.js +1 -1
  490. package/speeddial/speeddial.esm.js +266 -31
  491. package/speeddial/speeddial.esm.min.js +1 -1
  492. package/speeddial/speeddial.js +264 -29
  493. package/speeddial/speeddial.min.js +1 -1
  494. package/splitbutton/splitbutton.cjs.js +1048 -267
  495. package/splitbutton/splitbutton.cjs.min.js +1 -1
  496. package/splitbutton/splitbutton.d.ts +4 -4
  497. package/splitbutton/splitbutton.esm.js +1049 -268
  498. package/splitbutton/splitbutton.esm.min.js +1 -1
  499. package/splitbutton/splitbutton.js +1048 -269
  500. package/splitbutton/splitbutton.min.js +1 -1
  501. package/splitter/splitter.cjs.js +103 -15
  502. package/splitter/splitter.cjs.min.js +1 -1
  503. package/splitter/splitter.d.ts +5 -0
  504. package/splitter/splitter.esm.js +103 -15
  505. package/splitter/splitter.esm.min.js +1 -1
  506. package/splitter/splitter.js +103 -15
  507. package/splitter/splitter.min.js +1 -1
  508. package/steps/steps.cjs.js +99 -13
  509. package/steps/steps.cjs.min.js +1 -1
  510. package/steps/steps.esm.js +100 -14
  511. package/steps/steps.esm.min.js +1 -1
  512. package/steps/steps.js +99 -13
  513. package/steps/steps.min.js +1 -1
  514. package/tabmenu/tabmenu.cjs.js +104 -10
  515. package/tabmenu/tabmenu.cjs.min.js +1 -1
  516. package/tabmenu/tabmenu.esm.js +104 -10
  517. package/tabmenu/tabmenu.esm.min.js +1 -1
  518. package/tabmenu/tabmenu.js +104 -10
  519. package/tabmenu/tabmenu.min.js +1 -1
  520. package/tabview/tabview.cjs.js +106 -12
  521. package/tabview/tabview.cjs.min.js +1 -1
  522. package/tabview/tabview.esm.js +106 -12
  523. package/tabview/tabview.esm.min.js +1 -1
  524. package/tabview/tabview.js +106 -12
  525. package/tabview/tabview.min.js +1 -1
  526. package/tieredmenu/tieredmenu.cjs.js +752 -274
  527. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  528. package/tieredmenu/tieredmenu.d.ts +10 -0
  529. package/tieredmenu/tieredmenu.esm.js +754 -276
  530. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  531. package/tieredmenu/tieredmenu.js +752 -274
  532. package/tieredmenu/tieredmenu.min.js +1 -1
  533. package/toast/toast.cjs.js +6 -1
  534. package/toast/toast.cjs.min.js +1 -1
  535. package/toast/toast.d.ts +35 -1
  536. package/toast/toast.esm.js +6 -1
  537. package/toast/toast.esm.min.js +1 -1
  538. package/toast/toast.js +6 -1
  539. package/toast/toast.min.js +1 -1
  540. package/tree/tree.cjs.js +51 -54
  541. package/tree/tree.cjs.min.js +1 -1
  542. package/tree/tree.esm.js +51 -54
  543. package/tree/tree.esm.min.js +1 -1
  544. package/tree/tree.js +51 -54
  545. package/tree/tree.min.js +1 -1
  546. package/treetable/treetable.cjs.js +11 -28
  547. package/treetable/treetable.cjs.min.js +1 -1
  548. package/treetable/treetable.esm.js +11 -28
  549. package/treetable/treetable.esm.min.js +1 -1
  550. package/treetable/treetable.js +11 -28
  551. package/treetable/treetable.min.js +1 -1
  552. package/utils/utils.cjs.js +12 -1
  553. package/utils/utils.cjs.min.js +1 -1
  554. package/utils/utils.esm.js +12 -1
  555. package/utils/utils.esm.min.js +1 -1
  556. package/utils/utils.js +12 -1
  557. package/utils/utils.min.js +1 -1
  558. package/web-types.json +267 -5
@@ -88,35 +88,8 @@ function _defineProperty(obj, key, value) {
88
88
  return obj;
89
89
  }
90
90
 
91
- function _arrayLikeToArray(arr, len) {
92
- if (len == null || len > arr.length) len = arr.length;
93
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
94
- return arr2;
95
- }
96
-
97
- function _arrayWithoutHoles(arr) {
98
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
99
- }
100
-
101
- function _iterableToArray(iter) {
102
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
103
- }
104
-
105
- function _unsupportedIterableToArray(o, minLen) {
106
- if (!o) return;
107
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
108
- var n = Object.prototype.toString.call(o).slice(8, -1);
109
- if (n === "Object" && o.constructor) n = o.constructor.name;
110
- if (n === "Map" || n === "Set") return Array.from(o);
111
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
112
- }
113
-
114
- function _nonIterableSpread() {
115
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
116
- }
117
-
118
- function _toConsumableArray(arr) {
119
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
91
+ function _readOnlyError(name) {
92
+ throw new TypeError("\"" + name + "\" is read-only");
120
93
  }
121
94
 
122
95
  function _arrayWithHoles(arr) {
@@ -151,6 +124,21 @@ function _iterableToArrayLimit(r, l) {
151
124
  }
152
125
  }
153
126
 
127
+ function _arrayLikeToArray(arr, len) {
128
+ if (len == null || len > arr.length) len = arr.length;
129
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
130
+ return arr2;
131
+ }
132
+
133
+ function _unsupportedIterableToArray(o, minLen) {
134
+ if (!o) return;
135
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
136
+ var n = Object.prototype.toString.call(o).slice(8, -1);
137
+ if (n === "Object" && o.constructor) n = o.constructor.name;
138
+ if (n === "Map" || n === "Set") return Array.from(o);
139
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
140
+ }
141
+
154
142
  function _nonIterableRest() {
155
143
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
156
144
  }
@@ -159,12 +147,25 @@ function _slicedToArray(arr, i) {
159
147
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
160
148
  }
161
149
 
150
+ /* eslint-disable */
151
+ var useUpdateEffect = function useUpdateEffect(fn, deps) {
152
+ var mounted = React__namespace.useRef(false);
153
+ return React__namespace.useEffect(function () {
154
+ if (!mounted.current) {
155
+ mounted.current = true;
156
+ return;
157
+ }
158
+ return fn && fn();
159
+ }, deps);
160
+ };
161
+ /* eslint-enable */
162
+
162
163
  var classes = {
163
164
  headerIcon: function headerIcon(_ref) {
164
165
  var item = _ref.item;
165
166
  return utils.classNames('p-menuitem-icon', item.icon);
166
167
  },
167
- headerSubmenuIcon: 'p-panelmenu-icon',
168
+ headerSubmenuIcon: 'p-submenu-icon',
168
169
  headerLabel: 'p-menuitem-text',
169
170
  headerAction: 'p-panelmenu-header-link',
170
171
  panel: function panel(_ref2) {
@@ -175,16 +176,17 @@ var classes = {
175
176
  var active = _ref3.active,
176
177
  item = _ref3.item;
177
178
  return utils.classNames('p-component p-panelmenu-header', {
178
- 'p-highlight': active && !!item.items,
179
+ 'p-highlight': active,
179
180
  'p-disabled': item.disabled
180
181
  });
181
182
  },
183
+ headerContent: 'p-panelmenu-header-content',
182
184
  menuContent: 'p-panelmenu-content',
183
185
  root: function root(_ref4) {
184
186
  var props = _ref4.props;
185
187
  return utils.classNames('p-panelmenu p-component', props.className);
186
188
  },
187
- separator: 'p-menu-separator',
189
+ separator: 'p-menuitem-separator',
188
190
  toggleableContent: function toggleableContent(_ref5) {
189
191
  var active = _ref5.active;
190
192
  return utils.classNames('p-toggleable-content', {
@@ -196,7 +198,8 @@ var classes = {
196
198
  return utils.classNames('p-menuitem-icon', item.icon);
197
199
  },
198
200
  label: 'p-menuitem-text',
199
- submenuicon: 'p-panelmenu-icon',
201
+ submenuicon: 'p-submenu-icon',
202
+ content: 'p-menuitem-content',
200
203
  action: function action(_ref7) {
201
204
  var item = _ref7.item;
202
205
  return utils.classNames('p-menuitem-link', {
@@ -204,14 +207,19 @@ var classes = {
204
207
  });
205
208
  },
206
209
  menuitem: function menuitem(_ref8) {
207
- var item = _ref8.item;
208
- return utils.classNames('p-menuitem', item.className);
210
+ var item = _ref8.item,
211
+ focused = _ref8.focused,
212
+ disabled = _ref8.disabled;
213
+ return utils.classNames('p-menuitem', item.className, {
214
+ 'p-focus': focused,
215
+ 'p-disabled': disabled
216
+ });
209
217
  },
210
- menu: 'p-submenu-list',
218
+ menu: 'p-panelmenu-root-list',
211
219
  submenu: 'p-submenu-list',
212
220
  transition: 'p-toggleable-content'
213
221
  };
214
- var styles = "\n@layer primereact {\n .p-panelmenu .p-panelmenu-header-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n }\n \n .p-panelmenu .p-panelmenu-header-link:focus {\n z-index: 1;\n }\n \n .p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n .p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n }\n \n .p-panelmenu .p-menuitem-text {\n line-height: 1;\n }\n}\n";
222
+ var styles = "\n@layer primereact {\n .p-panelmenu .p-panelmenu-header-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n }\n\n .p-panelmenu .p-panelmenu-header-link:focus {\n z-index: 1;\n }\n\n .p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n text-decoration: none;\n position: relative;\n overflow: hidden;\n }\n\n .p-panelmenu .p-menuitem-text {\n line-height: 1;\n }\n}\n";
215
223
  var PanelMenuBase = componentbase.ComponentBase.extend({
216
224
  defaultProps: {
217
225
  __TYPE: 'PanelMenu',
@@ -219,7 +227,11 @@ var PanelMenuBase = componentbase.ComponentBase.extend({
219
227
  model: null,
220
228
  style: null,
221
229
  submenuIcon: null,
230
+ expandedKeys: null,
222
231
  className: null,
232
+ onExpandedKeysChange: null,
233
+ onOpen: null,
234
+ onClose: null,
223
235
  multiple: false,
224
236
  transitionOptions: null,
225
237
  children: undefined
@@ -232,77 +244,81 @@ var PanelMenuBase = componentbase.ComponentBase.extend({
232
244
 
233
245
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
234
246
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
235
- var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
236
- var _React$useState = React__namespace.useState(null),
237
- _React$useState2 = _slicedToArray(_React$useState, 2),
238
- activeItemState = _React$useState2[0],
239
- setActiveItemState = _React$useState2[1];
247
+ var PanelMenuSub = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
240
248
  var ptm = props.ptm,
241
249
  cx = props.cx;
250
+ var elementRef = React__namespace.useRef(null);
242
251
  var _ptm = function _ptm(key, options) {
243
252
  return ptm(key, _objectSpread$1({
244
253
  hostName: props.hostName
245
254
  }, options));
246
255
  };
247
- var getPTOptions = function getPTOptions(item, key) {
256
+ var getPTOptions = function getPTOptions(processedItem, key, index) {
248
257
  return _ptm(key, {
249
258
  context: {
250
- active: isItemActive(item)
259
+ item: processedItem,
260
+ index: index,
261
+ active: isItemActive(processedItem),
262
+ focused: isItemFocused(processedItem),
263
+ disabled: isItemDisabled(processedItem)
251
264
  }
252
265
  });
253
266
  };
254
- var findActiveItem = function findActiveItem() {
255
- if (props.model) {
256
- if (props.multiple) {
257
- return props.model.filter(function (item) {
258
- return item.expanded;
259
- });
260
- } else {
261
- var activeItem = null;
262
- props.model.forEach(function (item) {
263
- if (item.expanded) {
264
- if (!activeItem) activeItem = item;else item.expanded = false;
265
- }
266
- });
267
- return activeItem;
268
- }
269
- }
270
- return null;
267
+ var getItemId = function getItemId(processedItem) {
268
+ return "".concat(props.panelId, "_").concat(processedItem.key);
271
269
  };
272
- var onItemClick = function onItemClick(event, item) {
273
- if (item.disabled) {
274
- event.preventDefault();
275
- return;
276
- }
277
- if (!item.url) {
270
+ var getItemProp = function getItemProp(processedItem, name, params) {
271
+ return processedItem && processedItem.item ? utils.ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
272
+ };
273
+ var isItemActive = function isItemActive(processedItem) {
274
+ return props.activeItemPath.some(function (path) {
275
+ return path.key === processedItem.key;
276
+ });
277
+ };
278
+ var isItemVisible = function isItemVisible(processedItem) {
279
+ return getItemProp(processedItem, 'visible') !== false;
280
+ };
281
+ var isItemDisabled = function isItemDisabled(processedItem) {
282
+ return getItemProp(processedItem, 'disabled');
283
+ };
284
+ var isItemFocused = function isItemFocused(processedItem) {
285
+ return props.focusedItemId === getItemId(processedItem);
286
+ };
287
+ var isItemGroup = function isItemGroup(processedItem) {
288
+ return utils.ObjectUtils.isNotEmpty(processedItem.items);
289
+ };
290
+ var onItemClick = function onItemClick(event, processedItem) {
291
+ if (!getItemProp(processedItem, 'url')) {
278
292
  event.preventDefault();
279
293
  }
280
- if (item.command) {
281
- item.command({
282
- originalEvent: event,
283
- item: item
284
- });
285
- }
286
- var activeItem = activeItemState;
287
- var active = isItemActive(item);
288
- if (active) {
289
- item.expanded = false;
290
- setActiveItemState(props.multiple ? activeItem.filter(function (a_item) {
291
- return a_item !== item;
292
- }) : null);
293
- } else {
294
- if (!props.multiple && activeItem) {
295
- activeItem.expanded = false;
296
- }
297
- item.expanded = true;
298
- setActiveItemState(props.multiple ? [].concat(_toConsumableArray(activeItem || []), [item]) : item);
299
- }
294
+ getItemProp(processedItem, 'command', {
295
+ originalEvent: event,
296
+ item: processedItem.item
297
+ });
298
+ onItemToggle({
299
+ processedItem: processedItem,
300
+ expanded: !isItemActive(processedItem)
301
+ });
300
302
  };
301
- var isItemActive = function isItemActive(item) {
302
- return activeItemState && (props.multiple ? activeItemState.indexOf(item) > -1 : activeItemState === item);
303
+ var onItemToggle = function onItemToggle(event) {
304
+ props.onItemToggle(event);
303
305
  };
304
- hooks.useMountEffect(function () {
305
- setActiveItemState(findActiveItem());
306
+ var getAriaSetSize = function getAriaSetSize() {
307
+ return props.model.filter(function (processedItem) {
308
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
309
+ }).length;
310
+ };
311
+ var getAriaPosInset = function getAriaPosInset(index) {
312
+ return index - props.model.slice(0, index).filter(function (processedItem) {
313
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
314
+ }).length + 1;
315
+ };
316
+ React__namespace.useImperativeHandle(ref, function () {
317
+ return {
318
+ getElement: function getElement() {
319
+ return elementRef.current;
320
+ }
321
+ };
306
322
  });
307
323
  var createSeparator = function createSeparator(index) {
308
324
  var key = props.id + '_sep_' + index;
@@ -314,14 +330,14 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
314
330
  }, _ptm('separator'));
315
331
  return /*#__PURE__*/React__namespace.createElement("li", separatorProps);
316
332
  };
317
- var createSubmenu = function createSubmenu(item, active, index) {
333
+ var createSubmenu = function createSubmenu(processedItem, active) {
318
334
  var submenuRef = /*#__PURE__*/React__namespace.createRef();
319
335
  var toggleableContentProps = utils.mergeProps({
320
336
  className: cx('toggleableContent', {
321
337
  active: active
322
338
  })
323
339
  }, _ptm('toggleableContent'));
324
- if (item.items) {
340
+ if (isItemVisible(processedItem) && isItemGroup(processedItem)) {
325
341
  var transitionProps = utils.mergeProps({
326
342
  classNames: cx('transition'),
327
343
  timeout: {
@@ -336,10 +352,15 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
336
352
  }, transitionProps), /*#__PURE__*/React__namespace.createElement("div", _extends({
337
353
  ref: submenuRef
338
354
  }, toggleableContentProps), /*#__PURE__*/React__namespace.createElement(PanelMenuSub, {
339
- id: props.id + '_' + index,
355
+ id: getItemId(processedItem) + '_list',
356
+ role: "group",
357
+ panelId: props.panelId,
358
+ level: props.level + 1,
359
+ focusedItemId: props.focusedItemId,
360
+ activeItemPath: props.activeItemPath,
361
+ onItemToggle: onItemToggle,
340
362
  menuProps: props.menuProps,
341
- model: item.items,
342
- multiple: props.multiple,
363
+ model: processedItem.items,
343
364
  submenuIcon: props.submenuIcon,
344
365
  ptm: ptm,
345
366
  cx: cx
@@ -347,12 +368,15 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
347
368
  }
348
369
  return null;
349
370
  };
350
- var createMenuItem = function createMenuItem(item, index) {
351
- if (item.visible === false) {
371
+ var createMenuItem = function createMenuItem(processedItem, index) {
372
+ var item = processedItem.item;
373
+ if (isItemVisible(processedItem) === false) {
352
374
  return null;
353
375
  }
354
- var key = item.id || props.id + '_' + index;
355
- var active = isItemActive(item);
376
+ var key = getItemId(processedItem);
377
+ var active = isItemActive(processedItem);
378
+ var itemFocused = isItemFocused(processedItem);
379
+ var disabled = isItemDisabled(item);
356
380
  var linkClassName = utils.classNames('p-menuitem-link', {
357
381
  'p-disabled': item.disabled
358
382
  });
@@ -361,38 +385,35 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
361
385
  className: cx('icon', {
362
386
  item: item
363
387
  })
364
- }, getPTOptions(item, 'icon'));
388
+ }, getPTOptions(processedItem, 'icon', index));
365
389
  var icon = utils.IconUtils.getJSXIcon(item.icon, _objectSpread$1({}, iconProps), {
366
390
  props: props.menuProps
367
391
  });
368
392
  var labelProps = utils.mergeProps({
369
393
  className: cx('label')
370
- }, getPTOptions(item, 'label'));
394
+ }, getPTOptions(processedItem, 'label', index));
371
395
  var label = item.label && /*#__PURE__*/React__namespace.createElement("span", labelProps, item.label);
372
396
  var submenuIconClassName = 'p-panelmenu-icon';
373
397
  var submenuIconProps = utils.mergeProps({
374
398
  className: cx('submenuicon')
375
- }, getPTOptions(item, 'submenuicon'));
399
+ }, getPTOptions(processedItem, 'submenuicon', index));
376
400
  var submenuIcon = item.items && utils.IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React__namespace.createElement(chevrondown.ChevronDownIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React__namespace.createElement(chevronright.ChevronRightIcon, submenuIconProps));
377
- var submenu = createSubmenu(item, active, index);
401
+ var submenu = createSubmenu(processedItem, active);
378
402
  var actionProps = utils.mergeProps({
379
403
  href: item.url || '#',
380
404
  className: cx('action', {
381
405
  item: item
382
406
  }),
383
407
  target: item.target,
384
- onClick: function onClick(event) {
385
- return onItemClick(event, item);
408
+ onFocus: function onFocus(event) {
409
+ return event.stopPropagation();
386
410
  },
387
- role: 'menuitem',
388
- 'aria-disabled': item.disabled
389
- }, getPTOptions(item, 'action'));
411
+ tabIndex: '-1',
412
+ 'aria-hidden': true
413
+ }, getPTOptions(processedItem, 'action', index));
390
414
  var content = /*#__PURE__*/React__namespace.createElement("a", actionProps, submenuIcon, icon, label);
391
415
  if (item.template) {
392
416
  var defaultContentOptions = {
393
- onClick: function onClick(event) {
394
- return onItemClick(event, item);
395
- },
396
417
  className: linkClassName,
397
418
  labelClassName: 'p-menuitem-text',
398
419
  iconClassName: iconClassName,
@@ -404,19 +425,34 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
404
425
  };
405
426
  content = utils.ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
406
427
  }
428
+ var contentProps = utils.mergeProps({
429
+ onClick: function onClick(event) {
430
+ return onItemClick(event, processedItem);
431
+ },
432
+ className: cx('content')
433
+ }, getPTOptions(processedItem, 'content', index));
407
434
  var menuitemProps = utils.mergeProps({
408
435
  key: key,
409
436
  id: key,
410
437
  className: cx('menuitem', {
411
- item: item
438
+ item: item,
439
+ focused: itemFocused,
440
+ disabled: disabled
412
441
  }),
413
442
  style: item.style,
414
- role: 'none'
415
- }, getPTOptions(item, 'menuitem'));
416
- return /*#__PURE__*/React__namespace.createElement("li", menuitemProps, content, submenu);
443
+ role: 'treeitem',
444
+ 'aria-label': item.label,
445
+ 'aria-expanded': isItemGroup(item) ? active : undefined,
446
+ 'aria-level': props.level + 1,
447
+ 'aria-setsize': getAriaSetSize(),
448
+ 'aria-posinset': getAriaPosInset(index),
449
+ 'data-p-focused': itemFocused,
450
+ 'data-p-disabled': disabled
451
+ }, getPTOptions(processedItem, 'menuitem', index));
452
+ return /*#__PURE__*/React__namespace.createElement("li", menuitemProps, /*#__PURE__*/React__namespace.createElement("div", contentProps, content), submenu);
417
453
  };
418
454
  var createItem = function createItem(item, index) {
419
- return item.separator ? createSeparator(index) : createMenuItem(item, index);
455
+ return getItemProp(item, 'separator') ? createSeparator(index) : createMenuItem(item, index);
420
456
  };
421
457
  var createMenu = function createMenu() {
422
458
  return props.model ? props.model.map(createItem) : null;
@@ -424,13 +460,431 @@ var PanelMenuSub = /*#__PURE__*/React__namespace.memo(function (props) {
424
460
  var menu = createMenu();
425
461
  var ptKey = props.root ? 'menu' : 'submenu';
426
462
  var menuProps = utils.mergeProps({
427
- className: utils.classNames(cx(ptKey), props.className),
428
- role: 'tree'
463
+ id: props.id,
464
+ ref: elementRef,
465
+ tabIndex: props.tabIndex,
466
+ onFocus: props.onFocus,
467
+ onBlur: props.onBlur,
468
+ onKeyDown: props.onKeyDown,
469
+ 'aria-activedescendant': props.ariaActivedescendant,
470
+ role: props.role,
471
+ className: utils.classNames(cx(ptKey), props.className)
429
472
  }, ptm(ptKey));
430
473
  return /*#__PURE__*/React__namespace.createElement("ul", menuProps, menu);
431
- });
474
+ }));
432
475
  PanelMenuSub.displayName = 'PanelMenuSub';
433
476
 
477
+ var PanelMenuList = /*#__PURE__*/React__namespace.memo(function (props) {
478
+ var ptm = props.ptm,
479
+ cx = props.cx;
480
+ var _React$useState = React__namespace.useState(false),
481
+ _React$useState2 = _slicedToArray(_React$useState, 2),
482
+ focused = _React$useState2[0],
483
+ setFocused = _React$useState2[1];
484
+ var _React$useState3 = React__namespace.useState(null),
485
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
486
+ focusedItem = _React$useState4[0],
487
+ setFocusedItem = _React$useState4[1];
488
+ var _React$useState5 = React__namespace.useState(null),
489
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
490
+ focusedItemId = _React$useState6[0],
491
+ setFocusedItemId = _React$useState6[1];
492
+ var _React$useState7 = React__namespace.useState(null),
493
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
494
+ activeItemPath = _React$useState8[0],
495
+ setActiveItemPath = _React$useState8[1];
496
+ var _React$useState9 = React__namespace.useState(null),
497
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
498
+ processedItems = _React$useState10[0],
499
+ setProcessedItems = _React$useState10[1];
500
+ var _React$useState11 = React__namespace.useState([]),
501
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
502
+ visibleItems = _React$useState12[0],
503
+ setVisibleItems = _React$useState12[1];
504
+ var searchValue = React__namespace.useRef(null);
505
+ var searchTimeout = React__namespace.useRef(null);
506
+ var elementRef = React__namespace.useRef(null);
507
+ var getItemProp = function getItemProp(processedItem, name) {
508
+ return processedItem && processedItem.item ? utils.ObjectUtils.getItemValue(processedItem.item[name]) : undefined;
509
+ };
510
+ var getItemLabel = function getItemLabel(processedItem) {
511
+ return getItemProp(processedItem, 'label');
512
+ };
513
+ var isItemVisible = function isItemVisible(processedItem) {
514
+ return getItemProp(processedItem, 'visible') !== false;
515
+ };
516
+ var isItemDisabled = function isItemDisabled(processedItem) {
517
+ return getItemProp(processedItem, 'disabled');
518
+ };
519
+ var isItemActive = function isItemActive(processedItem) {
520
+ return activeItemPath.some(function (path) {
521
+ return path.key === processedItem.parentKey;
522
+ });
523
+ };
524
+ var isItemGroup = function isItemGroup(processedItem) {
525
+ return utils.ObjectUtils.isNotEmpty(processedItem.items);
526
+ };
527
+ var getListElement = function getListElement() {
528
+ return elementRef.current && elementRef.current.getElement();
529
+ };
530
+ var onFocus = function onFocus(event) {
531
+ setFocused(true);
532
+ var _focusedItem = focusedItem || (isElementInPanel(event, event.relatedTarget) ? findFirstItem() : findLastItem());
533
+ setFocusedItem(_focusedItem);
534
+ };
535
+ var onBlur = function onBlur() {
536
+ setFocused(false);
537
+ setFocusedItem(null);
538
+ searchValue.current = '';
539
+ };
540
+ var onKeyDown = function onKeyDown(event) {
541
+ var metaKey = event.metaKey || event.ctrlKey;
542
+ switch (event.code) {
543
+ case 'ArrowDown':
544
+ onArrowDownKey(event);
545
+ break;
546
+ case 'ArrowUp':
547
+ onArrowUpKey(event);
548
+ break;
549
+ case 'ArrowLeft':
550
+ onArrowLeftKey(event);
551
+ break;
552
+ case 'ArrowRight':
553
+ onArrowRightKey(event);
554
+ break;
555
+ case 'Home':
556
+ onHomeKey(event);
557
+ break;
558
+ case 'End':
559
+ onEndKey(event);
560
+ break;
561
+ case 'Space':
562
+ onSpaceKey(event);
563
+ break;
564
+ case 'Enter':
565
+ case 'NumpadEnter':
566
+ onEnterKey(event);
567
+ break;
568
+ case 'Escape':
569
+ case 'Tab':
570
+ case 'PageDown':
571
+ case 'PageUp':
572
+ case 'Backspace':
573
+ case 'ShiftLeft':
574
+ case 'ShiftRight':
575
+ //NOOP
576
+ break;
577
+ default:
578
+ if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
579
+ searchItems(event, event.key);
580
+ }
581
+ break;
582
+ }
583
+ };
584
+ var onArrowDownKey = function onArrowDownKey(event) {
585
+ var processedItem = utils.ObjectUtils.isNotEmpty(focusedItem) ? findNextItem(focusedItem) : findFirstItem();
586
+ changeFocusedItem({
587
+ originalEvent: event,
588
+ processedItem: processedItem,
589
+ focusOnNext: true
590
+ });
591
+ event.preventDefault();
592
+ };
593
+ var onArrowUpKey = function onArrowUpKey(event) {
594
+ var processedItem = utils.ObjectUtils.isNotEmpty(focusedItem) ? findPrevItem(focusedItem) : findLastItem();
595
+ changeFocusedItem({
596
+ originalEvent: event,
597
+ processedItem: processedItem,
598
+ selfCheck: true
599
+ });
600
+ event.preventDefault();
601
+ };
602
+ var onArrowLeftKey = function onArrowLeftKey(event) {
603
+ if (utils.ObjectUtils.isNotEmpty(focusedItem)) {
604
+ var matched = activeItemPath.some(function (p) {
605
+ return p.key === focusedItem.key;
606
+ });
607
+ if (matched) {
608
+ setActiveItemPath(activeItemPath.filter(function (p) {
609
+ return p.key !== focusedItem.key;
610
+ }));
611
+ } else {
612
+ setFocusedItem(utils.ObjectUtils.isNotEmpty(focusedItem.parent) ? focusedItem.parent : focusedItem);
613
+ }
614
+ event.preventDefault();
615
+ }
616
+ };
617
+ var onArrowRightKey = function onArrowRightKey(event) {
618
+ if (utils.ObjectUtils.isNotEmpty(focusedItem)) {
619
+ var grouped = isItemGroup(focusedItem);
620
+ if (grouped) {
621
+ var matched = activeItemPath.some(function (p) {
622
+ return p.key === focusedItem.key;
623
+ });
624
+ if (matched) {
625
+ onArrowDownKey(event);
626
+ } else {
627
+ var _activeItemPath = activeItemPath.filter(function (p) {
628
+ return p.parentKey !== focusedItem.parentKey;
629
+ });
630
+ _activeItemPath.push(focusedItem);
631
+ setActiveItemPath(_activeItemPath);
632
+ }
633
+ }
634
+ event.preventDefault();
635
+ }
636
+ };
637
+ var onHomeKey = function onHomeKey(event) {
638
+ changeFocusedItem({
639
+ originalEvent: event,
640
+ processedItem: findFirstItem(),
641
+ allowHeaderFocus: false
642
+ });
643
+ event.preventDefault();
644
+ };
645
+ var onEndKey = function onEndKey(event) {
646
+ changeFocusedItem({
647
+ originalEvent: event,
648
+ processedItem: findLastItem(),
649
+ focusOnNext: true,
650
+ allowHeaderFocus: false
651
+ });
652
+ event.preventDefault();
653
+ };
654
+ var onEnterKey = function onEnterKey(event) {
655
+ if (utils.ObjectUtils.isNotEmpty(focusedItem)) {
656
+ var element = utils.DomHandler.findSingle(getListElement(), "li[id=\"".concat("".concat(focusedItemId), "\"]"));
657
+ var anchorElement = element && (utils.DomHandler.findSingle(element, '[data-pc-section="action"]') || utils.DomHandler.findSingle(element, 'a,button'));
658
+ anchorElement ? anchorElement.click() : element && element.click();
659
+ }
660
+ event.preventDefault();
661
+ };
662
+ var onSpaceKey = function onSpaceKey(event) {
663
+ onEnterKey(event);
664
+ };
665
+ var onItemToggle = function onItemToggle(event) {
666
+ var processedItem = event.processedItem,
667
+ expanded = event.expanded;
668
+ if (props.expandedKeys) {
669
+ props.onToggle && props.onToggle({
670
+ item: processedItem.item,
671
+ expanded: expanded
672
+ });
673
+ } else {
674
+ var _activeItemPath = activeItemPath.filter(function (p) {
675
+ return p.parentKey !== processedItem.parentKey;
676
+ });
677
+ expanded && _activeItemPath.push(processedItem);
678
+ setActiveItemPath(_activeItemPath);
679
+ }
680
+ utils.DomHandler.focus(getListElement());
681
+ setFocusedItem(processedItem);
682
+ };
683
+ var isElementInPanel = function isElementInPanel(event, element) {
684
+ var panel = event.currentTarget.closest('[data-pc-section="panel"]');
685
+ return panel && panel.contains(element);
686
+ };
687
+ var isItemMatched = function isItemMatched(processedItem) {
688
+ return isValidItem(processedItem) && getItemLabel(processedItem).toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
689
+ };
690
+ var isVisibleItem = function isVisibleItem(processedItem) {
691
+ return !!processedItem && (processedItem.level === 0 || isItemActive(processedItem)) && isItemVisible(processedItem);
692
+ };
693
+ var isValidItem = function isValidItem(processedItem) {
694
+ return !!processedItem && !isItemDisabled(processedItem) && !getItemProp(processedItem, 'separator');
695
+ };
696
+ var findFirstItem = function findFirstItem() {
697
+ return visibleItems.find(function (processedItem) {
698
+ return isValidItem(processedItem);
699
+ });
700
+ };
701
+ var findLastItem = function findLastItem() {
702
+ return utils.ObjectUtils.findLast(visibleItems, function (processedItem) {
703
+ return isValidItem(processedItem);
704
+ });
705
+ };
706
+ var findNextItem = function findNextItem(processedItem) {
707
+ var index = visibleItems.findIndex(function (item) {
708
+ return item.key === processedItem.key;
709
+ });
710
+ var matchedItem = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).find(function (pItem) {
711
+ return isValidItem(pItem);
712
+ }) : undefined;
713
+ return matchedItem || processedItem;
714
+ };
715
+ var findPrevItem = function findPrevItem(processedItem) {
716
+ var index = visibleItems.findIndex(function (item) {
717
+ return item.key === processedItem.key;
718
+ });
719
+ var matchedItem = index > 0 ? utils.ObjectUtils.findLast(visibleItems.slice(0, index), function (pItem) {
720
+ return isValidItem(pItem);
721
+ }) : undefined;
722
+ return matchedItem || processedItem;
723
+ };
724
+ var searchItems = function searchItems(event, _char) {
725
+ searchValue.current = (searchValue.current || '') + _char;
726
+ var matchedItem = null;
727
+ var matched = false;
728
+ if (utils.ObjectUtils.isNotEmpty(focusedItem)) {
729
+ var focusedItemIndex = visibleItems.findIndex(function (processedItem) {
730
+ return processedItem.key === focusedItem.key;
731
+ });
732
+ matchedItem = visibleItems.slice(focusedItemIndex).find(function (processedItem) {
733
+ return isItemMatched(processedItem);
734
+ });
735
+ matchedItem = utils.ObjectUtils.isEmpty(matchedItem) ? visibleItems.slice(0, focusedItemIndex).find(function (processedItem) {
736
+ return isItemMatched(processedItem);
737
+ }) : matchedItem;
738
+ } else {
739
+ matchedItem = visibleItems.find(function (processedItem) {
740
+ return isItemMatched(processedItem);
741
+ });
742
+ }
743
+ if (utils.ObjectUtils.isNotEmpty(matchedItem)) {
744
+ matched = true;
745
+ }
746
+ if (utils.ObjectUtils.isEmpty(matchedItem) && utils.ObjectUtils.isEmpty(focusedItem)) {
747
+ matchedItem = findFirstItem();
748
+ }
749
+ if (utils.ObjectUtils.isNotEmpty(matchedItem)) {
750
+ changeFocusedItem({
751
+ originalEvent: event,
752
+ processedItem: matchedItem,
753
+ allowHeaderFocus: false
754
+ });
755
+ }
756
+ if (searchTimeout) {
757
+ clearTimeout(searchTimeout.current);
758
+ }
759
+ searchTimeout.current = setTimeout(function () {
760
+ searchValue.current = '';
761
+ searchTimeout.currentt = null;
762
+ }, 500);
763
+ return matched;
764
+ };
765
+ var changeFocusedItem = function changeFocusedItem(event) {
766
+ var originalEvent = event.originalEvent,
767
+ processedItem = event.processedItem,
768
+ focusOnNext = event.focusOnNext,
769
+ selfCheck = event.selfCheck,
770
+ _event$allowHeaderFoc = event.allowHeaderFocus,
771
+ allowHeaderFocus = _event$allowHeaderFoc === void 0 ? true : _event$allowHeaderFoc;
772
+ if (utils.ObjectUtils.isNotEmpty(focusedItem) && focusedItem.key !== processedItem.key) {
773
+ setFocusedItem(processedItem);
774
+ scrollInView();
775
+ } else if (allowHeaderFocus) {
776
+ props.onHeaderFocus && props.onHeaderFocus({
777
+ originalEvent: originalEvent,
778
+ focusOnNext: focusOnNext,
779
+ selfCheck: selfCheck
780
+ });
781
+ }
782
+ };
783
+ var scrollInView = function scrollInView() {
784
+ var element = utils.DomHandler.findSingle(getListElement(), "li[id=\"".concat("".concat(focusedItemId), "\"]"));
785
+ if (element) {
786
+ element.scrollIntoView && element.scrollIntoView({
787
+ block: 'nearest',
788
+ inline: 'start'
789
+ });
790
+ }
791
+ };
792
+ var autoUpdateActiveItemPath = function autoUpdateActiveItemPath(expandedKeys) {
793
+ var _activeItemPath = Object.entries(expandedKeys || {}).reduce(function (acc, _ref) {
794
+ var _ref2 = _slicedToArray(_ref, 2),
795
+ key = _ref2[0],
796
+ val = _ref2[1];
797
+ if (val) {
798
+ var processedItem = findProcessedItemByItemKey(key);
799
+ processedItem && acc.push(processedItem);
800
+ }
801
+ return acc;
802
+ }, []);
803
+ setActiveItemPath(_activeItemPath);
804
+ };
805
+ var findProcessedItemByItemKey = function findProcessedItemByItemKey(key, processed) {
806
+ var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
807
+ var _processedItems = processed ? processed : level === 0 && props.model;
808
+ if (!_processedItems) return null;
809
+ for (var i = 0; i < _processedItems.length; i++) {
810
+ var processedItem = _processedItems[i];
811
+ var processedKey = getItemProp(processedItem, 'key') || processedItem.key;
812
+ if (processedKey === key) return processedItem;
813
+ var matchedItem = findProcessedItemByItemKey(key, processedItem.items, level + 1);
814
+ if (matchedItem) return matchedItem;
815
+ }
816
+ };
817
+ var createProcessedItems = function createProcessedItems(items) {
818
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
819
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
820
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
821
+ var processedItems = [];
822
+ items && items.forEach(function (item, index) {
823
+ var key = item.key ? item.key : (parentKey !== '' ? parentKey + '_' : '') + index;
824
+ var newItem = {
825
+ item: item,
826
+ index: index,
827
+ level: level,
828
+ key: key,
829
+ parent: parent,
830
+ parentKey: parentKey
831
+ };
832
+ newItem['items'] = createProcessedItems(item.items, level + 1, newItem, key);
833
+ processedItems.push(newItem);
834
+ });
835
+ return processedItems;
836
+ };
837
+ var flatItems = function flatItems(processedItems) {
838
+ var processedFlattenItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
839
+ processedItems && processedItems.forEach(function (processedItem) {
840
+ if (isVisibleItem(processedItem)) {
841
+ processedFlattenItems.push(processedItem);
842
+ flatItems(processedItem.items, processedFlattenItems);
843
+ }
844
+ });
845
+ return processedFlattenItems;
846
+ };
847
+ useUpdateEffect(function () {
848
+ var processed = createProcessedItems(props.model);
849
+ setProcessedItems(processed);
850
+ }, [props.model]);
851
+ useUpdateEffect(function () {
852
+ var _visibleItems = flatItems(processedItems);
853
+ setVisibleItems(_visibleItems);
854
+ }, [processedItems, activeItemPath]);
855
+ useUpdateEffect(function () {
856
+ var _id = utils.ObjectUtils.isNotEmpty(focusedItem) ? "".concat(props.panelId, "_").concat(focusedItem.key) : null;
857
+ setFocusedItemId(_id);
858
+ }, [props.panelId, focusedItem]);
859
+ useUpdateEffect(function () {
860
+ autoUpdateActiveItemPath(props.expandedKeys);
861
+ }, [props.expandedKeys]);
862
+ return /*#__PURE__*/React__namespace.createElement(PanelMenuSub, {
863
+ hostName: "PanelMenu",
864
+ id: props.panelId + '_list',
865
+ ref: elementRef,
866
+ role: "tree",
867
+ tabIndex: -1,
868
+ ariaActivedescendant: focused ? focusedItemId : undefined,
869
+ panelId: props.panelId,
870
+ focusedItemId: focused ? focusedItemId : undefined,
871
+ model: processedItems,
872
+ activeItemPath: activeItemPath,
873
+ menuProps: props.menuProps,
874
+ onFocus: onFocus,
875
+ onBlur: onBlur,
876
+ onKeyDown: onKeyDown,
877
+ onItemToggle: onItemToggle,
878
+ level: 0,
879
+ className: cx('submenu'),
880
+ submenuIcon: props.submenuIcon,
881
+ root: true,
882
+ ptm: ptm,
883
+ cx: cx
884
+ });
885
+ });
886
+ PanelMenuList.displayName = 'PanelMenuList';
887
+
434
888
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
435
889
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
436
890
  var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
@@ -444,19 +898,20 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
444
898
  _React$useState4 = _slicedToArray(_React$useState3, 2),
445
899
  activeItemState = _React$useState4[0],
446
900
  setActiveItemState = _React$useState4[1];
447
- var _React$useState5 = React__namespace.useState(false),
901
+ var _React$useState5 = React__namespace.useState([]),
448
902
  _React$useState6 = _slicedToArray(_React$useState5, 2),
449
- animationDisabled = _React$useState6[0],
450
- setAnimationDisabled = _React$useState6[1];
903
+ activeItemsState = _React$useState6[0],
904
+ setActiveItemsState = _React$useState6[1];
905
+ var _React$useState7 = React__namespace.useState(false),
906
+ _React$useState8 = _slicedToArray(_React$useState7, 2);
907
+ _React$useState8[0];
908
+ var setAnimationDisabled = _React$useState8[1];
451
909
  var elementRef = React__namespace.useRef(null);
452
- var headerId = idState + '_header';
453
- var contentId = idState + '_content';
454
910
  var _PanelMenuBase$setMet = PanelMenuBase.setMetaData({
455
911
  props: props,
456
912
  state: {
457
913
  id: idState,
458
- activeItem: activeItemState,
459
- animationDisabled: animationDisabled
914
+ activeItem: activeItemState
460
915
  }
461
916
  }),
462
917
  ptm = _PanelMenuBase$setMet.ptm,
@@ -465,24 +920,6 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
465
920
  componentbase.useHandleStyle(PanelMenuBase.css.styles, isUnstyled, {
466
921
  name: 'panelmenu'
467
922
  });
468
- var findActiveItem = function findActiveItem() {
469
- if (props.model) {
470
- if (props.multiple) {
471
- return props.model.filter(function (item) {
472
- return item.expanded;
473
- });
474
- } else {
475
- var activeItem = null;
476
- props.model.forEach(function (item) {
477
- if (item.expanded) {
478
- if (!activeItem) activeItem = item;else item.expanded = false;
479
- }
480
- });
481
- return activeItem;
482
- }
483
- }
484
- return null;
485
- };
486
923
  var onItemClick = function onItemClick(event, item) {
487
924
  if (item.disabled) {
488
925
  event.preventDefault();
@@ -497,30 +934,163 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
497
934
  item: item
498
935
  });
499
936
  }
500
- var activeItem = activeItemState;
501
- var active = isItemActive(item);
502
- if (active) {
503
- item.expanded = false;
504
- setActiveItemState(props.multiple ? activeItem.filter(function (a_item) {
505
- return a_item !== item;
506
- }) : null);
507
- } else {
508
- if (!props.multiple && activeItem) {
509
- activeItem.expanded = false;
510
- }
511
- if (item.items) {
512
- item.expanded = true;
513
- setActiveItemState(props.multiple ? [].concat(_toConsumableArray(activeItem || []), [item]) : item);
937
+ changeActiveItem(event, item);
938
+ };
939
+ var getItemProp = function getItemProp(item, name) {
940
+ return item ? utils.ObjectUtils.getItemValue(item[name]) : undefined;
941
+ };
942
+ var isItemActive = function isItemActive(item) {
943
+ return props.expandedKeys ? props.expandedKeys[getItemProp(item, 'key')] : props.multiple ? activeItemsState.some(function (subItem) {
944
+ return utils.ObjectUtils.equals(item, subItem);
945
+ }) : utils.ObjectUtils.equals(item, activeItemState);
946
+ };
947
+ var isItemVisible = function isItemVisible(item) {
948
+ return getItemProp(item, 'visible') !== false;
949
+ };
950
+ var isItemDisabled = function isItemDisabled(item) {
951
+ return getItemProp(item, 'disabled');
952
+ };
953
+ var isItemFocused = function isItemFocused(item) {
954
+ return utils.ObjectUtils.equals(item, activeItemState);
955
+ };
956
+ var getPanelId = function getPanelId(index) {
957
+ return "".concat(idState, "_").concat(index);
958
+ };
959
+ var getHeaderId = function getHeaderId(index) {
960
+ return "".concat(getPanelId(index), "_header");
961
+ };
962
+ var getContentId = function getContentId(index) {
963
+ return "".concat(getPanelId(index), "_content");
964
+ };
965
+ var onHeaderKeyDown = function onHeaderKeyDown(event, item) {
966
+ switch (event.code) {
967
+ case 'ArrowDown':
968
+ onHeaderArrowDownKey(event);
969
+ break;
970
+ case 'ArrowUp':
971
+ onHeaderArrowUpKey(event);
972
+ break;
973
+ case 'Home':
974
+ onHeaderHomeKey(event);
975
+ break;
976
+ case 'End':
977
+ onHeaderEndKey(event);
978
+ break;
979
+ case 'Enter':
980
+ case 'NumpadEnter':
981
+ case 'Space':
982
+ onHeaderEnterKey(event, item);
983
+ break;
984
+ }
985
+ };
986
+ var onHeaderArrowDownKey = function onHeaderArrowDownKey(event) {
987
+ var rootList = utils.DomHandler.getAttribute(event.currentTarget, 'data-p-highlight') === true ? utils.DomHandler.findSingle(event.currentTarget.nextElementSibling, '[data-pc-section="menu"]') : null;
988
+ rootList ? utils.DomHandler.focus(rootList) : updateFocusedHeader({
989
+ originalEvent: event,
990
+ focusOnNext: true
991
+ });
992
+ event.preventDefault();
993
+ };
994
+ var onHeaderArrowUpKey = function onHeaderArrowUpKey(event) {
995
+ var prevHeader = findPrevHeader(event.currentTarget.parentElement) || findLastHeader();
996
+ var rootList = utils.DomHandler.getAttribute(prevHeader, 'data-p-highlight') === true ? utils.DomHandler.findSingle(prevHeader.nextElementSibling, '[data-pc-section="menu"]') : null;
997
+ rootList ? utils.DomHandler.focus(rootList) : updateFocusedHeader({
998
+ originalEvent: event,
999
+ focusOnNext: false
1000
+ });
1001
+ event.preventDefault();
1002
+ };
1003
+ var onHeaderHomeKey = function onHeaderHomeKey(event) {
1004
+ changeFocusedHeader(event, findFirstHeader());
1005
+ event.preventDefault();
1006
+ };
1007
+ var onHeaderEndKey = function onHeaderEndKey(event) {
1008
+ changeFocusedHeader(event, findLastHeader());
1009
+ event.preventDefault();
1010
+ };
1011
+ var onHeaderEnterKey = function onHeaderEnterKey(event, item) {
1012
+ var headerAction = utils.DomHandler.findSingle(event.currentTarget, '[data-pc-section="headeraction"]');
1013
+ headerAction ? headerAction.click() : onItemClick(event, item);
1014
+ event.preventDefault();
1015
+ };
1016
+ var findNextHeader = function findNextHeader(panelElement) {
1017
+ var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1018
+ var nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;
1019
+ var headerElement = utils.DomHandler.findSingle(nextPanelElement, '[data-pc-section="header"]');
1020
+ return headerElement ? utils.DomHandler.getAttribute(headerElement, 'data-p-disabled') ? findNextHeader(headerElement.parentElement) : headerElement : null;
1021
+ };
1022
+ var findPrevHeader = function findPrevHeader(panelElement) {
1023
+ var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1024
+ var prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;
1025
+ var headerElement = utils.DomHandler.findSingle(prevPanelElement, '[data-pc-section="header"]');
1026
+ return headerElement ? utils.DomHandler.getAttribute(headerElement, 'data-p-disabled') ? findPrevHeader(headerElement.parentElement) : headerElement : null;
1027
+ };
1028
+ var findFirstHeader = function findFirstHeader() {
1029
+ return findNextHeader(elementRef.current.firstElementChild, true);
1030
+ };
1031
+ var findLastHeader = function findLastHeader() {
1032
+ return findPrevHeader(elementRef.current.lastElementChild, true);
1033
+ };
1034
+ var updateFocusedHeader = function updateFocusedHeader(event) {
1035
+ var originalEvent = event.originalEvent,
1036
+ focusOnNext = event.focusOnNext,
1037
+ selfCheck = event.selfCheck;
1038
+ var panelElement = originalEvent.currentTarget.closest('[data-pc-section="panel"]');
1039
+ var header = selfCheck ? utils.DomHandler.findSingle(panelElement, '[data-pc-section="header"]') : focusOnNext ? findNextHeader(panelElement) : findPrevHeader(panelElement);
1040
+ header ? changeFocusedHeader(originalEvent, header) : focusOnNext ? onHeaderHomeKey(originalEvent) : onHeaderEndKey(originalEvent);
1041
+ };
1042
+ var changeActiveItem = function changeActiveItem(event, item) {
1043
+ if (!isItemDisabled(item)) {
1044
+ var active = isItemActive(item);
1045
+ var isOpen = !active;
1046
+ var _activeItemState = activeItemState && utils.ObjectUtils.equals(item, activeItemState) ? null : item;
1047
+ setActiveItemState(_activeItemState);
1048
+ if (props.multiple) {
1049
+ var activeItems = activeItemsState;
1050
+ if (activeItemsState.some(function (subItem) {
1051
+ return utils.ObjectUtils.equals(item, subItem);
1052
+ })) {
1053
+ activeItemsState.filter(function (subItem) {
1054
+ return !utils.ObjectUtils.equals(item, subItem);
1055
+ }), _readOnlyError("activeItems");
1056
+ } else {
1057
+ activeItems.push(item);
1058
+ }
1059
+ setActiveItemsState(activeItems);
514
1060
  }
1061
+ changeExpandedKeys({
1062
+ item: item,
1063
+ expanded: !active
1064
+ });
1065
+ isOpen ? props.onOpen && props.onOpen({
1066
+ originalEvent: event,
1067
+ item: item
1068
+ }) : props.onClose && props.onClose({
1069
+ originalEvent: event,
1070
+ item: item
1071
+ });
515
1072
  }
516
1073
  };
517
- var isItemActive = function isItemActive(item) {
518
- return activeItemState && (props.multiple ? activeItemState.indexOf(item) > -1 : activeItemState === item);
1074
+ var changeExpandedKeys = function changeExpandedKeys(_ref) {
1075
+ var item = _ref.item,
1076
+ _ref$expanded = _ref.expanded,
1077
+ expanded = _ref$expanded === void 0 ? false : _ref$expanded;
1078
+ if (props.expandedKeys) {
1079
+ var _keys = _objectSpread({}, props.expandedKeys);
1080
+ if (expanded) _keys[item.key] = true;else delete _keys[item.key];
1081
+ props.onExpandedKeysChange && props.onExpandedKeysChange(_keys);
1082
+ }
519
1083
  };
520
- var getPTOptions = function getPTOptions(item, key) {
1084
+ var changeFocusedHeader = function changeFocusedHeader(event, element) {
1085
+ element && utils.DomHandler.focus(element);
1086
+ };
1087
+ var getPTOptions = function getPTOptions(item, key, index) {
521
1088
  return ptm(key, {
522
1089
  context: {
523
- active: isItemActive(item)
1090
+ active: isItemActive(item),
1091
+ focused: isItemFocused(item),
1092
+ disabled: isItemDisabled(item),
1093
+ index: index
524
1094
  }
525
1095
  });
526
1096
  };
@@ -536,17 +1106,15 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
536
1106
  if (!idState) {
537
1107
  setIdState(utils.UniqueComponentId());
538
1108
  }
539
- setActiveItemState(findActiveItem());
540
1109
  });
541
- hooks.useUpdateEffect(function () {
1110
+ useUpdateEffect(function () {
542
1111
  setAnimationDisabled(true);
543
- setActiveItemState(findActiveItem());
544
1112
  }, [props.model]);
545
1113
  var onEnter = function onEnter() {
546
1114
  setAnimationDisabled(false);
547
1115
  };
548
1116
  var createPanel = function createPanel(item, index) {
549
- if (item.visible === false) {
1117
+ if (!isItemVisible(item)) {
550
1118
  return null;
551
1119
  }
552
1120
  var key = item.id || idState + '_' + index;
@@ -556,31 +1124,25 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
556
1124
  className: cx('headerIcon', {
557
1125
  item: item
558
1126
  })
559
- }, getPTOptions(item, 'headerIcon'));
1127
+ }, getPTOptions(item, 'headerIcon', index));
560
1128
  var icon = utils.IconUtils.getJSXIcon(item.icon, _objectSpread({}, headerIconProps), {
561
1129
  props: props
562
1130
  });
563
1131
  var submenuIconClassName = 'p-panelmenu-icon';
564
1132
  var headerSubmenuIconProps = utils.mergeProps({
565
1133
  className: cx('headerSubmenuIcon')
566
- }, getPTOptions(item, 'headerSubmenuIcon'));
1134
+ }, getPTOptions(item, 'headerSubmenuIcon', index));
567
1135
  var submenuIcon = item.items && utils.IconUtils.getJSXIcon(active ? props.submenuIcon || /*#__PURE__*/React__namespace.createElement(chevrondown.ChevronDownIcon, headerSubmenuIconProps) : props.submenuIcon || /*#__PURE__*/React__namespace.createElement(chevronright.ChevronRightIcon, headerSubmenuIconProps));
568
1136
  var headerLabelProps = utils.mergeProps({
569
1137
  className: cx('headerLabel')
570
- }, getPTOptions(item, 'headerLabel'));
1138
+ }, getPTOptions(item, 'headerLabel', index));
571
1139
  var label = item.label && /*#__PURE__*/React__namespace.createElement("span", headerLabelProps, item.label);
572
1140
  var menuContentRef = /*#__PURE__*/React__namespace.createRef();
573
1141
  var headerActionProps = utils.mergeProps({
574
1142
  href: item.url || '#',
575
1143
  className: cx('headerAction'),
576
- onClick: function onClick(e) {
577
- return onItemClick(e, item);
578
- },
579
- 'aria-expanded': active,
580
- id: headerId,
581
- 'aria-controls': contentId,
582
- 'aria-disabled': item.disabled
583
- }, getPTOptions(item, 'headerAction'));
1144
+ tabIndex: '-1'
1145
+ }, getPTOptions(item, 'headerAction', index));
584
1146
  var content = /*#__PURE__*/React__namespace.createElement("a", headerActionProps, submenuIcon, icon, label);
585
1147
  if (item.template) {
586
1148
  var defaultContentOptions = {
@@ -604,24 +1166,42 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
604
1166
  item: item
605
1167
  }),
606
1168
  style: item.style
607
- }, getPTOptions(item, 'panel'));
1169
+ }, getPTOptions(item, 'panel', index));
608
1170
  var headerProps = utils.mergeProps({
1171
+ id: getHeaderId(index),
609
1172
  className: cx('header', {
610
1173
  active: active,
611
1174
  item: item
612
1175
  }),
1176
+ 'aria-label': item.label,
1177
+ 'aria-expanded': active,
1178
+ 'aria-disabled': item.disabled,
1179
+ 'aria-controls': getContentId(index),
1180
+ tabIndex: item.disabled ? null : '0',
1181
+ onClick: function onClick(event) {
1182
+ return onItemClick(event, item);
1183
+ },
1184
+ onKeyDown: function onKeyDown(event) {
1185
+ return onHeaderKeyDown(event, item);
1186
+ },
1187
+ 'data-p-disabled': item.disabled,
1188
+ 'data-p-highlight': active,
1189
+ role: 'button',
613
1190
  style: item.style
614
- }, getPTOptions(item, 'header'));
1191
+ }, getPTOptions(item, 'header', index));
1192
+ var headerContentProps = utils.mergeProps({
1193
+ className: cx('headerContent')
1194
+ }, getPTOptions(item, 'headerContent', index));
615
1195
  var menuContentProps = utils.mergeProps({
616
1196
  className: cx('menuContent')
617
- }, getPTOptions(item, 'menuContent'));
1197
+ }, getPTOptions(item, 'menuContent', index));
618
1198
  var toggleableContentProps = utils.mergeProps({
619
1199
  className: cx('toggleableContent', {
620
1200
  active: active
621
1201
  }),
622
1202
  role: 'region',
623
- 'aria-labelledby': headerId
624
- }, getPTOptions(item, 'toggleableContent'));
1203
+ 'aria-labelledby': getHeaderId(index)
1204
+ }, getPTOptions(item, 'toggleableContent', index));
625
1205
  var transitionProps = utils.mergeProps({
626
1206
  classNames: cx('transition'),
627
1207
  timeout: {
@@ -629,25 +1209,25 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
629
1209
  exit: 450
630
1210
  },
631
1211
  onEnter: onEnter,
632
- disabled: animationDisabled,
633
1212
  "in": active,
634
1213
  unmountOnExit: true,
635
1214
  options: props.transitionOptions
636
- }, getPTOptions(item, 'transition'));
637
- return /*#__PURE__*/React__namespace.createElement("div", panelProps, /*#__PURE__*/React__namespace.createElement("div", headerProps, content), /*#__PURE__*/React__namespace.createElement(csstransition.CSSTransition, _extends({
1215
+ }, getPTOptions(item, 'transition', index));
1216
+ return /*#__PURE__*/React__namespace.createElement("div", panelProps, /*#__PURE__*/React__namespace.createElement("div", headerProps, /*#__PURE__*/React__namespace.createElement("div", headerContentProps, content)), /*#__PURE__*/React__namespace.createElement(csstransition.CSSTransition, _extends({
638
1217
  nodeRef: menuContentRef
639
1218
  }, transitionProps), /*#__PURE__*/React__namespace.createElement("div", _extends({
640
- id: contentId,
1219
+ id: getContentId(index),
641
1220
  ref: menuContentRef
642
- }, toggleableContentProps), /*#__PURE__*/React__namespace.createElement("div", menuContentProps, /*#__PURE__*/React__namespace.createElement(PanelMenuSub, {
643
- hostName: "PanelMenu",
644
- id: key,
1221
+ }, toggleableContentProps), /*#__PURE__*/React__namespace.createElement("div", menuContentProps, /*#__PURE__*/React__namespace.createElement(PanelMenuList, {
1222
+ panelId: getPanelId(index),
645
1223
  menuProps: props,
1224
+ onToggle: changeExpandedKeys,
1225
+ onHeaderFocus: updateFocusedHeader,
1226
+ level: 0,
646
1227
  model: item.items,
1228
+ expandedKeys: props.expandedKeys,
647
1229
  className: "p-panelmenu-root-submenu",
648
- multiple: props.multiple,
649
1230
  submenuIcon: props.submenuIcon,
650
- root: true,
651
1231
  ptm: ptm,
652
1232
  cx: cx
653
1233
  })))));
@@ -657,13 +1237,12 @@ var PanelMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
657
1237
  };
658
1238
  var panels = createPanels();
659
1239
  var rootProps = utils.mergeProps({
1240
+ ref: elementRef,
660
1241
  className: cx('root'),
1242
+ id: props.id,
661
1243
  style: props.style
662
1244
  }, PanelMenuBase.getOtherProps(props), ptm('root'));
663
- return /*#__PURE__*/React__namespace.createElement("div", _extends({
664
- id: props.id,
665
- ref: elementRef
666
- }, rootProps), panels);
1245
+ return /*#__PURE__*/React__namespace.createElement("div", rootProps, panels);
667
1246
  }));
668
1247
  PanelMenu.displayName = 'PanelMenu';
669
1248