primereact 10.2.1 → 10.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/accordion/accordion.cjs.js +83 -8
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.d.ts +35 -0
  4. package/accordion/accordion.esm.js +85 -10
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +83 -8
  7. package/accordion/accordion.min.js +1 -1
  8. package/api/api.cjs.js +63 -33
  9. package/api/api.cjs.min.js +1 -1
  10. package/api/api.d.ts +24 -246
  11. package/api/api.esm.js +63 -33
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +63 -33
  14. package/api/api.min.js +1 -1
  15. package/autocomplete/autocomplete.cjs.js +3 -2
  16. package/autocomplete/autocomplete.cjs.min.js +1 -1
  17. package/autocomplete/autocomplete.d.ts +6 -1
  18. package/autocomplete/autocomplete.esm.js +3 -2
  19. package/autocomplete/autocomplete.esm.min.js +1 -1
  20. package/autocomplete/autocomplete.js +3 -2
  21. package/autocomplete/autocomplete.min.js +1 -1
  22. package/blockui/blockui.cjs.js +8 -5
  23. package/blockui/blockui.cjs.min.js +1 -1
  24. package/blockui/blockui.esm.js +8 -5
  25. package/blockui/blockui.esm.min.js +1 -1
  26. package/blockui/blockui.js +8 -5
  27. package/blockui/blockui.min.js +1 -1
  28. package/breadcrumb/breadcrumb.cjs.js +12 -6
  29. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  30. package/breadcrumb/breadcrumb.esm.js +12 -6
  31. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  32. package/breadcrumb/breadcrumb.js +12 -6
  33. package/breadcrumb/breadcrumb.min.js +1 -1
  34. package/calendar/calendar.cjs.js +71 -37
  35. package/calendar/calendar.cjs.min.js +1 -1
  36. package/calendar/calendar.d.ts +3 -5
  37. package/calendar/calendar.esm.js +71 -37
  38. package/calendar/calendar.esm.min.js +1 -1
  39. package/calendar/calendar.js +71 -37
  40. package/calendar/calendar.min.js +1 -1
  41. package/carousel/carousel.cjs.js +103 -9
  42. package/carousel/carousel.cjs.min.js +1 -1
  43. package/carousel/carousel.esm.js +104 -10
  44. package/carousel/carousel.esm.min.js +1 -1
  45. package/carousel/carousel.js +103 -9
  46. package/carousel/carousel.min.js +1 -1
  47. package/cascadeselect/cascadeselect.cjs.js +64 -23
  48. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  49. package/cascadeselect/cascadeselect.d.ts +27 -4
  50. package/cascadeselect/cascadeselect.esm.js +65 -24
  51. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  52. package/cascadeselect/cascadeselect.js +65 -25
  53. package/cascadeselect/cascadeselect.min.js +1 -1
  54. package/checkbox/checkbox.cjs.js +25 -25
  55. package/checkbox/checkbox.cjs.min.js +1 -1
  56. package/checkbox/checkbox.esm.js +25 -25
  57. package/checkbox/checkbox.esm.min.js +1 -1
  58. package/checkbox/checkbox.js +26 -26
  59. package/checkbox/checkbox.min.js +1 -1
  60. package/chip/chip.cjs.js +5 -2
  61. package/chip/chip.cjs.min.js +1 -1
  62. package/chip/chip.d.ts +17 -2
  63. package/chip/chip.esm.js +5 -2
  64. package/chip/chip.esm.min.js +1 -1
  65. package/chip/chip.js +5 -2
  66. package/chip/chip.min.js +1 -1
  67. package/colorpicker/colorpicker.d.ts +1 -1
  68. package/componentbase/componentbase.cjs.js +49 -8
  69. package/componentbase/componentbase.cjs.min.js +1 -1
  70. package/componentbase/componentbase.esm.js +50 -9
  71. package/componentbase/componentbase.esm.min.js +1 -1
  72. package/componentbase/componentbase.js +49 -8
  73. package/componentbase/componentbase.min.js +1 -1
  74. package/confirmdialog/confirmdialog.cjs.js +30 -22
  75. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  76. package/confirmdialog/confirmdialog.d.ts +19 -3
  77. package/confirmdialog/confirmdialog.esm.js +30 -22
  78. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  79. package/confirmdialog/confirmdialog.js +30 -22
  80. package/confirmdialog/confirmdialog.min.js +1 -1
  81. package/confirmpopup/confirmpopup.cjs.js +85 -152
  82. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  83. package/confirmpopup/confirmpopup.d.ts +40 -1
  84. package/confirmpopup/confirmpopup.esm.js +88 -155
  85. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  86. package/confirmpopup/confirmpopup.js +85 -152
  87. package/confirmpopup/confirmpopup.min.js +1 -1
  88. package/contextmenu/contextmenu.cjs.js +641 -99
  89. package/contextmenu/contextmenu.cjs.min.js +1 -1
  90. package/contextmenu/contextmenu.d.ts +23 -1
  91. package/contextmenu/contextmenu.esm.js +641 -99
  92. package/contextmenu/contextmenu.esm.min.js +1 -1
  93. package/contextmenu/contextmenu.js +641 -99
  94. package/contextmenu/contextmenu.min.js +1 -1
  95. package/core/core.js +1217 -484
  96. package/core/core.min.js +40 -40
  97. package/datatable/datatable.cjs.js +30 -26
  98. package/datatable/datatable.cjs.min.js +1 -1
  99. package/datatable/datatable.d.ts +5 -4
  100. package/datatable/datatable.esm.js +30 -26
  101. package/datatable/datatable.esm.min.js +1 -1
  102. package/datatable/datatable.js +30 -26
  103. package/datatable/datatable.min.js +1 -1
  104. package/dataview/dataview.d.ts +1 -1
  105. package/dialog/dialog.cjs.js +108 -151
  106. package/dialog/dialog.cjs.min.js +1 -1
  107. package/dialog/dialog.d.ts +60 -1
  108. package/dialog/dialog.esm.js +115 -158
  109. package/dialog/dialog.esm.min.js +1 -1
  110. package/dialog/dialog.js +109 -152
  111. package/dialog/dialog.min.js +1 -1
  112. package/divider/divider.cjs.js +1 -0
  113. package/divider/divider.cjs.min.js +1 -1
  114. package/divider/divider.esm.js +1 -0
  115. package/divider/divider.esm.min.js +1 -1
  116. package/divider/divider.js +1 -0
  117. package/divider/divider.min.js +1 -1
  118. package/dock/dock.cjs.js +169 -33
  119. package/dock/dock.cjs.min.js +1 -1
  120. package/dock/dock.d.ts +15 -0
  121. package/dock/dock.esm.js +170 -34
  122. package/dock/dock.esm.min.js +1 -1
  123. package/dock/dock.js +169 -33
  124. package/dock/dock.min.js +1 -1
  125. package/dropdown/dropdown.cjs.js +29 -4
  126. package/dropdown/dropdown.cjs.min.js +1 -1
  127. package/dropdown/dropdown.d.ts +1 -1
  128. package/dropdown/dropdown.esm.js +29 -4
  129. package/dropdown/dropdown.esm.min.js +1 -1
  130. package/dropdown/dropdown.js +30 -6
  131. package/dropdown/dropdown.min.js +1 -1
  132. package/fieldset/fieldset.cjs.js +12 -5
  133. package/fieldset/fieldset.cjs.min.js +1 -1
  134. package/fieldset/fieldset.esm.js +12 -5
  135. package/fieldset/fieldset.esm.min.js +1 -1
  136. package/fieldset/fieldset.js +12 -5
  137. package/fieldset/fieldset.min.js +1 -1
  138. package/fileupload/fileupload.cjs.js +14 -6
  139. package/fileupload/fileupload.cjs.min.js +1 -1
  140. package/fileupload/fileupload.d.ts +17 -1
  141. package/fileupload/fileupload.esm.js +14 -6
  142. package/fileupload/fileupload.esm.min.js +1 -1
  143. package/fileupload/fileupload.js +14 -6
  144. package/fileupload/fileupload.min.js +1 -1
  145. package/galleria/galleria.cjs.js +223 -43
  146. package/galleria/galleria.cjs.min.js +1 -1
  147. package/galleria/galleria.esm.js +225 -45
  148. package/galleria/galleria.esm.min.js +1 -1
  149. package/galleria/galleria.js +223 -43
  150. package/galleria/galleria.min.js +1 -1
  151. package/hooks/hooks.cjs.js +219 -78
  152. package/hooks/hooks.cjs.min.js +1 -1
  153. package/hooks/hooks.d.ts +8 -4
  154. package/hooks/hooks.esm.js +219 -80
  155. package/hooks/hooks.esm.min.js +1 -1
  156. package/hooks/hooks.js +219 -78
  157. package/hooks/hooks.min.js +1 -1
  158. package/icons/arrowdown/index.cjs.js +13 -2
  159. package/icons/arrowdown/index.cjs.min.js +1 -1
  160. package/icons/arrowdown/index.esm.js +13 -2
  161. package/icons/arrowdown/index.esm.min.js +1 -1
  162. package/icons/arrowdown/index.js +13 -2
  163. package/icons/arrowdown/index.min.js +1 -1
  164. package/icons/arrowup/index.cjs.js +13 -2
  165. package/icons/arrowup/index.cjs.min.js +1 -1
  166. package/icons/arrowup/index.esm.js +13 -2
  167. package/icons/arrowup/index.esm.min.js +1 -1
  168. package/icons/arrowup/index.js +13 -2
  169. package/icons/arrowup/index.min.js +1 -1
  170. package/icons/ban/index.cjs.js +13 -2
  171. package/icons/ban/index.cjs.min.js +1 -1
  172. package/icons/ban/index.esm.js +13 -2
  173. package/icons/ban/index.esm.min.js +1 -1
  174. package/icons/ban/index.js +13 -2
  175. package/icons/ban/index.min.js +1 -1
  176. package/icons/download/index.cjs.js +13 -2
  177. package/icons/download/index.cjs.min.js +1 -1
  178. package/icons/download/index.esm.js +13 -2
  179. package/icons/download/index.esm.min.js +1 -1
  180. package/icons/download/index.js +13 -2
  181. package/icons/download/index.min.js +1 -1
  182. package/icons/exclamationtriangle/index.cjs.js +13 -2
  183. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  184. package/icons/exclamationtriangle/index.esm.js +13 -2
  185. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  186. package/icons/exclamationtriangle/index.js +13 -2
  187. package/icons/exclamationtriangle/index.min.js +1 -1
  188. package/icons/eyeslash/index.cjs.js +13 -2
  189. package/icons/eyeslash/index.cjs.min.js +1 -1
  190. package/icons/eyeslash/index.esm.js +13 -2
  191. package/icons/eyeslash/index.esm.min.js +1 -1
  192. package/icons/eyeslash/index.js +13 -2
  193. package/icons/eyeslash/index.min.js +1 -1
  194. package/icons/filter/index.cjs.js +13 -2
  195. package/icons/filter/index.cjs.min.js +1 -1
  196. package/icons/filter/index.esm.js +13 -2
  197. package/icons/filter/index.esm.min.js +1 -1
  198. package/icons/filter/index.js +13 -2
  199. package/icons/filter/index.min.js +1 -1
  200. package/icons/filterslash/index.cjs.js +13 -2
  201. package/icons/filterslash/index.cjs.min.js +1 -1
  202. package/icons/filterslash/index.esm.js +13 -2
  203. package/icons/filterslash/index.esm.min.js +1 -1
  204. package/icons/filterslash/index.js +13 -2
  205. package/icons/filterslash/index.min.js +1 -1
  206. package/icons/infocircle/index.cjs.js +13 -2
  207. package/icons/infocircle/index.cjs.min.js +1 -1
  208. package/icons/infocircle/index.esm.js +13 -2
  209. package/icons/infocircle/index.esm.min.js +1 -1
  210. package/icons/infocircle/index.js +13 -2
  211. package/icons/infocircle/index.min.js +1 -1
  212. package/icons/pencil/index.cjs.js +13 -2
  213. package/icons/pencil/index.cjs.min.js +1 -1
  214. package/icons/pencil/index.esm.js +13 -2
  215. package/icons/pencil/index.esm.min.js +1 -1
  216. package/icons/pencil/index.js +13 -2
  217. package/icons/pencil/index.min.js +1 -1
  218. package/icons/plus/index.cjs.js +13 -2
  219. package/icons/plus/index.cjs.min.js +1 -1
  220. package/icons/plus/index.esm.js +13 -2
  221. package/icons/plus/index.esm.min.js +1 -1
  222. package/icons/plus/index.js +13 -2
  223. package/icons/plus/index.min.js +1 -1
  224. package/icons/refresh/index.cjs.js +13 -2
  225. package/icons/refresh/index.cjs.min.js +1 -1
  226. package/icons/refresh/index.esm.js +13 -2
  227. package/icons/refresh/index.esm.min.js +1 -1
  228. package/icons/refresh/index.js +13 -2
  229. package/icons/refresh/index.min.js +1 -1
  230. package/icons/search/index.cjs.js +13 -2
  231. package/icons/search/index.cjs.min.js +1 -1
  232. package/icons/search/index.esm.js +13 -2
  233. package/icons/search/index.esm.min.js +1 -1
  234. package/icons/search/index.js +13 -2
  235. package/icons/search/index.min.js +1 -1
  236. package/icons/searchminus/index.cjs.js +13 -2
  237. package/icons/searchminus/index.cjs.min.js +1 -1
  238. package/icons/searchminus/index.esm.js +13 -2
  239. package/icons/searchminus/index.esm.min.js +1 -1
  240. package/icons/searchminus/index.js +13 -2
  241. package/icons/searchminus/index.min.js +1 -1
  242. package/icons/searchplus/index.cjs.js +13 -2
  243. package/icons/searchplus/index.cjs.min.js +1 -1
  244. package/icons/searchplus/index.esm.js +13 -2
  245. package/icons/searchplus/index.esm.min.js +1 -1
  246. package/icons/searchplus/index.js +13 -2
  247. package/icons/searchplus/index.min.js +1 -1
  248. package/icons/sortalt/index.cjs.js +13 -2
  249. package/icons/sortalt/index.cjs.min.js +1 -1
  250. package/icons/sortalt/index.esm.js +13 -2
  251. package/icons/sortalt/index.esm.min.js +1 -1
  252. package/icons/sortalt/index.js +13 -2
  253. package/icons/sortalt/index.min.js +1 -1
  254. package/icons/sortamountdown/index.cjs.js +13 -2
  255. package/icons/sortamountdown/index.cjs.min.js +1 -1
  256. package/icons/sortamountdown/index.esm.js +13 -2
  257. package/icons/sortamountdown/index.esm.min.js +1 -1
  258. package/icons/sortamountdown/index.js +13 -2
  259. package/icons/sortamountdown/index.min.js +1 -1
  260. package/icons/sortamountupalt/index.cjs.js +13 -2
  261. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  262. package/icons/sortamountupalt/index.esm.js +13 -2
  263. package/icons/sortamountupalt/index.esm.min.js +1 -1
  264. package/icons/sortamountupalt/index.js +13 -2
  265. package/icons/sortamountupalt/index.min.js +1 -1
  266. package/icons/spinner/index.cjs.js +13 -2
  267. package/icons/spinner/index.cjs.min.js +1 -1
  268. package/icons/spinner/index.esm.js +13 -2
  269. package/icons/spinner/index.esm.min.js +1 -1
  270. package/icons/spinner/index.js +13 -2
  271. package/icons/spinner/index.min.js +1 -1
  272. package/icons/star/index.cjs.js +13 -2
  273. package/icons/star/index.cjs.min.js +1 -1
  274. package/icons/star/index.esm.js +13 -2
  275. package/icons/star/index.esm.min.js +1 -1
  276. package/icons/star/index.js +13 -2
  277. package/icons/star/index.min.js +1 -1
  278. package/icons/starfill/index.cjs.js +13 -2
  279. package/icons/starfill/index.cjs.min.js +1 -1
  280. package/icons/starfill/index.esm.js +13 -2
  281. package/icons/starfill/index.esm.min.js +1 -1
  282. package/icons/starfill/index.js +13 -2
  283. package/icons/starfill/index.min.js +1 -1
  284. package/icons/thlarge/index.cjs.js +13 -2
  285. package/icons/thlarge/index.cjs.min.js +1 -1
  286. package/icons/thlarge/index.esm.js +13 -2
  287. package/icons/thlarge/index.esm.min.js +1 -1
  288. package/icons/thlarge/index.js +13 -2
  289. package/icons/thlarge/index.min.js +1 -1
  290. package/icons/timescircle/index.cjs.js +13 -2
  291. package/icons/timescircle/index.cjs.min.js +1 -1
  292. package/icons/timescircle/index.esm.js +13 -2
  293. package/icons/timescircle/index.esm.min.js +1 -1
  294. package/icons/timescircle/index.js +13 -2
  295. package/icons/timescircle/index.min.js +1 -1
  296. package/icons/trash/index.cjs.js +13 -2
  297. package/icons/trash/index.cjs.min.js +1 -1
  298. package/icons/trash/index.esm.js +13 -2
  299. package/icons/trash/index.esm.min.js +1 -1
  300. package/icons/trash/index.js +13 -2
  301. package/icons/trash/index.min.js +1 -1
  302. package/icons/undo/index.cjs.js +13 -2
  303. package/icons/undo/index.cjs.min.js +1 -1
  304. package/icons/undo/index.esm.js +13 -2
  305. package/icons/undo/index.esm.min.js +1 -1
  306. package/icons/undo/index.js +13 -2
  307. package/icons/undo/index.min.js +1 -1
  308. package/icons/upload/index.cjs.js +13 -2
  309. package/icons/upload/index.cjs.min.js +1 -1
  310. package/icons/upload/index.esm.js +13 -2
  311. package/icons/upload/index.esm.min.js +1 -1
  312. package/icons/upload/index.js +13 -2
  313. package/icons/upload/index.min.js +1 -1
  314. package/icons/windowmaximize/index.cjs.js +13 -2
  315. package/icons/windowmaximize/index.cjs.min.js +1 -1
  316. package/icons/windowmaximize/index.esm.js +13 -2
  317. package/icons/windowmaximize/index.esm.min.js +1 -1
  318. package/icons/windowmaximize/index.js +13 -2
  319. package/icons/windowmaximize/index.min.js +1 -1
  320. package/icons/windowminimize/index.cjs.js +13 -2
  321. package/icons/windowminimize/index.cjs.min.js +1 -1
  322. package/icons/windowminimize/index.esm.js +13 -2
  323. package/icons/windowminimize/index.esm.min.js +1 -1
  324. package/icons/windowminimize/index.js +13 -2
  325. package/icons/windowminimize/index.min.js +1 -1
  326. package/image/image.cjs.js +85 -119
  327. package/image/image.cjs.min.js +1 -1
  328. package/image/image.esm.js +87 -121
  329. package/image/image.esm.min.js +1 -1
  330. package/image/image.js +86 -120
  331. package/image/image.min.js +1 -1
  332. package/inplace/inplace.cjs.js +7 -0
  333. package/inplace/inplace.cjs.min.js +1 -1
  334. package/inplace/inplace.esm.js +7 -0
  335. package/inplace/inplace.esm.min.js +1 -1
  336. package/inplace/inplace.js +8 -2
  337. package/inplace/inplace.min.js +1 -1
  338. package/inputnumber/inputnumber.cjs.js +63 -19
  339. package/inputnumber/inputnumber.cjs.min.js +1 -1
  340. package/inputnumber/inputnumber.d.ts +7 -0
  341. package/inputnumber/inputnumber.esm.js +63 -19
  342. package/inputnumber/inputnumber.esm.min.js +1 -1
  343. package/inputnumber/inputnumber.js +63 -19
  344. package/inputnumber/inputnumber.min.js +1 -1
  345. package/inputswitch/inputswitch.cjs.js +3 -3
  346. package/inputswitch/inputswitch.cjs.min.js +1 -1
  347. package/inputswitch/inputswitch.esm.js +3 -3
  348. package/inputswitch/inputswitch.esm.min.js +1 -1
  349. package/inputswitch/inputswitch.js +3 -3
  350. package/inputswitch/inputswitch.min.js +1 -1
  351. package/inputtext/inputtext.cjs.js +7 -6
  352. package/inputtext/inputtext.cjs.min.js +1 -1
  353. package/inputtext/inputtext.esm.js +7 -6
  354. package/inputtext/inputtext.esm.min.js +1 -1
  355. package/inputtext/inputtext.js +7 -6
  356. package/inputtext/inputtext.min.js +1 -1
  357. package/listbox/listbox.cjs.js +14 -1
  358. package/listbox/listbox.cjs.min.js +1 -1
  359. package/listbox/listbox.d.ts +8 -3
  360. package/listbox/listbox.esm.js +14 -1
  361. package/listbox/listbox.esm.min.js +1 -1
  362. package/listbox/listbox.js +14 -1
  363. package/listbox/listbox.min.js +1 -1
  364. package/megamenu/megamenu.cjs.js +799 -179
  365. package/megamenu/megamenu.cjs.min.js +1 -1
  366. package/megamenu/megamenu.d.ts +14 -0
  367. package/megamenu/megamenu.esm.js +801 -181
  368. package/megamenu/megamenu.esm.min.js +1 -1
  369. package/megamenu/megamenu.js +799 -179
  370. package/megamenu/megamenu.min.js +1 -1
  371. package/mention/mention.cjs.js +7 -9
  372. package/mention/mention.cjs.min.js +1 -1
  373. package/mention/mention.esm.js +7 -9
  374. package/mention/mention.esm.min.js +1 -1
  375. package/mention/mention.js +7 -9
  376. package/mention/mention.min.js +1 -1
  377. package/menu/menu.cjs.js +217 -166
  378. package/menu/menu.cjs.min.js +1 -1
  379. package/menu/menu.d.ts +15 -1
  380. package/menu/menu.esm.js +220 -169
  381. package/menu/menu.esm.min.js +1 -1
  382. package/menu/menu.js +217 -166
  383. package/menu/menu.min.js +1 -1
  384. package/menubar/menubar.cjs.js +714 -179
  385. package/menubar/menubar.cjs.min.js +1 -1
  386. package/menubar/menubar.d.ts +18 -0
  387. package/menubar/menubar.esm.js +717 -182
  388. package/menubar/menubar.esm.min.js +1 -1
  389. package/menubar/menubar.js +714 -179
  390. package/menubar/menubar.min.js +1 -1
  391. package/message/message.cjs.js +2 -1
  392. package/message/message.cjs.min.js +1 -1
  393. package/message/message.esm.js +2 -1
  394. package/message/message.esm.min.js +1 -1
  395. package/message/message.js +2 -1
  396. package/message/message.min.js +1 -1
  397. package/messages/messages.cjs.js +5 -3
  398. package/messages/messages.cjs.min.js +1 -1
  399. package/messages/messages.esm.js +5 -3
  400. package/messages/messages.esm.min.js +1 -1
  401. package/messages/messages.js +5 -3
  402. package/messages/messages.min.js +1 -1
  403. package/multiselect/multiselect.cjs.js +58 -35
  404. package/multiselect/multiselect.cjs.min.js +1 -1
  405. package/multiselect/multiselect.d.ts +5 -1
  406. package/multiselect/multiselect.esm.js +58 -35
  407. package/multiselect/multiselect.esm.min.js +1 -1
  408. package/multiselect/multiselect.js +59 -37
  409. package/multiselect/multiselect.min.js +1 -1
  410. package/orderlist/orderlist.cjs.js +260 -105
  411. package/orderlist/orderlist.cjs.min.js +1 -1
  412. package/orderlist/orderlist.d.ts +18 -0
  413. package/orderlist/orderlist.esm.js +261 -106
  414. package/orderlist/orderlist.esm.min.js +1 -1
  415. package/orderlist/orderlist.js +260 -105
  416. package/orderlist/orderlist.min.js +1 -1
  417. package/organizationchart/organizationchart.cjs.js +10 -0
  418. package/organizationchart/organizationchart.cjs.min.js +1 -1
  419. package/organizationchart/organizationchart.esm.js +10 -0
  420. package/organizationchart/organizationchart.esm.min.js +1 -1
  421. package/organizationchart/organizationchart.js +10 -0
  422. package/organizationchart/organizationchart.min.js +1 -1
  423. package/overlaypanel/overlaypanel.cjs.js +9 -102
  424. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  425. package/overlaypanel/overlaypanel.d.ts +1 -1
  426. package/overlaypanel/overlaypanel.esm.js +11 -104
  427. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  428. package/overlaypanel/overlaypanel.js +10 -103
  429. package/overlaypanel/overlaypanel.min.js +1 -1
  430. package/package.json +1 -1
  431. package/paginator/paginator.d.ts +2 -2
  432. package/panel/panel.cjs.js +22 -19
  433. package/panel/panel.cjs.min.js +1 -1
  434. package/panel/panel.esm.js +22 -19
  435. package/panel/panel.esm.min.js +1 -1
  436. package/panel/panel.js +22 -19
  437. package/panel/panel.min.js +1 -1
  438. package/panelmenu/panelmenu.cjs.js +774 -195
  439. package/panelmenu/panelmenu.cjs.min.js +1 -1
  440. package/panelmenu/panelmenu.d.ts +15 -0
  441. package/panelmenu/panelmenu.esm.js +775 -196
  442. package/panelmenu/panelmenu.esm.min.js +1 -1
  443. package/panelmenu/panelmenu.js +774 -195
  444. package/panelmenu/panelmenu.min.js +1 -1
  445. package/passthrough/tailwind/index.cjs.js +163 -159
  446. package/passthrough/tailwind/index.cjs.min.js +1 -1
  447. package/passthrough/tailwind/index.esm.js +163 -159
  448. package/passthrough/tailwind/index.esm.min.js +1 -1
  449. package/passthrough/tailwind/index.js +163 -159
  450. package/passthrough/tailwind/index.min.js +1 -1
  451. package/password/password.cjs.js +7 -2
  452. package/password/password.cjs.min.js +1 -1
  453. package/password/password.d.ts +1 -1
  454. package/password/password.esm.js +8 -3
  455. package/password/password.esm.min.js +1 -1
  456. package/password/password.js +7 -2
  457. package/password/password.min.js +1 -1
  458. package/picklist/picklist.cjs.js +709 -181
  459. package/picklist/picklist.cjs.min.js +1 -1
  460. package/picklist/picklist.d.ts +10 -0
  461. package/picklist/picklist.esm.js +708 -180
  462. package/picklist/picklist.esm.min.js +1 -1
  463. package/picklist/picklist.js +709 -181
  464. package/picklist/picklist.min.js +1 -1
  465. package/portal/portal.cjs.js +7 -1
  466. package/portal/portal.cjs.min.js +1 -1
  467. package/portal/portal.esm.js +7 -1
  468. package/portal/portal.esm.min.js +1 -1
  469. package/portal/portal.js +7 -1
  470. package/portal/portal.min.js +1 -1
  471. package/primereact.all.cjs.js +8352 -3145
  472. package/primereact.all.cjs.min.js +1 -1
  473. package/primereact.all.esm.js +8351 -3146
  474. package/primereact.all.esm.min.js +1 -1
  475. package/primereact.all.js +8352 -3145
  476. package/primereact.all.min.js +1 -1
  477. package/radiobutton/radiobutton.cjs.js +27 -26
  478. package/radiobutton/radiobutton.cjs.min.js +1 -1
  479. package/radiobutton/radiobutton.esm.js +27 -26
  480. package/radiobutton/radiobutton.esm.min.js +1 -1
  481. package/radiobutton/radiobutton.js +28 -27
  482. package/radiobutton/radiobutton.min.js +1 -1
  483. package/resources/themes/arya-blue/theme.css +854 -790
  484. package/resources/themes/arya-green/theme.css +854 -790
  485. package/resources/themes/arya-orange/theme.css +854 -790
  486. package/resources/themes/arya-purple/theme.css +854 -790
  487. package/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
  488. package/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
  489. package/resources/themes/bootstrap4-light-blue/theme.css +679 -616
  490. package/resources/themes/bootstrap4-light-purple/theme.css +679 -616
  491. package/resources/themes/fluent-light/theme.css +686 -638
  492. package/resources/themes/lara-dark-amber/theme.css +679 -630
  493. package/resources/themes/lara-dark-blue/theme.css +679 -630
  494. package/resources/themes/lara-dark-cyan/theme.css +679 -630
  495. package/resources/themes/lara-dark-green/theme.css +679 -630
  496. package/resources/themes/lara-dark-indigo/theme.css +679 -630
  497. package/resources/themes/lara-dark-pink/theme.css +679 -630
  498. package/resources/themes/lara-dark-purple/theme.css +679 -630
  499. package/resources/themes/lara-dark-teal/theme.css +679 -630
  500. package/resources/themes/lara-light-amber/theme.css +776 -725
  501. package/resources/themes/lara-light-blue/theme.css +1011 -960
  502. package/resources/themes/lara-light-cyan/theme.css +776 -725
  503. package/resources/themes/lara-light-green/theme.css +820 -769
  504. package/resources/themes/lara-light-indigo/theme.css +1016 -965
  505. package/resources/themes/lara-light-pink/theme.css +776 -725
  506. package/resources/themes/lara-light-purple/theme.css +1016 -965
  507. package/resources/themes/lara-light-teal/theme.css +776 -725
  508. package/resources/themes/luna-amber/theme.css +950 -887
  509. package/resources/themes/luna-blue/theme.css +950 -887
  510. package/resources/themes/luna-green/theme.css +950 -887
  511. package/resources/themes/luna-pink/theme.css +950 -887
  512. package/resources/themes/md-dark-deeppurple/theme.css +918 -950
  513. package/resources/themes/md-dark-indigo/theme.css +918 -950
  514. package/resources/themes/md-light-deeppurple/theme.css +878 -910
  515. package/resources/themes/md-light-indigo/theme.css +878 -910
  516. package/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
  517. package/resources/themes/mdc-dark-indigo/theme.css +918 -950
  518. package/resources/themes/mdc-light-deeppurple/theme.css +878 -910
  519. package/resources/themes/mdc-light-indigo/theme.css +878 -910
  520. package/resources/themes/mira/theme.css +1562 -1532
  521. package/resources/themes/nano/theme.css +707 -641
  522. package/resources/themes/nova/theme.css +705 -643
  523. package/resources/themes/nova-accent/theme.css +701 -636
  524. package/resources/themes/nova-alt/theme.css +705 -643
  525. package/resources/themes/rhea/theme.css +876 -811
  526. package/resources/themes/saga-blue/theme.css +896 -832
  527. package/resources/themes/saga-green/theme.css +896 -832
  528. package/resources/themes/saga-orange/theme.css +896 -832
  529. package/resources/themes/saga-purple/theme.css +896 -832
  530. package/resources/themes/soho-dark/theme.css +701 -643
  531. package/resources/themes/soho-light/theme.css +690 -634
  532. package/resources/themes/tailwind-light/theme.css +1370 -1306
  533. package/resources/themes/vela-blue/theme.css +862 -798
  534. package/resources/themes/vela-green/theme.css +862 -798
  535. package/resources/themes/vela-orange/theme.css +862 -798
  536. package/resources/themes/vela-purple/theme.css +862 -798
  537. package/resources/themes/viva-dark/theme.css +655 -612
  538. package/resources/themes/viva-light/theme.css +737 -694
  539. package/ripple/ripple.cjs.js +71 -5
  540. package/ripple/ripple.cjs.min.js +1 -1
  541. package/ripple/ripple.esm.js +71 -5
  542. package/ripple/ripple.esm.min.js +1 -1
  543. package/ripple/ripple.js +71 -5
  544. package/ripple/ripple.min.js +1 -1
  545. package/scrollpanel/scrollpanel.cjs.js +183 -3
  546. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  547. package/scrollpanel/scrollpanel.esm.js +184 -4
  548. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  549. package/scrollpanel/scrollpanel.js +183 -3
  550. package/scrollpanel/scrollpanel.min.js +1 -1
  551. package/sidebar/sidebar.cjs.js +62 -146
  552. package/sidebar/sidebar.cjs.min.js +1 -1
  553. package/sidebar/sidebar.d.ts +25 -3
  554. package/sidebar/sidebar.esm.js +65 -149
  555. package/sidebar/sidebar.esm.min.js +1 -1
  556. package/sidebar/sidebar.js +63 -147
  557. package/sidebar/sidebar.min.js +1 -1
  558. package/slidemenu/slidemenu.cjs.js +7 -100
  559. package/slidemenu/slidemenu.cjs.min.js +1 -1
  560. package/slidemenu/slidemenu.d.ts +1 -1
  561. package/slidemenu/slidemenu.esm.js +10 -103
  562. package/slidemenu/slidemenu.esm.min.js +1 -1
  563. package/slidemenu/slidemenu.js +7 -100
  564. package/slidemenu/slidemenu.min.js +1 -1
  565. package/speeddial/speeddial.cjs.js +275 -32
  566. package/speeddial/speeddial.cjs.min.js +1 -1
  567. package/speeddial/speeddial.esm.js +277 -34
  568. package/speeddial/speeddial.esm.min.js +1 -1
  569. package/speeddial/speeddial.js +275 -32
  570. package/speeddial/speeddial.min.js +1 -1
  571. package/splitbutton/splitbutton.cjs.js +1098 -309
  572. package/splitbutton/splitbutton.cjs.min.js +1 -1
  573. package/splitbutton/splitbutton.d.ts +5 -5
  574. package/splitbutton/splitbutton.esm.js +1100 -311
  575. package/splitbutton/splitbutton.esm.min.js +1 -1
  576. package/splitbutton/splitbutton.js +1096 -309
  577. package/splitbutton/splitbutton.min.js +1 -1
  578. package/splitter/splitter.cjs.js +103 -15
  579. package/splitter/splitter.cjs.min.js +1 -1
  580. package/splitter/splitter.d.ts +5 -0
  581. package/splitter/splitter.esm.js +103 -15
  582. package/splitter/splitter.esm.min.js +1 -1
  583. package/splitter/splitter.js +103 -15
  584. package/splitter/splitter.min.js +1 -1
  585. package/steps/steps.cjs.js +99 -13
  586. package/steps/steps.cjs.min.js +1 -1
  587. package/steps/steps.esm.js +100 -14
  588. package/steps/steps.esm.min.js +1 -1
  589. package/steps/steps.js +99 -13
  590. package/steps/steps.min.js +1 -1
  591. package/tabmenu/tabmenu.cjs.js +113 -17
  592. package/tabmenu/tabmenu.cjs.min.js +1 -1
  593. package/tabmenu/tabmenu.esm.js +113 -17
  594. package/tabmenu/tabmenu.esm.min.js +1 -1
  595. package/tabmenu/tabmenu.js +113 -17
  596. package/tabmenu/tabmenu.min.js +1 -1
  597. package/tabview/tabview.cjs.js +128 -20
  598. package/tabview/tabview.cjs.min.js +1 -1
  599. package/tabview/tabview.d.ts +35 -0
  600. package/tabview/tabview.esm.js +128 -20
  601. package/tabview/tabview.esm.min.js +1 -1
  602. package/tabview/tabview.js +128 -20
  603. package/tabview/tabview.min.js +1 -1
  604. package/tieredmenu/tieredmenu.cjs.js +753 -275
  605. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  606. package/tieredmenu/tieredmenu.d.ts +11 -1
  607. package/tieredmenu/tieredmenu.esm.js +755 -277
  608. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  609. package/tieredmenu/tieredmenu.js +753 -275
  610. package/tieredmenu/tieredmenu.min.js +1 -1
  611. package/toast/toast.cjs.js +6 -1
  612. package/toast/toast.cjs.min.js +1 -1
  613. package/toast/toast.d.ts +36 -2
  614. package/toast/toast.esm.js +6 -1
  615. package/toast/toast.esm.min.js +1 -1
  616. package/toast/toast.js +6 -1
  617. package/toast/toast.min.js +1 -1
  618. package/togglebutton/togglebutton.cjs.js +74 -4
  619. package/togglebutton/togglebutton.cjs.min.js +1 -1
  620. package/togglebutton/togglebutton.esm.js +74 -4
  621. package/togglebutton/togglebutton.esm.min.js +1 -1
  622. package/togglebutton/togglebutton.js +75 -5
  623. package/togglebutton/togglebutton.min.js +1 -1
  624. package/tooltip/tooltip.d.ts +27 -0
  625. package/tooltip/tooltipoptions.d.ts +1 -1
  626. package/tree/tree.cjs.js +198 -88
  627. package/tree/tree.cjs.min.js +1 -1
  628. package/tree/tree.d.ts +8 -0
  629. package/tree/tree.esm.js +199 -89
  630. package/tree/tree.esm.min.js +1 -1
  631. package/tree/tree.js +198 -88
  632. package/tree/tree.min.js +1 -1
  633. package/treeselect/treeselect.cjs.js +185 -49
  634. package/treeselect/treeselect.cjs.min.js +1 -1
  635. package/treeselect/treeselect.d.ts +26 -1
  636. package/treeselect/treeselect.esm.js +186 -50
  637. package/treeselect/treeselect.esm.min.js +1 -1
  638. package/treeselect/treeselect.js +186 -51
  639. package/treeselect/treeselect.min.js +1 -1
  640. package/treetable/treetable.cjs.js +59 -53
  641. package/treetable/treetable.cjs.min.js +1 -1
  642. package/treetable/treetable.d.ts +3 -3
  643. package/treetable/treetable.esm.js +59 -53
  644. package/treetable/treetable.esm.min.js +1 -1
  645. package/treetable/treetable.js +59 -53
  646. package/treetable/treetable.min.js +1 -1
  647. package/utils/utils.cjs.js +19 -5
  648. package/utils/utils.cjs.min.js +1 -1
  649. package/utils/utils.d.ts +1 -1
  650. package/utils/utils.esm.js +19 -5
  651. package/utils/utils.esm.min.js +1 -1
  652. package/utils/utils.js +19 -5
  653. package/utils/utils.min.js +1 -1
  654. package/web-types.json +402 -33
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import * as React from 'react';
3
- import PrimeReact, { PrimeReactContext } from 'primereact/api';
3
+ import PrimeReact, { PrimeReactContext, ariaLabel } from 'primereact/api';
4
4
  import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
