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
@@ -1,13 +1,13 @@
1
1
  'use client';
2
2
  import * as React from 'react';
3
- import PrimeReact, { PrimeReactContext } from 'primereact/api';
3
+ import PrimeReact, { PrimeReactContext, ariaLabel } from 'primereact/api';
4
4
  import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
5
- import { useMatchMedia, useEventListener, useResizeListener, useMountEffect, useUpdateEffect } from 'primereact/hooks';
5
+ import { useMatchMedia, useEventListener, useResizeListener, useUpdateEffect, useMountEffect } from 'primereact/hooks';
6
6
  import { AngleDownIcon } from 'primereact/icons/angledown';
7
7
  import { AngleRightIcon } from 'primereact/icons/angleright';
8
8
  import { BarsIcon } from 'primereact/icons/bars';
9
9
  import { Ripple } from 'primereact/ripple';
10
- import { classNames, UniqueComponentId, DomHandler, ZIndexUtils, mergeProps, ObjectUtils, IconUtils } from 'primereact/utils';
10
+ import { classNames, DomHandler, UniqueComponentId, ObjectUtils, ZIndexUtils, mergeProps, IconUtils } from 'primereact/utils';
11
11
 
12
12
  function _extends() {
13
13
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -65,6 +65,10 @@ function _defineProperty(obj, key, value) {
65
65
  return obj;
66
66
  }
67
67
 
68
+ function _readOnlyError(name) {
69
+ throw new TypeError("\"" + name + "\" is read-only");
70
+ }
71
+
68
72
  function _arrayWithHoles(arr) {
69
73
  if (Array.isArray(arr)) return arr;
70
74
  }
@@ -130,7 +134,8 @@ var classes = {
130
134
  'p-megamenu-mobile-active': mobileActiveState
131
135
  });
132
136
  },
133
- separator: 'p-menu-separator',
137
+ content: 'p-menuitem-content',
138
+ separator: 'p-menuitem-separator',
134
139
  submenuIcon: 'p-submenu-icon',
135
140
  action: function action(_ref2) {
136
141
  var item = _ref2.item;
@@ -138,20 +143,29 @@ var classes = {
138
143
  'p-disabled': item.disabled
139
144
  });
140
145
  },
