primereact 10.2.1 → 10.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/accordion/accordion.cjs.js +83 -8
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.d.ts +35 -0
  4. package/accordion/accordion.esm.js +85 -10
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +83 -8
  7. package/accordion/accordion.min.js +1 -1
  8. package/api/api.cjs.js +63 -33
  9. package/api/api.cjs.min.js +1 -1
  10. package/api/api.d.ts +24 -246
  11. package/api/api.esm.js +63 -33
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +63 -33
  14. package/api/api.min.js +1 -1
  15. package/autocomplete/autocomplete.cjs.js +3 -2
  16. package/autocomplete/autocomplete.cjs.min.js +1 -1
  17. package/autocomplete/autocomplete.d.ts +6 -1
  18. package/autocomplete/autocomplete.esm.js +3 -2
  19. package/autocomplete/autocomplete.esm.min.js +1 -1
  20. package/autocomplete/autocomplete.js +3 -2
  21. package/autocomplete/autocomplete.min.js +1 -1
  22. package/blockui/blockui.cjs.js +8 -5
  23. package/blockui/blockui.cjs.min.js +1 -1
  24. package/blockui/blockui.esm.js +8 -5
  25. package/blockui/blockui.esm.min.js +1 -1
  26. package/blockui/blockui.js +8 -5
  27. package/blockui/blockui.min.js +1 -1
  28. package/breadcrumb/breadcrumb.cjs.js +12 -6
  29. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  30. package/breadcrumb/breadcrumb.esm.js +12 -6
  31. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  32. package/breadcrumb/breadcrumb.js +12 -6
  33. package/breadcrumb/breadcrumb.min.js +1 -1
  34. package/calendar/calendar.cjs.js +71 -37
  35. package/calendar/calendar.cjs.min.js +1 -1
  36. package/calendar/calendar.d.ts +3 -5
  37. package/calendar/calendar.esm.js +71 -37
  38. package/calendar/calendar.esm.min.js +1 -1
  39. package/calendar/calendar.js +71 -37
  40. package/calendar/calendar.min.js +1 -1
  41. package/carousel/carousel.cjs.js +103 -9
  42. package/carousel/carousel.cjs.min.js +1 -1
  43. package/carousel/carousel.esm.js +104 -10
  44. package/carousel/carousel.esm.min.js +1 -1
  45. package/carousel/carousel.js +103 -9
  46. package/carousel/carousel.min.js +1 -1
  47. package/cascadeselect/cascadeselect.cjs.js +64 -23
  48. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  49. package/cascadeselect/cascadeselect.d.ts +27 -4
  50. package/cascadeselect/cascadeselect.esm.js +65 -24
  51. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  52. package/cascadeselect/cascadeselect.js +65 -25
  53. package/cascadeselect/cascadeselect.min.js +1 -1
  54. package/checkbox/checkbox.cjs.js +25 -25
  55. package/checkbox/checkbox.cjs.min.js +1 -1
  56. package/checkbox/checkbox.esm.js +25 -25
  57. package/checkbox/checkbox.esm.min.js +1 -1
  58. package/checkbox/checkbox.js +26 -26
  59. package/checkbox/checkbox.min.js +1 -1
  60. package/chip/chip.cjs.js +5 -2
  61. package/chip/chip.cjs.min.js +1 -1
  62. package/chip/chip.d.ts +17 -2
  63. package/chip/chip.esm.js +5 -2
  64. package/chip/chip.esm.min.js +1 -1
  65. package/chip/chip.js +5 -2
  66. package/chip/chip.min.js +1 -1
  67. package/colorpicker/colorpicker.d.ts +1 -1
  68. package/componentbase/componentbase.cjs.js +49 -8
  69. package/componentbase/componentbase.cjs.min.js +1 -1
  70. package/componentbase/componentbase.esm.js +50 -9
  71. package/componentbase/componentbase.esm.min.js +1 -1
  72. package/componentbase/componentbase.js +49 -8
  73. package/componentbase/componentbase.min.js +1 -1
  74. package/confirmdialog/confirmdialog.cjs.js +30 -22
  75. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  76. package/confirmdialog/confirmdialog.d.ts +19 -3
  77. package/confirmdialog/confirmdialog.esm.js +30 -22
  78. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  79. package/confirmdialog/confirmdialog.js +30 -22
  80. package/confirmdialog/confirmdialog.min.js +1 -1
  81. package/confirmpopup/confirmpopup.cjs.js +85 -152
  82. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  83. package/confirmpopup/confirmpopup.d.ts +40 -1
  84. package/confirmpopup/confirmpopup.esm.js +88 -155
  85. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  86. package/confirmpopup/confirmpopup.js +85 -152
  87. package/confirmpopup/confirmpopup.min.js +1 -1
  88. package/contextmenu/contextmenu.cjs.js +641 -99
  89. package/contextmenu/contextmenu.cjs.min.js +1 -1
  90. package/contextmenu/contextmenu.d.ts +23 -1
  91. package/contextmenu/contextmenu.esm.js +641 -99
  92. package/contextmenu/contextmenu.esm.min.js +1 -1
  93. package/contextmenu/contextmenu.js +641 -99
  94. package/contextmenu/contextmenu.min.js +1 -1
  95. package/core/core.js +1217 -484
  96. package/core/core.min.js +40 -40
  97. package/datatable/datatable.cjs.js +30 -26
  98. package/datatable/datatable.cjs.min.js +1 -1
  99. package/datatable/datatable.d.ts +5 -4
  100. package/datatable/datatable.esm.js +30 -26
  101. package/datatable/datatable.esm.min.js +1 -1
  102. package/datatable/datatable.js +30 -26
  103. package/datatable/datatable.min.js +1 -1
  104. package/dataview/dataview.d.ts +1 -1
  105. package/dialog/dialog.cjs.js +108 -151
  106. package/dialog/dialog.cjs.min.js +1 -1
  107. package/dialog/dialog.d.ts +60 -1
  108. package/dialog/dialog.esm.js +115 -158
  109. package/dialog/dialog.esm.min.js +1 -1
  110. package/dialog/dialog.js +109 -152
  111. package/dialog/dialog.min.js +1 -1
  112. package/divider/divider.cjs.js +1 -0
  113. package/divider/divider.cjs.min.js +1 -1
  114. package/divider/divider.esm.js +1 -0
  115. package/divider/divider.esm.min.js +1 -1
  116. package/divider/divider.js +1 -0
  117. package/divider/divider.min.js +1 -1
  118. package/dock/dock.cjs.js +169 -33
  119. package/dock/dock.cjs.min.js +1 -1
  120. package/dock/dock.d.ts +15 -0
  121. package/dock/dock.esm.js +170 -34
  122. package/dock/dock.esm.min.js +1 -1
  123. package/dock/dock.js +169 -33
  124. package/dock/dock.min.js +1 -1
  125. package/dropdown/dropdown.cjs.js +29 -4
  126. package/dropdown/dropdown.cjs.min.js +1 -1
  127. package/dropdown/dropdown.d.ts +1 -1
  128. package/dropdown/dropdown.esm.js +29 -4
  129. package/dropdown/dropdown.esm.min.js +1 -1
  130. package/dropdown/dropdown.js +30 -6
  131. package/dropdown/dropdown.min.js +1 -1
  132. package/fieldset/fieldset.cjs.js +12 -5
  133. package/fieldset/fieldset.cjs.min.js +1 -1
  134. package/fieldset/fieldset.esm.js +12 -5
  135. package/fieldset/fieldset.esm.min.js +1 -1
  136. package/fieldset/fieldset.js +12 -5
  137. package/fieldset/fieldset.min.js +1 -1
  138. package/fileupload/fileupload.cjs.js +14 -6
  139. package/fileupload/fileupload.cjs.min.js +1 -1
  140. package/fileupload/fileupload.d.ts +17 -1
  141. package/fileupload/fileupload.esm.js +14 -6
  142. package/fileupload/fileupload.esm.min.js +1 -1
  143. package/fileupload/fileupload.js +14 -6
  144. package/fileupload/fileupload.min.js +1 -1
  145. package/galleria/galleria.cjs.js +223 -43
  146. package/galleria/galleria.cjs.min.js +1 -1
  147. package/galleria/galleria.esm.js +225 -45
  148. package/galleria/galleria.esm.min.js +1 -1
  149. package/galleria/galleria.js +223 -43
  150. package/galleria/galleria.min.js +1 -1
  151. package/hooks/hooks.cjs.js +219 -78
  152. package/hooks/hooks.cjs.min.js +1 -1
  153. package/hooks/hooks.d.ts +8 -4
  154. package/hooks/hooks.esm.js +219 -80
  155. package/hooks/hooks.esm.min.js +1 -1
  156. package/hooks/hooks.js +219 -78
  157. package/hooks/hooks.min.js +1 -1
  158. package/icons/arrowdown/index.cjs.js +13 -2
  159. package/icons/arrowdown/index.cjs.min.js +1 -1
  160. package/icons/arrowdown/index.esm.js +13 -2
  161. package/icons/arrowdown/index.esm.min.js +1 -1
  162. package/icons/arrowdown/index.js +13 -2
  163. package/icons/arrowdown/index.min.js +1 -1
  164. package/icons/arrowup/index.cjs.js +13 -2
  165. package/icons/arrowup/index.cjs.min.js +1 -1
  166. package/icons/arrowup/index.esm.js +13 -2
  167. package/icons/arrowup/index.esm.min.js +1 -1
  168. package/icons/arrowup/index.js +13 -2
  169. package/icons/arrowup/index.min.js +1 -1
  170. package/icons/ban/index.cjs.js +13 -2
  171. package/icons/ban/index.cjs.min.js +1 -1
  172. package/icons/ban/index.esm.js +13 -2
  173. package/icons/ban/index.esm.min.js +1 -1
  174. package/icons/ban/index.js +13 -2
  175. package/icons/ban/index.min.js +1 -1
  176. package/icons/download/index.cjs.js +13 -2
  177. package/icons/download/index.cjs.min.js +1 -1
  178. package/icons/download/index.esm.js +13 -2
  179. package/icons/download/index.esm.min.js +1 -1
  180. package/icons/download/index.js +13 -2
  181. package/icons/download/index.min.js +1 -1
  182. package/icons/exclamationtriangle/index.cjs.js +13 -2
  183. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  184. package/icons/exclamationtriangle/index.esm.js +13 -2
  185. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  186. package/icons/exclamationtriangle/index.js +13 -2
  187. package/icons/exclamationtriangle/index.min.js +1 -1
  188. package/icons/eyeslash/index.cjs.js +13 -2
  189. package/icons/eyeslash/index.cjs.min.js +1 -1
  190. package/icons/eyeslash/index.esm.js +13 -2
  191. package/icons/eyeslash/index.esm.min.js +1 -1
  192. package/icons/eyeslash/index.js +13 -2
  193. package/icons/eyeslash/index.min.js +1 -1
  194. package/icons/filter/index.cjs.js +13 -2
  195. package/icons/filter/index.cjs.min.js +1 -1
  196. package/icons/filter/index.esm.js +13 -2
  197. package/icons/filter/index.esm.min.js +1 -1
  198. package/icons/filter/index.js +13 -2
  199. package/icons/filter/index.min.js +1 -1
  200. package/icons/filterslash/index.cjs.js +13 -2
  201. package/icons/filterslash/index.cjs.min.js +1 -1
  202. package/icons/filterslash/index.esm.js +13 -2
  203. package/icons/filterslash/index.esm.min.js +1 -1
  204. package/icons/filterslash/index.js +13 -2
  205. package/icons/filterslash/index.min.js +1 -1
  206. package/icons/infocircle/index.cjs.js +13 -2
  207. package/icons/infocircle/index.cjs.min.js +1 -1
  208. package/icons/infocircle/index.esm.js +13 -2
  209. package/icons/infocircle/index.esm.min.js +1 -1
  210. package/icons/infocircle/index.js +13 -2
  211. package/icons/infocircle/index.min.js +1 -1
  212. package/icons/pencil/index.cjs.js +13 -2
  213. package/icons/pencil/index.cjs.min.js +1 -1
  214. package/icons/pencil/index.esm.js +13 -2
  215. package/icons/pencil/index.esm.min.js +1 -1
  216. package/icons/pencil/index.js +13 -2
  217. package/icons/pencil/index.min.js +1 -1
  218. package/icons/plus/index.cjs.js +13 -2
  219. package/icons/plus/index.cjs.min.js +1 -1
  220. package/icons/plus/index.esm.js +13 -2
  221. package/icons/plus/index.esm.min.js +1 -1
  222. package/icons/plus/index.js +13 -2
  223. package/icons/plus/index.min.js +1 -1
  224. package/icons/refresh/index.cjs.js +13 -2
  225. package/icons/refresh/index.cjs.min.js +1 -1
  226. package/icons/refresh/index.esm.js +13 -2
  227. package/icons/refresh/index.esm.min.js +1 -1
  228. package/icons/refresh/index.js +13 -2
  229. package/icons/refresh/index.min.js +1 -1
  230. package/icons/search/index.cjs.js +13 -2
  231. package/icons/search/index.cjs.min.js +1 -1
  232. package/icons/search/index.esm.js +13 -2
  233. package/icons/search/index.esm.min.js +1 -1
  234. package/icons/search/index.js +13 -2
  235. package/icons/search/index.min.js +1 -1
  236. package/icons/searchminus/index.cjs.js +13 -2
  237. package/icons/searchminus/index.cjs.min.js +1 -1
  238. package/icons/searchminus/index.esm.js +13 -2
  239. package/icons/searchminus/index.esm.min.js +1 -1
  240. package/icons/searchminus/index.js +13 -2
  241. package/icons/searchminus/index.min.js +1 -1
  242. package/icons/searchplus/index.cjs.js +13 -2
  243. package/icons/searchplus/index.cjs.min.js +1 -1
  244. package/icons/searchplus/index.esm.js +13 -2
  245. package/icons/searchplus/index.esm.min.js +1 -1
  246. package/icons/searchplus/index.js +13 -2
  247. package/icons/searchplus/index.min.js +1 -1
  248. package/icons/sortalt/index.cjs.js +13 -2
  249. package/icons/sortalt/index.cjs.min.js +1 -1
  250. package/icons/sortalt/index.esm.js +13 -2
  251. package/icons/sortalt/index.esm.min.js +1 -1
  252. package/icons/sortalt/index.js +13 -2
  253. package/icons/sortalt/index.min.js +1 -1
  254. package/icons/sortamountdown/index.cjs.js +13 -2
  255. package/icons/sortamountdown/index.cjs.min.js +1 -1
  256. package/icons/sortamountdown/index.esm.js +13 -2
  257. package/icons/sortamountdown/index.esm.min.js +1 -1
  258. package/icons/sortamountdown/index.js +13 -2
  259. package/icons/sortamountdown/index.min.js +1 -1
  260. package/icons/sortamountupalt/index.cjs.js +13 -2
  261. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  262. package/icons/sortamountupalt/index.esm.js +13 -2
  263. package/icons/sortamountupalt/index.esm.min.js +1 -1
  264. package/icons/sortamountupalt/index.js +13 -2
  265. package/icons/sortamountupalt/index.min.js +1 -1
  266. package/icons/spinner/index.cjs.js +13 -2
  267. package/icons/spinner/index.cjs.min.js +1 -1
  268. package/icons/spinner/index.esm.js +13 -2
  269. package/icons/spinner/index.esm.min.js +1 -1
  270. package/icons/spinner/index.js +13 -2
  271. package/icons/spinner/index.min.js +1 -1
  272. package/icons/star/index.cjs.js +13 -2
  273. package/icons/star/index.cjs.min.js +1 -1
  274. package/icons/star/index.esm.js +13 -2
  275. package/icons/star/index.esm.min.js +1 -1
  276. package/icons/star/index.js +13 -2
  277. package/icons/star/index.min.js +1 -1
  278. package/icons/starfill/index.cjs.js +13 -2
  279. package/icons/starfill/index.cjs.min.js +1 -1
  280. package/icons/starfill/index.esm.js +13 -2
  281. package/icons/starfill/index.esm.min.js +1 -1
  282. package/icons/starfill/index.js +13 -2
  283. package/icons/starfill/index.min.js +1 -1
  284. package/icons/thlarge/index.cjs.js +13 -2
  285. package/icons/thlarge/index.cjs.min.js +1 -1
  286. package/icons/thlarge/index.esm.js +13 -2
  287. package/icons/thlarge/index.esm.min.js +1 -1
  288. package/icons/thlarge/index.js +13 -2
  289. package/icons/thlarge/index.min.js +1 -1
  290. package/icons/timescircle/index.cjs.js +13 -2
  291. package/icons/timescircle/index.cjs.min.js +1 -1
  292. package/icons/timescircle/index.esm.js +13 -2
  293. package/icons/timescircle/index.esm.min.js +1 -1
  294. package/icons/timescircle/index.js +13 -2
  295. package/icons/timescircle/index.min.js +1 -1
  296. package/icons/trash/index.cjs.js +13 -2
  297. package/icons/trash/index.cjs.min.js +1 -1
  298. package/icons/trash/index.esm.js +13 -2
  299. package/icons/trash/index.esm.min.js +1 -1
  300. package/icons/trash/index.js +13 -2
  301. package/icons/trash/index.min.js +1 -1
  302. package/icons/undo/index.cjs.js +13 -2
  303. package/icons/undo/index.cjs.min.js +1 -1
  304. package/icons/undo/index.esm.js +13 -2
  305. package/icons/undo/index.esm.min.js +1 -1
  306. package/icons/undo/index.js +13 -2
  307. package/icons/undo/index.min.js +1 -1
  308. package/icons/upload/index.cjs.js +13 -2
  309. package/icons/upload/index.cjs.min.js +1 -1
  310. package/icons/upload/index.esm.js +13 -2
  311. package/icons/upload/index.esm.min.js +1 -1
  312. package/icons/upload/index.js +13 -2
  313. package/icons/upload/index.min.js +1 -1
  314. package/icons/windowmaximize/index.cjs.js +13 -2
  315. package/icons/windowmaximize/index.cjs.min.js +1 -1
  316. package/icons/windowmaximize/index.esm.js +13 -2
  317. package/icons/windowmaximize/index.esm.min.js +1 -1
  318. package/icons/windowmaximize/index.js +13 -2
  319. package/icons/windowmaximize/index.min.js +1 -1
  320. package/icons/windowminimize/index.cjs.js +13 -2
  321. package/icons/windowminimize/index.cjs.min.js +1 -1
  322. package/icons/windowminimize/index.esm.js +13 -2
  323. package/icons/windowminimize/index.esm.min.js +1 -1
  324. package/icons/windowminimize/index.js +13 -2
  325. package/icons/windowminimize/index.min.js +1 -1
  326. package/image/image.cjs.js +85 -119
  327. package/image/image.cjs.min.js +1 -1
  328. package/image/image.esm.js +87 -121
  329. package/image/image.esm.min.js +1 -1
  330. package/image/image.js +86 -120
  331. package/image/image.min.js +1 -1
  332. package/inplace/inplace.cjs.js +7 -0
  333. package/inplace/inplace.cjs.min.js +1 -1
  334. package/inplace/inplace.esm.js +7 -0
  335. package/inplace/inplace.esm.min.js +1 -1
  336. package/inplace/inplace.js +8 -2
  337. package/inplace/inplace.min.js +1 -1
  338. package/inputnumber/inputnumber.cjs.js +63 -19
  339. package/inputnumber/inputnumber.cjs.min.js +1 -1
  340. package/inputnumber/inputnumber.d.ts +7 -0
  341. package/inputnumber/inputnumber.esm.js +63 -19
  342. package/inputnumber/inputnumber.esm.min.js +1 -1
  343. package/inputnumber/inputnumber.js +63 -19
  344. package/inputnumber/inputnumber.min.js +1 -1
  345. package/inputswitch/inputswitch.cjs.js +3 -3
  346. package/inputswitch/inputswitch.cjs.min.js +1 -1
  347. package/inputswitch/inputswitch.esm.js +3 -3
  348. package/inputswitch/inputswitch.esm.min.js +1 -1
  349. package/inputswitch/inputswitch.js +3 -3
  350. package/inputswitch/inputswitch.min.js +1 -1
  351. package/inputtext/inputtext.cjs.js +7 -6
  352. package/inputtext/inputtext.cjs.min.js +1 -1
  353. package/inputtext/inputtext.esm.js +7 -6
  354. package/inputtext/inputtext.esm.min.js +1 -1
  355. package/inputtext/inputtext.js +7 -6
  356. package/inputtext/inputtext.min.js +1 -1
  357. package/listbox/listbox.cjs.js +14 -1
  358. package/listbox/listbox.cjs.min.js +1 -1
  359. package/listbox/listbox.d.ts +8 -3
  360. package/listbox/listbox.esm.js +14 -1
  361. package/listbox/listbox.esm.min.js +1 -1
  362. package/listbox/listbox.js +14 -1
  363. package/listbox/listbox.min.js +1 -1
  364. package/megamenu/megamenu.cjs.js +799 -179
  365. package/megamenu/megamenu.cjs.min.js +1 -1
  366. package/megamenu/megamenu.d.ts +14 -0
  367. package/megamenu/megamenu.esm.js +801 -181
  368. package/megamenu/megamenu.esm.min.js +1 -1
  369. package/megamenu/megamenu.js +799 -179
  370. package/megamenu/megamenu.min.js +1 -1
  371. package/mention/mention.cjs.js +7 -9
  372. package/mention/mention.cjs.min.js +1 -1
  373. package/mention/mention.esm.js +7 -9
  374. package/mention/mention.esm.min.js +1 -1
  375. package/mention/mention.js +7 -9
  376. package/mention/mention.min.js +1 -1
  377. package/menu/menu.cjs.js +217 -166
  378. package/menu/menu.cjs.min.js +1 -1
  379. package/menu/menu.d.ts +15 -1
  380. package/menu/menu.esm.js +220 -169
  381. package/menu/menu.esm.min.js +1 -1
  382. package/menu/menu.js +217 -166
  383. package/menu/menu.min.js +1 -1
  384. package/menubar/menubar.cjs.js +714 -179
  385. package/menubar/menubar.cjs.min.js +1 -1
  386. package/menubar/menubar.d.ts +18 -0
  387. package/menubar/menubar.esm.js +717 -182
  388. package/menubar/menubar.esm.min.js +1 -1
  389. package/menubar/menubar.js +714 -179
  390. package/menubar/menubar.min.js +1 -1
  391. package/message/message.cjs.js +2 -1
  392. package/message/message.cjs.min.js +1 -1
  393. package/message/message.esm.js +2 -1
  394. package/message/message.esm.min.js +1 -1
  395. package/message/message.js +2 -1
  396. package/message/message.min.js +1 -1
  397. package/messages/messages.cjs.js +5 -3
  398. package/messages/messages.cjs.min.js +1 -1
  399. package/messages/messages.esm.js +5 -3
  400. package/messages/messages.esm.min.js +1 -1
  401. package/messages/messages.js +5 -3
  402. package/messages/messages.min.js +1 -1
  403. package/multiselect/multiselect.cjs.js +58 -35
  404. package/multiselect/multiselect.cjs.min.js +1 -1
  405. package/multiselect/multiselect.d.ts +5 -1
  406. package/multiselect/multiselect.esm.js +58 -35
  407. package/multiselect/multiselect.esm.min.js +1 -1
  408. package/multiselect/multiselect.js +59 -37
  409. package/multiselect/multiselect.min.js +1 -1
  410. package/orderlist/orderlist.cjs.js +260 -105
  411. package/orderlist/orderlist.cjs.min.js +1 -1
  412. package/orderlist/orderlist.d.ts +18 -0
  413. package/orderlist/orderlist.esm.js +261 -106
  414. package/orderlist/orderlist.esm.min.js +1 -1
  415. package/orderlist/orderlist.js +260 -105
  416. package/orderlist/orderlist.min.js +1 -1
  417. package/organizationchart/organizationchart.cjs.js +10 -0
  418. package/organizationchart/organizationchart.cjs.min.js +1 -1
  419. package/organizationchart/organizationchart.esm.js +10 -0
  420. package/organizationchart/organizationchart.esm.min.js +1 -1
  421. package/organizationchart/organizationchart.js +10 -0
  422. package/organizationchart/organizationchart.min.js +1 -1
  423. package/overlaypanel/overlaypanel.cjs.js +9 -102
  424. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  425. package/overlaypanel/overlaypanel.d.ts +1 -1
  426. package/overlaypanel/overlaypanel.esm.js +11 -104
  427. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  428. package/overlaypanel/overlaypanel.js +10 -103
  429. package/overlaypanel/overlaypanel.min.js +1 -1
  430. package/package.json +1 -1
  431. package/paginator/paginator.d.ts +2 -2
  432. package/panel/panel.cjs.js +22 -19
  433. package/panel/panel.cjs.min.js +1 -1
  434. package/panel/panel.esm.js +22 -19
  435. package/panel/panel.esm.min.js +1 -1
  436. package/panel/panel.js +22 -19
  437. package/panel/panel.min.js +1 -1
  438. package/panelmenu/panelmenu.cjs.js +774 -195
  439. package/panelmenu/panelmenu.cjs.min.js +1 -1
  440. package/panelmenu/panelmenu.d.ts +15 -0
  441. package/panelmenu/panelmenu.esm.js +775 -196
  442. package/panelmenu/panelmenu.esm.min.js +1 -1
  443. package/panelmenu/panelmenu.js +774 -195
  444. package/panelmenu/panelmenu.min.js +1 -1
  445. package/passthrough/tailwind/index.cjs.js +163 -159
  446. package/passthrough/tailwind/index.cjs.min.js +1 -1
  447. package/passthrough/tailwind/index.esm.js +163 -159
  448. package/passthrough/tailwind/index.esm.min.js +1 -1
  449. package/passthrough/tailwind/index.js +163 -159
  450. package/passthrough/tailwind/index.min.js +1 -1
  451. package/password/password.cjs.js +7 -2
  452. package/password/password.cjs.min.js +1 -1
  453. package/password/password.d.ts +1 -1
  454. package/password/password.esm.js +8 -3
  455. package/password/password.esm.min.js +1 -1
  456. package/password/password.js +7 -2
  457. package/password/password.min.js +1 -1
  458. package/picklist/picklist.cjs.js +709 -181
  459. package/picklist/picklist.cjs.min.js +1 -1
  460. package/picklist/picklist.d.ts +10 -0
  461. package/picklist/picklist.esm.js +708 -180
  462. package/picklist/picklist.esm.min.js +1 -1
  463. package/picklist/picklist.js +709 -181
  464. package/picklist/picklist.min.js +1 -1
  465. package/portal/portal.cjs.js +7 -1
  466. package/portal/portal.cjs.min.js +1 -1
  467. package/portal/portal.esm.js +7 -1
  468. package/portal/portal.esm.min.js +1 -1
  469. package/portal/portal.js +7 -1
  470. package/portal/portal.min.js +1 -1
  471. package/primereact.all.cjs.js +8352 -3145
  472. package/primereact.all.cjs.min.js +1 -1
  473. package/primereact.all.esm.js +8351 -3146
  474. package/primereact.all.esm.min.js +1 -1
  475. package/primereact.all.js +8352 -3145
  476. package/primereact.all.min.js +1 -1
  477. package/radiobutton/radiobutton.cjs.js +27 -26
  478. package/radiobutton/radiobutton.cjs.min.js +1 -1
  479. package/radiobutton/radiobutton.esm.js +27 -26
  480. package/radiobutton/radiobutton.esm.min.js +1 -1
  481. package/radiobutton/radiobutton.js +28 -27
  482. package/radiobutton/radiobutton.min.js +1 -1
  483. package/resources/themes/arya-blue/theme.css +854 -790
  484. package/resources/themes/arya-green/theme.css +854 -790
  485. package/resources/themes/arya-orange/theme.css +854 -790
  486. package/resources/themes/arya-purple/theme.css +854 -790
  487. package/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
  488. package/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
  489. package/resources/themes/bootstrap4-light-blue/theme.css +679 -616
  490. package/resources/themes/bootstrap4-light-purple/theme.css +679 -616
  491. package/resources/themes/fluent-light/theme.css +686 -638
  492. package/resources/themes/lara-dark-amber/theme.css +679 -630
  493. package/resources/themes/lara-dark-blue/theme.css +679 -630
  494. package/resources/themes/lara-dark-cyan/theme.css +679 -630
  495. package/resources/themes/lara-dark-green/theme.css +679 -630
  496. package/resources/themes/lara-dark-indigo/theme.css +679 -630
  497. package/resources/themes/lara-dark-pink/theme.css +679 -630
  498. package/resources/themes/lara-dark-purple/theme.css +679 -630
  499. package/resources/themes/lara-dark-teal/theme.css +679 -630
  500. package/resources/themes/lara-light-amber/theme.css +776 -725
  501. package/resources/themes/lara-light-blue/theme.css +1011 -960
  502. package/resources/themes/lara-light-cyan/theme.css +776 -725
  503. package/resources/themes/lara-light-green/theme.css +820 -769
  504. package/resources/themes/lara-light-indigo/theme.css +1016 -965
  505. package/resources/themes/lara-light-pink/theme.css +776 -725
  506. package/resources/themes/lara-light-purple/theme.css +1016 -965
  507. package/resources/themes/lara-light-teal/theme.css +776 -725
  508. package/resources/themes/luna-amber/theme.css +950 -887
  509. package/resources/themes/luna-blue/theme.css +950 -887
  510. package/resources/themes/luna-green/theme.css +950 -887
  511. package/resources/themes/luna-pink/theme.css +950 -887
  512. package/resources/themes/md-dark-deeppurple/theme.css +918 -950
  513. package/resources/themes/md-dark-indigo/theme.css +918 -950
  514. package/resources/themes/md-light-deeppurple/theme.css +878 -910
  515. package/resources/themes/md-light-indigo/theme.css +878 -910
  516. package/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
  517. package/resources/themes/mdc-dark-indigo/theme.css +918 -950
  518. package/resources/themes/mdc-light-deeppurple/theme.css +878 -910
  519. package/resources/themes/mdc-light-indigo/theme.css +878 -910
  520. package/resources/themes/mira/theme.css +1562 -1532
  521. package/resources/themes/nano/theme.css +707 -641
  522. package/resources/themes/nova/theme.css +705 -643
  523. package/resources/themes/nova-accent/theme.css +701 -636
  524. package/resources/themes/nova-alt/theme.css +705 -643
  525. package/resources/themes/rhea/theme.css +876 -811
  526. package/resources/themes/saga-blue/theme.css +896 -832
  527. package/resources/themes/saga-green/theme.css +896 -832
  528. package/resources/themes/saga-orange/theme.css +896 -832
  529. package/resources/themes/saga-purple/theme.css +896 -832
  530. package/resources/themes/soho-dark/theme.css +701 -643
  531. package/resources/themes/soho-light/theme.css +690 -634
  532. package/resources/themes/tailwind-light/theme.css +1370 -1306
  533. package/resources/themes/vela-blue/theme.css +862 -798
  534. package/resources/themes/vela-green/theme.css +862 -798
  535. package/resources/themes/vela-orange/theme.css +862 -798
  536. package/resources/themes/vela-purple/theme.css +862 -798
  537. package/resources/themes/viva-dark/theme.css +655 -612
  538. package/resources/themes/viva-light/theme.css +737 -694
  539. package/ripple/ripple.cjs.js +71 -5
  540. package/ripple/ripple.cjs.min.js +1 -1
  541. package/ripple/ripple.esm.js +71 -5
  542. package/ripple/ripple.esm.min.js +1 -1
  543. package/ripple/ripple.js +71 -5
  544. package/ripple/ripple.min.js +1 -1
  545. package/scrollpanel/scrollpanel.cjs.js +183 -3
  546. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  547. package/scrollpanel/scrollpanel.esm.js +184 -4
  548. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  549. package/scrollpanel/scrollpanel.js +183 -3
  550. package/scrollpanel/scrollpanel.min.js +1 -1
  551. package/sidebar/sidebar.cjs.js +62 -146
  552. package/sidebar/sidebar.cjs.min.js +1 -1
  553. package/sidebar/sidebar.d.ts +25 -3
  554. package/sidebar/sidebar.esm.js +65 -149
  555. package/sidebar/sidebar.esm.min.js +1 -1
  556. package/sidebar/sidebar.js +63 -147
  557. package/sidebar/sidebar.min.js +1 -1
  558. package/slidemenu/slidemenu.cjs.js +7 -100
  559. package/slidemenu/slidemenu.cjs.min.js +1 -1
  560. package/slidemenu/slidemenu.d.ts +1 -1
  561. package/slidemenu/slidemenu.esm.js +10 -103
  562. package/slidemenu/slidemenu.esm.min.js +1 -1
  563. package/slidemenu/slidemenu.js +7 -100
  564. package/slidemenu/slidemenu.min.js +1 -1
  565. package/speeddial/speeddial.cjs.js +275 -32
  566. package/speeddial/speeddial.cjs.min.js +1 -1
  567. package/speeddial/speeddial.esm.js +277 -34
  568. package/speeddial/speeddial.esm.min.js +1 -1
  569. package/speeddial/speeddial.js +275 -32
  570. package/speeddial/speeddial.min.js +1 -1
  571. package/splitbutton/splitbutton.cjs.js +1098 -309
  572. package/splitbutton/splitbutton.cjs.min.js +1 -1
  573. package/splitbutton/splitbutton.d.ts +5 -5
  574. package/splitbutton/splitbutton.esm.js +1100 -311
  575. package/splitbutton/splitbutton.esm.min.js +1 -1
  576. package/splitbutton/splitbutton.js +1096 -309
  577. package/splitbutton/splitbutton.min.js +1 -1
  578. package/splitter/splitter.cjs.js +103 -15
  579. package/splitter/splitter.cjs.min.js +1 -1
  580. package/splitter/splitter.d.ts +5 -0
  581. package/splitter/splitter.esm.js +103 -15
  582. package/splitter/splitter.esm.min.js +1 -1
  583. package/splitter/splitter.js +103 -15
  584. package/splitter/splitter.min.js +1 -1
  585. package/steps/steps.cjs.js +99 -13
  586. package/steps/steps.cjs.min.js +1 -1
  587. package/steps/steps.esm.js +100 -14
  588. package/steps/steps.esm.min.js +1 -1
  589. package/steps/steps.js +99 -13
  590. package/steps/steps.min.js +1 -1
  591. package/tabmenu/tabmenu.cjs.js +113 -17
  592. package/tabmenu/tabmenu.cjs.min.js +1 -1
  593. package/tabmenu/tabmenu.esm.js +113 -17
  594. package/tabmenu/tabmenu.esm.min.js +1 -1
  595. package/tabmenu/tabmenu.js +113 -17
  596. package/tabmenu/tabmenu.min.js +1 -1
  597. package/tabview/tabview.cjs.js +128 -20
  598. package/tabview/tabview.cjs.min.js +1 -1
  599. package/tabview/tabview.d.ts +35 -0
  600. package/tabview/tabview.esm.js +128 -20
  601. package/tabview/tabview.esm.min.js +1 -1
  602. package/tabview/tabview.js +128 -20
  603. package/tabview/tabview.min.js +1 -1
  604. package/tieredmenu/tieredmenu.cjs.js +753 -275
  605. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  606. package/tieredmenu/tieredmenu.d.ts +11 -1
  607. package/tieredmenu/tieredmenu.esm.js +755 -277
  608. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  609. package/tieredmenu/tieredmenu.js +753 -275
  610. package/tieredmenu/tieredmenu.min.js +1 -1
  611. package/toast/toast.cjs.js +6 -1
  612. package/toast/toast.cjs.min.js +1 -1
  613. package/toast/toast.d.ts +36 -2
  614. package/toast/toast.esm.js +6 -1
  615. package/toast/toast.esm.min.js +1 -1
  616. package/toast/toast.js +6 -1
  617. package/toast/toast.min.js +1 -1
  618. package/togglebutton/togglebutton.cjs.js +74 -4
  619. package/togglebutton/togglebutton.cjs.min.js +1 -1
  620. package/togglebutton/togglebutton.esm.js +74 -4
  621. package/togglebutton/togglebutton.esm.min.js +1 -1
  622. package/togglebutton/togglebutton.js +75 -5
  623. package/togglebutton/togglebutton.min.js +1 -1
  624. package/tooltip/tooltip.d.ts +27 -0
  625. package/tooltip/tooltipoptions.d.ts +1 -1
  626. package/tree/tree.cjs.js +198 -88
  627. package/tree/tree.cjs.min.js +1 -1
  628. package/tree/tree.d.ts +8 -0
  629. package/tree/tree.esm.js +199 -89
  630. package/tree/tree.esm.min.js +1 -1
  631. package/tree/tree.js +198 -88
  632. package/tree/tree.min.js +1 -1
  633. package/treeselect/treeselect.cjs.js +185 -49
  634. package/treeselect/treeselect.cjs.min.js +1 -1
  635. package/treeselect/treeselect.d.ts +26 -1
  636. package/treeselect/treeselect.esm.js +186 -50
  637. package/treeselect/treeselect.esm.min.js +1 -1
  638. package/treeselect/treeselect.js +186 -51
  639. package/treeselect/treeselect.min.js +1 -1
  640. package/treetable/treetable.cjs.js +59 -53
  641. package/treetable/treetable.cjs.min.js +1 -1
  642. package/treetable/treetable.d.ts +3 -3
  643. package/treetable/treetable.esm.js +59 -53
  644. package/treetable/treetable.esm.min.js +1 -1
  645. package/treetable/treetable.js +59 -53
  646. package/treetable/treetable.min.js +1 -1
  647. package/utils/utils.cjs.js +19 -5
  648. package/utils/utils.cjs.min.js +1 -1
  649. package/utils/utils.d.ts +1 -1
  650. package/utils/utils.esm.js +19 -5
  651. package/utils/utils.esm.min.js +1 -1
  652. package/utils/utils.js +19 -5
  653. package/utils/utils.min.js +1 -1
  654. package/web-types.json +402 -33
