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