141
- submenuItem: 'p-menuitem',
142
- submenuHeader: function submenuHeader(_ref3) {
143
- var submenu = _ref3.submenu;
144
- return classNames('p-megamenu-submenu-header', {
145
- 'p-disabled': submenu.disabled
146
+ submenuItem: function submenuItem(_ref3) {
147
+ var focused = _ref3.focused,
148
+ disabled = _ref3.disabled,
149
+ active = _ref3.active;
150
+ return classNames('p-menuitem', {
151
+ 'p-menuitem-active': active,
152
+ 'p-focus': focused,
153
+ 'p-disabled': disabled
146
154
  });
147
155
  },
148
- submenu: 'p-megamenu-submenu',
156
+ submenuHeader: function submenuHeader(_ref4) {
157
+ var disabled = _ref4.disabled;
158
+ return classNames('p-megamenu-submenu-header p-submenu-header', {
159
+ 'p-disabled': disabled
160
+ });
161
+ },
162
+ submenu: 'p-submenu-list p-megamenu-submenu',
149
163
  panel: 'p-megamenu-panel',
150
164
  grid: 'p-megamenu-grid',
151
165
  icon: 'p-menuitem-icon',
152
166
  label: 'p-menuitem-text',
153
- column: function column(_ref4) {
154
- var category = _ref4.category;
167
+ column: function column(_ref5) {
168
+ var category = _ref5.category;
155
169
  var length = category.items ? category.items.length : 0;
156
170
  var columnClass;
157
171
  switch (length) {
@@ -173,18 +187,16 @@ var classes = {
173
187
  }
174
188
  return columnClass;
175
189
  },
176
- headerAction: function headerAction(_ref5) {
177
- var category = _ref5.category;
178
- return classNames('p-menuitem-link', {
179
- 'p-disabled': category.disabled
180
- });
181
- },
182
190
  menuButton: 'p-megamenu-button',
183
191
  menuitem: function menuitem(_ref6) {
184
192
  var category = _ref6.category,
185
- activeItemState = _ref6.activeItemState;
193
+ activeItemState = _ref6.activeItemState,
194
+ focused = _ref6.focused,
195
+ disabled = _ref6.disabled;
186
196
  return classNames('p-menuitem', {
187
- 'p-menuitem-active': category === activeItemState
197
+ 'p-menuitem-active p-highlight': activeItemState && activeItemState.item === category,
198
+ 'p-focus': focused,
199
+ 'p-disabled': disabled
188
200
  });
189
201
  },
190
202
  menubar: 'p-megamenu-root-list',
@@ -192,7 +204,7 @@ var classes = {
192
204
  start: 'p-megamenu-start',
193
205
  end: 'p-megamenu-end'
194
206
  };
195
- var styles = "\n@layer primereact {\n .p-megamenu {\n display: flex;\n }\n \n .p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n .p-megamenu-root-list > .p-menuitem {\n position: relative;\n }\n \n .p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n \n .p-megamenu .p-menuitem-text {\n line-height: 1;\n }\n \n .p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n }\n \n .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n }\n \n .p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n /* Horizontal */\n .p-megamenu-horizontal {\n align-items: center;\n }\n \n .p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n \n .p-megamenu-horizontal .p-megamenu-custom,\n .p-megamenu-horizontal .p-megamenu-end {\n margin-left: auto;\n align-self: center;\n }\n \n /* Vertical */\n .p-megamenu-vertical {\n flex-direction: column;\n }\n \n .p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n }\n \n .p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n }\n \n .p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n }\n \n .p-megamenu-grid {\n display: flex;\n }\n \n .p-megamenu-col-2,\n .p-megamenu-col-3,\n .p-megamenu-col-4,\n .p-megamenu-col-6,\n .p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n \n .p-megamenu-col-2 {\n width: 16.6667%;\n }\n \n .p-megamenu-col-3 {\n width: 25%;\n }\n \n .p-megamenu-col-4 {\n width: 33.3333%;\n }\n \n .p-megamenu-col-6 {\n width: 50%;\n }\n \n .p-megamenu-col-12 {\n width: 100%;\n }\n \n .p-megamenu-button {\n display: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n }\n}\n";
207
+ var styles = "\n@layer primereact {\n .p-megamenu {\n display: flex;\n }\n\n .p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-megamenu-root-list > .p-menuitem {\n position: relative;\n }\n\n .p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n\n .p-megamenu .p-menuitem-text {\n line-height: 1;\n }\n\n .p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n }\n\n .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n }\n\n .p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n /* Horizontal */\n .p-megamenu-horizontal {\n align-items: center;\n }\n\n .p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .p-megamenu-horizontal .p-megamenu-custom,\n .p-megamenu-horizontal .p-megamenu-end {\n margin-left: auto;\n align-self: center;\n }\n\n /* Vertical */\n .p-megamenu-vertical {\n flex-direction: column;\n }\n\n .p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n }\n\n .p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n }\n\n .p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n }\n\n .p-megamenu-grid {\n display: flex;\n }\n\n .p-megamenu-col-2,\n .p-megamenu-col-3,\n .p-megamenu-col-4,\n .p-megamenu-col-6,\n .p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n\n .p-megamenu-col-2 {\n width: 16.6667%;\n }\n\n .p-megamenu-col-3 {\n width: 25%;\n }\n\n .p-megamenu-col-4 {\n width: 33.3333%;\n }\n\n .p-megamenu-col-6 {\n width: 50%;\n }\n\n .p-megamenu-col-12 {\n width: 100%;\n }\n\n .p-megamenu-button {\n display: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n }\n}\n";
196
208
  var MegaMenuBase = ComponentBase.extend({
197
209
  defaultProps: {
198
210
  __TYPE: 'MegaMenu',
@@ -205,6 +217,9 @@ var MegaMenuBase = ComponentBase.extend({
205
217
  scrollHeight: '400px',
206
218
  start: null,
207
219
  submenuIcon: null,
220
+ onFocus: null,
221
+ onBlur: null,
222
+ tabIndex: 0,
208
223
  menuIcon: null,
209
224
  end: null,
210
225
  children: undefined
@@ -230,13 +245,48 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
230
245
  setActiveItemState = _React$useState4[1];
231
246
  var _React$useState5 = React.useState(null),
232
247
  _React$useState6 = _slicedToArray(_React$useState5, 2),
233
- attributeSelectorState = _React$useState6[0],
234
- setAttributeSelectorState = _React$useState6[1];
235
- var _React$useState7 = React.useState(false),
248
+ focused = _React$useState6[0],
249
+ setFocused = _React$useState6[1];
250
+ var _React$useState7 = React.useState({
251
+ index: -1,
252
+ key: '',
253
+ parentKey: ''
254
+ }),
236
255
  _React$useState8 = _slicedToArray(_React$useState7, 2),
237
- mobileActiveState = _React$useState8[0],
238
- setMobileActiveState = _React$useState8[1];
256
+ focusedItemInfo = _React$useState8[0],
257
+ setFocusedItemInfo = _React$useState8[1];
258
+ var _React$useState9 = React.useState(null),
259
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
260
+ focusedItemId = _React$useState10[0],
261
+ setFocusedItemId = _React$useState10[1];
262
+ var _React$useState11 = React.useState(false),
263
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
264
+ dirty = _React$useState12[0],
265
+ setDirty = _React$useState12[1];
266
+ var _React$useState13 = React.useState(null),
267
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
268
+ processedItems = _React$useState14[0],
269
+ setProcessedItems = _React$useState14[1];
270
+ var _React$useState15 = React.useState([]),
271
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
272
+ visibleItems = _React$useState16[0],
273
+ setVisibleItems = _React$useState16[1];
274
+ var _React$useState17 = React.useState(null),
275
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
276
+ attributeSelectorState = _React$useState18[0],
277
+ setAttributeSelectorState = _React$useState18[1];
278
+ var _React$useState19 = React.useState(false),
279
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
280
+ mobileActiveState = _React$useState20[0],
281
+ setMobileActiveState = _React$useState20[1];
282
+ var _React$useState21 = React.useState(false),
283
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
284
+ focusTrigger = _React$useState22[0],
285
+ setFocusTrigger = _React$useState22[1];
286
+ var searchValue = React.useRef('');
287
+ var searchTimeout = React.useRef(null);
239
288
  var elementRef = React.useRef(null);
289
+ var menubarRef = React.useRef(null);
240
290
  var styleElementRef = React.useRef(null);
241
291
  var menuButtonRef = React.useRef(null);
242
292
  var horizontal = props.orientation === 'horizontal';
@@ -246,7 +296,7 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
246
296
  props: props,
247
297
  state: {
248
298
  id: idState,
249
- activeItem: activeItemState,
299
+ activeItem: activeItemState && activeItemState.item,
250
300
  attributeSelector: attributeSelectorState,
251
301
  mobileActive: mobileActiveState
252
302
  }
@@ -257,11 +307,13 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
257
307
  useHandleStyle(MegaMenuBase.css.styles, isUnstyled, {
258
308
  name: 'megamenu'
259
309
  });
260
- var getPTOptions = function getPTOptions(item, key, index) {
310
+ var getPTOptions = function getPTOptions(processedItem, key, index) {
261
311
  return ptm(key, {
262
312
  context: {
263
- active: activeItemState === item,
264
- item: item,
313
+ active: isItemActive(processedItem),
314
+ focused: isItemFocused(processedItem),
315
+ disabled: isItemDisabled(processedItem),
316
+ item: processedItem,
265
317
  index: index
266
318
  }
267
319
  });
@@ -269,129 +321,189 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
269
321
  var _useEventListener = useEventListener({
270
322
  type: 'click',
271
323
  listener: function listener(event) {
272
- if ((!isMobileMode || mobileActiveState) && isOutsideClicked(event)) {
273
- setActiveItemState(null);
274
- setMobileActiveState(false);
324
+ if (isOutsideClicked(event)) {
325
+ hide();
275
326
  }
276
327
  }
277
328
  }),
278
- _useEventListener2 = _slicedToArray(_useEventListener, 1),
279
- bindDocumentClickListener = _useEventListener2[0];
329
+ _useEventListener2 = _slicedToArray(_useEventListener, 2),
330
+ bindDocumentClickListener = _useEventListener2[0],
331
+ unbindDocumentClickListener = _useEventListener2[1];
280
332
  var _useResizeListener = useResizeListener({
333
+ type: 'resize',
281
334
  listener: function listener() {
282
- if (!isMobileMode || mobileActiveState) {
283
- setActiveItemState(null);
284
- setMobileActiveState(false);
285
- }
335
+ hide();
286
336
  }
287
337
  }),
288
- _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
289
- bindDocumentResizeListener = _useResizeListener2[0];
290
- var onLeafClick = function onLeafClick(event, item) {
338
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
339
+ bindDocumentResizeListener = _useResizeListener2[0],
340
+ unbindDocumentResizeListener = _useResizeListener2[1];
341
+ var bindListeners = function bindListeners() {
342
+ bindDocumentClickListener();
343
+ bindDocumentResizeListener();
344
+ };
345
+ var unbindListeners = function unbindListeners() {
346
+ unbindDocumentClickListener();
347
+ unbindDocumentResizeListener();
348
+ };
349
+ var onLeafClick = function onLeafClick(event) {
350
+ var originalEvent = event.originalEvent,
351
+ processedItem = event.processedItem;
352
+ var item = processedItem.item;
291
353
  if (item.disabled) {
292
- event.preventDefault();
354
+ originalEvent.preventDefault();
293
355
  return;
294
356
  }
295
357
  if (!item.url) {
296
- event.preventDefault();
358
+ originalEvent.preventDefault();
297
359
  }
298
360
  if (item.command) {
299
361
  item.command({
300
- originalEvent: event,
362
+ originalEvent: originalEvent,
301
363
  item: item
302
364
  });
303
365
  }
304
- setActiveItemState(null);
305
- setMobileActiveState(false);
306
- };
307
- var onCategoryMouseEnter = function onCategoryMouseEnter(event, item) {
308
- if (item.disabled || isMobileMode) {
309
- event.preventDefault();
310
- return;
366
+ var grouped = isProccessedItemGroup(processedItem);
367
+ var selected = isSelected(processedItem);
368
+ if (selected) {
369
+ var index = processedItem.index,
370
+ key = processedItem.key,
371
+ parentKey = processedItem.parentKey;
372
+ setActiveItemState(null);
373
+ setFocusedItemInfo({
374
+ index: index,
375
+ key: key,
376
+ parentKey: parentKey
377
+ });
378
+ } else {
379
+ if (grouped) {
380
+ onItemChange(event);
381
+ } else {
382
+ var rootProcessedItemIndex = activeItemState ? activeItemState.index : -1;
383
+ var rootProcessedItemKey = activeItemState ? activeItemState.key : '';
384
+ hide(originalEvent);
385
+ setFocusedItemInfo({
386
+ index: rootProcessedItemIndex,
387
+ key: rootProcessedItemKey,
388
+ parentKey: ''
389
+ });
390
+ setMobileActiveState(false);
391
+ }
311
392
  }
312
- if (activeItemState) {
313
- setActiveItemState(item);
393
+ };
394
+ var onItemChange = function onItemChange(event) {
395
+ var processedItem = event.processedItem,
396
+ isFocus = event.isFocus;
397
+ if (ObjectUtils.isEmpty(processedItem)) return;
398
+ var index = processedItem.index,
399
+ key = processedItem.key,
400
+ parentKey = processedItem.parentKey,
401
+ items = processedItem.items;
402
+ var grouped = ObjectUtils.isNotEmpty(items);
403
+ grouped && setActiveItemState(processedItem);
404
+ setFocusedItemInfo({
405
+ index: index,
406
+ key: key,
407
+ parentKey: parentKey
408
+ });
409
+ grouped && setDirty(true);
410
+ isFocus && DomHandler.focus(menubarRef.current);
411
+ };
412
+ var onCategoryMouseEnter = function onCategoryMouseEnter(event) {
413
+ if (!mobileActiveState && dirty) {
414
+ onItemChange(event);
314
415
  }
315
416
  };
316
- var onCategoryClick = function onCategoryClick(event, item) {
417
+ var onCategoryClick = function onCategoryClick(event) {
418
+ var originalEvent = event.originalEvent,
419
+ processedItem = event.processedItem;
420
+ var item = processedItem.item;
317
421
  if (item.disabled) {
318
- event.preventDefault();
422
+ originalEvent.preventDefault();
319
423
  return;
320
424
  }
321
425
  if (!item.url) {
322
- event.preventDefault();
426
+ originalEvent.preventDefault();
323
427
  }
324
428
  if (item.command) {
325
429
  item.command({
326
- originalEvent: event,
430
+ originalEvent: originalEvent,
327
431
  item: props.item
328
432
  });
329
- event.preventDefault();
433
+ originalEvent.preventDefault();
330
434
  }
331
- if (item.items) {
332
- activeItemState && activeItemState === item ? setActiveItemState(null) : setActiveItemState(item);
333
- event.preventDefault();
435
+ var grouped = isProccessedItemGroup(processedItem);
436
+ var root = ObjectUtils.isEmpty(processedItem.parent);
437
+ var selected = isSelected(processedItem);
438
+ if (selected) {
439
+ var index = processedItem.index,
440
+ key = processedItem.key,
441
+ parentKey = processedItem.parentKey;
442
+ setActiveItemState(null);
443
+ setFocusedItemInfo({
444
+ index: index,
445
+ key: key,
446
+ parentKey: parentKey
447
+ });
448
+ setDirty(!root);
449
+ } else {
450
+ if (grouped) {
451
+ onItemChange(event);
452
+ } else {
453
+ var rootProcessedItem = root ? processedItem : activeItemState;
454
+ hide();
455
+ changeFocusedItemInfo(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);
456
+ setMobileActiveState(false);
457
+ DomHandler.focus(menubarRef.current);
458
+ }
334
459
  }
335
460
  };
336
- var onCategoryKeyDown = function onCategoryKeyDown(event, item) {
337
- var listItem = event.currentTarget.parentElement;
338
- switch (event.which) {
339
- //down
340
- case 40:
341
- horizontal ? expandMenu(item) : navigateToNextItem(listItem);
342
- event.preventDefault();
343
- break;
344
-
345
- //up
346
- case 38:
347
- vertical ? navigateToPrevItem(listItem) : item.items && item === activeItemState && collapseMenu();
348
- event.preventDefault();
349
- break;
350
-
351
- //right
352
- case 39:
353
- horizontal ? navigateToNextItem(listItem) : expandMenu(item);
354
- event.preventDefault();
355
- break;
356
-
357
- //left
358
- case 37:
359
- horizontal ? navigateToPrevItem(listItem) : item.items && item === activeItemState && collapseMenu();
360
- event.preventDefault();
361
- break;
362
- }
461
+ var show = function show() {
462
+ setFocusedItemInfo({
463
+ index: findFirstFocusedItemIndex(),
464
+ level: 0,
465
+ parentKey: ''
466
+ });
363
467
  };
364
- var expandMenu = function expandMenu(item) {
365
- if (item.items) {
366
- setActiveItemState(item);
468
+ var hide = function hide(isFocus) {
469
+ if (mobileActiveState) {
470
+ setMobileActiveState(false);
471
+ setTimeout(function () {
472
+ DomHandler.focus(menuButtonRef.current);
473
+ }, 0);
367
474
  }
368
- };
369
- var collapseMenu = function collapseMenu(item) {
370
475
  setActiveItemState(null);
476
+ if (isFocus) {
477
+ setFocusedItemInfo({
478
+ index: -1,
479
+ key: '',
480
+ parentKey: ''
481
+ });
482
+ DomHandler.focus(menubarRef.current);
483
+ }
484
+ setDirty(false);
371
485
  };
372
486
  var toggle = function toggle(event) {
373
487
  event.preventDefault();
374
- setMobileActiveState(function (prevMobileActive) {
375
- return !prevMobileActive;
376
- });
377
- setActiveItemState(null);
378
- };
379
- var findNextItem = function findNextItem(item) {
380
- var nextItem = item.nextElementSibling;
381
- return nextItem ? DomHandler.getAttribute(nextItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(nextItem, '[data-pc-section="menuitem"]') ? findNextItem(nextItem) : nextItem : null;
382
- };
383
- var findPrevItem = function findPrevItem(item) {
384
- var prevItem = item.previousElementSibling;
385
- return prevItem ? DomHandler.getAttribute(prevItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(prevItem, '[data-pc-section="menuitem"]') ? findPrevItem(prevItem) : prevItem : null;
386
- };
387
- var navigateToNextItem = function navigateToNextItem(listItem) {
388
- var nextItem = findNextItem(listItem);
389
- nextItem && nextItem.children[0].focus();
390
- };
391
- var navigateToPrevItem = function navigateToPrevItem(listItem) {
392
- var prevItem = findPrevItem(listItem);
393
- prevItem && prevItem.children[0].focus();
488
+ if (mobileActiveState) {
489
+ setMobileActiveState(false);
490
+ ZIndexUtils.clear(menubarRef.current);
491
+ hide();
492
+ } else {
493
+ setMobileActiveState(true);
494
+ ZIndexUtils.set('menu', menubarRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
495
+ setTimeout(function () {
496
+ show();
497
+ }, 1);
498
+ }
394
499
  };
500
+ useUpdateEffect(function () {
501
+ if (mobileActiveState) {
502
+ bindListeners();
503
+ } else {
504
+ unbindListeners();
505
+ }
506
+ }, [mobileActiveState]);
395
507
  var isOutsideClicked = function isOutsideClicked(event) {
396
508
  return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target) || menuButtonRef.current && menuButtonRef.current.contains(event.target));
397
509
  };
@@ -409,13 +521,409 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
409
521
  if (props.breakpoint) {
410
522
  !attributeSelectorState && setAttributeSelectorState(uniqueId);
411
523
  }
412
- bindDocumentClickListener();
413
- bindDocumentResizeListener();
414
524
  });
525
+ var onFocus = function onFocus(event) {
526
+ setFocused(true);
527
+ if (focusedItemInfo.index === -1) {
528
+ var index = findFirstFocusedItemIndex();
529
+ var processedItem = findVisibleItem(index);
530
+ setFocusedItemInfo({
531
+ index: index,
532
+ key: processedItem.key,
533
+ parentKey: processedItem.parentKey
534
+ });
535
+ }
536
+ props.onFocus && props.onFocus(event);
537
+ };
538
+ var onBlur = function onBlur(event) {
539
+ setFocused(false);
540
+ setFocusedItemInfo({
541
+ index: -1,
542
+ key: '',
543
+ parentKey: ''
544
+ });
545
+ searchValue.current = '';
546
+ setDirty(false);
547
+ props.onBlur && props.onBlur(event);
548
+ };
549
+ var onKeyDown = function onKeyDown(event) {
550
+ var metaKey = event.metaKey || event.ctrlKey;
551
+ switch (event.code) {
552
+ case 'ArrowDown':
553
+ onArrowDownKey(event);
554
+ break;
555
+ case 'ArrowUp':
556
+ onArrowUpKey(event);
557
+ break;
558
+ case 'ArrowLeft':
559
+ onArrowLeftKey(event);
560
+ break;
561
+ case 'ArrowRight':
562
+ onArrowRightKey(event);
563
+ break;
564
+ case 'Home':
565
+ onHomeKey(event);
566
+ break;
567
+ case 'End':
568
+ onEndKey(event);
569
+ break;
570
+ case 'Space':
571
+ onSpaceKey(event);
572
+ break;
573
+ case 'Enter':
574
+ onEnterKey(event);
575
+ break;
576
+ case 'Escape':
577
+ onEscapeKey(event);
578
+ break;
579
+ case 'Tab':
580
+ onTabKey(event);
581
+ break;
582
+ case 'PageDown':
583
+ case 'PageUp':
584
+ case 'Backspace':
585
+ case 'ShiftLeft':
586
+ case 'ShiftRight':
587
+ //NOOP
588
+ break;
589
+ default:
590
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
591
+ searchItems(event, event.key);
592
+ }
593
+ break;
594
+ }
595
+ };
596
+ useUpdateEffect(function () {
597
+ if (focusTrigger) {
598
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
599
+ changeFocusedItemInfo(itemIndex);
600
+ setFocusTrigger(false);
601
+ }
602
+ }, [focusTrigger]);
603
+ var onArrowDownKey = function onArrowDownKey(event) {
604
+ event.preventDefault();
605
+ if (horizontal) {
606
+ var _focusedItemInfo = focusedItemInfo;
607
+ if (ObjectUtils.isNotEmpty(activeItemState) && activeItemState.key === focusedItemInfo.key) {
608
+ (({
609
+ index: -1,
610
+ key: '',
611
+ parentKey: activeItemState.key
612
+ })), _readOnlyError("_focusedItemInfo");
613
+ setFocusedItemInfo(_focusedItemInfo);
614
+ } else {
615
+ var processedItem = findVisibleItem(focusedItemInfo.index);
616
+ var grouped = isProccessedItemGroup(processedItem);
617
+ if (grouped) {
618
+ onItemChange({
619
+ originalEvent: event,
620
+ processedItem: processedItem
621
+ });
622
+ (({
623
+ index: -1,
624
+ key: processedItem.key,
625
+ parentKey: processedItem.parentKey
626
+ })), _readOnlyError("_focusedItemInfo");
627
+ setFocusedItemInfo(_focusedItemInfo);
628
+ searchValue.current = '';
629
+ }
630
+ }
631
+ setTimeout(function () {
632
+ return setFocusTrigger(true);
633
+ }, 0);
634
+ } else {
635
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
636
+ changeFocusedItemInfo(itemIndex);
637
+ }
638
+ };
639
+ var onArrowUpKey = function onArrowUpKey(event) {
640
+ var processedItem = findVisibleItem(focusedItemInfo.index);
641
+ var grouped = isProccessedItemGroup(processedItem);
642
+ if (event.altKey && horizontal) {
643
+ if (focusedItemInfo.index !== -1) {
644
+ if (!grouped && ObjectUtils.isNotEmpty(activeItemState)) {
645
+ if (focusedItemInfo.index === 0) {
646
+ setFocusedItemInfo({
647
+ index: activeItemState.index,
648
+ key: activeItemState.key,
649
+ parentKey: activeItemState.parentKey
650
+ });
651
+ setActiveItemState(null);
652
+ } else {
653
+ changeFocusedItemInfo(findFirstItemIndex());
654
+ }
655
+ }
656
+ }
657
+ } else {
658
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
659
+ changeFocusedItemInfo(itemIndex);
660
+ }
661
+ event.preventDefault();
662
+ };
663
+ var onArrowLeftKey = function onArrowLeftKey(event) {
664
+ var processedItem = findVisibleItem(focusedItemInfo.index);
665
+ var grouped = isProccessedItemGroup(processedItem);
666
+ if (grouped) {
667
+ if (horizontal) {
668
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
669
+ changeFocusedItemInfo(itemIndex);
670
+ }
671
+ } else {
672
+ if (vertical && ObjectUtils.isNotEmpty(activeItemState)) {
673
+ if (processedItem.columnIndex === 0) {
674
+ setFocusedItemInfo({
675
+ index: activeItemState.index,
676
+ key: activeItemState.key,
677
+ parentKey: activeItemState.parentKey
678
+ });
679
+ setActiveItemState(null);
680
+ }
681
+ }
682
+ var columnIndex = processedItem.columnIndex - 1;
683
+ var _itemIndex = visibleItems.findIndex(function (item) {
684
+ return item.columnIndex === columnIndex;
685
+ });
686
+ _itemIndex !== -1 && changeFocusedItemInfo(_itemIndex);
687
+ }
688
+ event.preventDefault();
689
+ };
690
+ var onArrowRightKey = function onArrowRightKey(event) {
691
+ event.preventDefault();
692
+ var processedItem = findVisibleItem(focusedItemInfo.index);
693
+ var grouped = isProccessedItemGroup(processedItem);
694
+ if (grouped) {
695
+ if (vertical) {
696
+ if (ObjectUtils.isNotEmpty(activeItemState) && activeItemState.key === processedItem.key) {
697
+ setFocusedItemInfo({
698
+ index: -1,
699
+ key: '',
700
+ parentKey: activeItemState.key
701
+ });
702
+ } else {
703
+ var _processedItem = findVisibleItem(focusedItemInfo.index);
704
+ var _grouped = isProccessedItemGroup(_processedItem);
705
+ if (_grouped) {
706
+ onItemChange({
707
+ originalEvent: event,
708
+ processedItem: _processedItem
709
+ });
710
+ setFocusedItemInfo({
711
+ index: -1,
712
+ key: _processedItem.key,
713
+ parentKey: _processedItem.parentKey
714
+ });
715
+ searchValue.current = '';
716
+ }
717
+ }
718
+ }
719
+ setTimeout(function () {
720
+ return setFocusTrigger(true);
721
+ }, 0);
722
+ } else {
723
+ var columnIndex = processedItem.columnIndex + 1;
724
+ var itemIndex = visibleItems.findIndex(function (item) {
725
+ return item.columnIndex === columnIndex;
726
+ });
727
+ itemIndex !== -1 && changeFocusedItemInfo(itemIndex);
728
+ }
729
+ };
730
+ var onHomeKey = function onHomeKey(event) {
731
+ changeFocusedItemInfo(findFirstItemIndex());
732
+ event.preventDefault();
733
+ };
734
+ var onEndKey = function onEndKey(event) {
735
+ changeFocusedItemInfo(findLastItemIndex());
736
+ event.preventDefault();
737
+ };
738
+ var onEnterKey = function onEnterKey(event) {
739
+ if (focusedItemInfo.index !== -1) {
740
+ var element = DomHandler.findSingle(menubarRef.current, "li[id=\"".concat(focusedItemId, "\"]"));
741
+ var anchorElement = element && DomHandler.findSingle(element, 'a[data-pc-section="action"]');
742
+ anchorElement ? anchorElement.click() : element && element.click();
743
+ }
744
+ event.preventDefault();
745
+ };
746
+ var onSpaceKey = function onSpaceKey(event) {
747
+ onEnterKey(event);
748
+ };
749
+ var onEscapeKey = function onEscapeKey(event) {
750
+ if (ObjectUtils.isNotEmpty(activeItemState)) {
751
+ setFocusedItemInfo({
752
+ index: activeItemState.index,
753
+ key: activeItemState.key
754
+ });
755
+ setActiveItemState(null);
756
+ }
757
+ event.preventDefault();
758
+ };
759
+ var onTabKey = function onTabKey(event) {
760
+ if (focusedItemInfo.index !== -1) {
761
+ var processedItem = findVisibleItem(focusedItemInfo.index);
762
+ var grouped = isProccessedItemGroup(processedItem);
763
+ !grouped && onItemChange({
764
+ originalEvent: event,
765
+ processedItem: processedItem
766
+ });
767
+ }
768
+ hide();
769
+ };
770
+ var isItemMatched = function isItemMatched(processedItem) {
771
+ var label = getProccessedItemLabel(processedItem);
772
+ return isValidItem(processedItem) && label && label.toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
773
+ };
774
+ var isValidItem = function isValidItem(processedItem) {
775
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
776
+ };
777
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
778
+ return isValidItem(processedItem) && isSelected(processedItem);
779
+ };
780
+ var isSelected = function isSelected(processedItem) {
781
+ return ObjectUtils.isNotEmpty(activeItemState) ? activeItemState.key === processedItem.key : false;
782
+ };
783
+ var findFirstItemIndex = function findFirstItemIndex() {
784
+ return visibleItems.findIndex(function (processedItem) {
785
+ return isValidItem(processedItem);
786
+ });
787
+ };
788
+ var findLastItemIndex = function findLastItemIndex() {
789
+ return ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
790
+ return isValidItem(processedItem);
791
+ });
792
+ };
793
+ var findNextItemIndex = function findNextItemIndex(index) {
794
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
795
+ return isValidItem(processedItem);
796
+ }) : -1;
797
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
798
+ };
799
+ var findPrevItemIndex = function findPrevItemIndex(index) {
800
+ var matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
801
+ return isValidItem(processedItem);
802
+ }) : -1;
803
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
804
+ };
805
+ var findSelectedItemIndex = function findSelectedItemIndex() {
806
+ return visibleItems && visibleItems.findIndex(function (processedItem) {
807
+ return isValidSelectedItem(processedItem);
808
+ });
809
+ };
810
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
811
+ var selectedIndex = findSelectedItemIndex();
812
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
813
+ };
814
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
815
+ var selectedIndex = findSelectedItemIndex();
816
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
817
+ };
818
+ var findVisibleItem = function findVisibleItem(index) {
819
+ return ObjectUtils.isNotEmpty(visibleItems) ? visibleItems[index] : null;
820
+ };
821
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
822
+ return processedItem && processedItem.item ? getItemLabel(processedItem) : undefined;
823
+ };
824
+ var searchItems = function searchItems(event, _char) {
825
+ searchValue.current = (searchValue.current || '') + _char;
826
+ var itemIndex = -1;
827
+ var matched = false;
828
+ if (focusedItemInfo.index !== -1) {
829
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
830
+ return isItemMatched(processedItem);
831
+ });
832
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
833
+ return isItemMatched(processedItem);
834
+ }) : itemIndex + focusedItemInfo.index;
835
+ } else {
836
+ itemIndex = visibleItems.findIndex(function (processedItem) {
837
+ return isItemMatched(processedItem);
838
+ });
839
+ }
840
+ if (itemIndex !== -1) {
841
+ matched = true;
842
+ }
843
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
844
+ itemIndex = findFirstFocusedItemIndex();
845
+ }
846
+ if (itemIndex !== -1) {
847
+ changeFocusedItemInfo(itemIndex);
848
+ }
849
+ if (searchTimeout) {
850
+ clearTimeout(searchTimeout);
851
+ }
852
+ searchTimeout.current = setTimeout(function () {
853
+ searchValue.current = '';
854
+ searchTimeout.current = null;
855
+ }, 500);
856
+ return matched;
857
+ };
858
+ var changeFocusedItemInfo = function changeFocusedItemInfo(index) {
859
+ var processedItem = findVisibleItem(index);
860
+ var key = ObjectUtils.isNotEmpty(processedItem) ? processedItem.key : '';
861
+ setFocusedItemInfo(_objectSpread(_objectSpread({}, focusedItemInfo), {}, {
862
+ index: index,
863
+ key: key
864
+ }));
865
+ scrollInView();
866
+ };
867
+ var scrollInView = function scrollInView() {
868
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
869
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
870
+ var element = DomHandler.findSingle(menubarRef.current, "li[id=\"".concat(id, "\"]"));
871
+ if (element) {
872
+ element.scrollIntoView && element.scrollIntoView({
873
+ block: 'nearest',
874
+ inline: 'start'
875
+ });
876
+ }
877
+ };
878
+ var getItemId = function getItemId(processedItem) {
879
+ return "".concat(idState, "_").concat(processedItem.key);
880
+ };
881
+ var getItemProp = function getItemProp(processedItem, name, params) {
882
+ return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
883
+ };
884
+ var getItemLabel = function getItemLabel(processedItem) {
885
+ return getItemProp(processedItem, 'label');
886
+ };
887
+ var isItemActive = function isItemActive(processedItem) {
888
+ return ObjectUtils.isNotEmpty(activeItemState) ? activeItemState.key === processedItem.key : false;
889
+ };
890
+ var isItemVisible = function isItemVisible(processedItem) {
891
+ return getItemProp(processedItem, 'visible') !== false;
892
+ };
893
+ var isItemDisabled = function isItemDisabled(processedItem) {
894
+ return getItemProp(processedItem, 'disabled');
895
+ };
896
+ var isItemFocused = function isItemFocused(processedItem) {
897
+ return focusedItemId === getItemId(processedItem);
898
+ };
899
+ var isItemGroup = function isItemGroup(processedItem) {
900
+ return ObjectUtils.isNotEmpty(processedItem.items);
901
+ };
902
+ var isItemSeparator = function isItemSeparator(item) {
903
+ return getItemProp(item, 'separator');
904
+ };
905
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
906
+ return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
907
+ };
908
+ var getAriaSetSize = function getAriaSetSize() {
909
+ return props.model.filter(function (processedItem) {
910
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
911
+ }).length;
912
+ };
913
+ var getAriaPosInset = function getAriaPosInset(index) {
914
+ return index - props.model.slice(0, index).filter(function (processedItem) {
915
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
916
+ }).length + 1;
917
+ };
415
918
  useUpdateEffect(function () {
416
919
  var currentPanel = DomHandler.findSingle(elementRef.current, '.p-menuitem-active > .p-megamenu-panel');
417
- if (activeItemState && !isMobileMode) {
418
- ZIndexUtils.set('menu', currentPanel, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
920
+ if (activeItemState) {
921
+ bindListeners();
922
+ if (!isMobileMode) {
923
+ ZIndexUtils.set('menu', currentPanel, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
924
+ }
925
+ } else {
926
+ unbindListeners();
419
927
  }
420
928
  if (isMobileMode) {
421
929
  currentPanel && currentPanel.previousElementSibling.scrollIntoView({
@@ -424,9 +932,55 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
424
932
  });
425
933
  }
426
934
  return function () {
935
+ unbindListeners();
427
936
  ZIndexUtils.clear(currentPanel);
428
937
  };
429
938
  }, [activeItemState]);
939
+ useUpdateEffect(function () {
940
+ var _focusedItemId = ObjectUtils.isNotEmpty(focusedItemInfo.key) ? "".concat(idState, "_").concat(focusedItemInfo.key) : null;
941
+ setFocusedItemId(_focusedItemId);
942
+ }, [focusedItemInfo]);
943
+ useUpdateEffect(function () {
944
+ var itemsToProcess = props.model || [];
945
+ var processed = createProcessedItems(itemsToProcess, 0, null, '');
946
+ setProcessedItems(processed);
947
+ }, [props.model]);
948
+ useUpdateEffect(function () {
949
+ var processedItem = ObjectUtils.isNotEmpty(activeItemState) ? activeItemState : null;
950
+ var _visibleItems = processedItem && processedItem.key === focusedItemInfo.parentKey ? processedItem.items.reduce(function (items, col) {
951
+ col.forEach(function (submenu) {
952
+ submenu.items.forEach(function (a) {
953
+ items.push(a);
954
+ });
955
+ });
956
+ return items;
957
+ }, []) : processedItems;
958
+ setVisibleItems(_visibleItems);
959
+ }, [focusedItemInfo, activeItemState, processedItems]);
960
+ var createProcessedItems = function createProcessedItems(items) {
961
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
962
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
963
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
964
+ var columnIndex = arguments.length > 4 ? arguments[4] : undefined;
965
+ var _processedItems = [];
966
+ items && items.forEach(function (item, index) {
967
+ var key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;
968
+ var newItem = {
969
+ item: item,
970
+ index: index,
971
+ level: level,
972
+ key: key,
973
+ parent: parent,
974
+ parentKey: parentKey,
975
+ columnIndex: columnIndex !== undefined ? columnIndex : parent && parent.columnIndex !== undefined ? parent.columnIndex : index
976
+ };
977
+ newItem['items'] = level === 0 && item.items && item.items.length > 0 ? item.items.map(function (_items, _index) {
978
+ return createProcessedItems(_items, level + 1, newItem, key, _index);
979
+ }) : createProcessedItems(item.items, level + 1, newItem, key);
980
+ _processedItems.push(newItem);
981
+ });
982
+ return _processedItems;
983
+ };
430
984
  var createSeparator = function createSeparator(index) {
431
985
  var key = idState + '_separator__' + index;
432
986
  var separatorProps = mergeProps({
@@ -450,14 +1004,15 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
450
1004
  }
451
1005
  return null;
452
1006
  };
453
- var createSubmenuItem = function createSubmenuItem(item, index) {
1007
+ var createSubmenuItem = function createSubmenuItem(processedItem, index) {
1008
+ var item = processedItem.item;
454
1009
  if (item.visible === false) {
455
1010
  return null;
456
1011
  }
457
1012
  if (item.separator) {
458
1013
  return createSeparator(index);
459
1014
  } else {
460
- var key = item.id || idState + '_' + index;
1015
+ var key = getItemId(processedItem);
461
1016
  var linkClassName = classNames('p-menuitem-link', {
462
1017
  'p-disabled': item.disabled
463
1018
  });
@@ -478,25 +1033,46 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
478
1033
  item: item
479
1034
  }),
480
1035
  target: item.target,
481
- onClick: function onClick(event) {
482
- return onLeafClick(event, item);
483
- },
484
- role: 'menuitem',
485
- 'aria-disabled': item.disabled
486
- }, getPTOptions(item, 'action', index));
1036
+ tabIndex: '-1',
1037
+ 'aria-hidden': true
1038
+ }, getPTOptions(processedItem, 'action', index));
1039
+ var isFocused = isItemFocused(processedItem);
1040
+ var isDisabled = isItemDisabled(processedItem);
1041
+ var isGroup = isItemGroup(processedItem);
1042
+ var isActive = isItemActive(processedItem);
487
1043
  var submenuItemProps = mergeProps({
488
1044
  key: key,
489
1045
  id: key,
490
- className: classNames(item.className, cx('submenuItem')),
1046
+ 'aria-label': getItemLabel(processedItem),
1047
+ 'aria-disabled': isDisabled,
1048
+ 'aria-haspopup': isGroup ? 'menu' : undefined,
1049
+ 'aria-level': '2',
1050
+ 'aria-expanded': isGroup ? isActive : undefined,
1051
+ 'aria-setsize': getAriaSetSize(),
1052
+ 'aria-posinset': getAriaPosInset(index),
1053
+ 'data-p-highlight': isActive,
1054
+ 'data-p-disabled': isDisabled,
1055
+ 'data-p-focused': isFocused,
1056
+ className: classNames(item.className, cx('submenuItem', {
1057
+ focused: isFocused,
1058
+ disabled: isDisabled,
1059
+ active: isActive
1060
+ })),
491
1061
  style: item.style,
492
- role: 'none'
493
- }, getPTOptions(item, 'submenuItem', index));
1062
+ role: 'menuitem'
1063
+ }, getPTOptions(processedItem, 'submenuItem', index));
1064
+ var contentProps = mergeProps({
1065
+ onClick: function onClick(event) {
1066
+ return onLeafClick({
1067
+ originalEvent: event,
1068
+ processedItem: processedItem
1069
+ });
1070
+ },
1071
+ className: cx('content')
1072
+ }, getPTOptions(processedItem, 'content', index));
494
1073
  var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label, /*#__PURE__*/React.createElement(Ripple, null));
495
1074
  if (item.template) {
496
1075
  var defaultContentOptions = {
497
- onClick: function onClick(event) {
498
- return onLeafClick(event, item);
499
- },
500
1076
  className: linkClassName,
501
1077
  labelClassName: 'p-menuitem-text',
502
1078
  iconClassName: iconClassName,
@@ -505,47 +1081,52 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
505
1081
  };
506
1082
  content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
507
1083
  }
508
- return /*#__PURE__*/React.createElement("li", submenuItemProps, content);
1084
+ return /*#__PURE__*/React.createElement("li", submenuItemProps, /*#__PURE__*/React.createElement("div", contentProps, content));
509
1085
  }
