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
@@ -142,27 +142,31 @@ var classes = {
142
142
  'p-menubar-mobile-active': mobileActiveState
143
143
  });
144
144
  },
145
- separator: 'p-menu-separator',
145
+ separator: 'p-menuitem-separator',
146
146
  icon: 'p-menuitem-icon',
147
147
  label: 'p-menuitem-text',
148
148
  submenuIcon: 'p-submenu-icon',
149
149
  menuitem: function menuitem(_ref2) {
150
- var item = _ref2.item,
151
- activeItemState = _ref2.activeItemState;
150
+ var active = _ref2.active,
151
+ focused = _ref2.focused,
152
+ disabled = _ref2.disabled;
152
153
  return utils.classNames('p-menuitem', {
153
- 'p-menuitem-active': activeItemState === item
154
+ 'p-menuitem-active p-highlight': active,
155
+ 'p-focus': focused,
156
+ 'p-disabled': disabled
154
157
  });
155
158
  },
156
159
  menu: 'p-menubar-root-list',
160
+ content: 'p-menuitem-content',
157
161
  submenu: 'p-submenu-list',
158
162
  action: function action(_ref3) {
159
- var item = _ref3.item;
163
+ var disabled = _ref3.disabled;
160
164
  return utils.classNames('p-menuitem-link', {
161
- 'p-disabled': item.disabled
165
+ 'p-disabled': disabled
162
166
  });
163
167
  }
164
168
  };
