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