510
1086
  };
511
1087
  var createSubmenu = function createSubmenu(submenu, index) {
512
- if (submenu.visible === false) {
1088
+ if (!isItemVisible(submenu)) {
513
1089
  return null;
514
1090
  }
515
1091
  var items = submenu.items.map(createSubmenuItem);
516
1092
  var key = submenu.id || idState + '_sub_' + index;
1093
+ var label = getItemLabel(submenu);
1094
+ var isDisabled = isItemDisabled(submenu);
517
1095
  var submenuHeaderProps = mergeProps({
518
1096
  id: key,
519
1097
  key: key,
520
1098
  className: classNames(submenu.className, cx('submenuHeader', {
521
- submenu: submenu
1099
+ disabled: isDisabled
522
1100
  })),
523
1101
  style: submenu.style,
524
1102
  role: 'presentation',
525
- 'data-p-disabled': submenu.disabled
1103
+ 'data-p-disabled': isDisabled
526
1104
  }, ptm('submenuHeader'));
527
1105
  return /*#__PURE__*/React.createElement(React.Fragment, {
528
1106
  key: key
529
- }, /*#__PURE__*/React.createElement("li", submenuHeaderProps, submenu.label), items);
1107
+ }, /*#__PURE__*/React.createElement("li", submenuHeaderProps, label), items);
530
1108
  };