@@ -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
5
  import { useMatchMedia, useEventListener, useResizeListener, useMountEffect, useUpdateEffect } 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, ZIndexUtils, ObjectUtils, 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,128 +321,181 @@ 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
  };
395
500
  var isOutsideClicked = function isOutsideClicked(event) {
396
501
  return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target) || menuButtonRef.current && menuButtonRef.current.contains(event.target));
@@ -409,13 +514,39 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
409
514
  if (props.breakpoint) {
410
515
  !attributeSelectorState && setAttributeSelectorState(uniqueId);
411
516
  }
412
- bindDocumentClickListener();
413
- bindDocumentResizeListener();
414
517
  });
518
+ useUpdateEffect(function () {
519
+ if (attributeSelectorState && elementRef.current) {
520
+ elementRef.current.setAttribute(attributeSelectorState, '');
521
+ createStyle();
522
+ }
523
+ return function () {
524
+ destroyStyle();
525
+ };
526
+ }, [attributeSelectorState, props.breakpoint]);
527
+ useUpdateEffect(function () {
528
+ if (mobileActiveState) {
529
+ bindListeners();
530
+ } else {
531
+ unbindListeners();
532
+ }
533
+ }, [mobileActiveState]);
534
+ useUpdateEffect(function () {
535
+ if (focusTrigger) {
536
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
537
+ changeFocusedItemInfo(itemIndex);
538
+ setFocusTrigger(false);
539
+ }
540
+ }, [focusTrigger]);
415
541
  useUpdateEffect(function () {
416
542
  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']);
543
+ if (activeItemState) {
544
+ bindListeners();
545
+ if (!isMobileMode) {
546
+ ZIndexUtils.set('menu', currentPanel, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
547
+ }
548
+ } else {
549
+ unbindListeners();
419
550
  }
420
551
  if (isMobileMode) {
421
552
  currentPanel && currentPanel.previousElementSibling.scrollIntoView({
@@ -424,9 +555,442 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
424
555
  });
425
556
  }
426
557
  return function () {
558
+ unbindListeners();
427
559
  ZIndexUtils.clear(currentPanel);
428
560
  };
429
- }, [activeItemState]);
561
+ }, [activeItemState, isMobileMode]);
562
+ useUpdateEffect(function () {
563
+ var _focusedItemId = ObjectUtils.isNotEmpty(focusedItemInfo.key) ? "".concat(idState, "_").concat(focusedItemInfo.key) : null;
564
+ setFocusedItemId(_focusedItemId);
565
+ }, [focusedItemInfo]);
566
+ React.useEffect(function () {
567
+ var itemsToProcess = props.model || [];
568
+ var processed = createProcessedItems(itemsToProcess, 0, null, '');
569
+ setProcessedItems(processed);
570
+ // eslint-disable-next-line react-hooks/exhaustive-deps
571
+ }, [props.model]);
572
+ useUpdateEffect(function () {
573
+ var processedItem = ObjectUtils.isNotEmpty(activeItemState) ? activeItemState : null;
574
+ var _visibleItems = processedItem && processedItem.key === focusedItemInfo.parentKey ? processedItem.items.reduce(function (items, col) {
575
+ col.forEach(function (submenu) {
576
+ submenu.items.forEach(function (a) {
577
+ items.push(a);
578
+ });
579
+ });
580
+ return items;
581
+ }, []) : processedItems;
582
+ setVisibleItems(_visibleItems);
583
+ }, [focusedItemInfo, activeItemState, processedItems]);
584
+ var onFocus = function onFocus(event) {
585
+ setFocused(true);
586
+ if (focusedItemInfo.index === -1) {
587
+ var index = findFirstFocusedItemIndex();
588
+ var processedItem = findVisibleItem(index);
589
+ setFocusedItemInfo({
590
+ index: index,
591
+ key: processedItem.key,
592
+ parentKey: processedItem.parentKey
593
+ });
594
+ }
595
+ props.onFocus && props.onFocus(event);
596
+ };
597
+ var onBlur = function onBlur(event) {
598
+ setFocused(false);
599
+ setFocusedItemInfo({
600
+ index: -1,
601
+ key: '',
602
+ parentKey: ''
603
+ });
604
+ searchValue.current = '';
605
+ setDirty(false);
606
+ props.onBlur && props.onBlur(event);
607
+ };
608
+ var onKeyDown = function onKeyDown(event) {
609
+ var metaKey = event.metaKey || event.ctrlKey;
610
+ switch (event.code) {
611
+ case 'ArrowDown':
612
+ onArrowDownKey(event);
613
+ break;
614
+ case 'ArrowUp':
615
+ onArrowUpKey(event);
616
+ break;
617
+ case 'ArrowLeft':
618
+ onArrowLeftKey(event);
619
+ break;
620
+ case 'ArrowRight':
621
+ onArrowRightKey(event);
622
+ break;
623
+ case 'Home':
624
+ onHomeKey(event);
625
+ break;
626
+ case 'End':
627
+ onEndKey(event);
628
+ break;
629
+ case 'Space':
630
+ onSpaceKey(event);
631
+ break;
632
+ case 'Enter':
633
+ onEnterKey(event);
634
+ break;
635
+ case 'Escape':
636
+ onEscapeKey(event);
637
+ break;
638
+ case 'Tab':
639
+ onTabKey(event);
640
+ break;
641
+ case 'PageDown':
642
+ case 'PageUp':
643
+ case 'Backspace':
644
+ case 'ShiftLeft':
645
+ case 'ShiftRight':
646
+ //NOOP
647
+ break;
648
+ default:
649
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
650
+ searchItems(event, event.key);
651
+ }
652
+ break;
653
+ }
654
+ };
655
+ var onArrowDownKey = function onArrowDownKey(event) {
656
+ event.preventDefault();
657
+ if (horizontal) {
658
+ var _focusedItemInfo = focusedItemInfo;
659
+ if (ObjectUtils.isNotEmpty(activeItemState) && activeItemState.key === focusedItemInfo.key) {
660
+ (({
661
+ index: -1,
662
+ key: '',
663
+ parentKey: activeItemState.key
664
+ })), _readOnlyError("_focusedItemInfo");
665
+ setFocusedItemInfo(_focusedItemInfo);
666
+ } else {
667
+ var processedItem = findVisibleItem(focusedItemInfo.index);
668
+ var grouped = isProccessedItemGroup(processedItem);
669
+ if (grouped) {
670
+ onItemChange({
671
+ originalEvent: event,
672
+ processedItem: processedItem
673
+ });
674
+ (({
675
+ index: -1,
676
+ key: processedItem.key,
677
+ parentKey: processedItem.parentKey
678
+ })), _readOnlyError("_focusedItemInfo");
679
+ setFocusedItemInfo(_focusedItemInfo);
680
+ searchValue.current = '';
681
+ }
682
+ }
683
+ setTimeout(function () {
684
+ return setFocusTrigger(true);
685
+ }, 0);
686
+ } else {
687
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
688
+ changeFocusedItemInfo(itemIndex);
689
+ }
690
+ };
691
+ var onArrowUpKey = function onArrowUpKey(event) {
692
+ var processedItem = findVisibleItem(focusedItemInfo.index);
693
+ var grouped = isProccessedItemGroup(processedItem);
694
+ if (event.altKey && horizontal) {
695
+ if (focusedItemInfo.index !== -1) {
696
+ if (!grouped && ObjectUtils.isNotEmpty(activeItemState)) {
697
+ if (focusedItemInfo.index === 0) {
698
+ setFocusedItemInfo({
699
+ index: activeItemState.index,
700
+ key: activeItemState.key,
701
+ parentKey: activeItemState.parentKey
702
+ });
703
+ setActiveItemState(null);
704
+ } else {
705
+ changeFocusedItemInfo(findFirstItemIndex());
706
+ }
707
+ }
708
+ }
709
+ } else {
710
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
711
+ changeFocusedItemInfo(itemIndex);
712
+ }
713
+ event.preventDefault();
714
+ };
715
+ var onArrowLeftKey = function onArrowLeftKey(event) {
716
+ var processedItem = findVisibleItem(focusedItemInfo.index);
717
+ var grouped = isProccessedItemGroup(processedItem);
718
+ if (grouped) {
719
+ if (horizontal) {
720
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
721
+ changeFocusedItemInfo(itemIndex);
722
+ }
723
+ } else {
724
+ if (vertical && ObjectUtils.isNotEmpty(activeItemState)) {
725
+ if (processedItem.columnIndex === 0) {
726
+ setFocusedItemInfo({
727
+ index: activeItemState.index,
728
+ key: activeItemState.key,
729
+ parentKey: activeItemState.parentKey
730
+ });
731
+ setActiveItemState(null);
732
+ }
733
+ }
734
+ var columnIndex = processedItem.columnIndex - 1;
735
+ var _itemIndex = visibleItems.findIndex(function (item) {
736
+ return item.columnIndex === columnIndex;
737
+ });
738
+ _itemIndex !== -1 && changeFocusedItemInfo(_itemIndex);
739
+ }
740
+ event.preventDefault();
741
+ };
742
+ var onArrowRightKey = function onArrowRightKey(event) {
743
+ event.preventDefault();
744
+ var processedItem = findVisibleItem(focusedItemInfo.index);
745
+ var grouped = isProccessedItemGroup(processedItem);
746
+ if (grouped) {
747
+ if (vertical) {
748
+ if (ObjectUtils.isNotEmpty(activeItemState) && activeItemState.key === processedItem.key) {
749
+ setFocusedItemInfo({
750
+ index: -1,
751
+ key: '',
752
+ parentKey: activeItemState.key
753
+ });
754
+ } else {
755
+ var _processedItem = findVisibleItem(focusedItemInfo.index);
756
+ var _grouped = isProccessedItemGroup(_processedItem);
757
+ if (_grouped) {
758
+ onItemChange({
759
+ originalEvent: event,
760
+ processedItem: _processedItem
761
+ });
762
+ setFocusedItemInfo({
763
+ index: -1,
764
+ key: _processedItem.key,
765
+ parentKey: _processedItem.parentKey
766
+ });
767
+ searchValue.current = '';
768
+ }
769
+ }
770
+ }
771
+ setTimeout(function () {
772
+ return setFocusTrigger(true);
773
+ }, 0);
774
+ } else {
775
+ var columnIndex = processedItem.columnIndex + 1;
776
+ var itemIndex = visibleItems.findIndex(function (item) {
777
+ return item.columnIndex === columnIndex;
778
+ });
779
+ itemIndex !== -1 && changeFocusedItemInfo(itemIndex);
780
+ }
781
+ };
782
+ var onHomeKey = function onHomeKey(event) {
783
+ changeFocusedItemInfo(findFirstItemIndex());
784
+ event.preventDefault();
785
+ };
786
+ var onEndKey = function onEndKey(event) {
787
+ changeFocusedItemInfo(findLastItemIndex());
788
+ event.preventDefault();
789
+ };
790
+ var onEnterKey = function onEnterKey(event) {
791
+ if (focusedItemInfo.index !== -1) {
792
+ var element = DomHandler.findSingle(menubarRef.current, "li[id=\"".concat(focusedItemId, "\"]"));
793
+ var anchorElement = element && DomHandler.findSingle(element, 'a[data-pc-section="action"]');
794
+ anchorElement ? anchorElement.click() : element && element.click();
795
+ }
796
+ event.preventDefault();
797
+ };
798
+ var onSpaceKey = function onSpaceKey(event) {
799
+ onEnterKey(event);
800
+ };
801
+ var onEscapeKey = function onEscapeKey(event) {
802
+ if (ObjectUtils.isNotEmpty(activeItemState)) {
803
+ setFocusedItemInfo({
804
+ index: activeItemState.index,
805
+ key: activeItemState.key
806
+ });
807
+ setActiveItemState(null);
808
+ }
809
+ event.preventDefault();
810
+ };
811
+ var onTabKey = function onTabKey(event) {
812
+ if (focusedItemInfo.index !== -1) {
813
+ var processedItem = findVisibleItem(focusedItemInfo.index);
814
+ var grouped = isProccessedItemGroup(processedItem);
815
+ !grouped && onItemChange({
816
+ originalEvent: event,
817
+ processedItem: processedItem
818
+ });
819
+ }
820
+ hide();
821
+ };
822
+ var isItemMatched = function isItemMatched(processedItem) {
823
+ var label = getProccessedItemLabel(processedItem);
824
+ return isValidItem(processedItem) && label && label.toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
825
+ };
826
+ var isValidItem = function isValidItem(processedItem) {
827
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
828
+ };
829
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
830
+ return isValidItem(processedItem) && isSelected(processedItem);
831
+ };
832
+ var isSelected = function isSelected(processedItem) {
833
+ return ObjectUtils.isNotEmpty(activeItemState) ? activeItemState.key === processedItem.key : false;
834
+ };
835
+ var findFirstItemIndex = function findFirstItemIndex() {
836
+ return visibleItems.findIndex(function (processedItem) {
837
+ return isValidItem(processedItem);
838
+ });
839
+ };
840
+ var findLastItemIndex = function findLastItemIndex() {
841
+ return ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
842
+ return isValidItem(processedItem);
843
+ });
844
+ };
845
+ var findNextItemIndex = function findNextItemIndex(index) {
846
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
847
+ return isValidItem(processedItem);
848
+ }) : -1;
849
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
850
+ };
851
+ var findPrevItemIndex = function findPrevItemIndex(index) {
852
+ var matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
853
+ return isValidItem(processedItem);
854
+ }) : -1;
855
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
856
+ };
857
+ var findSelectedItemIndex = function findSelectedItemIndex() {
858
+ return visibleItems && visibleItems.findIndex(function (processedItem) {
859
+ return isValidSelectedItem(processedItem);
860
+ });
861
+ };
862
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
863
+ var selectedIndex = findSelectedItemIndex();
864
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
865
+ };
866
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
867
+ var selectedIndex = findSelectedItemIndex();
868
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
869
+ };
870
+ var findVisibleItem = function findVisibleItem(index) {
871
+ return ObjectUtils.isNotEmpty(visibleItems) ? visibleItems[index] : null;
872
+ };
873
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
874
+ return processedItem && processedItem.item ? getItemLabel(processedItem) : undefined;
875
+ };
876
+ var searchItems = function searchItems(event, _char) {
877
+ searchValue.current = (searchValue.current || '') + _char;
878
+ var itemIndex = -1;
879
+ var matched = false;
880
+ if (focusedItemInfo.index !== -1) {
881
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
882
+ return isItemMatched(processedItem);
883
+ });
884
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
885
+ return isItemMatched(processedItem);
886
+ }) : itemIndex + focusedItemInfo.index;
887
+ } else {
888
+ itemIndex = visibleItems.findIndex(function (processedItem) {
889
+ return isItemMatched(processedItem);
890
+ });
891
+ }
892
+ if (itemIndex !== -1) {
893
+ matched = true;
894
+ }
895
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
896
+ itemIndex = findFirstFocusedItemIndex();
897
+ }
898
+ if (itemIndex !== -1) {
899
+ changeFocusedItemInfo(itemIndex);
900
+ }
901
+ if (searchTimeout) {
902
+ clearTimeout(searchTimeout);
903
+ }
904
+ searchTimeout.current = setTimeout(function () {
905
+ searchValue.current = '';
906
+ searchTimeout.current = null;
907
+ }, 500);
908
+ return matched;
909
+ };
910
+ var changeFocusedItemInfo = function changeFocusedItemInfo(index) {
911
+ var processedItem = findVisibleItem(index);
912
+ var key = ObjectUtils.isNotEmpty(processedItem) ? processedItem.key : '';
913
+ setFocusedItemInfo(_objectSpread(_objectSpread({}, focusedItemInfo), {}, {
914
+ index: index,
915
+ key: key
916
+ }));
917
+ scrollInView();
918
+ };
919
+ var scrollInView = function scrollInView() {
920
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
921
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
922
+ var element = DomHandler.findSingle(menubarRef.current, "li[id=\"".concat(id, "\"]"));
923
+ if (element) {
924
+ element.scrollIntoView && element.scrollIntoView({
925
+ block: 'nearest',
926
+ inline: 'start'
927
+ });
928
+ }
929
+ };
930
+ var getItemId = function getItemId(processedItem) {
931
+ return "".concat(idState, "_").concat(processedItem.key);
932
+ };
933
+ var getItemProp = function getItemProp(processedItem, name, params) {
934
+ return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
935
+ };
936
+ var getItemLabel = function getItemLabel(processedItem) {
937
+ return getItemProp(processedItem, 'label');
938
+ };
939
+ var isItemActive = function isItemActive(processedItem) {
940
+ return ObjectUtils.isNotEmpty(activeItemState) ? activeItemState.key === processedItem.key : false;
941
+ };
942
+ var isItemVisible = function isItemVisible(processedItem) {
943
+ return getItemProp(processedItem, 'visible') !== false;
944
+ };
945
+ var isItemDisabled = function isItemDisabled(processedItem) {
946
+ return getItemProp(processedItem, 'disabled');
947
+ };
948
+ var isItemFocused = function isItemFocused(processedItem) {
949
+ return focusedItemId === getItemId(processedItem);
950
+ };
951
+ var isItemGroup = function isItemGroup(processedItem) {
952
+ return ObjectUtils.isNotEmpty(processedItem.items);
953
+ };
954
+ var isItemSeparator = function isItemSeparator(item) {
955
+ return getItemProp(item, 'separator');
956
+ };
957
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
958
+ return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
959
+ };
960
+ var getAriaSetSize = function getAriaSetSize() {
961
+ return props.model.filter(function (processedItem) {
962
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
963
+ }).length;
964
+ };
965
+ var getAriaPosInset = function getAriaPosInset(index) {
966
+ return index - props.model.slice(0, index).filter(function (processedItem) {
967
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
968
+ }).length + 1;
969
+ };
970
+ var createProcessedItems = function createProcessedItems(items) {
971
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
972
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
973
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
974
+ var columnIndex = arguments.length > 4 ? arguments[4] : undefined;
975
+ var _processedItems = [];
976
+ items && items.forEach(function (item, index) {
977
+ var key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;
978
+ var newItem = {
979
+ item: item,
980
+ index: index,
981
+ level: level,
982
+ key: key,
983
+ parent: parent,
984
+ parentKey: parentKey,
985
+ columnIndex: columnIndex !== undefined ? columnIndex : parent && parent.columnIndex !== undefined ? parent.columnIndex : index
986
+ };
987
+ newItem['items'] = level === 0 && item.items && item.items.length > 0 ? item.items.map(function (_items, _index) {
988
+ return createProcessedItems(_items, level + 1, newItem, key, _index);
989
+ }) : createProcessedItems(item.items, level + 1, newItem, key);
990
+ _processedItems.push(newItem);
991
+ });
992
+ return _processedItems;
993
+ };
430
994
  var createSeparator = function createSeparator(index) {
431
995
  var key = idState + '_separator__' + index;
432
996
  var separatorProps = mergeProps({
@@ -450,14 +1014,15 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
450
1014
  }
451
1015
  return null;
452
1016
  };
453
- var createSubmenuItem = function createSubmenuItem(item, index) {
1017
+ var createSubmenuItem = function createSubmenuItem(processedItem, index) {
1018
+ var item = processedItem.item;
454
1019
  if (item.visible === false) {
455
1020
  return null;
456
1021
  }
457
1022
  if (item.separator) {
458
1023
  return createSeparator(index);
459
1024
  } else {
460
- var key = item.id || idState + '_' + index;
1025
+ var key = getItemId(processedItem);
461
1026
  var linkClassName = classNames('p-menuitem-link', {
462
1027
  'p-disabled': item.disabled
463
1028
  });
@@ -478,25 +1043,46 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
478
1043
  item: item
479
1044
  }),
480
1045
  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));