5
- import { useEventListener, useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';
5
+ import { useEventListener, useResizeListener, useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';
6
6
  import { BarsIcon } from 'primereact/icons/bars';
7
- import { classNames, mergeProps, IconUtils, ObjectUtils, DomHandler, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
7
+ import { classNames, mergeProps, ObjectUtils, IconUtils, DomHandler, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
8
8
  import { AngleDownIcon } from 'primereact/icons/angledown';
9
9
  import { AngleRightIcon } from 'primereact/icons/angleright';
10
10
  import { Ripple } from 'primereact/ripple';
@@ -115,27 +115,31 @@ var classes = {
115
115
  'p-menubar-mobile-active': mobileActiveState
116
116
  });
117
117
  },
118
- separator: 'p-menu-separator',
118
+ separator: 'p-menuitem-separator',
119
119
  icon: 'p-menuitem-icon',
120
120
  label: 'p-menuitem-text',
121
121
  submenuIcon: 'p-submenu-icon',
122
122
  menuitem: function menuitem(_ref2) {
123
- var item = _ref2.item,
124
- activeItemState = _ref2.activeItemState;
123
+ var active = _ref2.active,
124
+ focused = _ref2.focused,
125
+ disabled = _ref2.disabled;
125
126
  return classNames('p-menuitem', {
126
- 'p-menuitem-active': activeItemState === item
127
+ 'p-menuitem-active p-highlight': active,
128
+ 'p-focus': focused,
129
+ 'p-disabled': disabled
127
130
  });
128
131
  },
129
132
  menu: 'p-menubar-root-list',
133
+ content: 'p-menuitem-content',
130
134
  submenu: 'p-submenu-list',
131
135
  action: function action(_ref3) {
132
- var item = _ref3.item;
136
+ var disabled = _ref3.disabled;
133
137
  return classNames('p-menuitem-link', {
134
- 'p-disabled': item.disabled
138
+ 'p-disabled': disabled
135
139
  });
136
140
  }
137
141
  };
138
- var styles = "\n@layer primereact {\n .p-menubar {\n display: flex;\n align-items: center;\n }\n \n .p-menubar ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n .p-menubar .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-menubar .p-menuitem-text {\n line-height: 1;\n }\n \n .p-menubar .p-menuitem {\n position: relative;\n }\n \n .p-menubar-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n \n .p-menubar-root-list > li ul {\n display: none;\n z-index: 1;\n }\n \n .p-menubar-root-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n }\n \n .p-menubar .p-submenu-list {\n display: none;\n position: absolute;\n z-index: 1;\n }\n \n .p-menubar .p-submenu-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n \n .p-menubar .p-submenu-list .p-menuitem-link .p-submenu-icon {\n margin-left: auto;\n }\n \n .p-menubar .p-menubar-custom,\n .p-menubar .p-menubar-end {\n margin-left: auto;\n align-self: center;\n }\n \n .p-menubar-button {\n display: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n }\n}\n";
142
+ var styles = "\n@layer primereact {\n .p-menubar {\n display: flex;\n align-items: center;\n }\n\n .p-menubar ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-menubar .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-menubar .p-menuitem-text {\n line-height: 1;\n }\n\n .p-menubar .p-menuitem {\n position: relative;\n }\n\n .p-menubar-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .p-menubar-root-list > li ul {\n display: none;\n z-index: 1;\n }\n\n .p-menubar-root-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n }\n\n .p-menubar .p-submenu-list {\n display: none;\n position: absolute;\n z-index: 1;\n }\n\n .p-menubar .p-submenu-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n\n .p-menubar .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n margin-left: auto;\n }\n\n .p-menubar .p-menubar-end {\n margin-left: auto;\n align-self: center;\n }\n\n .p-menubar-button {\n display: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n }\n}\n";
139
143
  var MenubarBase = ComponentBase.extend({
140
144
  defaultProps: {
141
145
  __TYPE: 'Menubar',
@@ -144,6 +148,10 @@ var MenubarBase = ComponentBase.extend({
144
148
  style: null,
145
149
  className: null,
146
150
  start: null,
151
+ ariaLabel: null,
152
+ ariaLabelledBy: null,
153
+ onFocus: null,
154
+ onBlur: null,
147
155
  submenuIcon: null,
148
156
  menuIcon: null,
149
157
  end: null,
@@ -158,46 +166,35 @@ var MenubarBase = ComponentBase.extend({
158
166
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
159
167
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
160
168
  var MenubarSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
161
- var _React$useState = React.useState(null),
162
- _React$useState2 = _slicedToArray(_React$useState, 2),
163
- activeItemState = _React$useState2[0],
164
- setActiveItemState = _React$useState2[1];
165
169
  var ptm = props.ptm,
166
170
  cx = props.cx;
167
- var getPTOptions = function getPTOptions(item, key) {
171
+ var getPTOptions = function getPTOptions(processedItem, key, index) {
168
172
  return ptm(key, {
169
173
  props: props,
170
174
  hostName: props.hostName,
171
175
  context: {
172
- active: activeItemState === item
176
+ item: processedItem,
177
+ index: index,
178
+ active: isItemActive(processedItem),
179
+ focused: isItemFocused(processedItem),
180
+ disabled: isItemDisabled(processedItem),
181
+ level: props.level
173
182
  }
174
183
  });
175
184
  };
176
- var _useEventListener = useEventListener({
177
- type: 'click',
178
- listener: function listener(event) {
179
- if (ref && ref.current && !ref.current.contains(event.target)) {
180
- setActiveItemState(null);
181
- }
182
- }
183
- }),
184
- _useEventListener2 = _slicedToArray(_useEventListener, 1),
185
- bindDocumentClickListener = _useEventListener2[0];
186
185
  var onItemMouseEnter = function onItemMouseEnter(event, item) {
187
- if (item.disabled || props.mobileActive) {
186
+ if (isItemDisabled(item) || props.mobileActive) {
188
187
  event.preventDefault();
189
188
  return;
190
189
  }
191
- if (props.root) {
192
- if (activeItemState || props.popup) {
193
- setActiveItemState(item);
194
- }
195
- } else {
196
- setActiveItemState(item);
197
- }
190
+ props.onItemMouseEnter && props.onItemMouseEnter({
191
+ originalEvent: event,
192
+ processedItem: item
193
+ });
198
194
  };
199
- var onItemClick = function onItemClick(event, item) {
200
- if (item.disabled) {
195
+ var onItemClick = function onItemClick(event, processedItem) {
196
+ var item = processedItem.item;
197
+ if (isItemDisabled(processedItem)) {
201
198
  event.preventDefault();
202
199
  return;
203
200
  }
@@ -210,91 +207,48 @@ var MenubarSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
210
207
  item: item
211
208
  });
212
209
  }
213
- if (item.items) activeItemState && item === activeItemState ? setActiveItemState(null) : setActiveItemState(item);else onLeafClick();
210
+ onLeafClick({
211
+ originalEvent: event,
212
+ processedItem: processedItem,
213
+ isFocus: true
214
+ });
214
215
  };
215
- var onItemKeyDown = function onItemKeyDown(event, item) {
216
- var listItem = event.currentTarget.parentElement;
217
- switch (event.which) {
218
- //down
219
- case 40:
220
- if (props.root) item.items && expandSubmenu(item, listItem);else navigateToNextItem(listItem);
221
- event.preventDefault();
222
- break;
223
-
224
- //up
225
- case 38:
226
- !props.root && navigateToPrevItem(listItem);
227
- event.preventDefault();
228
- break;
229
-
230
- //right
231
- case 39:
232
- if (props.root) {
233
- var nextItem = findNextItem(listItem);
234
- nextItem && nextItem.children[0].focus();
235
- } else {
236
- item.items && expandSubmenu(item, listItem);
237
- }
238
- event.preventDefault();
239
- break;
240
-
241
- //left
242
- case 37:
243
- props.root && navigateToPrevItem(listItem);
244
- event.preventDefault();
245
- break;
246
- }
247
- props.onKeyDown && props.onKeyDown(event, listItem);
216
+ var onLeafClick = function onLeafClick(event) {
217
+ props.onLeafClick && props.onLeafClick(event);
248
218
  };
249
- var onChildItemKeyDown = function onChildItemKeyDown(event, childListItem) {
250
- if (props.root) {
251
- //up
252
- if (event.which === 38 && childListItem.previousElementSibling == null) {
253
- collapseMenu(childListItem);
254
- }
255
- } else {
256
- //left
257
- if (event.which === 37) {
258
- collapseMenu(childListItem);
259
- }
260
- }
219
+ var getItemId = function getItemId(processedItem) {
220
+ return "".concat(props.id, "_").concat(processedItem.key);
261
221
  };
262
- var expandSubmenu = function expandSubmenu(item, listItem) {
263
- setActiveItemState(item);
264
- setTimeout(function () {
265
- listItem.children[1].children[0].children[0].focus();
266
- }, 50);
222
+ var getItemProp = function getItemProp(processedItem, name, params) {
223
+ return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
267
224
  };
268
- var collapseMenu = function collapseMenu(listItem) {
269
- setActiveItemState(null);
270
- listItem.parentElement.previousElementSibling.focus();
225
+ var isItemActive = function isItemActive(processedItem) {
226
+ return props.activeItemPath.some(function (path) {
227
+ return path.key === processedItem.key;
228
+ });
271
229
  };
272
- var navigateToNextItem = function navigateToNextItem(listItem) {
273
- var nextItem = findNextItem(listItem);
274
- nextItem && nextItem.children[0].focus();
230
+ var isItemVisible = function isItemVisible(processedItem) {
231
+ return getItemProp(processedItem, 'visible') !== false;
275
232
  };
276
- var navigateToPrevItem = function navigateToPrevItem(listItem) {
277
- var prevItem = findPrevItem(listItem);
278
- prevItem && prevItem.children[0].focus();
233
+ var isItemDisabled = function isItemDisabled(processedItem) {
234
+ return getItemProp(processedItem, 'disabled');
279
235
  };
280
- var findNextItem = function findNextItem(item) {
281
- var nextItem = item.nextElementSibling;
282
- return nextItem ? DomHandler.getAttribute(nextItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(nextItem, '[data-pc-section="menuitem"]') ? findNextItem(nextItem) : nextItem : null;
236
+ var isItemFocused = function isItemFocused(processedItem) {
237
+ return props.focusedItemId === getItemId(processedItem);
283
238
  };
284
- var findPrevItem = function findPrevItem(item) {
285
- var prevItem = item.previousElementSibling;
286
- return prevItem ? DomHandler.getAttribute(prevItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(prevItem, '[data-pc-section="menuitem"]') ? findPrevItem(prevItem) : prevItem : null;
239
+ var isItemGroup = function isItemGroup(processedItem) {
240
+ return ObjectUtils.isNotEmpty(processedItem.items);
287
241
  };
288
- var onLeafClick = function onLeafClick() {
289
- setActiveItemState(null);
290
- props.onLeafClick && props.onLeafClick();
242
+ var getAriaSetSize = function getAriaSetSize() {
243
+ return props.model.filter(function (processedItem) {
244
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
245
+ }).length;
246
+ };
247
+ var getAriaPosInset = function getAriaPosInset(index) {
248
+ return index - props.model.slice(0, index).filter(function (processedItem) {
249
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
250
+ }).length + 1;
291
251
  };
292
- useMountEffect(function () {
293
- bindDocumentClickListener();
294
- });
295
- useUpdateEffect(function () {
296
- !props.parentActive && setActiveItemState(null);
297
- }, [props.parentActive]);
298
252
  var createSeparator = function createSeparator(index) {
299
253
  var key = props.id + '_separator_' + index;
300
254
  var separatorProps = mergeProps({
@@ -307,77 +261,80 @@ var MenubarSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
307
261
  }));
308
262
  return /*#__PURE__*/React.createElement("li", separatorProps);
309
263
  };
310
- var createSubmenu = function createSubmenu(item, index) {
311
- if (item.items) {
264
+ var createSubmenu = function createSubmenu(processedItem) {
265
+ var items = processedItem && processedItem.items;
266
+ if (items) {
312
267
  return /*#__PURE__*/React.createElement(MenubarSub, {
313
- id: props.id + '_' + index,
268
+ id: props.id,
314
269
  hostName: props.hostName,
315
270
  menuProps: props.menuProps,
316
- model: item.items,
317
- mobileActive: props.mobileActive,
271
+ level: props.level + 1,
272
+ model: items,
273
+ activeItemPath: props.activeItemPath,
274
+ focusedItemId: props.focusedItemId,
318
275
  onLeafClick: onLeafClick,
319
- onKeyDown: onChildItemKeyDown,
320
- parentActive: item === activeItemState,
276
+ onItemMouseEnter: props.onItemMouseEnter,
321
277
  submenuIcon: props.submenuIcon,
322
278
  ptm: ptm,
279
+ style: {
280
+ display: isItemActive(processedItem) ? 'block' : 'none'
281
+ },
323
282
  cx: cx
324
283
  });
325
284
  }
326
285
  return null;
327
286
  };
328
- var createMenuitem = function createMenuitem(item, index) {
329
- if (item.visible === false) {
287
+ var createMenuitem = function createMenuitem(processedItem, index) {
288
+ var item = processedItem.item;
289
+ if (!isItemVisible(processedItem)) {
330
290
  return null;
331
291
  }
332
- var key = item.id || props.id + '_' + index;
292
+ var key = getItemId(processedItem);
293
+ var active = isItemActive(processedItem);
294
+ var focused = isItemFocused(processedItem);
295
+ var disabled = isItemDisabled(processedItem) || false;
296
+ var group = isItemGroup(processedItem);
333
297
  var linkClassName = classNames('p-menuitem-link', {
334
- 'p-disabled': item.disabled
298
+ 'p-disabled': disabled
335
299
  });
336
- var iconClassName = classNames('p-menuitem-icon', item.icon);
300
+ var iconClassName = classNames('p-menuitem-icon', getItemProp(processedItem, 'icon'));
337
301
  var iconProps = mergeProps({
338
302
  className: cx('icon')
339
- }, getPTOptions(item, 'icon'));
303
+ }, getPTOptions(processedItem, 'icon', index));
340
304
  var icon = IconUtils.getJSXIcon(item.icon, _objectSpread$1({}, iconProps), {
341
305
  props: props.menuProps
342
306
  });
343
307
  var labelProps = mergeProps({
344
308
  className: cx('label')
345
- }, getPTOptions(item, 'label'));
309
+ }, getPTOptions(processedItem, 'label', index));
346
310
  var label = item.label && /*#__PURE__*/React.createElement("span", labelProps, item.label);
311
+ var items = getItemProp(processedItem, 'items');
347
312
  var submenuIconClassName = 'p-submenu-icon';
348
313
  var submenuIconProps = mergeProps({
349
314
  className: cx('submenuIcon')
350
- }, getPTOptions(item, 'submenuIcon'));
351
- var submenuIcon = item.items && IconUtils.getJSXIcon(!props.root ? props.submenuIcon || /*#__PURE__*/React.createElement(AngleRightIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React.createElement(AngleDownIcon, submenuIconProps), _objectSpread$1({}, submenuIconProps), {
315
+ }, getPTOptions(processedItem, 'submenuIcon', index));
316
+ var submenuIcon = items && IconUtils.getJSXIcon(!props.root ? props.submenuIcon || /*#__PURE__*/React.createElement(AngleRightIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React.createElement(AngleDownIcon, submenuIconProps), _objectSpread$1({}, submenuIconProps), {
352
317
  props: _objectSpread$1({
353
318
  menuProps: props.menuProps
354
319
  }, props)
355
320
  });
356
- var submenu = createSubmenu(item, index);
321
+ var submenu = createSubmenu(processedItem);
357
322
  var actionProps = mergeProps({
358
323
  href: item.url || '#',
359
- role: 'menuitem',
324
+ tabIndex: '-1',
325
+ 'aria-hidden': 'true',
360
326
  className: cx('action', {
361
- item: item
327
+ disabled: disabled
362
328
  }),
363
- target: item.target,
364
- 'aria-haspopup': item.items != null,
365
- onClick: function onClick(event) {
366
- return onItemClick(event, item);
329
+ onFocus: function onFocus(event) {
330
+ return event.stopPropagation();
367
331
  },
368
- onKeyDown: function onKeyDown(event) {
369
- return onItemKeyDown(event, item);
370
- }
371
- }, getPTOptions(item, 'action'));
332
+ target: getItemProp(processedItem, 'target'),
333
+ 'aria-haspopup': items != null
334
+ }, getPTOptions(processedItem, 'action', index));
372
335
  var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));
373
336
  if (item.template) {
374
337
  var defaultContentOptions = {
375
- onClick: function onClick(event) {
376
- return onItemClick(event, item);
377
- },
378
- onKeyDown: function onKeyDown(event) {
379
- return onItemKeyDown(event, item);
380
- },
381
338
  className: linkClassName,
382
339
  labelClassName: 'p-menuitem-text',
383
340
  iconClassName: iconClassName,
@@ -387,36 +344,59 @@ var MenubarSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
387
344
  };
388
345
  content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
389
346
  }
390
- var menuitemProps = mergeProps({
391
- id: key,
392
- key: key,
393
- role: 'none',
394
- className: classNames(item.className, cx('menuitem', {
395
- item: item,
396
- activeItemState: activeItemState
397
- })),
347
+ var contentProps = mergeProps({
348
+ onClick: function onClick(event) {
349
+ return onItemClick(event, processedItem);
350
+ },
398
351
  onMouseEnter: function onMouseEnter(event) {
399
- return onItemMouseEnter(event, item);
352
+ return onItemMouseEnter(event, processedItem);
400
353
  },
401
- 'data-p-disabled': item.disabled || false
402
- }, getPTOptions(item, 'menuitem'));
403
- return /*#__PURE__*/React.createElement("li", menuitemProps, content, submenu);
354
+ className: cx('content')
355
+ }, getPTOptions(processedItem, 'content', index));
356
+ var itemClassName = getItemProp(processedItem, 'className');
357
+ var menuitemProps = mergeProps(_defineProperty({
358
+ id: key,
359
+ key: key,
360
+ role: 'menuitem',
361
+ 'aria-label': item.label,
362
+ 'aria-disabled': disabled,
363
+ 'aria-expanded': group ? active : undefined,
364
+ 'aria-haspopup': group && !item.url ? 'menu' : undefined,
365
+ 'aria-level': props.level + 1,
366
+ 'aria-setsize': getAriaSetSize(),
367
+ 'aria-posinset': getAriaPosInset(index),
368
+ 'data-p-highlight': active,
369
+ 'data-p-focused': focused,
370
+ 'data-p-disabled': disabled,
371
+ className: classNames(itemClassName, cx('menuitem', {
372
+ active: active,
373
+ focused: focused,
374
+ disabled: disabled
375
+ }))
376
+ }, "data-p-disabled", disabled || false), getPTOptions(processedItem, 'menuitem', index));
377
+ return /*#__PURE__*/React.createElement("li", menuitemProps, /*#__PURE__*/React.createElement("div", contentProps, content), submenu);
404
378
  };
405
- var createItem = function createItem(item, index) {
406
- return item.separator ? createSeparator(index) : createMenuitem(item, index);
379
+ var createItem = function createItem(processedItem, index) {
380
+ return getItemProp(processedItem, 'separator') ? createSeparator(index) : createMenuitem(processedItem, index);
407
381
  };
408
382
  var createMenu = function createMenu() {
409
383
  return props.model ? props.model.map(createItem) : null;
410
384
  };
411
385
  var role = props.root ? 'menubar' : 'menu';
412
386
  var ptKey = props.root ? 'menu' : 'submenu';
387
+ var tabIndex = props.root ? '0' : null;
413
388
  var submenu = createMenu();
414
389
  var menuProps = mergeProps({
415
390
  ref: ref,
416
391
  className: cx(ptKey),
417
- style: !props.root && {
418
- display: props.parentActive ? 'block' : 'none'
419
- },
392
+ level: props.level,
393
+ onFocus: props.onFocus,
394
+ onBlur: props.onBlur,
395
+ onKeyDown: props.onKeyDown,
396
+ id: props.id,
397
+ tabIndex: tabIndex,
398
+ 'aria-activedescendant': props.ariaActivedescendant,
399
+ style: props.style,
420
400
  role: role
421
401
  }, ptm(ptKey));
422
402
  return /*#__PURE__*/React.createElement("ul", menuProps, submenu);
@@ -436,9 +416,48 @@ var Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (i
436
416
  _React$useState4 = _slicedToArray(_React$useState3, 2),
437
417
  mobileActiveState = _React$useState4[0],
438
418
  setMobileActiveState = _React$useState4[1];
419
+ var _React$useState5 = React.useState(false),
420
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
421
+ focused = _React$useState6[0],
422
+ setFocused = _React$useState6[1];
423
+ var _React$useState7 = React.useState({
424
+ index: -1,
425
+ level: 0,
426
+ parentKey: ''
427
+ }),
428
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
429
+ focusedItemInfo = _React$useState8[0],
430
+ setFocusedItemInfo = _React$useState8[1];
431
+ var _React$useState9 = React.useState(null),
432
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
433
+ focusedItemId = _React$useState10[0],
434
+ setFocusedItemId = _React$useState10[1];
435
+ var _React$useState11 = React.useState([]),
436
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
437
+ activeItemPath = _React$useState12[0],
438
+ setActiveItemPath = _React$useState12[1];
439
+ var _React$useState13 = React.useState([]),
440
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
441
+ visibleItems = _React$useState14[0],
442
+ setVisibleItems = _React$useState14[1];
443
+ var _React$useState15 = React.useState([]),
444
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
445
+ processedItems = _React$useState16[0],
446
+ setProcessedItems = _React$useState16[1];
447
+ var _React$useState17 = React.useState(false),
448
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
449
+ focusTrigger = _React$useState18[0],
450
+ setFocusTrigger = _React$useState18[1];
451
+ var _React$useState19 = React.useState(false),
452
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
453
+ dirty = _React$useState20[0],
454
+ setDirty = _React$useState20[1];
439
455
  var elementRef = React.useRef(null);
440
456
  var rootMenuRef = React.useRef(null);
441
457
  var menuButtonRef = React.useRef(null);
458
+ var searchValue = React.useRef('');
459
+ var searchTimeout = React.useRef(null);
460
+ var reverseTrigger = React.useRef(false);
442
461
  var _MenubarBase$setMetaD = MenubarBase.setMetaData({
443
462
  props: props,
444
463
  state: {
@@ -455,26 +474,496 @@ var Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (i
455
474
  var _useEventListener = useEventListener({
456
475
  type: 'click',
457
476
  listener: function listener(event) {
458
- if (mobileActiveState && isOutsideClicked(event)) {
459
- setMobileActiveState(false);
477
+ if (isOutsideClicked(event)) {
478
+ var isOutsideContainer = elementRef.current && !elementRef.current.contains(event.target);
479
+ if (isOutsideContainer) {
480
+ hide();
481
+ }
460
482
  }
461
483
  }
462
484
  }),
463
485
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
464
- bindDocumentClickListener = _useEventListener2[0],
465
- unbindDocumentClickListener = _useEventListener2[1];
486
+ bindOutsideClickListener = _useEventListener2[0],
487
+ unbindOutsideClickListener = _useEventListener2[1];
488
+ var _useResizeListener = useResizeListener({
489
+ listener: function listener(event) {
490
+ if (!DomHandler.isTouchDevice()) {
491
+ hide(event);
492
+ }
493
+ }
494
+ }),
495
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
496
+ bindResizeListener = _useResizeListener2[0],
497
+ unbindResizeListener = _useResizeListener2[1];
466
498
  var toggle = function toggle(event) {
499
+ if (mobileActiveState) {
500
+ setMobileActiveState(false);
501
+ hide();
502
+ } else {
503
+ setMobileActiveState(true);
504
+ setTimeout(function () {
505
+ show();
506
+ }, 1);
507
+ }
467
508
  event.preventDefault();
468
- setMobileActiveState(function (prevMobileActive) {
469
- return !prevMobileActive;
509
+ };
510
+ var show = function show() {
511
+ setFocusedItemInfo({
512
+ index: findFirstFocusedItemIndex(),
513
+ level: 0,
514
+ parentKey: ''
470
515
  });
516
+ DomHandler.focus(rootMenuRef.current);
471
517
  };
472
- var onLeafClick = function onLeafClick() {
473
- setMobileActiveState(false);
518
+ var hide = function hide(isFocus) {
519
+ if (mobileActiveState) {
520
+ setMobileActiveState(false);
521
+ setTimeout(function () {
522
+ DomHandler.focus(menuButtonRef.current);
523
+ }, 0);
524
+ }
525
+ setActiveItemPath([]);
526
+ setFocusedItemInfo({
527
+ index: -1,
528
+ level: 0,
529
+ parentKey: ''
530
+ });
531
+ isFocus && DomHandler.focus(rootMenuRef.current);
532
+ setDirty(false);
533
+ };
534
+ var menuButtonKeydown = function menuButtonKeydown(event) {
535
+ (event.code === 'Enter' || event.code === 'Space') && toggle(event);
474
536
  };
475
537
  var isOutsideClicked = function isOutsideClicked(event) {
476
538
  return rootMenuRef.current !== event.target && !rootMenuRef.current.contains(event.target) && menuButtonRef.current !== event.target && !menuButtonRef.current.contains(event.target);
477
539
  };
540
+ var getItemProp = function getItemProp(item, name) {
541
+ return item ? ObjectUtils.getItemValue(item[name]) : undefined;
542
+ };
543
+ var getItemLabel = function getItemLabel(item) {
544
+ return getItemProp(item, 'label');
545
+ };
546
+ var isItemDisabled = function isItemDisabled(item) {
547
+ return getItemProp(item, 'disabled');
548
+ };
549
+ var isItemSeparator = function isItemSeparator(item) {
550
+ return getItemProp(item, 'separator');
551
+ };
552
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
553
+ return processedItem ? getItemLabel(processedItem.item) : undefined;
554
+ };
555
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
556
+ return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
557
+ };
558
+ var onFocus = function onFocus(event) {
559
+ setFocused(true);
560
+ setFocusedItemInfo(focusedItemInfo.index !== -1 ? focusedItemInfo : {
561
+ index: findFirstFocusedItemIndex(),
562
+ level: 0,
563
+ parentKey: ''
564
+ });
565
+ props.onFocus && props.onFocus(event);
566
+ };
567
+ var onBlur = function onBlur(event) {
568
+ setFocused(false);
569
+ setFocusedItemInfo({
570
+ index: -1,
571
+ level: 0,
572
+ parentKey: ''
573
+ });
574
+ searchValue.current = '';
575
+ setDirty(false);
576
+ props.onBlur && props.onBlur(event);
577
+ };
578
+ var onKeyDown = function onKeyDown(event) {
579
+ var metaKey = event.metaKey || event.ctrlKey;
580
+ var code = event.code;
581
+ switch (code) {
582
+ case 'ArrowDown':
583
+ onArrowDownKey(event);
584
+ break;
585
+ case 'ArrowUp':
586
+ onArrowUpKey(event);
587
+ break;
588
+ case 'ArrowLeft':
589
+ onArrowLeftKey(event);
590
+ break;
591
+ case 'ArrowRight':
592
+ onArrowRightKey(event);
593
+ break;
594
+ case 'Home':
595
+ onHomeKey(event);
596
+ break;
597
+ case 'End':
598
+ onEndKey(event);
599
+ break;
600
+ case 'Space':
601
+ onSpaceKey(event);
602
+ break;
603
+ case 'Enter':
604
+ onEnterKey(event);
605
+ break;
606
+ case 'Escape':
607
+ onEscapeKey();
608
+ break;
609
+ case 'Tab':
610
+ onTabKey(event);
611
+ break;
612
+ case 'PageDown':
613
+ case 'PageUp':
614
+ case 'Backspace':
615
+ case 'ShiftLeft':
616
+ case 'ShiftRight':
617
+ break;
618
+ default:
619
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
620
+ searchItems(event, event.key);
621
+ }
622
+ break;
623
+ }
624
+ };
625
+ var onItemChange = function onItemChange(event) {
626
+ var processedItem = event.processedItem,
627
+ isFocus = event.isFocus;
628
+ if (ObjectUtils.isEmpty(processedItem)) return;
629
+ var index = processedItem.index,
630
+ key = processedItem.key,
631
+ level = processedItem.level,
632
+ parentKey = processedItem.parentKey,
633
+ items = processedItem.items;
634
+ var grouped = ObjectUtils.isNotEmpty(items);
635
+ var _activeItemPath = activeItemPath.filter(function (p) {
636
+ return p.parentKey !== parentKey && p.parentKey !== key;
637
+ });
638
+ grouped && _activeItemPath.push(processedItem);
639
+ setFocusedItemInfo({
640
+ index: index,
641
+ level: level,
642
+ parentKey: parentKey
643
+ });
644
+ setActiveItemPath(_activeItemPath);
645
+ grouped && setDirty(true);
646
+ isFocus && DomHandler.focus(rootMenuRef.current);
647
+ };
648
+ var onItemClick = function onItemClick(event) {
649
+ var originalEvent = event.originalEvent,
650
+ processedItem = event.processedItem;
651
+ var grouped = isProccessedItemGroup(processedItem);
652
+ var root = ObjectUtils.isEmpty(processedItem.parent);
653
+ var selected = isSelected(processedItem);
654
+ if (selected) {
655
+ var index = processedItem.index,
656
+ key = processedItem.key,
657
+ level = processedItem.level,
658
+ parentKey = processedItem.parentKey;
659
+ setActiveItemPath(activeItemPath.filter(function (p) {
660
+ return key !== p.key && key.startsWith(p.key);
661
+ }));
662
+ setFocusedItemInfo({
663
+ index: index,
664
+ level: level,
665
+ parentKey: parentKey
666
+ });
667
+ if (!grouped) {
668
+ setDirty(!root);
669
+ }
670
+ setTimeout(function () {
671
+ DomHandler.focus(rootMenuRef.current);
672
+ if (grouped) {
673
+ setDirty(true);
674
+ }
675
+ }, 0);
676
+ } else {
677
+ if (grouped) {
678
+ DomHandler.focus(rootMenuRef.current);
679
+ onItemChange({
680
+ originalEvent: originalEvent,
681
+ processedItem: processedItem
682
+ });
683
+ } else {
684
+ var rootProcessedItem = root ? processedItem : activeItemPath.find(function (p) {
685
+ return p.parentKey === '';
686
+ });
687
+ var rootProcessedItemIndex = rootProcessedItem ? rootProcessedItem.index : -1;
688
+ hide(originalEvent);
689
+ setFocusedItemInfo({
690
+ index: rootProcessedItemIndex,
691
+ parentKey: rootProcessedItem ? rootProcessedItem.parentKey : ''
692
+ });
693
+ setMobileActiveState(false);
694
+ }
695
+ }
696
+ };
697
+ var onItemMouseEnter = function onItemMouseEnter(event) {
698
+ if (!mobileActiveState && dirty) {
699
+ onItemChange(event);
700
+ }
701
+ };
702
+ var onArrowDownKey = function onArrowDownKey(event) {
703
+ var processedItem = visibleItems[focusedItemInfo.index];
704
+ var root = processedItem ? ObjectUtils.isEmpty(processedItem.parent) : null;
705
+ if (root) {
706
+ var grouped = isProccessedItemGroup(processedItem);
707
+ if (grouped) {
708
+ onItemChange({
709
+ originalEvent: event,
710
+ processedItem: processedItem
711
+ });
712
+ setFocusedItemInfo({
713
+ index: -1,
714
+ parentKey: processedItem.key
715
+ });
716
+ setTimeout(function () {
717
+ return setFocusTrigger(true);
718
+ }, 0);
719
+ }
720
+ } else {
721
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
722
+ changeFocusedItemIndex(itemIndex);
723
+ }
724
+ event.preventDefault();
725
+ };
726
+ var onArrowUpKey = function onArrowUpKey(event) {
727
+ var processedItem = visibleItems[focusedItemInfo.index];
728
+ var root = ObjectUtils.isEmpty(processedItem.parent);
729
+ if (root) {
730
+ var grouped = isProccessedItemGroup(processedItem);
731
+ if (grouped) {
732
+ onItemChange({
733
+ originalEvent: event,
734
+ processedItem: processedItem
735
+ });
736
+ setFocusedItemInfo({
737
+ index: -1,
738
+ parentKey: processedItem.key
739
+ });
740
+ reverseTrigger.current = true;
741
+ setTimeout(function () {
742
+ return setFocusTrigger(true);
743
+ }, 0);
744
+ }
745
+ } else {
746
+ var parentItem = activeItemPath.find(function (p) {
747
+ return p.key === processedItem.parentKey;
748
+ });
749
+ if (focusedItemInfo.index === 0 && parentItem && parentItem.parentKey === '') {
750
+ setFocusedItemInfo({
751
+ index: -1,
752
+ parentKey: parentItem ? parentItem.parentKey : ''
753
+ });
754
+ searchValue.current = '';
755
+ onArrowLeftKey(event);
756
+ } else {
757
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
758
+ changeFocusedItemIndex(itemIndex);
759
+ }
760
+ }
761
+ event.preventDefault();
762
+ };
763
+ var onArrowLeftKey = function onArrowLeftKey(event) {
764
+ var processedItem = visibleItems[focusedItemInfo.index];
765
+ var parentItem = processedItem ? activeItemPath.find(function (p) {
766
+ return p.key === processedItem.parentKey;
767
+ }) : null;
768
+ if (parentItem) {
769
+ onItemChange({
770
+ originalEvent: event,
771
+ processedItem: parentItem
772
+ });
773
+ setActiveItemPath(activeItemPath.filter(function (p) {
774
+ return p.key !== parentItem.key;
775
+ }));
776
+ } else {
777
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
778
+ changeFocusedItemIndex(itemIndex);
779
+ }
780
+ event.preventDefault();
781
+ };
782
+ var onArrowRightKey = function onArrowRightKey(event) {
783
+ var processedItem = visibleItems[focusedItemInfo.index];
784
+ var parentItem = processedItem ? activeItemPath.find(function (p) {
785
+ return p.key === processedItem.parentKey;
786
+ }) : null;
787
+ if (parentItem) {
788
+ var grouped = isProccessedItemGroup(processedItem);
789
+ if (grouped) {
790
+ onItemChange({
791
+ originalEvent: event,
792
+ processedItem: processedItem
793
+ });
794
+ setFocusedItemInfo({
795
+ index: -1,
796
+ parentKey: processedItem.key
797
+ });
798
+ setTimeout(function () {
799
+ return setFocusTrigger(true);
800
+ }, 0);
801
+ }
802
+ } else {
803
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
804
+ changeFocusedItemIndex(itemIndex);
805
+ }
806
+ event.preventDefault();
807
+ };
808
+ var onHomeKey = function onHomeKey(event) {
809
+ changeFocusedItemIndex(findFirstItemIndex());
810
+ event.preventDefault();
811
+ };
812
+ var onEndKey = function onEndKey(event) {
813
+ changeFocusedItemIndex(findLastItemIndex());
814
+ event.preventDefault();
815
+ };
816
+ var onEnterKey = function onEnterKey(event) {
817
+ if (focusedItemInfo.index !== -1) {
818
+ var element = DomHandler.findSingle(rootMenuRef.current, "li[id=\"".concat("".concat(focusedItemId), "\"]"));
819
+ var anchorElement = element && DomHandler.findSingle(element, 'a[data-pc-section="action"]');
820
+ anchorElement ? anchorElement.click() : element && element.click();
821
+ }
822
+ event.preventDefault();
823
+ };
824
+ var onSpaceKey = function onSpaceKey(event) {
825
+ onEnterKey(event);
826
+ };
827
+ var onEscapeKey = function onEscapeKey(event) {
828
+ hide(true);
829
+ setFocusedItemInfo({
830
+ focusedItemInfo: focusedItemInfo,
831
+ index: findFirstFocusedItemIndex()
832
+ });
833
+ };
834
+ var onTabKey = function onTabKey(event) {
835
+ if (focusedItemInfo.index !== -1) {
836
+ var processedItem = visibleItems[focusedItemInfo.index];
837
+ var grouped = isProccessedItemGroup(processedItem);
838
+ !grouped && onItemChange({
839
+ originalEvent: event,
840
+ processedItem: processedItem
841
+ });
842
+ }
843
+ hide();
844
+ };
845
+ var isItemMatched = function isItemMatched(processedItem) {
846
+ return isValidItem(processedItem) && getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
847
+ };
848
+ var isValidItem = function isValidItem(processedItem) {
849
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
850
+ };
851
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
852
+ return isValidItem(processedItem) && isSelected(processedItem);
853
+ };
854
+ var isSelected = function isSelected(processedItem) {
855
+ return activeItemPath.some(function (p) {
856
+ return p.key === processedItem.key;
857
+ });
858
+ };
859
+ var findFirstItemIndex = function findFirstItemIndex() {
860
+ return visibleItems.findIndex(function (processedItem) {
861
+ return isValidItem(processedItem);
862
+ });
863
+ };
864
+ var findLastItemIndex = function findLastItemIndex() {
865
+ return ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
866
+ return isValidItem(processedItem);
867
+ });
868
+ };
869
+ var findNextItemIndex = function findNextItemIndex(index) {
870
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
871
+ return isValidItem(processedItem);
872
+ }) : -1;
873
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
874
+ };
875
+ var findPrevItemIndex = function findPrevItemIndex(index) {
876
+ var matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
877
+ return isValidItem(processedItem);
878
+ }) : -1;
879
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
880
+ };
881
+ var findSelectedItemIndex = function findSelectedItemIndex() {
882
+ return visibleItems.findIndex(function (processedItem) {
883
+ return isValidSelectedItem(processedItem);
884
+ });
885
+ };
886
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
887
+ var selectedIndex = findSelectedItemIndex();
888
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
889
+ };
890
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
891
+ var selectedIndex = findSelectedItemIndex();
892
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
893
+ };
894
+ var searchItems = function searchItems(event, _char) {
895
+ searchValue.current = (searchValue.current || '') + _char;
896
+ var itemIndex = -1;
897
+ var matched = false;
898
+ if (focusedItemInfo.index !== -1) {
899
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
900
+ return isItemMatched(processedItem);
901
+ });
902
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
903
+ return isItemMatched(processedItem);
904
+ }) : itemIndex + focusedItemInfo.index;
905
+ } else {
906
+ itemIndex = visibleItems.findIndex(function (processedItem) {
907
+ return isItemMatched(processedItem);
908
+ });
909
+ }
910
+ if (itemIndex !== -1) {
911
+ matched = true;
912
+ }
913
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
914
+ itemIndex = findFirstFocusedItemIndex();
915
+ }
916
+ if (itemIndex !== -1) {
917
+ changeFocusedItemIndex(itemIndex);
918
+ }
919
+ if (searchTimeout.current) {
920
+ clearTimeout(searchTimeout.current);
921
+ }
922
+ searchTimeout.current = setTimeout(function () {
923
+ searchValue.current = '';
924
+ searchTimeout.current = null;
925
+ }, 500);
926
+ return matched;
927
+ };
928
+ var changeFocusedItemIndex = function changeFocusedItemIndex(index) {
929
+ if (focusedItemInfo.index !== index) {
930
+ setFocusedItemInfo(_objectSpread(_objectSpread({}, focusedItemInfo), {}, {
931
+ index: index
932
+ }));
933
+ scrollInView();
934
+ }
935
+ };
936
+ var scrollInView = function scrollInView() {
937
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
938
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
939
+ var element = DomHandler.findSingle(rootMenuRef.current, "li[id=\"".concat(id, "\"]"));
940
+ if (element) {
941
+ element.scrollIntoView && element.scrollIntoView({
942
+ block: 'nearest',
943
+ inline: 'start'
944
+ });
945
+ }
946
+ };
947
+ var createProcessedItems = function createProcessedItems(items) {
948
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
949
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
950
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
951
+ var _processedItems = [];
952
+ items && items.forEach(function (item, index) {
953
+ var key = (parentKey !== '' ? parentKey + '_' : '') + index;
954
+ var newItem = {
955
+ item: item,
956
+ index: index,
957
+ level: level,
958
+ key: key,
959
+ parent: parent,
960
+ parentKey: parentKey
961
+ };
962
+ newItem['items'] = createProcessedItems(item.items, level + 1, newItem, key);
963
+ _processedItems.push(newItem);
964
+ });
965
+ return _processedItems;
966
+ };
478
967
  useMountEffect(function () {
479
968
  if (!idState) {
480
969
  setIdState(UniqueComponentId());
@@ -482,13 +971,47 @@ var Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (i
482
971
  });
483
972
  useUpdateEffect(function () {
484
973
  if (mobileActiveState) {
974
+ bindOutsideClickListener();
975
+ bindResizeListener();
485
976
  ZIndexUtils.set('menu', rootMenuRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
486
- bindDocumentClickListener();
487
977
  } else {
488
- unbindDocumentClickListener();
978
+ unbindResizeListener();
979
+ unbindOutsideClickListener();
489
980
  ZIndexUtils.clear(rootMenuRef.current);
490
981
  }
491
982
  }, [mobileActiveState]);
983
+ useUpdateEffect(function () {
984
+ var itemsToProcess = props.model || [];
985
+ var processed = createProcessedItems(itemsToProcess, 0, null, '');
986
+ setProcessedItems(processed);
987
+ }, [props.model]);
988
+ useUpdateEffect(function () {
989
+ var processedItem = activeItemPath.find(function (p) {
990
+ return p.key === focusedItemInfo.parentKey;
991
+ });
992
+ var _processedItems = processedItem ? processedItem.items : processedItems;
993
+ setVisibleItems(_processedItems);
994
+ }, [activeItemPath, focusedItemInfo, processedItems]);
995
+ useUpdateEffect(function () {
996
+ if (ObjectUtils.isNotEmpty(activeItemPath)) {
997
+ bindOutsideClickListener();
998
+ bindResizeListener();
999
+ } else {
1000
+ unbindOutsideClickListener();
1001
+ unbindResizeListener();
1002
+ }
1003
+ }, [activeItemPath]);
1004
+ useUpdateEffect(function () {
1005
+ if (focusTrigger) {
1006
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : reverseTrigger.current ? findLastItemIndex() : findFirstFocusedItemIndex();
1007
+ changeFocusedItemIndex(itemIndex);
1008
+ reverseTrigger.current = false;
1009
+ setFocusTrigger(false);
1010
+ }
1011
+ }, [focusTrigger]);
1012
+ useUpdateEffect(function () {
1013
+ setFocusedItemId(focusedItemInfo.index !== -1 ? "".concat(idState).concat(ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null);
1014
+ }, [focusedItemInfo]);
492
1015
  useUnmountEffect(function () {
493
1016
  ZIndexUtils.clear(rootMenuRef.current);
494
1017
  });
@@ -531,16 +1054,20 @@ var Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (i
531
1054
  if (props.model && props.model.length < 1) {
532
1055
  return null;
533
1056
  }
534
- var buttonProps = mergeProps({
1057
+ var buttonProps = mergeProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
535
1058
  ref: menuButtonRef,
536
1059
  href: '#',
537
- role: 'button',
538
- tabIndex: 0,
539
- className: cx('button'),
540
- onClick: function onClick(e) {
541
- return toggle(e);
542
- }
543
- }, ptm('button'));
1060
+ tabIndex: '0',
1061
+ 'aria-haspopup': mobileActiveState && props.model && props.model.lentgh > 0 ? true : false,
1062
+ 'aria-expanded': mobileActiveState,
1063
+ 'aria-label': ariaLabel('navigation'),
1064
+ 'aria-controls': idState,
1065
+ role: 'button'
1066
+ }, "tabIndex", 0), "className", cx('button')), "onKeyDown", function onKeyDown(e) {
1067
+ return menuButtonKeydown(e);
1068
+ }), "onClick", function onClick(e) {
1069
+ return toggle(e);
1070
+ }), ptm('button'));
544
1071
  var popupIconProps = mergeProps(ptm('popupIcon'));
545
1072
  var icon = props.menuIcon || /*#__PURE__*/React.createElement(BarsIcon, popupIconProps);
546
1073
  var menuIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, popupIconProps), {
@@ -558,19 +1085,27 @@ var Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (i
558
1085
  var menuButton = createMenuButton();
559
1086
  var submenu = /*#__PURE__*/React.createElement(MenubarSub, {
560
1087
  hostName: "Menubar",
1088
+ ariaActivedescendant: focused ? focusedItemId : undefined,
1089
+ level: 0,
561
1090
  id: idState,
562
1091
  ref: rootMenuRef,
563
1092
  menuProps: props,
564
- model: props.model,
1093
+ model: processedItems,
1094
+ onLeafClick: onItemClick,
1095
+ onItemMouseEnter: onItemMouseEnter,
1096
+ onFocus: onFocus,
1097
+ onBlur: onBlur,
1098
+ onKeyDown: onKeyDown,
565
1099
  root: true,
566
- mobileActive: mobileActiveState,
567
- onLeafClick: onLeafClick,
1100
+ activeItemPath: activeItemPath,
1101
+ focusedItemId: focused ? focusedItemId : undefined,
568
1102
  submenuIcon: props.submenuIcon,
569
1103
  ptm: ptm,
570
1104
  cx: cx
571
1105
  });
572
1106
  var rootProps = mergeProps({
573
1107
  id: props.id,
1108
+ ref: elementRef,
574
1109
  className: classNames(props.className, cx('root', {
575
1110
  mobileActiveState: mobileActiveState
576
1111
  })),