531
1109
  var createSubmenus = function createSubmenus(column) {
532
1110
  return column.map(createSubmenu);
533
1111
  };
534
- var createColumn = function createColumn(category, column, index) {
1112
+ var createColumn = function createColumn(processedItem, processedColumn, index) {
1113
+ var category = processedItem.item;
535
1114
  var key = category.label + '_column_' + index;
536
- var submenus = createSubmenus(column);
1115
+ var submenus = createSubmenus(processedColumn);
537
1116
  var columnProps = mergeProps({
538
1117
  key: key,
539
1118
  className: cx('column', {
540
1119
  category: category
541
1120
  })
542
1121
  }, ptm('column'));
1122
+ var display = activeItemState && activeItemState.item === category ? 'block' : 'none';
543
1123
  var submenuProps = mergeProps({
1124
+ role: 'menu',
1125
+ tabIndex: props.disabled ? null : props.tabIndex || '0',
544
1126
  className: cx('submenu'),
545
1127
  style: {
546
- display: activeItemState === category ? 'block' : 'none'
547
- },
548
- role: 'menu'
1128
+ display: display
1129
+ }
549
1130
  }, ptm('submenu'));
550
1131
  return /*#__PURE__*/React.createElement("div", columnProps, /*#__PURE__*/React.createElement("ul", submenuProps, submenus));
551
1132
  };