1046
+ tabIndex: '-1',
1047
+ 'aria-hidden': true
1048
+ }, getPTOptions(processedItem, 'action', index));
1049
+ var isFocused = isItemFocused(processedItem);
1050
+ var isDisabled = isItemDisabled(processedItem);
1051
+ var isGroup = isItemGroup(processedItem);
1052
+ var isActive = isItemActive(processedItem);
487
1053
  var submenuItemProps = mergeProps({
488
1054
  key: key,
489
1055
  id: key,
490
- className: classNames(item.className, cx('submenuItem')),
1056
+ 'aria-label': getItemLabel(processedItem),
1057
+ 'aria-disabled': isDisabled,
1058
+ 'aria-haspopup': isGroup ? 'menu' : undefined,
1059
+ 'aria-level': '2',
1060
+ 'aria-expanded': isGroup ? isActive : undefined,
1061
+ 'aria-setsize': getAriaSetSize(),
1062
+ 'aria-posinset': getAriaPosInset(index),
1063
+ 'data-p-highlight': isActive,
1064
+ 'data-p-disabled': isDisabled,
1065
+ 'data-p-focused': isFocused,
1066
+ className: classNames(item.className, cx('submenuItem', {
1067
+ focused: isFocused,
1068
+ disabled: isDisabled,
1069
+ active: isActive
1070
+ })),
491
1071
  style: item.style,
492
- role: 'none'
493
- }, getPTOptions(item, 'submenuItem', index));
1072
+ role: 'menuitem'
1073
+ }, getPTOptions(processedItem, 'submenuItem', index));
1074
+ var contentProps = mergeProps({
1075
+ onClick: function onClick(event) {
1076
+ return onLeafClick({
1077
+ originalEvent: event,
1078
+ processedItem: processedItem
1079
+ });
1080
+ },
1081
+ className: cx('content')
1082
+ }, getPTOptions(processedItem, 'content', index));
494
1083
  var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label, /*#__PURE__*/React.createElement(Ripple, null));