165
- 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";
169
+ 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";
166
170
  var MenubarBase = componentbase.ComponentBase.extend({
167
171
  defaultProps: {
168
172
  __TYPE: 'Menubar',
@@ -171,6 +175,10 @@ var MenubarBase = componentbase.ComponentBase.extend({
171
175
  style: null,
172
176
  className: null,
173
177
  start: null,
178
+ ariaLabel: null,
179
+ ariaLabelledBy: null,
180
+ onFocus: null,
181
+ onBlur: null,
174
182
  submenuIcon: null,
175
183
  menuIcon: null,
176
184
  end: null,
@@ -185,46 +193,35 @@ var MenubarBase = componentbase.ComponentBase.extend({
185
193
  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; }
186
194
  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; }
187
195
  var MenubarSub = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
188
- var _React$useState = React__namespace.useState(null),
189
- _React$useState2 = _slicedToArray(_React$useState, 2),
190
- activeItemState = _React$useState2[0],
191
- setActiveItemState = _React$useState2[1];
192
196
  var ptm = props.ptm,
193
197
  cx = props.cx;
194
- var getPTOptions = function getPTOptions(item, key) {
198
+ var getPTOptions = function getPTOptions(processedItem, key, index) {
195
199
  return ptm(key, {
196
200
  props: props,
197
201
  hostName: props.hostName,
198
202
  context: {
199
- active: activeItemState === item
203
+ item: processedItem,
204
+ index: index,
205
+ active: isItemActive(processedItem),
206
+ focused: isItemFocused(processedItem),
207
+ disabled: isItemDisabled(processedItem),
208
+ level: props.level
200
209
  }
201
210
  });
202
211
  };
203
- var _useEventListener = hooks.useEventListener({
204
- type: 'click',
205
- listener: function listener(event) {
206
- if (ref && ref.current && !ref.current.contains(event.target)) {
207
- setActiveItemState(null);
208
- }
209
- }
210
- }),
211
- _useEventListener2 = _slicedToArray(_useEventListener, 1),
212
- bindDocumentClickListener = _useEventListener2[0];
213
212
  var onItemMouseEnter = function onItemMouseEnter(event, item) {
214
- if (item.disabled || props.mobileActive) {
213
+ if (isItemDisabled(item) || props.mobileActive) {
215
214
  event.preventDefault();
216
215
  return;
217
216
  }
218
- if (props.root) {
219
- if (activeItemState || props.popup) {
220
- setActiveItemState(item);
221
- }
222
- } else {
223
- setActiveItemState(item);
224
- }
217
+ props.onItemMouseEnter && props.onItemMouseEnter({
218
+ originalEvent: event,
219
+ processedItem: item
220
+ });
225
221
  };
226
- var onItemClick = function onItemClick(event, item) {
227
- if (item.disabled) {
222
+ var onItemClick = function onItemClick(event, processedItem) {
223
+ var item = processedItem.item;
224
+ if (isItemDisabled(processedItem)) {
228
225
  event.preventDefault();
229
226
  return;
230
227
  }
@@ -237,91 +234,48 @@ var MenubarSub = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
237
234
  item: item
238
235
  });
239
236
  }
240
- if (item.items) activeItemState && item === activeItemState ? setActiveItemState(null) : setActiveItemState(item);else onLeafClick();
237
+ onLeafClick({
238
+ originalEvent: event,
239
+ processedItem: processedItem,
240
+ isFocus: true
241
+ });
241
242
  };
242
- var onItemKeyDown = function onItemKeyDown(event, item) {
243
- var listItem = event.currentTarget.parentElement;
244
- switch (event.which) {
245
- //down
246
- case 40:
247
- if (props.root) item.items && expandSubmenu(item, listItem);else navigateToNextItem(listItem);
248
- event.preventDefault();
249
- break;
250
-
251
- //up
252
- case 38:
253
- !props.root && navigateToPrevItem(listItem);
254
- event.preventDefault();
255
- break;
256
-
257
- //right
258
- case 39:
259
- if (props.root) {
260
- var nextItem = findNextItem(listItem);
261
- nextItem && nextItem.children[0].focus();
262
- } else {
263
- item.items && expandSubmenu(item, listItem);
264
- }
265
- event.preventDefault();
266
- break;
267
-
268
- //left
269
- case 37:
270
- props.root && navigateToPrevItem(listItem);
271
- event.preventDefault();
272
- break;
273
- }
274
- props.onKeyDown && props.onKeyDown(event, listItem);
243
+ var onLeafClick = function onLeafClick(event) {
244
+ props.onLeafClick && props.onLeafClick(event);
275
245
  };
276
- var onChildItemKeyDown = function onChildItemKeyDown(event, childListItem) {
277
- if (props.root) {
278
- //up
279
- if (event.which === 38 && childListItem.previousElementSibling == null) {
280
- collapseMenu(childListItem);
281
- }
282
- } else {
283
- //left
284
- if (event.which === 37) {
285
- collapseMenu(childListItem);
286
- }
287
- }
246
+ var getItemId = function getItemId(processedItem) {
247
+ return "".concat(props.id, "_").concat(processedItem.key);
288
248
  };
289
- var expandSubmenu = function expandSubmenu(item, listItem) {
290
- setActiveItemState(item);
291
- setTimeout(function () {
292
- listItem.children[1].children[0].children[0].focus();
293
- }, 50);
249
+ var getItemProp = function getItemProp(processedItem, name, params) {
250
+ return processedItem && processedItem.item ? utils.ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
294
251
  };
295
- var collapseMenu = function collapseMenu(listItem) {
296
- setActiveItemState(null);
297
- listItem.parentElement.previousElementSibling.focus();
252
+ var isItemActive = function isItemActive(processedItem) {
253
+ return props.activeItemPath.some(function (path) {
254
+ return path.key === processedItem.key;
255
+ });
298
256
  };
299
- var navigateToNextItem = function navigateToNextItem(listItem) {
300
- var nextItem = findNextItem(listItem);
301
- nextItem && nextItem.children[0].focus();
257
+ var isItemVisible = function isItemVisible(processedItem) {
258
+ return getItemProp(processedItem, 'visible') !== false;
302
259
  };
303
- var navigateToPrevItem = function navigateToPrevItem(listItem) {
304
- var prevItem = findPrevItem(listItem);
305
- prevItem && prevItem.children[0].focus();
260
+ var isItemDisabled = function isItemDisabled(processedItem) {
261
+ return getItemProp(processedItem, 'disabled');
306
262
  };
307
- var findNextItem = function findNextItem(item) {
308
- var nextItem = item.nextElementSibling;
309
- return nextItem ? utils.DomHandler.getAttribute(nextItem, '[data-p-disabled="true"]') || !utils.DomHandler.getAttribute(nextItem, '[data-pc-section="menuitem"]') ? findNextItem(nextItem) : nextItem : null;
263
+ var isItemFocused = function isItemFocused(processedItem) {
264
+ return props.focusedItemId === getItemId(processedItem);
310
265
  };
311
- var findPrevItem = function findPrevItem(item) {
312
- var prevItem = item.previousElementSibling;
313
- return prevItem ? utils.DomHandler.getAttribute(prevItem, '[data-p-disabled="true"]') || !utils.DomHandler.getAttribute(prevItem, '[data-pc-section="menuitem"]') ? findPrevItem(prevItem) : prevItem : null;
266
+ var isItemGroup = function isItemGroup(processedItem) {
267
+ return utils.ObjectUtils.isNotEmpty(processedItem.items);
314
268
  };
315
- var onLeafClick = function onLeafClick() {
316
- setActiveItemState(null);
317
- props.onLeafClick && props.onLeafClick();
269
+ var getAriaSetSize = function getAriaSetSize() {
270
+ return props.model.filter(function (processedItem) {
271
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
272
+ }).length;
273
+ };
274
+ var getAriaPosInset = function getAriaPosInset(index) {
275
+ return index - props.model.slice(0, index).filter(function (processedItem) {
276
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
277
+ }).length + 1;
318
278
  };
319
- hooks.useMountEffect(function () {
320
- bindDocumentClickListener();
321
- });
322
- hooks.useUpdateEffect(function () {
323
- !props.parentActive && setActiveItemState(null);
324
- }, [props.parentActive]);
325
279
  var createSeparator = function createSeparator(index) {
326
280
  var key = props.id + '_separator_' + index;
327
281
  var separatorProps = utils.mergeProps({
@@ -334,77 +288,80 @@ var MenubarSub = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
334
288
  }));
335
289
  return /*#__PURE__*/React__namespace.createElement("li", separatorProps);
336
290
  };
337
- var createSubmenu = function createSubmenu(item, index) {
338
- if (item.items) {
291
+ var createSubmenu = function createSubmenu(processedItem) {
292
+ var items = processedItem && processedItem.items;
293
+ if (items) {
339
294
  return /*#__PURE__*/React__namespace.createElement(MenubarSub, {
340
- id: props.id + '_' + index,
295
+ id: props.id,
341
296
  hostName: props.hostName,
342
297
  menuProps: props.menuProps,
343
- model: item.items,
344
- mobileActive: props.mobileActive,
298
+ level: props.level + 1,
299
+ model: items,
300
+ activeItemPath: props.activeItemPath,
301
+ focusedItemId: props.focusedItemId,
345
302
  onLeafClick: onLeafClick,
346
- onKeyDown: onChildItemKeyDown,
347
- parentActive: item === activeItemState,
303
+ onItemMouseEnter: props.onItemMouseEnter,
348
304
  submenuIcon: props.submenuIcon,
349
305
  ptm: ptm,
306
+ style: {
307
+ display: isItemActive(processedItem) ? 'block' : 'none'
308
+ },
350
309
  cx: cx
351
310
  });
352
311
  }
353
312
  return null;
354
313
  };
355
- var createMenuitem = function createMenuitem(item, index) {
356
- if (item.visible === false) {
314
+ var createMenuitem = function createMenuitem(processedItem, index) {
315
+ var item = processedItem.item;
316
+ if (!isItemVisible(processedItem)) {
357
317
  return null;
358
318
  }
359
- var key = item.id || props.id + '_' + index;
319
+ var key = getItemId(processedItem);
320
+ var active = isItemActive(processedItem);
321
+ var focused = isItemFocused(processedItem);
322
+ var disabled = isItemDisabled(processedItem) || false;
323
+ var group = isItemGroup(processedItem);
360
324
  var linkClassName = utils.classNames('p-menuitem-link', {
361
- 'p-disabled': item.disabled
325
+ 'p-disabled': disabled
362
326
  });
363
- var iconClassName = utils.classNames('p-menuitem-icon', item.icon);
327
+ var iconClassName = utils.classNames('p-menuitem-icon', getItemProp(processedItem, 'icon'));
364
328
  var iconProps = utils.mergeProps({
365
329
  className: cx('icon')
366
- }, getPTOptions(item, 'icon'));
330
+ }, getPTOptions(processedItem, 'icon', index));
367
331
  var icon = utils.IconUtils.getJSXIcon(item.icon, _objectSpread$1({}, iconProps), {
368
332
  props: props.menuProps
369
333
  });
370
334
  var labelProps = utils.mergeProps({
371
335
  className: cx('label')
372
- }, getPTOptions(item, 'label'));
336
+ }, getPTOptions(processedItem, 'label', index));
373
337
  var label = item.label && /*#__PURE__*/React__namespace.createElement("span", labelProps, item.label);
338
+ var items = getItemProp(processedItem, 'items');
374
339
  var submenuIconClassName = 'p-submenu-icon';
375
340
  var submenuIconProps = utils.mergeProps({
376
341
  className: cx('submenuIcon')
377
- }, getPTOptions(item, 'submenuIcon'));
378
- var submenuIcon = item.items && utils.IconUtils.getJSXIcon(!props.root ? props.submenuIcon || /*#__PURE__*/React__namespace.createElement(angleright.AngleRightIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React__namespace.createElement(angledown.AngleDownIcon, submenuIconProps), _objectSpread$1({}, submenuIconProps), {
342
+ }, getPTOptions(processedItem, 'submenuIcon', index));
343
+ var submenuIcon = items && utils.IconUtils.getJSXIcon(!props.root ? props.submenuIcon || /*#__PURE__*/React__namespace.createElement(angleright.AngleRightIcon, submenuIconProps) : props.submenuIcon || /*#__PURE__*/React__namespace.createElement(angledown.AngleDownIcon, submenuIconProps), _objectSpread$1({}, submenuIconProps), {
379
344
  props: _objectSpread$1({
380
345
  menuProps: props.menuProps
381
346
  }, props)
382
347
  });
383
- var submenu = createSubmenu(item, index);
348
+ var submenu = createSubmenu(processedItem);
384
349
  var actionProps = utils.mergeProps({
385
350
  href: item.url || '#',
386
- role: 'menuitem',
351
+ tabIndex: '-1',
352
+ 'aria-hidden': 'true',
387
353
  className: cx('action', {
388
- item: item
354
+ disabled: disabled
389
355
  }),
390
- target: item.target,
391
- 'aria-haspopup': item.items != null,
392
- onClick: function onClick(event) {
393
- return onItemClick(event, item);
356
+ onFocus: function onFocus(event) {
357
+ return event.stopPropagation();
394
358
  },
395
- onKeyDown: function onKeyDown(event) {
396
- return onItemKeyDown(event, item);
397
- }
398
- }, getPTOptions(item, 'action'));
359
+ target: getItemProp(processedItem, 'target'),
360
+ 'aria-haspopup': items != null
361
+ }, getPTOptions(processedItem, 'action', index));
399
362
  var content = /*#__PURE__*/React__namespace.createElement("a", actionProps, icon, label, submenuIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
400
363
  if (item.template) {
401
364
  var defaultContentOptions = {
402
- onClick: function onClick(event) {
403
- return onItemClick(event, item);
404
- },
405
- onKeyDown: function onKeyDown(event) {
406
- return onItemKeyDown(event, item);
407
- },
408
365
  className: linkClassName,
409
366
  labelClassName: 'p-menuitem-text',
410
367
  iconClassName: iconClassName,
@@ -414,36 +371,59 @@ var MenubarSub = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
414
371
  };
415
372
  content = utils.ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
416
373
  }
417
- var menuitemProps = utils.mergeProps({
418
- id: key,
419
- key: key,
420
- role: 'none',
421
- className: utils.classNames(item.className, cx('menuitem', {
422
- item: item,
423
- activeItemState: activeItemState
424
- })),
374
+ var contentProps = utils.mergeProps({
375
+ onClick: function onClick(event) {
376
+ return onItemClick(event, processedItem);
377
+ },
425
378
  onMouseEnter: function onMouseEnter(event) {
426
- return onItemMouseEnter(event, item);
379
+ return onItemMouseEnter(event, processedItem);
427
380
  },
428
- 'data-p-disabled': item.disabled || false
429
- }, getPTOptions(item, 'menuitem'));
430
- return /*#__PURE__*/React__namespace.createElement("li", menuitemProps, content, submenu);
381
+ className: cx('content')
382
+ }, getPTOptions(processedItem, 'content', index));
383
+ var itemClassName = getItemProp(processedItem, 'className');
384
+ var menuitemProps = utils.mergeProps(_defineProperty({
385
+ id: key,
386
+ key: key,
387
+ role: 'menuitem',
388
+ 'aria-label': item.label,
389
+ 'aria-disabled': disabled,
390
+ 'aria-expanded': group ? active : undefined,
391
+ 'aria-haspopup': group && !item.url ? 'menu' : undefined,
392
+ 'aria-level': props.level + 1,
393
+ 'aria-setsize': getAriaSetSize(),
394
+ 'aria-posinset': getAriaPosInset(index),
395
+ 'data-p-highlight': active,
396
+ 'data-p-focused': focused,
397
+ 'data-p-disabled': disabled,
398
+ className: utils.classNames(itemClassName, cx('menuitem', {
399
+ active: active,
400
+ focused: focused,
401
+ disabled: disabled
402
+ }))
403
+ }, "data-p-disabled", disabled || false), getPTOptions(processedItem, 'menuitem', index));
404
+ return /*#__PURE__*/React__namespace.createElement("li", menuitemProps, /*#__PURE__*/React__namespace.createElement("div", contentProps, content), submenu);
431
405
  };
432
- var createItem = function createItem(item, index) {
433
- return item.separator ? createSeparator(index) : createMenuitem(item, index);
406
+ var createItem = function createItem(processedItem, index) {
407
+ return getItemProp(processedItem, 'separator') ? createSeparator(index) : createMenuitem(processedItem, index);
434
408
  };
435
409
  var createMenu = function createMenu() {
436
410
  return props.model ? props.model.map(createItem) : null;
437
411
  };
438
412
  var role = props.root ? 'menubar' : 'menu';
439
413
  var ptKey = props.root ? 'menu' : 'submenu';
414
+ var tabIndex = props.root ? '0' : null;
440
415
  var submenu = createMenu();
441
416
  var menuProps = utils.mergeProps({
442
417
  ref: ref,
443
418
  className: cx(ptKey),
444
- style: !props.root && {
445
- display: props.parentActive ? 'block' : 'none'
446
- },
419
+ level: props.level,
420
+ onFocus: props.onFocus,
421
+ onBlur: props.onBlur,
422
+ onKeyDown: props.onKeyDown,
423
+ id: props.id,
424
+ tabIndex: tabIndex,
425
+ 'aria-activedescendant': props.ariaActivedescendant,
426
+ style: props.style,
447
427
  role: role
448
428
  }, ptm(ptKey));
449
429
  return /*#__PURE__*/React__namespace.createElement("ul", menuProps, submenu);
@@ -463,9 +443,48 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
463
443
  _React$useState4 = _slicedToArray(_React$useState3, 2),
464
444
  mobileActiveState = _React$useState4[0],
465
445
  setMobileActiveState = _React$useState4[1];
446
+ var _React$useState5 = React__namespace.useState(false),
447
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
448
+ focused = _React$useState6[0],
449
+ setFocused = _React$useState6[1];
450
+ var _React$useState7 = React__namespace.useState({
451
+ index: -1,
452
+ level: 0,
453
+ parentKey: ''
454
+ }),
455
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
456
+ focusedItemInfo = _React$useState8[0],
457
+ setFocusedItemInfo = _React$useState8[1];
458
+ var _React$useState9 = React__namespace.useState(null),
459
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
460
+ focusedItemId = _React$useState10[0],
461
+ setFocusedItemId = _React$useState10[1];
462
+ var _React$useState11 = React__namespace.useState([]),
463
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
464
+ activeItemPath = _React$useState12[0],
465
+ setActiveItemPath = _React$useState12[1];
466
+ var _React$useState13 = React__namespace.useState([]),
467
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
468
+ visibleItems = _React$useState14[0],
469
+ setVisibleItems = _React$useState14[1];
470
+ var _React$useState15 = React__namespace.useState([]),
471
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
472
+ processedItems = _React$useState16[0],
473
+ setProcessedItems = _React$useState16[1];
474
+ var _React$useState17 = React__namespace.useState(false),
475
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
476
+ focusTrigger = _React$useState18[0],
477
+ setFocusTrigger = _React$useState18[1];
478
+ var _React$useState19 = React__namespace.useState(false),
479
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
480
+ dirty = _React$useState20[0],
481
+ setDirty = _React$useState20[1];
466
482
  var elementRef = React__namespace.useRef(null);
467
483
  var rootMenuRef = React__namespace.useRef(null);
468
484
  var menuButtonRef = React__namespace.useRef(null);
485
+ var searchValue = React__namespace.useRef('');
486
+ var searchTimeout = React__namespace.useRef(null);
487
+ var reverseTrigger = React__namespace.useRef(false);
469
488
  var _MenubarBase$setMetaD = MenubarBase.setMetaData({
470
489
  props: props,
471
490
  state: {
@@ -482,26 +501,496 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
482
501
  var _useEventListener = hooks.useEventListener({
483
502
  type: 'click',
484
503
  listener: function listener(event) {
485
- if (mobileActiveState && isOutsideClicked(event)) {
486
- setMobileActiveState(false);
504
+ if (isOutsideClicked(event)) {
505
+ var isOutsideContainer = elementRef.current && !elementRef.current.contains(event.target);
506
+ if (isOutsideContainer) {
507
+ hide();
508
+ }
487
509
  }
488
510
  }
489
511
  }),
490
512
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
491
- bindDocumentClickListener = _useEventListener2[0],
492
- unbindDocumentClickListener = _useEventListener2[1];
513
+ bindOutsideClickListener = _useEventListener2[0],
514
+ unbindOutsideClickListener = _useEventListener2[1];
515
+ var _useResizeListener = hooks.useResizeListener({
516
+ listener: function listener(event) {
517
+ if (!utils.DomHandler.isTouchDevice()) {
518
+ hide(event);
519
+ }
520
+ }
521
+ }),
522
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
523
+ bindResizeListener = _useResizeListener2[0],
524
+ unbindResizeListener = _useResizeListener2[1];
493
525
  var toggle = function toggle(event) {
526
+ if (mobileActiveState) {
527
+ setMobileActiveState(false);
528
+ hide();
529
+ } else {
530
+ setMobileActiveState(true);
531
+ setTimeout(function () {
532
+ show();
533
+ }, 1);
534
+ }
494
535
  event.preventDefault();
495
- setMobileActiveState(function (prevMobileActive) {
496
- return !prevMobileActive;
536
+ };
537
+ var show = function show() {
538
+ setFocusedItemInfo({
539
+ index: findFirstFocusedItemIndex(),
540
+ level: 0,
541
+ parentKey: ''
542
+ });
543
+ utils.DomHandler.focus(rootMenuRef.current);
544
+ };
545
+ var hide = function hide(isFocus) {
546
+ if (mobileActiveState) {
547
+ setMobileActiveState(false);
548
+ setTimeout(function () {
549
+ utils.DomHandler.focus(menuButtonRef.current);
550
+ }, 0);
551
+ }
552
+ setActiveItemPath([]);
553
+ setFocusedItemInfo({
554
+ index: -1,
555
+ level: 0,
556
+ parentKey: ''
497
557
  });
558
+ isFocus && utils.DomHandler.focus(rootMenuRef.current);
559
+ setDirty(false);
498
560
  };
499
- var onLeafClick = function onLeafClick() {
500
- setMobileActiveState(false);
561
+ var menuButtonKeydown = function menuButtonKeydown(event) {
562
+ (event.code === 'Enter' || event.code === 'Space') && toggle(event);
501
563
  };
502
564
  var isOutsideClicked = function isOutsideClicked(event) {
503
565
  return rootMenuRef.current !== event.target && !rootMenuRef.current.contains(event.target) && menuButtonRef.current !== event.target && !menuButtonRef.current.contains(event.target);
504
566
  };
567
+ var getItemProp = function getItemProp(item, name) {
568
+ return item ? utils.ObjectUtils.getItemValue(item[name]) : undefined;
569
+ };
570
+ var getItemLabel = function getItemLabel(item) {
571
+ return getItemProp(item, 'label');
572
+ };
573
+ var isItemDisabled = function isItemDisabled(item) {
574
+ return getItemProp(item, 'disabled');
575
+ };
576
+ var isItemSeparator = function isItemSeparator(item) {
577
+ return getItemProp(item, 'separator');
578
+ };
579
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
580
+ return processedItem ? getItemLabel(processedItem.item) : undefined;
581
+ };
582
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
583
+ return processedItem && utils.ObjectUtils.isNotEmpty(processedItem.items);
584
+ };
585
+ var onFocus = function onFocus(event) {
586
+ setFocused(true);
587
+ setFocusedItemInfo(focusedItemInfo.index !== -1 ? focusedItemInfo : {
588
+ index: findFirstFocusedItemIndex(),
589
+ level: 0,
590
+ parentKey: ''
591
+ });
592
+ props.onFocus && props.onFocus(event);
593
+ };
594
+ var onBlur = function onBlur(event) {
595
+ setFocused(false);
596
+ setFocusedItemInfo({
597
+ index: -1,
598
+ level: 0,
599
+ parentKey: ''
600
+ });
601
+ searchValue.current = '';
602
+ setDirty(false);
603
+ props.onBlur && props.onBlur(event);
604
+ };
605
+ var onKeyDown = function onKeyDown(event) {
606
+ var metaKey = event.metaKey || event.ctrlKey;
607
+ var code = event.code;
608
+ switch (code) {
609
+ case 'ArrowDown':
610
+ onArrowDownKey(event);
611
+ break;
612
+ case 'ArrowUp':
613
+ onArrowUpKey(event);
614
+ break;
615
+ case 'ArrowLeft':
616
+ onArrowLeftKey(event);
617
+ break;
618
+ case 'ArrowRight':
619
+ onArrowRightKey(event);
620
+ break;
621
+ case 'Home':
622
+ onHomeKey(event);
623
+ break;
624
+ case 'End':
625
+ onEndKey(event);
626
+ break;
627
+ case 'Space':
628
+ onSpaceKey(event);
629
+ break;
630
+ case 'Enter':
631
+ onEnterKey(event);
632
+ break;
633
+ case 'Escape':
634
+ onEscapeKey();
635
+ break;
636
+ case 'Tab':
637
+ onTabKey(event);
638
+ break;
639
+ case 'PageDown':
640
+ case 'PageUp':
641
+ case 'Backspace':
642
+ case 'ShiftLeft':
643
+ case 'ShiftRight':
644
+ break;
645
+ default:
646
+ if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
647
+ searchItems(event, event.key);
648
+ }
649
+ break;
650
+ }
651
+ };
652
+ var onItemChange = function onItemChange(event) {
653
+ var processedItem = event.processedItem,
654
+ isFocus = event.isFocus;
655
+ if (utils.ObjectUtils.isEmpty(processedItem)) return;
656
+ var index = processedItem.index,
657
+ key = processedItem.key,
658
+ level = processedItem.level,
659
+ parentKey = processedItem.parentKey,
660
+ items = processedItem.items;
661
+ var grouped = utils.ObjectUtils.isNotEmpty(items);
662
+ var _activeItemPath = activeItemPath.filter(function (p) {
663
+ return p.parentKey !== parentKey && p.parentKey !== key;
664
+ });
665
+ grouped && _activeItemPath.push(processedItem);
666
+ setFocusedItemInfo({
667
+ index: index,
668
+ level: level,
669
+ parentKey: parentKey
670
+ });
671
+ setActiveItemPath(_activeItemPath);
672
+ grouped && setDirty(true);
673
+ isFocus && utils.DomHandler.focus(rootMenuRef.current);
674
+ };
675
+ var onItemClick = function onItemClick(event) {
676
+ var originalEvent = event.originalEvent,
677
+ processedItem = event.processedItem;
678
+ var grouped = isProccessedItemGroup(processedItem);
679
+ var root = utils.ObjectUtils.isEmpty(processedItem.parent);
680
+ var selected = isSelected(processedItem);
681
+ if (selected) {
682
+ var index = processedItem.index,
683
+ key = processedItem.key,
684
+ level = processedItem.level,
685
+ parentKey = processedItem.parentKey;
686
+ setActiveItemPath(activeItemPath.filter(function (p) {
687
+ return key !== p.key && key.startsWith(p.key);
688
+ }));
689
+ setFocusedItemInfo({
690
+ index: index,
691
+ level: level,
692
+ parentKey: parentKey
693
+ });
694
+ if (!grouped) {
695
+ setDirty(!root);
696
+ }
697
+ setTimeout(function () {
698
+ utils.DomHandler.focus(rootMenuRef.current);
699
+ if (grouped) {
700
+ setDirty(true);
701
+ }
702
+ }, 0);
703
+ } else {
704
+ if (grouped) {
705
+ utils.DomHandler.focus(rootMenuRef.current);
706
+ onItemChange({
707
+ originalEvent: originalEvent,
708
+ processedItem: processedItem
709
+ });
710
+ } else {
711
+ var rootProcessedItem = root ? processedItem : activeItemPath.find(function (p) {
712
+ return p.parentKey === '';
713
+ });
714
+ var rootProcessedItemIndex = rootProcessedItem ? rootProcessedItem.index : -1;
715
+ hide(originalEvent);
716
+ setFocusedItemInfo({
717
+ index: rootProcessedItemIndex,
718
+ parentKey: rootProcessedItem ? rootProcessedItem.parentKey : ''
719
+ });
720
+ setMobileActiveState(false);
721
+ }
722
+ }
723
+ };
724
+ var onItemMouseEnter = function onItemMouseEnter(event) {
725
+ if (!mobileActiveState && dirty) {
726
+ onItemChange(event);
727
+ }
728
+ };
729
+ var onArrowDownKey = function onArrowDownKey(event) {
730
+ var processedItem = visibleItems[focusedItemInfo.index];
731
+ var root = processedItem ? utils.ObjectUtils.isEmpty(processedItem.parent) : null;
732
+ if (root) {
733
+ var grouped = isProccessedItemGroup(processedItem);
734
+ if (grouped) {
735
+ onItemChange({
736
+ originalEvent: event,
737
+ processedItem: processedItem
738
+ });
739
+ setFocusedItemInfo({
740
+ index: -1,
741
+ parentKey: processedItem.key
742
+ });
743
+ setTimeout(function () {
744
+ return setFocusTrigger(true);
745
+ }, 0);
746
+ }
747
+ } else {
748
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
749
+ changeFocusedItemIndex(itemIndex);
750
+ }
751
+ event.preventDefault();
752
+ };
753
+ var onArrowUpKey = function onArrowUpKey(event) {
754
+ var processedItem = visibleItems[focusedItemInfo.index];
755
+ var root = utils.ObjectUtils.isEmpty(processedItem.parent);
756
+ if (root) {
757
+ var grouped = isProccessedItemGroup(processedItem);
758
+ if (grouped) {
759
+ onItemChange({
760
+ originalEvent: event,
761
+ processedItem: processedItem
762
+ });
763
+ setFocusedItemInfo({
764
+ index: -1,
765
+ parentKey: processedItem.key
766
+ });
767
+ reverseTrigger.current = true;
768
+ setTimeout(function () {
769
+ return setFocusTrigger(true);
770
+ }, 0);
771
+ }
772
+ } else {
773
+ var parentItem = activeItemPath.find(function (p) {
774
+ return p.key === processedItem.parentKey;
775
+ });
776
+ if (focusedItemInfo.index === 0 && parentItem && parentItem.parentKey === '') {
777
+ setFocusedItemInfo({
778
+ index: -1,
779
+ parentKey: parentItem ? parentItem.parentKey : ''
780
+ });
781
+ searchValue.current = '';
782
+ onArrowLeftKey(event);
783
+ } else {
784
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
785
+ changeFocusedItemIndex(itemIndex);
786
+ }
787
+ }
788
+ event.preventDefault();
789
+ };
790
+ var onArrowLeftKey = function onArrowLeftKey(event) {
791
+ var processedItem = visibleItems[focusedItemInfo.index];
792
+ var parentItem = processedItem ? activeItemPath.find(function (p) {
793
+ return p.key === processedItem.parentKey;
794
+ }) : null;
795
+ if (parentItem) {
796
+ onItemChange({
797
+ originalEvent: event,
798
+ processedItem: parentItem
799
+ });
800
+ setActiveItemPath(activeItemPath.filter(function (p) {
801
+ return p.key !== parentItem.key;
802
+ }));
803
+ } else {
804
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
805
+ changeFocusedItemIndex(itemIndex);
806
+ }
807
+ event.preventDefault();
808
+ };
809
+ var onArrowRightKey = function onArrowRightKey(event) {
810
+ var processedItem = visibleItems[focusedItemInfo.index];
811
+ var parentItem = processedItem ? activeItemPath.find(function (p) {
812
+ return p.key === processedItem.parentKey;
813
+ }) : null;
814
+ if (parentItem) {
815
+ var grouped = isProccessedItemGroup(processedItem);
816
+ if (grouped) {
817
+ onItemChange({
818
+ originalEvent: event,
819
+ processedItem: processedItem
820
+ });
821
+ setFocusedItemInfo({
822
+ index: -1,
823
+ parentKey: processedItem.key
824
+ });
825
+ setTimeout(function () {
826
+ return setFocusTrigger(true);
827
+ }, 0);
828
+ }
829
+ } else {
830
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
831
+ changeFocusedItemIndex(itemIndex);
832
+ }
833
+ event.preventDefault();
834
+ };
835
+ var onHomeKey = function onHomeKey(event) {
836
+ changeFocusedItemIndex(findFirstItemIndex());
837
+ event.preventDefault();
838
+ };
839
+ var onEndKey = function onEndKey(event) {
840
+ changeFocusedItemIndex(findLastItemIndex());
841
+ event.preventDefault();
842
+ };
843
+ var onEnterKey = function onEnterKey(event) {
844
+ if (focusedItemInfo.index !== -1) {
845
+ var element = utils.DomHandler.findSingle(rootMenuRef.current, "li[id=\"".concat("".concat(focusedItemId), "\"]"));
846
+ var anchorElement = element && utils.DomHandler.findSingle(element, 'a[data-pc-section="action"]');
847
+ anchorElement ? anchorElement.click() : element && element.click();
848
+ }
849
+ event.preventDefault();
850
+ };
851
+ var onSpaceKey = function onSpaceKey(event) {
852
+ onEnterKey(event);
853
+ };
854
+ var onEscapeKey = function onEscapeKey(event) {
855
+ hide(true);
856
+ setFocusedItemInfo({
857
+ focusedItemInfo: focusedItemInfo,
858
+ index: findFirstFocusedItemIndex()
859
+ });
860
+ };
861
+ var onTabKey = function onTabKey(event) {
862
+ if (focusedItemInfo.index !== -1) {
863
+ var processedItem = visibleItems[focusedItemInfo.index];
864
+ var grouped = isProccessedItemGroup(processedItem);
865
+ !grouped && onItemChange({
866
+ originalEvent: event,
867
+ processedItem: processedItem
868
+ });
869
+ }
870
+ hide();
871
+ };
872
+ var isItemMatched = function isItemMatched(processedItem) {
873
+ return isValidItem(processedItem) && getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
874
+ };
875
+ var isValidItem = function isValidItem(processedItem) {
876
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
877
+ };
878
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
879
+ return isValidItem(processedItem) && isSelected(processedItem);
880
+ };
881
+ var isSelected = function isSelected(processedItem) {
882
+ return activeItemPath.some(function (p) {
883
+ return p.key === processedItem.key;
884
+ });
885
+ };
886
+ var findFirstItemIndex = function findFirstItemIndex() {
887
+ return visibleItems.findIndex(function (processedItem) {
888
+ return isValidItem(processedItem);
889
+ });
890
+ };
891
+ var findLastItemIndex = function findLastItemIndex() {
892
+ return utils.ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
893
+ return isValidItem(processedItem);
894
+ });
895
+ };
896
+ var findNextItemIndex = function findNextItemIndex(index) {
897
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
898
+ return isValidItem(processedItem);
899
+ }) : -1;
900
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
901
+ };
902
+ var findPrevItemIndex = function findPrevItemIndex(index) {
903
+ var matchedItemIndex = index > 0 ? utils.ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
904
+ return isValidItem(processedItem);
905
+ }) : -1;
906
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
907
+ };
908
+ var findSelectedItemIndex = function findSelectedItemIndex() {
909
+ return visibleItems.findIndex(function (processedItem) {
910
+ return isValidSelectedItem(processedItem);
911
+ });
912
+ };
913
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
914
+ var selectedIndex = findSelectedItemIndex();
915
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
916
+ };
917
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
918
+ var selectedIndex = findSelectedItemIndex();
919
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
920
+ };
921
+ var searchItems = function searchItems(event, _char) {
922
+ searchValue.current = (searchValue.current || '') + _char;
923
+ var itemIndex = -1;
924
+ var matched = false;
925
+ if (focusedItemInfo.index !== -1) {
926
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
927
+ return isItemMatched(processedItem);
928
+ });
929
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
930
+ return isItemMatched(processedItem);
931
+ }) : itemIndex + focusedItemInfo.index;
932
+ } else {
933
+ itemIndex = visibleItems.findIndex(function (processedItem) {
934
+ return isItemMatched(processedItem);
935
+ });
936
+ }
937
+ if (itemIndex !== -1) {
938
+ matched = true;
939
+ }
940
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
941
+ itemIndex = findFirstFocusedItemIndex();
942
+ }
943
+ if (itemIndex !== -1) {
944
+ changeFocusedItemIndex(itemIndex);
945
+ }
946
+ if (searchTimeout.current) {
947
+ clearTimeout(searchTimeout.current);
948
+ }
949
+ searchTimeout.current = setTimeout(function () {
950
+ searchValue.current = '';
951
+ searchTimeout.current = null;
952
+ }, 500);
953
+ return matched;
954
+ };
955
+ var changeFocusedItemIndex = function changeFocusedItemIndex(index) {
956
+ if (focusedItemInfo.index !== index) {
957
+ setFocusedItemInfo(_objectSpread(_objectSpread({}, focusedItemInfo), {}, {
958
+ index: index
959
+ }));
960
+ scrollInView();
961
+ }
962
+ };
963
+ var scrollInView = function scrollInView() {
964
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
965
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
966
+ var element = utils.DomHandler.findSingle(rootMenuRef.current, "li[id=\"".concat(id, "\"]"));
967
+ if (element) {
968
+ element.scrollIntoView && element.scrollIntoView({
969
+ block: 'nearest',
970
+ inline: 'start'
971
+ });
972
+ }
973
+ };
974
+ var createProcessedItems = function createProcessedItems(items) {
975
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
976
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
977
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
978
+ var _processedItems = [];
979
+ items && items.forEach(function (item, index) {
980
+ var key = (parentKey !== '' ? parentKey + '_' : '') + index;
981
+ var newItem = {
982
+ item: item,
983
+ index: index,
984
+ level: level,
985
+ key: key,
986
+ parent: parent,
987
+ parentKey: parentKey
988
+ };
989
+ newItem['items'] = createProcessedItems(item.items, level + 1, newItem, key);
990
+ _processedItems.push(newItem);
991
+ });
992
+ return _processedItems;
993
+ };
505
994
  hooks.useMountEffect(function () {
506
995
  if (!idState) {
507
996
  setIdState(utils.UniqueComponentId());
@@ -509,13 +998,47 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
509
998
  });
510
999
  hooks.useUpdateEffect(function () {
511
1000
  if (mobileActiveState) {
1001
+ bindOutsideClickListener();
1002
+ bindResizeListener();
512
1003
  utils.ZIndexUtils.set('menu', rootMenuRef.current, context && context.autoZIndex || PrimeReact__default["default"].autoZIndex, context && context.zIndex['menu'] || PrimeReact__default["default"].zIndex['menu']);
513
- bindDocumentClickListener();
514
1004
  } else {
515
- unbindDocumentClickListener();
1005
+ unbindResizeListener();
1006
+ unbindOutsideClickListener();
516
1007
  utils.ZIndexUtils.clear(rootMenuRef.current);
517
1008
  }
518
1009
  }, [mobileActiveState]);
1010
+ hooks.useUpdateEffect(function () {
1011
+ var itemsToProcess = props.model || [];
1012
+ var processed = createProcessedItems(itemsToProcess, 0, null, '');
1013
+ setProcessedItems(processed);
1014
+ }, [props.model]);
1015
+ hooks.useUpdateEffect(function () {
1016
+ var processedItem = activeItemPath.find(function (p) {
1017
+ return p.key === focusedItemInfo.parentKey;
1018
+ });
1019
+ var _processedItems = processedItem ? processedItem.items : processedItems;
1020
+ setVisibleItems(_processedItems);
1021
+ }, [activeItemPath, focusedItemInfo, processedItems]);
1022
+ hooks.useUpdateEffect(function () {
1023
+ if (utils.ObjectUtils.isNotEmpty(activeItemPath)) {
1024
+ bindOutsideClickListener();
1025
+ bindResizeListener();
1026
+ } else {
1027
+ unbindOutsideClickListener();
1028
+ unbindResizeListener();
1029
+ }
1030
+ }, [activeItemPath]);
1031
+ hooks.useUpdateEffect(function () {
1032
+ if (focusTrigger) {
1033
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : reverseTrigger.current ? findLastItemIndex() : findFirstFocusedItemIndex();
1034
+ changeFocusedItemIndex(itemIndex);
1035
+ reverseTrigger.current = false;
1036
+ setFocusTrigger(false);
1037
+ }
1038
+ }, [focusTrigger]);
1039
+ hooks.useUpdateEffect(function () {
1040
+ setFocusedItemId(focusedItemInfo.index !== -1 ? "".concat(idState).concat(utils.ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null);
1041
+ }, [focusedItemInfo]);
519
1042
  hooks.useUnmountEffect(function () {
520
1043
  utils.ZIndexUtils.clear(rootMenuRef.current);
521
1044
  });
@@ -558,16 +1081,20 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
558
1081
  if (props.model && props.model.length < 1) {
559
1082
  return null;
560
1083
  }
561
- var buttonProps = utils.mergeProps({
1084
+ var buttonProps = utils.mergeProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
562
1085
  ref: menuButtonRef,
563
1086
  href: '#',
564
- role: 'button',
565
- tabIndex: 0,
566
- className: cx('button'),
567
- onClick: function onClick(e) {
568
- return toggle(e);
569
- }
570
- }, ptm('button'));
1087
+ tabIndex: '0',
1088
+ 'aria-haspopup': mobileActiveState && props.model && props.model.lentgh > 0 ? true : false,
1089
+ 'aria-expanded': mobileActiveState,
1090
+ 'aria-label': PrimeReact.ariaLabel('navigation'),
1091
+ 'aria-controls': idState,
1092
+ role: 'button'
1093
+ }, "tabIndex", 0), "className", cx('button')), "onKeyDown", function onKeyDown(e) {
1094
+ return menuButtonKeydown(e);
1095
+ }), "onClick", function onClick(e) {
1096
+ return toggle(e);
1097
+ }), ptm('button'));
571
1098
  var popupIconProps = utils.mergeProps(ptm('popupIcon'));
572
1099
  var icon = props.menuIcon || /*#__PURE__*/React__namespace.createElement(bars.BarsIcon, popupIconProps);
573
1100
  var menuIcon = utils.IconUtils.getJSXIcon(icon, _objectSpread({}, popupIconProps), {
@@ -585,19 +1112,27 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
585
1112
  var menuButton = createMenuButton();
586
1113
  var submenu = /*#__PURE__*/React__namespace.createElement(MenubarSub, {
587
1114
  hostName: "Menubar",
1115
+ ariaActivedescendant: focused ? focusedItemId : undefined,
1116
+ level: 0,
588
1117
  id: idState,
589
1118
  ref: rootMenuRef,
590
1119
  menuProps: props,
591
- model: props.model,
1120
+ model: processedItems,
1121
+ onLeafClick: onItemClick,
1122
+ onItemMouseEnter: onItemMouseEnter,
1123
+ onFocus: onFocus,
1124
+ onBlur: onBlur,
1125
+ onKeyDown: onKeyDown,
592
1126
  root: true,
593
- mobileActive: mobileActiveState,
594
- onLeafClick: onLeafClick,
1127
+ activeItemPath: activeItemPath,
1128
+ focusedItemId: focused ? focusedItemId : undefined,
595
1129
  submenuIcon: props.submenuIcon,
596
1130
  ptm: ptm,
597
1131
  cx: cx
598
1132
  });
599
1133
  var rootProps = utils.mergeProps({
600
1134
  id: props.id,
1135
+ ref: elementRef,
601
1136
  className: utils.classNames(props.className, cx('root', {
602
1137
  mobileActiveState: mobileActiveState
603
1138
  })),