@@ -557,9 +1138,10 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
557
1138
  }
558
1139
  return null;
559
1140
  };
560
- var createCategoryPanel = function createCategoryPanel(category) {
1141
+ var createCategoryPanel = function createCategoryPanel(processedItem) {
1142
+ var category = processedItem.item;
561
1143
  if (category.items) {
562
- var columns = createColumns(category);
1144
+ var columns = createColumns(processedItem);
563
1145
  var panelProps = mergeProps({
564
1146
  className: cx('panel')
565
1147
  }, ptm('panel'));
@@ -590,60 +1172,92 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
590
1172
  destroyStyle();
591
1173
  };
592
1174
  }, [attributeSelectorState, props.breakpoint]);
593
- var createCategory = function createCategory(category, index) {
1175
+ var createCategory = function createCategory(processedItem, index) {
1176
+ var category = processedItem.item;
594
1177
  var iconProps = mergeProps({
595
1178
  className: cx('icon')
596
- }, getPTOptions(category, 'icon', index));
1179
+ }, getPTOptions(processedItem, 'icon', index));
597
1180
  var icon = IconUtils.getJSXIcon(category.icon, _objectSpread({}, iconProps), {
598
1181
  props: props
599
1182
  });
600
1183
  var labelProps = mergeProps({
601
1184
  className: cx('label')
602
- }, getPTOptions(category, 'label', index));
1185
+ }, getPTOptions(processedItem, 'label', index));
603
1186
  var label = category.label && /*#__PURE__*/React.createElement("span", labelProps, category.label);