495
1084
  if (item.template) {
496
1085
  var defaultContentOptions = {
497
- onClick: function onClick(event) {
498
- return onLeafClick(event, item);
499
- },
500
1086
  className: linkClassName,
501
1087
  labelClassName: 'p-menuitem-text',
502
1088
  iconClassName: iconClassName,
@@ -505,47 +1091,52 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
505
1091
  };
506
1092
  content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
507
1093
  }
508
- return /*#__PURE__*/React.createElement("li", submenuItemProps, content);
1094
+ return /*#__PURE__*/React.createElement("li", submenuItemProps, /*#__PURE__*/React.createElement("div", contentProps, content));
509
1095
  }
510
1096
  };
511
1097
  var createSubmenu = function createSubmenu(submenu, index) {
512
- if (submenu.visible === false) {
1098
+ if (!isItemVisible(submenu)) {
513
1099
  return null;
514
1100
  }
515
1101
  var items = submenu.items.map(createSubmenuItem);
516
1102
  var key = submenu.id || idState + '_sub_' + index;
1103
+ var label = getItemLabel(submenu);
1104
+ var isDisabled = isItemDisabled(submenu);
517
1105
  var submenuHeaderProps = mergeProps({
518
1106
  id: key,
519
1107
  key: key,
520
1108
  className: classNames(submenu.className, cx('submenuHeader', {
521
- submenu: submenu
1109
+ disabled: isDisabled
522
1110
  })),
523
1111
  style: submenu.style,
524
1112
  role: 'presentation',
525
- 'data-p-disabled': submenu.disabled
1113
+ 'data-p-disabled': isDisabled
526
1114
  }, ptm('submenuHeader'));
527
1115
  return /*#__PURE__*/React.createElement(React.Fragment, {
528
1116
  key: key
529
- }, /*#__PURE__*/React.createElement("li", submenuHeaderProps, submenu.label), items);
1117
+ }, /*#__PURE__*/React.createElement("li", submenuHeaderProps, label), items);
530
1118
  };