604
- var itemContent = category.template ? ObjectUtils.getJSXElement(category.template, category) : null;
605
1187
  var submenuIcon = createSubmenuIcon(category);
606
- var panel = createCategoryPanel(category);
1188
+ var panel = createCategoryPanel(processedItem);
607
1189
  var headerActionProps = mergeProps({
608
1190
  href: category.url || '#',
609
- className: cx('headerAction', {
610
- category: category
1191
+ className: cx('action', {
1192
+ item: category
611
1193
  }),
612
1194
  target: category.target,
613
- onClick: function onClick(e) {
614
- return onCategoryClick(e, category);
615
- },
616
- onKeyDown: function onKeyDown(e) {
617
- return onCategoryKeyDown(e, category);
1195
+ onFocus: function onFocus(event) {
1196
+ return event.stopPropagation();
618
1197
  },
619
- role: 'menuitem',
620
- 'aria-haspopup': category.items != null,
621
- 'data-p-disabled': category.disabled
622
- }, getPTOptions(category, 'headerAction', index));
623
- var key = category.id || idState + '_cat_' + index;
624
- var menuItemProps = mergeProps({
1198
+ tabIndex: '-1',
1199
+ 'aria-hidden': true
1200
+ }, getPTOptions(processedItem, 'action', index));
1201
+ var itemContent = category.template ? ObjectUtils.getJSXElement(category.template, category, headerActionProps) : /*#__PURE__*/React.createElement("a", headerActionProps, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));
1202
+ var key = getItemId(processedItem);
1203
+ var isFocused = isItemFocused(processedItem);
1204
+ var isDisabled = isItemDisabled(processedItem);
1205
+ var menuItemProps = mergeProps(_defineProperty({
625
1206
  key: key,
626
1207
  id: key,
627
1208
  className: classNames(category.className, cx('menuitem', {
628
1209
  category: category,
629
- activeItemState: activeItemState
1210
+ activeItemState: activeItemState,
1211
+ focused: isFocused,
1212
+ disabled: isDisabled
630
1213
  })),
1214
+ 'aria-label': getItemLabel(category),
1215
+ 'aria-level': '1',
1216
+ 'aria-setsize': getAriaSetSize(),
1217
+ 'aria-posinset': getAriaPosInset(index),
1218
+ 'aria-expanded': isItemGroup(processedItem) ? isItemActive(processedItem) : undefined,
1219
+ 'aria-haspopup': isItemGroup(processedItem) ? 'menu' : undefined,
1220
+ 'aria-disabled': isItemDisabled(processedItem),
1221
+ 'data-p-highlight': isItemActive(category),
1222
+ 'data-p-disabled': isDisabled,
1223
+ 'data-p-focused': isFocused,
631
1224
  style: category.style,
1225
+ role: 'menuitem'
1226
+ }, "data-p-disabled", category.disabled || false), getPTOptions(processedItem, 'menuitem', index));
1227
+ var contentProps = mergeProps({
1228
+ onClick: function onClick(event) {
1229
+ return onCategoryClick({
1230
+ originalEvent: event,
1231
+ processedItem: processedItem
1232
+ });
1233
+ },
632
1234
  onMouseEnter: function onMouseEnter(e) {
633
- return onCategoryMouseEnter(e, category);
1235
+ return onCategoryMouseEnter({
1236
+ originalEvent: e,
1237
+ processedItem: processedItem
1238
+ });
634
1239
  },
635
- role: 'none',
636
- 'data-p-disabled': category.disabled || false
637
- }, getPTOptions(category, 'menuitem', index));
638
- return /*#__PURE__*/React.createElement("li", menuItemProps, /*#__PURE__*/React.createElement("a", headerActionProps, icon, label, itemContent, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null)), panel);
1240
+ className: cx('content')
1241
+ }, getPTOptions(processedItem, 'content', index));
1242
+ return /*#__PURE__*/React.createElement("li", menuItemProps, /*#__PURE__*/React.createElement("div", contentProps, itemContent), panel);
639
1243
  };
640
1244
  var createMenu = function createMenu() {
641
1245
  var menuProps = mergeProps({
1246
+ ref: menubarRef,
1247
+ tabIndex: props.disabled ? null : props.tabIndex || '0',
642
1248
  className: cx('menu'),
1249
+ onFocus: onFocus,
1250
+ onBlur: onBlur,
1251
+ onKeyDown: onKeyDown,
1252
+ 'aria-label': props.ariaLabel,
1253
+ 'aria-labelledby': props.ariaLabelledBy,
1254
+ 'aria-orientation': vertical ? 'vertical' : 'horizontal',
1255
+ 'aria-activedescendant': focused ? focusedItemId : null,
1256
+ id: idState + '_list',
643
1257
  role: 'menubar'
644
1258
  }, ptm('menu'));
645
- if (props.model) {
646
- return /*#__PURE__*/React.createElement("ul", menuProps, props.model.map(function (item, index) {
1259
+ if (processedItems) {
1260
+ return /*#__PURE__*/React.createElement("ul", menuProps, processedItems.map(function (item, index) {
647
1261
  return createCategory(item, index);
648
1262
  }));
649
1263
  }
@@ -670,13 +1284,17 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
670
1284
  return null;
671
1285
  };
672
1286
  var createMenuButton = function createMenuButton() {
673
- if (props.orientation === 'vertical' || props.model && props.model.length < 1) {
1287
+ if (vertical || props.model && props.model.length < 1) {
674
1288
  return null;
675
1289
  }
676
1290
  var menuButtonProps = mergeProps({
677
1291
  className: cx('menuButton'),
678
1292
  href: '#',
679
1293
  role: 'button',
1294
+ 'aria-haspopup': props.model && props.model.length > 0 ? true : false,
1295
+ 'aria-expanded': mobileActiveState,
1296
+ 'aria-controls': idState,
1297
+ 'aria-label': ariaLabel('navigation'),
680
1298
  tabIndex: 0,
681
1299
  onClick: function onClick(e) {
682
1300
  return toggle(e);
@@ -699,6 +1317,7 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
699
1317
  className: classNames(props.className, cx('root', {
700
1318
  mobileActiveState: mobileActiveState
701
1319
  })),
1320
+ id: idState,
702
1321
  style: props.style
703
1322
  }, MegaMenuBase.getOtherProps(props), ptm('root'));
704
1323
  var menu = createMenu();