531
1119
  var createSubmenus = function createSubmenus(column) {
532
1120
  return column.map(createSubmenu);
533
1121
  };
534
- var createColumn = function createColumn(category, column, index) {
1122
+ var createColumn = function createColumn(processedItem, processedColumn, index) {
1123
+ var category = processedItem.item;
535
1124
  var key = category.label + '_column_' + index;
536
- var submenus = createSubmenus(column);
1125
+ var submenus = createSubmenus(processedColumn);
537
1126
  var columnProps = mergeProps({
538
1127
  key: key,
539
1128
  className: cx('column', {
540
1129
  category: category
541
1130
  })
542
1131
  }, ptm('column'));
1132
+ var display = activeItemState && activeItemState.item === category ? 'block' : 'none';
543
1133
  var submenuProps = mergeProps({
1134
+ role: 'menu',
1135
+ tabIndex: props.disabled ? null : props.tabIndex || '0',
544
1136
  className: cx('submenu'),
545
1137
  style: {
546
- display: activeItemState === category ? 'block' : 'none'
547
- },
548
- role: 'menu'
1138
+ display: display
1139
+ }
549
1140
  }, ptm('submenu'));
550
1141
  return /*#__PURE__*/React.createElement("div", columnProps, /*#__PURE__*/React.createElement("ul", submenuProps, submenus));
551
1142
  };
@@ -557,9 +1148,10 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
557
1148
  }
558
1149
  return null;
559
1150
  };
560
- var createCategoryPanel = function createCategoryPanel(category) {
1151
+ var createCategoryPanel = function createCategoryPanel(processedItem) {
1152
+ var category = processedItem.item;
561
1153
  if (category.items) {
562
- var columns = createColumns(category);
1154
+ var columns = createColumns(processedItem);
563
1155
  var panelProps = mergeProps({
564
1156
  className: cx('panel')
565
1157
  }, ptm('panel'));
@@ -572,7 +1164,7 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
572
1164
  };
573
1165
  var createStyle = function createStyle() {
574
1166
  if (!styleElementRef.current) {
575
- styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce);
1167
+ styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce, context && context.styleContainer);
576
1168
  var selector = "".concat(attributeSelectorState);
577
1169
  var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-megamenu[").concat(selector, "] > .p-megamenu-root-list .p-menuitem-active .p-megamenu-panel {\n position: relative;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n background: inherit;\n }\n\n .p-megamenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-megamenu[").concat(selector, "] .p-megamenu-grid {\n flex-wrap: wrap;\n }\n\n ").concat(horizontal ? "\n.p-megamenu[".concat(selector, "] .p-megamenu-button {\n display: flex;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal {\n position: relative;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal .p-megamenu-root-list {\n display: none;\n}\n\n.p-megamenu-horizontal[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: auto;\n flex: 1;\n padding: 0;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-mobile-active .p-megamenu-root-list {\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n ") : '', "\n\n ").concat(vertical ? "\n.p-megamenu-vertical[".concat(selector, "] {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-root-list {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n}\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: 100%;\n padding: 0;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-submenu {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] .p-megamenu-submenu-header {\n background: inherit;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n}\n ") : '', "\n}\n");
578
1170
  styleElementRef.current.innerHTML = innerHTML;
@@ -581,69 +1173,92 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
581
1173
  var destroyStyle = function destroyStyle() {
582
1174
  styleElementRef.current = DomHandler.removeInlineStyle(styleElementRef.current);
583
1175
  };
584
- useUpdateEffect(function () {
585
- if (attributeSelectorState && elementRef.current) {
586
- elementRef.current.setAttribute(attributeSelectorState, '');
587
- createStyle();
588
- }
589
- return function () {
590
- destroyStyle();
591
- };
592
- }, [attributeSelectorState, props.breakpoint]);
593
- var createCategory = function createCategory(category, index) {
1176
+ var createCategory = function createCategory(processedItem, index) {
1177
+ var category = processedItem.item;
594
1178
  var iconProps = mergeProps({
595
1179
  className: cx('icon')
596
- }, getPTOptions(category, 'icon', index));
1180
+ }, getPTOptions(processedItem, 'icon', index));
597
1181
  var icon = IconUtils.getJSXIcon(category.icon, _objectSpread({}, iconProps), {
598
1182
  props: props
599
1183
  });
600
1184
  var labelProps = mergeProps({
601
1185
  className: cx('label')
602
- }, getPTOptions(category, 'label', index));
1186
+ }, getPTOptions(processedItem, 'label', index));
603
1187
  var label = category.label && /*#__PURE__*/React.createElement("span", labelProps, category.label);
604
- var itemContent = category.template ? ObjectUtils.getJSXElement(category.template, category) : null;
605
1188
  var submenuIcon = createSubmenuIcon(category);
606
- var panel = createCategoryPanel(category);
1189
+ var panel = createCategoryPanel(processedItem);
607
1190
  var headerActionProps = mergeProps({
608
1191
  href: category.url || '#',
609
- className: cx('headerAction', {
610
- category: category
1192
+ className: cx('action', {
1193
+ item: category
611
1194
  }),
612
1195
  target: category.target,
613
- onClick: function onClick(e) {
614
- return onCategoryClick(e, category);
615
- },
616
- onKeyDown: function onKeyDown(e) {
617
- return onCategoryKeyDown(e, category);
1196
+ onFocus: function onFocus(event) {
1197
+ return event.stopPropagation();
618
1198
  },
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({
1199
+ tabIndex: '-1',
1200
+ 'aria-hidden': true
1201
+ }, getPTOptions(processedItem, 'action', index));
1202
+ var itemContent = category.template ? ObjectUtils.getJSXElement(category.template, category, headerActionProps) : /*#__PURE__*/React.createElement("a", headerActionProps, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));
1203
+ var key = getItemId(processedItem);
1204
+ var isFocused = isItemFocused(processedItem);
1205
+ var isDisabled = isItemDisabled(processedItem);
1206
+ var menuItemProps = mergeProps(_defineProperty({
625
1207
  key: key,
626
1208
  id: key,
627
1209
  className: classNames(category.className, cx('menuitem', {
628
1210
  category: category,
629
- activeItemState: activeItemState
1211
+ activeItemState: activeItemState,
1212
+ focused: isFocused,
1213
+ disabled: isDisabled
630
1214
  })),
1215
+ 'aria-label': getItemLabel(category),
1216
+ 'aria-level': '1',
1217
+ 'aria-setsize': getAriaSetSize(),
1218
+ 'aria-posinset': getAriaPosInset(index),
1219
+ 'aria-expanded': isItemGroup(processedItem) ? isItemActive(processedItem) : undefined,
1220
+ 'aria-haspopup': isItemGroup(processedItem) ? 'menu' : undefined,
1221
+ 'aria-disabled': isItemDisabled(processedItem),
1222
+ 'data-p-highlight': isItemActive(category),
1223
+ 'data-p-disabled': isDisabled,
1224
+ 'data-p-focused': isFocused,
631
1225
  style: category.style,
1226
+ role: 'menuitem'
1227
+ }, "data-p-disabled", category.disabled || false), getPTOptions(processedItem, 'menuitem', index));
1228
+ var contentProps = mergeProps({
1229
+ onClick: function onClick(event) {
1230
+ return onCategoryClick({
1231
+ originalEvent: event,
1232
+ processedItem: processedItem
1233
+ });
1234
+ },
632
1235
  onMouseEnter: function onMouseEnter(e) {
633
- return onCategoryMouseEnter(e, category);
1236
+ return onCategoryMouseEnter({
1237
+ originalEvent: e,
1238
+ processedItem: processedItem
1239
+ });
634
1240
  },
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);
1241
+ className: cx('content')
1242
+ }, getPTOptions(processedItem, 'content', index));
1243
+ return /*#__PURE__*/React.createElement("li", menuItemProps, /*#__PURE__*/React.createElement("div", contentProps, itemContent), panel);
639
1244
  };
640
1245
  var createMenu = function createMenu() {
641
1246
  var menuProps = mergeProps({
1247
+ ref: menubarRef,
1248
+ tabIndex: props.disabled ? null : props.tabIndex || '0',
642
1249
  className: cx('menu'),
1250
+ onFocus: onFocus,
1251
+ onBlur: onBlur,
1252
+ onKeyDown: onKeyDown,
1253
+ 'aria-label': props.ariaLabel,
1254
+ 'aria-labelledby': props.ariaLabelledBy,
1255
+ 'aria-orientation': vertical ? 'vertical' : 'horizontal',
1256
+ 'aria-activedescendant': focused ? focusedItemId : null,
1257
+ id: idState + '_list',
643
1258
  role: 'menubar'
644
1259
  }, ptm('menu'));
645
- if (props.model) {
646
- return /*#__PURE__*/React.createElement("ul", menuProps, props.model.map(function (item, index) {
1260
+ if (processedItems) {
1261
+ return /*#__PURE__*/React.createElement("ul", menuProps, processedItems.map(function (item, index) {
647
1262
  return createCategory(item, index);
648
1263
  }));
649
1264
  }
@@ -670,13 +1285,17 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
670
1285
  return null;
671
1286
  };
672
1287
  var createMenuButton = function createMenuButton() {
673
- if (props.orientation === 'vertical' || props.model && props.model.length < 1) {
1288
+ if (vertical || props.model && props.model.length < 1) {
674
1289
  return null;
675
1290
  }
676
1291
  var menuButtonProps = mergeProps({
677
1292
  className: cx('menuButton'),
678
1293
  href: '#',
679
1294
  role: 'button',
1295
+ 'aria-haspopup': props.model && props.model.length > 0 ? true : false,
1296
+ 'aria-expanded': mobileActiveState,
1297
+ 'aria-controls': idState,
1298
+ 'aria-label': ariaLabel('navigation'),
680
1299
  tabIndex: 0,
681
1300
  onClick: function onClick(e) {
682
1301
  return toggle(e);
@@ -699,6 +1318,7 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
699
1318
  className: classNames(props.className, cx('root', {
700
1319
  mobileActiveState: mobileActiveState
701
1320
  })),
1321
+ id: idState,
702
1322
  style: props.style
703
1323
  }, MegaMenuBase.getOtherProps(props), ptm('root'));
704
1324
  var menu = createMenu();