primereact 10.2.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/accordion/accordion.cjs.js +83 -11
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.d.ts +1 -1
  4. package/accordion/accordion.esm.js +83 -11
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +81 -9
  7. package/accordion/accordion.min.js +1 -1
  8. package/api/api.cjs.js +24 -0
  9. package/api/api.cjs.min.js +1 -1
  10. package/api/api.d.ts +13 -246
  11. package/api/api.esm.js +24 -0
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +24 -0
  14. package/api/api.min.js +1 -1
  15. package/breadcrumb/breadcrumb.cjs.js +12 -6
  16. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  17. package/breadcrumb/breadcrumb.esm.js +12 -6
  18. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  19. package/breadcrumb/breadcrumb.js +12 -6
  20. package/breadcrumb/breadcrumb.min.js +1 -1
  21. package/calendar/calendar.cjs.js +6 -9
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.esm.js +6 -9
  24. package/calendar/calendar.esm.min.js +1 -1
  25. package/calendar/calendar.js +6 -9
  26. package/calendar/calendar.min.js +1 -1
  27. package/carousel/carousel.cjs.js +102 -8
  28. package/carousel/carousel.cjs.min.js +1 -1
  29. package/carousel/carousel.esm.js +103 -9
  30. package/carousel/carousel.esm.min.js +1 -1
  31. package/carousel/carousel.js +102 -8
  32. package/carousel/carousel.min.js +1 -1
  33. package/cascadeselect/cascadeselect.cjs.js +24 -5
  34. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  35. package/cascadeselect/cascadeselect.esm.js +25 -6
  36. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  37. package/cascadeselect/cascadeselect.js +25 -7
  38. package/cascadeselect/cascadeselect.min.js +1 -1
  39. package/chip/chip.cjs.js +0 -1
  40. package/chip/chip.cjs.min.js +1 -1
  41. package/chip/chip.esm.js +0 -1
  42. package/chip/chip.esm.min.js +1 -1
  43. package/chip/chip.js +0 -1
  44. package/chip/chip.min.js +1 -1
  45. package/chips/chips.cjs.js +1 -2
  46. package/chips/chips.cjs.min.js +1 -1
  47. package/chips/chips.esm.js +1 -2
  48. package/chips/chips.esm.min.js +1 -1
  49. package/chips/chips.js +1 -2
  50. package/chips/chips.min.js +1 -1
  51. package/confirmdialog/confirmdialog.cjs.js +13 -8
  52. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  53. package/confirmdialog/confirmdialog.esm.js +13 -8
  54. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  55. package/confirmdialog/confirmdialog.js +13 -8
  56. package/confirmdialog/confirmdialog.min.js +1 -1
  57. package/confirmpopup/confirmpopup.cjs.js +57 -36
  58. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  59. package/confirmpopup/confirmpopup.d.ts +29 -0
  60. package/confirmpopup/confirmpopup.esm.js +57 -36
  61. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  62. package/confirmpopup/confirmpopup.js +57 -36
  63. package/confirmpopup/confirmpopup.min.js +1 -1
  64. package/contextmenu/contextmenu.cjs.js +640 -98
  65. package/contextmenu/contextmenu.cjs.min.js +1 -1
  66. package/contextmenu/contextmenu.d.ts +22 -0
  67. package/contextmenu/contextmenu.esm.js +640 -98
  68. package/contextmenu/contextmenu.esm.min.js +1 -1
  69. package/contextmenu/contextmenu.js +640 -98
  70. package/contextmenu/contextmenu.min.js +1 -1
  71. package/core/core.js +596 -130
  72. package/core/core.min.js +35 -35
  73. package/datatable/datatable.cjs.js +4 -7
  74. package/datatable/datatable.cjs.min.js +1 -1
  75. package/datatable/datatable.d.ts +1 -1
  76. package/datatable/datatable.esm.js +4 -7
  77. package/datatable/datatable.esm.min.js +1 -1
  78. package/datatable/datatable.js +4 -7
  79. package/datatable/datatable.min.js +1 -1
  80. package/dialog/dialog.cjs.js +86 -38
  81. package/dialog/dialog.cjs.min.js +1 -1
  82. package/dialog/dialog.d.ts +59 -0
  83. package/dialog/dialog.esm.js +86 -38
  84. package/dialog/dialog.esm.min.js +1 -1
  85. package/dialog/dialog.js +86 -38
  86. package/dialog/dialog.min.js +1 -1
  87. package/divider/divider.cjs.js +1 -0
  88. package/divider/divider.cjs.min.js +1 -1
  89. package/divider/divider.esm.js +1 -0
  90. package/divider/divider.esm.min.js +1 -1
  91. package/divider/divider.js +1 -0
  92. package/divider/divider.min.js +1 -1
  93. package/dock/dock.cjs.js +169 -33
  94. package/dock/dock.cjs.min.js +1 -1
  95. package/dock/dock.d.ts +15 -0
  96. package/dock/dock.esm.js +170 -34
  97. package/dock/dock.esm.min.js +1 -1
  98. package/dock/dock.js +169 -33
  99. package/dock/dock.min.js +1 -1
  100. package/dropdown/dropdown.cjs.js +25 -2
  101. package/dropdown/dropdown.cjs.min.js +1 -1
  102. package/dropdown/dropdown.esm.js +25 -2
  103. package/dropdown/dropdown.esm.min.js +1 -1
  104. package/dropdown/dropdown.js +26 -4
  105. package/dropdown/dropdown.min.js +1 -1
  106. package/fieldset/fieldset.cjs.js +12 -5
  107. package/fieldset/fieldset.cjs.min.js +1 -1
  108. package/fieldset/fieldset.esm.js +12 -5
  109. package/fieldset/fieldset.esm.min.js +1 -1
  110. package/fieldset/fieldset.js +12 -5
  111. package/fieldset/fieldset.min.js +1 -1
  112. package/fileupload/fileupload.cjs.js +14 -6
  113. package/fileupload/fileupload.cjs.min.js +1 -1
  114. package/fileupload/fileupload.d.ts +17 -1
  115. package/fileupload/fileupload.esm.js +14 -6
  116. package/fileupload/fileupload.esm.min.js +1 -1
  117. package/fileupload/fileupload.js +14 -6
  118. package/fileupload/fileupload.min.js +1 -1
  119. package/galleria/galleria.cjs.js +222 -42
  120. package/galleria/galleria.cjs.min.js +1 -1
  121. package/galleria/galleria.esm.js +224 -44
  122. package/galleria/galleria.esm.min.js +1 -1
  123. package/galleria/galleria.js +222 -42
  124. package/galleria/galleria.min.js +1 -1
  125. package/hooks/hooks.cjs.js +4 -2
  126. package/hooks/hooks.cjs.min.js +1 -1
  127. package/hooks/hooks.esm.js +4 -2
  128. package/hooks/hooks.esm.min.js +1 -1
  129. package/hooks/hooks.js +4 -2
  130. package/hooks/hooks.min.js +1 -1
  131. package/icons/arrowdown/index.cjs.js +12 -1
  132. package/icons/arrowdown/index.cjs.min.js +1 -1
  133. package/icons/arrowdown/index.esm.js +12 -1
  134. package/icons/arrowdown/index.esm.min.js +1 -1
  135. package/icons/arrowdown/index.js +12 -1
  136. package/icons/arrowdown/index.min.js +1 -1
  137. package/icons/arrowup/index.cjs.js +12 -1
  138. package/icons/arrowup/index.cjs.min.js +1 -1
  139. package/icons/arrowup/index.esm.js +12 -1
  140. package/icons/arrowup/index.esm.min.js +1 -1
  141. package/icons/arrowup/index.js +12 -1
  142. package/icons/arrowup/index.min.js +1 -1
  143. package/icons/ban/index.cjs.js +12 -1
  144. package/icons/ban/index.cjs.min.js +1 -1
  145. package/icons/ban/index.esm.js +12 -1
  146. package/icons/ban/index.esm.min.js +1 -1
  147. package/icons/ban/index.js +12 -1
  148. package/icons/ban/index.min.js +1 -1
  149. package/icons/download/index.cjs.js +12 -1
  150. package/icons/download/index.cjs.min.js +1 -1
  151. package/icons/download/index.esm.js +12 -1
  152. package/icons/download/index.esm.min.js +1 -1
  153. package/icons/download/index.js +12 -1
  154. package/icons/download/index.min.js +1 -1
  155. package/icons/exclamationtriangle/index.cjs.js +12 -1
  156. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  157. package/icons/exclamationtriangle/index.esm.js +12 -1
  158. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  159. package/icons/exclamationtriangle/index.js +12 -1
  160. package/icons/exclamationtriangle/index.min.js +1 -1
  161. package/icons/eyeslash/index.cjs.js +12 -1
  162. package/icons/eyeslash/index.cjs.min.js +1 -1
  163. package/icons/eyeslash/index.esm.js +12 -1
  164. package/icons/eyeslash/index.esm.min.js +1 -1
  165. package/icons/eyeslash/index.js +12 -1
  166. package/icons/eyeslash/index.min.js +1 -1
  167. package/icons/filter/index.cjs.js +12 -1
  168. package/icons/filter/index.cjs.min.js +1 -1
  169. package/icons/filter/index.esm.js +12 -1
  170. package/icons/filter/index.esm.min.js +1 -1
  171. package/icons/filter/index.js +12 -1
  172. package/icons/filter/index.min.js +1 -1
  173. package/icons/filterslash/index.cjs.js +12 -1
  174. package/icons/filterslash/index.cjs.min.js +1 -1
  175. package/icons/filterslash/index.esm.js +12 -1
  176. package/icons/filterslash/index.esm.min.js +1 -1
  177. package/icons/filterslash/index.js +12 -1
  178. package/icons/filterslash/index.min.js +1 -1
  179. package/icons/infocircle/index.cjs.js +12 -1
  180. package/icons/infocircle/index.cjs.min.js +1 -1
  181. package/icons/infocircle/index.esm.js +12 -1
  182. package/icons/infocircle/index.esm.min.js +1 -1
  183. package/icons/infocircle/index.js +12 -1
  184. package/icons/infocircle/index.min.js +1 -1
  185. package/icons/pencil/index.cjs.js +12 -1
  186. package/icons/pencil/index.cjs.min.js +1 -1
  187. package/icons/pencil/index.esm.js +12 -1
  188. package/icons/pencil/index.esm.min.js +1 -1
  189. package/icons/pencil/index.js +12 -1
  190. package/icons/pencil/index.min.js +1 -1
  191. package/icons/plus/index.cjs.js +12 -1
  192. package/icons/plus/index.cjs.min.js +1 -1
  193. package/icons/plus/index.esm.js +12 -1
  194. package/icons/plus/index.esm.min.js +1 -1
  195. package/icons/plus/index.js +12 -1
  196. package/icons/plus/index.min.js +1 -1
  197. package/icons/refresh/index.cjs.js +12 -1
  198. package/icons/refresh/index.cjs.min.js +1 -1
  199. package/icons/refresh/index.esm.js +12 -1
  200. package/icons/refresh/index.esm.min.js +1 -1
  201. package/icons/refresh/index.js +12 -1
  202. package/icons/refresh/index.min.js +1 -1
  203. package/icons/search/index.cjs.js +12 -1
  204. package/icons/search/index.cjs.min.js +1 -1
  205. package/icons/search/index.esm.js +12 -1
  206. package/icons/search/index.esm.min.js +1 -1
  207. package/icons/search/index.js +12 -1
  208. package/icons/search/index.min.js +1 -1
  209. package/icons/searchminus/index.cjs.js +12 -1
  210. package/icons/searchminus/index.cjs.min.js +1 -1
  211. package/icons/searchminus/index.esm.js +12 -1
  212. package/icons/searchminus/index.esm.min.js +1 -1
  213. package/icons/searchminus/index.js +12 -1
  214. package/icons/searchminus/index.min.js +1 -1
  215. package/icons/searchplus/index.cjs.js +12 -1
  216. package/icons/searchplus/index.cjs.min.js +1 -1
  217. package/icons/searchplus/index.esm.js +12 -1
  218. package/icons/searchplus/index.esm.min.js +1 -1
  219. package/icons/searchplus/index.js +12 -1
  220. package/icons/searchplus/index.min.js +1 -1
  221. package/icons/sortalt/index.cjs.js +12 -1
  222. package/icons/sortalt/index.cjs.min.js +1 -1
  223. package/icons/sortalt/index.esm.js +12 -1
  224. package/icons/sortalt/index.esm.min.js +1 -1
  225. package/icons/sortalt/index.js +12 -1
  226. package/icons/sortalt/index.min.js +1 -1
  227. package/icons/sortamountdown/index.cjs.js +12 -1
  228. package/icons/sortamountdown/index.cjs.min.js +1 -1
  229. package/icons/sortamountdown/index.esm.js +12 -1
  230. package/icons/sortamountdown/index.esm.min.js +1 -1
  231. package/icons/sortamountdown/index.js +12 -1
  232. package/icons/sortamountdown/index.min.js +1 -1
  233. package/icons/sortamountupalt/index.cjs.js +12 -1
  234. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  235. package/icons/sortamountupalt/index.esm.js +12 -1
  236. package/icons/sortamountupalt/index.esm.min.js +1 -1
  237. package/icons/sortamountupalt/index.js +12 -1
  238. package/icons/sortamountupalt/index.min.js +1 -1
  239. package/icons/spinner/index.cjs.js +12 -1
  240. package/icons/spinner/index.cjs.min.js +1 -1
  241. package/icons/spinner/index.esm.js +12 -1
  242. package/icons/spinner/index.esm.min.js +1 -1
  243. package/icons/spinner/index.js +12 -1
  244. package/icons/spinner/index.min.js +1 -1
  245. package/icons/star/index.cjs.js +12 -1
  246. package/icons/star/index.cjs.min.js +1 -1
  247. package/icons/star/index.esm.js +12 -1
  248. package/icons/star/index.esm.min.js +1 -1
  249. package/icons/star/index.js +12 -1
  250. package/icons/star/index.min.js +1 -1
  251. package/icons/starfill/index.cjs.js +12 -1
  252. package/icons/starfill/index.cjs.min.js +1 -1
  253. package/icons/starfill/index.esm.js +12 -1
  254. package/icons/starfill/index.esm.min.js +1 -1
  255. package/icons/starfill/index.js +12 -1
  256. package/icons/starfill/index.min.js +1 -1
  257. package/icons/thlarge/index.cjs.js +12 -1
  258. package/icons/thlarge/index.cjs.min.js +1 -1
  259. package/icons/thlarge/index.esm.js +12 -1
  260. package/icons/thlarge/index.esm.min.js +1 -1
  261. package/icons/thlarge/index.js +12 -1
  262. package/icons/thlarge/index.min.js +1 -1
  263. package/icons/timescircle/index.cjs.js +12 -1
  264. package/icons/timescircle/index.cjs.min.js +1 -1
  265. package/icons/timescircle/index.esm.js +12 -1
  266. package/icons/timescircle/index.esm.min.js +1 -1
  267. package/icons/timescircle/index.js +12 -1
  268. package/icons/timescircle/index.min.js +1 -1
  269. package/icons/trash/index.cjs.js +12 -1
  270. package/icons/trash/index.cjs.min.js +1 -1
  271. package/icons/trash/index.esm.js +12 -1
  272. package/icons/trash/index.esm.min.js +1 -1
  273. package/icons/trash/index.js +12 -1
  274. package/icons/trash/index.min.js +1 -1
  275. package/icons/undo/index.cjs.js +12 -1
  276. package/icons/undo/index.cjs.min.js +1 -1
  277. package/icons/undo/index.esm.js +12 -1
  278. package/icons/undo/index.esm.min.js +1 -1
  279. package/icons/undo/index.js +12 -1
  280. package/icons/undo/index.min.js +1 -1
  281. package/icons/upload/index.cjs.js +12 -1
  282. package/icons/upload/index.cjs.min.js +1 -1
  283. package/icons/upload/index.esm.js +12 -1
  284. package/icons/upload/index.esm.min.js +1 -1
  285. package/icons/upload/index.js +12 -1
  286. package/icons/upload/index.min.js +1 -1
  287. package/icons/windowmaximize/index.cjs.js +12 -1
  288. package/icons/windowmaximize/index.cjs.min.js +1 -1
  289. package/icons/windowmaximize/index.esm.js +12 -1
  290. package/icons/windowmaximize/index.esm.min.js +1 -1
  291. package/icons/windowmaximize/index.js +12 -1
  292. package/icons/windowmaximize/index.min.js +1 -1
  293. package/icons/windowminimize/index.cjs.js +12 -1
  294. package/icons/windowminimize/index.cjs.min.js +1 -1
  295. package/icons/windowminimize/index.esm.js +12 -1
  296. package/icons/windowminimize/index.esm.min.js +1 -1
  297. package/icons/windowminimize/index.js +12 -1
  298. package/icons/windowminimize/index.min.js +1 -1
  299. package/image/image.cjs.js +71 -16
  300. package/image/image.cjs.min.js +1 -1
  301. package/image/image.esm.js +71 -16
  302. package/image/image.esm.min.js +1 -1
  303. package/image/image.js +71 -16
  304. package/image/image.min.js +1 -1
  305. package/megamenu/megamenu.cjs.js +787 -168
  306. package/megamenu/megamenu.cjs.min.js +1 -1
  307. package/megamenu/megamenu.d.ts +14 -0
  308. package/megamenu/megamenu.esm.js +790 -171
  309. package/megamenu/megamenu.esm.min.js +1 -1
  310. package/megamenu/megamenu.js +787 -168
  311. package/megamenu/megamenu.min.js +1 -1
  312. package/mention/mention.cjs.js +10 -9
  313. package/mention/mention.cjs.min.js +1 -1
  314. package/mention/mention.esm.js +11 -10
  315. package/mention/mention.esm.min.js +1 -1
  316. package/mention/mention.js +10 -9
  317. package/mention/mention.min.js +1 -1
  318. package/menu/menu.cjs.js +214 -68
  319. package/menu/menu.cjs.min.js +1 -1
  320. package/menu/menu.d.ts +14 -0
  321. package/menu/menu.esm.js +214 -68
  322. package/menu/menu.esm.min.js +1 -1
  323. package/menu/menu.js +214 -68
  324. package/menu/menu.min.js +1 -1
  325. package/menubar/menubar.cjs.js +714 -179
  326. package/menubar/menubar.cjs.min.js +1 -1
  327. package/menubar/menubar.d.ts +18 -0
  328. package/menubar/menubar.esm.js +717 -182
  329. package/menubar/menubar.esm.min.js +1 -1
  330. package/menubar/menubar.js +714 -179
  331. package/menubar/menubar.min.js +1 -1
  332. package/message/message.cjs.js +2 -1
  333. package/message/message.cjs.min.js +1 -1
  334. package/message/message.esm.js +2 -1
  335. package/message/message.esm.min.js +1 -1
  336. package/message/message.js +2 -1
  337. package/message/message.min.js +1 -1
  338. package/messages/messages.cjs.js +4 -2
  339. package/messages/messages.cjs.min.js +1 -1
  340. package/messages/messages.esm.js +4 -2
  341. package/messages/messages.esm.min.js +1 -1
  342. package/messages/messages.js +4 -2
  343. package/messages/messages.min.js +1 -1
  344. package/multiselect/multiselect.cjs.js +11 -5
  345. package/multiselect/multiselect.cjs.min.js +1 -1
  346. package/multiselect/multiselect.esm.js +11 -5
  347. package/multiselect/multiselect.esm.min.js +1 -1
  348. package/multiselect/multiselect.js +12 -7
  349. package/multiselect/multiselect.min.js +1 -1
  350. package/orderlist/orderlist.cjs.js +259 -104
  351. package/orderlist/orderlist.cjs.min.js +1 -1
  352. package/orderlist/orderlist.d.ts +8 -0
  353. package/orderlist/orderlist.esm.js +260 -105
  354. package/orderlist/orderlist.esm.min.js +1 -1
  355. package/orderlist/orderlist.js +259 -104
  356. package/orderlist/orderlist.min.js +1 -1
  357. package/overlaypanel/overlaypanel.cjs.js +4 -2
  358. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  359. package/overlaypanel/overlaypanel.esm.js +4 -2
  360. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  361. package/overlaypanel/overlaypanel.js +4 -2
  362. package/overlaypanel/overlaypanel.min.js +1 -1
  363. package/package.json +1 -1
  364. package/panel/panel.cjs.js +22 -19
  365. package/panel/panel.cjs.min.js +1 -1
  366. package/panel/panel.esm.js +22 -19
  367. package/panel/panel.esm.min.js +1 -1
  368. package/panel/panel.js +22 -19
  369. package/panel/panel.min.js +1 -1
  370. package/panelmenu/panelmenu.cjs.js +775 -196
  371. package/panelmenu/panelmenu.cjs.min.js +1 -1
  372. package/panelmenu/panelmenu.d.ts +15 -0
  373. package/panelmenu/panelmenu.esm.js +776 -197
  374. package/panelmenu/panelmenu.esm.min.js +1 -1
  375. package/panelmenu/panelmenu.js +775 -196
  376. package/panelmenu/panelmenu.min.js +1 -1
  377. package/passthrough/tailwind/index.cjs.js +5 -4
  378. package/passthrough/tailwind/index.cjs.min.js +1 -1
  379. package/passthrough/tailwind/index.esm.js +5 -4
  380. package/passthrough/tailwind/index.esm.min.js +1 -1
  381. package/passthrough/tailwind/index.js +5 -4
  382. package/passthrough/tailwind/index.min.js +1 -1
  383. package/password/password.cjs.js +1 -1
  384. package/password/password.cjs.min.js +1 -1
  385. package/password/password.esm.js +1 -1
  386. package/password/password.esm.min.js +1 -1
  387. package/password/password.js +1 -1
  388. package/password/password.min.js +1 -1
  389. package/primereact.all.cjs.js +9489 -5244
  390. package/primereact.all.cjs.min.js +1 -1
  391. package/primereact.all.esm.js +9489 -5244
  392. package/primereact.all.esm.min.js +1 -1
  393. package/primereact.all.js +9489 -5244
  394. package/primereact.all.min.js +1 -1
  395. package/radiobutton/radiobutton.cjs.js +3 -2
  396. package/radiobutton/radiobutton.cjs.min.js +1 -1
  397. package/radiobutton/radiobutton.esm.js +3 -2
  398. package/radiobutton/radiobutton.esm.min.js +1 -1
  399. package/radiobutton/radiobutton.js +3 -2
  400. package/radiobutton/radiobutton.min.js +1 -1
  401. package/resources/themes/arya-blue/theme.css +844 -789
  402. package/resources/themes/arya-green/theme.css +844 -789
  403. package/resources/themes/arya-orange/theme.css +844 -789
  404. package/resources/themes/arya-purple/theme.css +844 -789
  405. package/resources/themes/bootstrap4-dark-blue/theme.css +654 -600
  406. package/resources/themes/bootstrap4-dark-purple/theme.css +654 -600
  407. package/resources/themes/bootstrap4-light-blue/theme.css +658 -604
  408. package/resources/themes/bootstrap4-light-purple/theme.css +658 -604
  409. package/resources/themes/fluent-light/theme.css +661 -622
  410. package/resources/themes/lara-dark-amber/theme.css +665 -625
  411. package/resources/themes/lara-dark-blue/theme.css +665 -625
  412. package/resources/themes/lara-dark-cyan/theme.css +665 -625
  413. package/resources/themes/lara-dark-green/theme.css +665 -625
  414. package/resources/themes/lara-dark-indigo/theme.css +665 -625
  415. package/resources/themes/lara-dark-pink/theme.css +665 -625
  416. package/resources/themes/lara-dark-purple/theme.css +665 -625
  417. package/resources/themes/lara-dark-teal/theme.css +665 -625
  418. package/resources/themes/lara-light-amber/theme.css +758 -716
  419. package/resources/themes/lara-light-blue/theme.css +992 -950
  420. package/resources/themes/lara-light-cyan/theme.css +758 -716
  421. package/resources/themes/lara-light-green/theme.css +797 -755
  422. package/resources/themes/lara-light-indigo/theme.css +1008 -966
  423. package/resources/themes/lara-light-pink/theme.css +758 -716
  424. package/resources/themes/lara-light-purple/theme.css +1008 -966
  425. package/resources/themes/lara-light-teal/theme.css +758 -716
  426. package/resources/themes/luna-amber/theme.css +931 -877
  427. package/resources/themes/luna-blue/theme.css +931 -877
  428. package/resources/themes/luna-green/theme.css +931 -877
  429. package/resources/themes/luna-pink/theme.css +931 -877
  430. package/resources/themes/md-dark-deeppurple/theme.css +900 -941
  431. package/resources/themes/md-dark-indigo/theme.css +905 -946
  432. package/resources/themes/md-light-deeppurple/theme.css +862 -903
  433. package/resources/themes/md-light-indigo/theme.css +862 -903
  434. package/resources/themes/mdc-dark-deeppurple/theme.css +900 -941
  435. package/resources/themes/mdc-dark-indigo/theme.css +905 -946
  436. package/resources/themes/mdc-light-deeppurple/theme.css +862 -903
  437. package/resources/themes/mdc-light-indigo/theme.css +862 -903
  438. package/resources/themes/mira/theme.css +1546 -1525
  439. package/resources/themes/nano/theme.css +696 -639
  440. package/resources/themes/nova/theme.css +690 -637
  441. package/resources/themes/nova-accent/theme.css +692 -636
  442. package/resources/themes/nova-alt/theme.css +690 -637
  443. package/resources/themes/rhea/theme.css +865 -809
  444. package/resources/themes/saga-blue/theme.css +883 -828
  445. package/resources/themes/saga-green/theme.css +883 -828
  446. package/resources/themes/saga-orange/theme.css +883 -828
  447. package/resources/themes/saga-purple/theme.css +883 -828
  448. package/resources/themes/soho-dark/theme.css +684 -635
  449. package/resources/themes/soho-light/theme.css +672 -625
  450. package/resources/themes/tailwind-light/theme.css +1354 -1299
  451. package/resources/themes/vela-blue/theme.css +852 -797
  452. package/resources/themes/vela-green/theme.css +852 -797
  453. package/resources/themes/vela-orange/theme.css +852 -797
  454. package/resources/themes/vela-purple/theme.css +852 -797
  455. package/resources/themes/viva-dark/theme.css +647 -613
  456. package/resources/themes/viva-light/theme.css +728 -694
  457. package/ripple/ripple.cjs.js +65 -2
  458. package/ripple/ripple.cjs.min.js +1 -1
  459. package/ripple/ripple.esm.js +65 -2
  460. package/ripple/ripple.esm.min.js +1 -1
  461. package/ripple/ripple.js +65 -2
  462. package/ripple/ripple.min.js +1 -1
  463. package/scrollpanel/scrollpanel.cjs.js +183 -3
  464. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  465. package/scrollpanel/scrollpanel.esm.js +184 -4
  466. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  467. package/scrollpanel/scrollpanel.js +183 -3
  468. package/scrollpanel/scrollpanel.min.js +1 -1
  469. package/sidebar/sidebar.cjs.js +58 -45
  470. package/sidebar/sidebar.cjs.min.js +1 -1
  471. package/sidebar/sidebar.d.ts +23 -1
  472. package/sidebar/sidebar.esm.js +58 -45
  473. package/sidebar/sidebar.esm.min.js +1 -1
  474. package/sidebar/sidebar.js +58 -45
  475. package/sidebar/sidebar.min.js +1 -1
  476. package/slidemenu/slidemenu.cjs.js +4 -2
  477. package/slidemenu/slidemenu.cjs.min.js +1 -1
  478. package/slidemenu/slidemenu.esm.js +4 -2
  479. package/slidemenu/slidemenu.esm.min.js +1 -1
  480. package/slidemenu/slidemenu.js +4 -2
  481. package/slidemenu/slidemenu.min.js +1 -1
  482. package/slider/slider.cjs.js +1 -1
  483. package/slider/slider.cjs.min.js +1 -1
  484. package/slider/slider.esm.js +1 -1
  485. package/slider/slider.esm.min.js +1 -1
  486. package/slider/slider.js +1 -1
  487. package/slider/slider.min.js +1 -1
  488. package/speeddial/speeddial.cjs.js +264 -29
  489. package/speeddial/speeddial.cjs.min.js +1 -1
  490. package/speeddial/speeddial.esm.js +266 -31
  491. package/speeddial/speeddial.esm.min.js +1 -1
  492. package/speeddial/speeddial.js +264 -29
  493. package/speeddial/speeddial.min.js +1 -1
  494. package/splitbutton/splitbutton.cjs.js +1048 -267
  495. package/splitbutton/splitbutton.cjs.min.js +1 -1
  496. package/splitbutton/splitbutton.d.ts +4 -4
  497. package/splitbutton/splitbutton.esm.js +1049 -268
  498. package/splitbutton/splitbutton.esm.min.js +1 -1
  499. package/splitbutton/splitbutton.js +1048 -269
  500. package/splitbutton/splitbutton.min.js +1 -1
  501. package/splitter/splitter.cjs.js +103 -15
  502. package/splitter/splitter.cjs.min.js +1 -1
  503. package/splitter/splitter.d.ts +5 -0
  504. package/splitter/splitter.esm.js +103 -15
  505. package/splitter/splitter.esm.min.js +1 -1
  506. package/splitter/splitter.js +103 -15
  507. package/splitter/splitter.min.js +1 -1
  508. package/steps/steps.cjs.js +99 -13
  509. package/steps/steps.cjs.min.js +1 -1
  510. package/steps/steps.esm.js +100 -14
  511. package/steps/steps.esm.min.js +1 -1
  512. package/steps/steps.js +99 -13
  513. package/steps/steps.min.js +1 -1
  514. package/tabmenu/tabmenu.cjs.js +104 -10
  515. package/tabmenu/tabmenu.cjs.min.js +1 -1
  516. package/tabmenu/tabmenu.esm.js +104 -10
  517. package/tabmenu/tabmenu.esm.min.js +1 -1
  518. package/tabmenu/tabmenu.js +104 -10
  519. package/tabmenu/tabmenu.min.js +1 -1
  520. package/tabview/tabview.cjs.js +106 -12
  521. package/tabview/tabview.cjs.min.js +1 -1
  522. package/tabview/tabview.esm.js +106 -12
  523. package/tabview/tabview.esm.min.js +1 -1
  524. package/tabview/tabview.js +106 -12
  525. package/tabview/tabview.min.js +1 -1
  526. package/tieredmenu/tieredmenu.cjs.js +752 -274
  527. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  528. package/tieredmenu/tieredmenu.d.ts +10 -0
  529. package/tieredmenu/tieredmenu.esm.js +754 -276
  530. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  531. package/tieredmenu/tieredmenu.js +752 -274
  532. package/tieredmenu/tieredmenu.min.js +1 -1
  533. package/toast/toast.cjs.js +6 -1
  534. package/toast/toast.cjs.min.js +1 -1
  535. package/toast/toast.d.ts +35 -1
  536. package/toast/toast.esm.js +6 -1
  537. package/toast/toast.esm.min.js +1 -1
  538. package/toast/toast.js +6 -1
  539. package/toast/toast.min.js +1 -1
  540. package/tree/tree.cjs.js +51 -54
  541. package/tree/tree.cjs.min.js +1 -1
  542. package/tree/tree.esm.js +51 -54
  543. package/tree/tree.esm.min.js +1 -1
  544. package/tree/tree.js +51 -54
  545. package/tree/tree.min.js +1 -1
  546. package/treetable/treetable.cjs.js +11 -28
  547. package/treetable/treetable.cjs.min.js +1 -1
  548. package/treetable/treetable.esm.js +11 -28
  549. package/treetable/treetable.esm.min.js +1 -1
  550. package/treetable/treetable.js +11 -28
  551. package/treetable/treetable.min.js +1 -1
  552. package/utils/utils.cjs.js +12 -1
  553. package/utils/utils.cjs.min.js +1 -1
  554. package/utils/utils.esm.js +12 -1
  555. package/utils/utils.esm.min.js +1 -1
  556. package/utils/utils.js +12 -1
  557. package/utils/utils.min.js +1 -1
  558. package/web-types.json +267 -5
@@ -3,13 +3,15 @@ import * as React from 'react';
3
3
  import PrimeReact, { PrimeReactContext } from 'primereact/api';
4
4
  import { Button } from 'primereact/button';
5
5
  import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
6
- import { useOverlayListener, useMountEffect, useUnmountEffect as useUnmountEffect$1 } from 'primereact/hooks';
6
+ import { useUpdateEffect, useMatchMedia, useEventListener, useResizeListener, useMountEffect, useUnmountEffect } from 'primereact/hooks';
7
7
  import { ChevronDownIcon } from 'primereact/icons/chevrondown';
8
8
  import { OverlayService } from 'primereact/overlayservice';
9
9
  import { Tooltip } from 'primereact/tooltip';
10
- import { classNames, mergeProps, IconUtils, ObjectUtils, DomHandler, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
10
+ import { classNames, mergeProps, DomHandler, ObjectUtils, IconUtils, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
11
11
  import { CSSTransition } from 'primereact/csstransition';
12
12
  import { Portal } from 'primereact/portal';
13
+ import { AngleRightIcon } from 'primereact/icons/angleright';
14
+ import { Ripple } from 'primereact/ripple';
13
15
 
14
16
  function _extends() {
15
17
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -122,7 +124,7 @@ function _slicedToArray(arr, i) {
122
124
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
123
125
  }
124
126
 
125
- var classes = {
127
+ var classes$1 = {
126
128
  icon: 'p-button-icon p-c',
127
129
  root: function root(_ref) {
128
130
  var props = _ref.props,
@@ -152,13 +154,15 @@ var classes = {
152
154
  menuItem: 'p-menuitem',
153
155
  transition: 'p-connected-overlay'
154
156
  };
155
- var styles = "\n@layer primereact {\n .p-splitbutton {\n display: inline-flex;\n position: relative;\n }\n\n .p-splitbutton .p-splitbutton-defaultbutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button-outlined.p-button:hover {\n flex: 1 1 auto;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n }\n\n .p-splitbutton-menubutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-splitbutton .p-menu {\n min-width: 100%;\n }\n\n .p-fluid .p-splitbutton {\n display: flex;\n }\n}\n";
157
+ var styles$1 = "\n@layer primereact {\n .p-splitbutton {\n display: inline-flex;\n position: relative;\n }\n\n .p-splitbutton .p-splitbutton-defaultbutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button-outlined.p-button:hover {\n flex: 1 1 auto;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n }\n\n .p-splitbutton-menubutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-splitbutton .p-menu {\n min-width: 100%;\n }\n\n .p-fluid .p-splitbutton {\n display: flex;\n }\n}\n";
156
158
  var SplitButtonBase = ComponentBase.extend({
157
159
  defaultProps: {
158
160
  __TYPE: 'SplitButton',
159
161
  id: null,
160
162
  label: null,
161
163
  icon: null,
164
+ autoZIndex: false,
165
+ baseZIndex: 0,
162
166
  loading: false,
163
167
  loadingIcon: null,
164
168
  model: null,
@@ -189,248 +193,1063 @@ var SplitButtonBase = ComponentBase.extend({
189
193
  onHide: null,
190
194
  children: undefined
191
195
  },
196
+ css: {
197
+ classes: classes$1,
198
+ styles: styles$1
199
+ }
200
+ });
201
+
202
+ var classes = {
203
+ root: function root(_ref) {
204
+ var props = _ref.props,
205
+ context = _ref.context;
206
+ return classNames('p-tieredmenu p-component', {
207
+ 'p-tieredmenu-overlay': props.popup,
208
+ 'p-input-filled': context && context.inputStyle === 'filled' || PrimeReact.inputStyle === 'filled',
209
+ 'p-ripple-disabled': context && context.ripple === false || PrimeReact.ripple === false
210
+ }, props.className);
211
+ },
212
+ separator: 'p-menuitem-separator',
213
+ icon: function icon(_ref2) {
214
+ var _icon = _ref2._icon;
215
+ return classNames('p-menuitem-icon', _icon);
216
+ },
217
+ content: 'p-menuitem-content',
218
+ label: 'p-menuitem-text',
219
+ submenuIcon: 'p-submenu-icon',
220
+ action: 'p-menuitem-link',
221
+ menuitem: function menuitem(_ref3) {
222
+ var _className = _ref3._className,
223
+ active = _ref3.active,
224
+ focused = _ref3.focused,
225
+ disabled = _ref3.disabled;
226
+ return classNames('p-menuitem', {
227
+ 'p-menuitem-active p-highlight': active,
228
+ 'p-focus': focused,
229
+ 'p-disabled': disabled
230
+ }, _className);
231
+ },
232
+ menu: 'p-tieredmenu-root-list',
233
+ submenu: 'p-submenu-list',
234
+ transition: 'p-connected-overlay'
235
+ };
236
+ var inlineStyles = {
237
+ submenu: function submenu(_ref4) {
238
+ var props = _ref4.subProps;
239
+ return {
240
+ display: !props.root && props.parentActive ? 'block' : 'none'
241
+ };
242
+ }
243
+ };
244
+ var styles = "\n@layer primereact {\n .p-tieredmenu-overlay {\n position: absolute;\n }\n\n .p-tieredmenu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-tieredmenu .p-submenu-list {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n display: none;\n }\n\n .p-tieredmenu .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-tieredmenu .p-menuitem-text {\n line-height: 1;\n }\n\n .p-tieredmenu .p-menuitem {\n position: relative;\n }\n\n .p-tieredmenu .p-menuitem-link .p-submenu-icon {\n margin-left: auto;\n }\n\n .p-tieredmenu .p-menuitem-active > .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n\n .p-tieredmenu .p-menuitem-active > .p-submenu-list-flipped {\n left: -100%;\n }\n}\n";
245
+ var TieredMenuBase = ComponentBase.extend({
246
+ defaultProps: {
247
+ __TYPE: 'TieredMenu',
248
+ id: null,
249
+ model: null,
250
+ popup: false,
251
+ style: null,
252
+ className: null,
253
+ autoZIndex: true,
254
+ baseZIndex: 0,
255
+ breakpoint: undefined,
256
+ scrollHeight: '400px',
257
+ appendTo: null,
258
+ transitionOptions: null,
259
+ onShow: null,
260
+ onFocus: null,
261
+ onBlur: null,
262
+ onHide: null,
263
+ submenuIcon: null,
264
+ children: undefined
265
+ },
192
266
  css: {
193
267
  classes: classes,
194
- styles: styles
268
+ styles: styles,
269
+ inlineStyles: inlineStyles
195
270
  }
196
271
  });
197
272
 
198
273
  function ownKeys$2(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; }
199
274
  function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
200
- var SplitButtonItem = /*#__PURE__*/React.memo(function (props) {
275
+ var TieredMenuSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
276
+ var elementRef = React.useRef(null);
201
277
  var ptm = props.ptm,
202
- cx = props.cx;
203
- var getPTOptions = function getPTOptions(key, options) {
204
- return ptm(key, _objectSpread$2({
205
- hostName: props.hostName
206
- }, options));
278
+ cx = props.cx,
279
+ sx = props.sx;
280
+ var getPTOptions = function getPTOptions(item, key) {
281
+ return ptm(key, {
282
+ hostName: props.hostName,
283
+ context: {
284
+ active: isItemActive(item)
285
+ }
286
+ });
207
287
  };
208
- var onClick = function onClick(e) {
209
- if (props.menuitem.command) {
210
- props.menuitem.command({
211
- originalEvent: e,
212
- item: props.menuitem
213
- });
288
+ var position = function position() {
289
+ if (elementRef.current) {
290
+ var parentItem = elementRef.current.parentElement;
291
+ var containerOffset = DomHandler.getOffset(parentItem);
292
+ var viewport = DomHandler.getViewport();
293
+ var sublistWidth = elementRef.current.offsetParent ? elementRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(elementRef.current);
294
+ var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);
295
+ var top = parseInt(containerOffset.top, 10) + elementRef.current.offsetHeight - DomHandler.getWindowScrollTop();
296
+ if (top > viewport.height) {
297
+ elementRef.current.style.top = viewport.height - top + 'px';
298
+ } else {
299
+ elementRef.current.style.top = '0px';
300
+ }
301
+ if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {
302
+ DomHandler.addClass(elementRef.current, 'p-submenu-list-flipped');
303
+ }
214
304
  }
215
- if (props.onItemClick) {
216
- props.onItemClick(e);
305
+ };
306
+ var onItemClick = function onItemClick(event, processedItem) {
307
+ var item = processedItem.item;
308
+ if (isItemDisabled(processedItem)) {
309
+ event.preventDefault();
310
+ return;
311
+ }
312
+ if (!item.url) {
313
+ event.preventDefault();
314
+ }
315
+ if (item.command) {
316
+ item.command({
317
+ originalEvent: event,
318
+ item: item
319
+ });
217
320
  }
218
- e.preventDefault();
321
+ props.onItemClick && props.onItemClick({
322
+ originalEvent: event,
323
+ processedItem: processedItem
324
+ });
325
+ };
326
+ var getItemId = function getItemId(processedItem) {
327
+ return "".concat(props.menuId, "_").concat(processedItem.key);
328
+ };
329
+ var getItemProp = function getItemProp(processedItem, name, params) {
330
+ return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
331
+ };
332
+ var isItemActive = function isItemActive(processedItem) {
333
+ return props.activeItemPath.some(function (path) {
334
+ return path.key === processedItem.key;
335
+ });
336
+ };
337
+ var isItemVisible = function isItemVisible(processedItem) {
338
+ return getItemProp(processedItem, 'visible') !== false;
339
+ };
340
+ var isItemDisabled = function isItemDisabled(processedItem) {
341
+ return getItemProp(processedItem, 'disabled');
342
+ };
343
+ var isItemFocused = function isItemFocused(processedItem) {
344
+ return props.focusedItemId === getItemId(processedItem);
345
+ };
346
+ var isItemGroup = function isItemGroup(processedItem) {
347
+ return ObjectUtils.isNotEmpty(processedItem.items);
348
+ };
349
+ var onItemMouseEnter = function onItemMouseEnter(event, processedItem) {
350
+ props.onItemMouseEnter && props.onItemMouseEnter({
351
+ originalEvent: event,
352
+ processedItem: processedItem
353
+ });
354
+ };
355
+ var getAriaSetSize = function getAriaSetSize() {
356
+ return props.model.filter(function (processedItem) {
357
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
358
+ }).length;
219
359
  };
220
- var createSeparator = function createSeparator() {
360
+ var getAriaPosInset = function getAriaPosInset(index) {
361
+ return index - props.model.slice(0, index).filter(function (processedItem) {
362
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
363
+ }).length + 1;
364
+ };
365
+ useUpdateEffect(function () {
366
+ if (!props.root && props.parentActive && !props.isMobileMode) {
367
+ position();
368
+ }
369
+ }, [props.parentActive]);
370
+ React.useImperativeHandle(ref, function () {
371
+ return {
372
+ getElement: function getElement() {
373
+ return elementRef.current;
374
+ }
375
+ };
376
+ });
377
+ var createSeparator = function createSeparator(index) {
378
+ var key = 'separator_' + index;
221
379
  var separatorProps = mergeProps({
380
+ key: key,
222
381
  className: cx('separator'),
223
382
  role: 'separator'
224
- }, getPTOptions('separator'));
383
+ }, ptm('separator', {
384
+ hostName: props.hostName
385
+ }));
225
386
  return /*#__PURE__*/React.createElement("li", separatorProps);
226
387
  };
227
- var createMenuitem = function createMenuitem() {
228
- if (props.menuitem.visible === false) {
388
+ var createSubmenu = function createSubmenu(processedItem, index) {
389
+ if (isItemGroup(processedItem)) {
390
+ return /*#__PURE__*/React.createElement(TieredMenuSub, {
391
+ id: props.id + '_' + index,
392
+ menuProps: props.menuProps,
393
+ model: processedItem.items,
394
+ menuId: props.menuId,
395
+ ariaLabelledby: getItemId(item),
396
+ focusedItemId: props.focusedItemId,
397
+ activeItemPath: props.activeItemPath,
398
+ level: props.level + 1,
399
+ onItemClick: props.onItemClick,
400
+ popup: props.popup,
401
+ onItemMouseEnter: props.onItemMouseEnter,
402
+ parentActive: isItemActive(processedItem),
403
+ isMobileMode: props.isMobileMode,
404
+ submenuIcon: props.submenuIcon,
405
+ ptm: props.ptm,
406
+ cx: cx,
407
+ sx: sx
408
+ });
409
+ }
410
+ return null;
411
+ };
412
+ var createMenuItem = function createMenuItem(processedItem, index) {
413
+ if (isItemVisible(processedItem) === false) {
229
414
  return null;
230
415
  }
231
- var _props$menuitem = props.menuitem,
232
- disabled = _props$menuitem.disabled,
233
- _icon = _props$menuitem.icon,
234
- _label = _props$menuitem.label,
235
- template = _props$menuitem.template,
236
- url = _props$menuitem.url,
237
- target = _props$menuitem.target,
238
- _className = _props$menuitem.className;
239
- var className = classNames('p-menuitem-link', _className, {
240
- 'p-disabled': disabled
241
- });
416
+ var item = processedItem.item;
417
+ var style = getItemProp(processedItem, 'style');
418
+ var _icon = getItemProp(processedItem, 'icon');
419
+ var target = getItemProp(processedItem, 'target');
420
+ var url = getItemProp(processedItem, 'url');
421
+ var key = getItemId(processedItem);
422
+ var focused = isItemFocused(processedItem);
423
+ var active = isItemActive(processedItem);
424
+ var disabled = isItemDisabled(processedItem);
425
+ var grouped = isItemGroup(processedItem);
426
+ var linkClassName = classNames('p-menuitem-link');
242
427
  var iconClassName = classNames('p-menuitem-icon', _icon);
243
- var menuIconProps = mergeProps({
244
- className: cx('menuIcon')
245
- }, getPTOptions('menuIcon'));
246
- var icon = IconUtils.getJSXIcon(_icon, _objectSpread$2({}, menuIconProps), {
247
- props: props.splitButtonProps
428
+ var iconProps = mergeProps({
429
+ className: classNames(item.icon, 'p-menuitem-icon', 'icon')
430
+ }, getPTOptions(processedItem, 'icon'));
431
+ var icon = IconUtils.getJSXIcon(_icon, _objectSpread$2({}, iconProps), {
432
+ props: props.menuProps
433
+ });
434
+ var labelProps = mergeProps({
435
+ className: cx('label')
436
+ }, getPTOptions(processedItem, 'label'));
437
+ var label = item.label && /*#__PURE__*/React.createElement("span", labelProps, item.label);
438
+ var submenuIconClassName = 'p-submenu-icon';
439
+ var submenuIconProps = mergeProps({
440
+ className: cx('submenuIcon')
441
+ }, getPTOptions(processedItem, 'submenuIcon'));
442
+ var submenuIcon = grouped && IconUtils.getJSXIcon(props.submenuIcon || /*#__PURE__*/React.createElement(AngleRightIcon, submenuIconProps), _objectSpread$2({}, submenuIconProps), {
443
+ props: props.menuProps
248
444
  });
249
- var menuLabelProps = mergeProps({
250
- className: cx('menuLabel')
251
- }, getPTOptions('menuLabel'));
252
- var label = _label && /*#__PURE__*/React.createElement("span", menuLabelProps, _label);
253
- var anchorProps = mergeProps({
445
+ var submenu = createSubmenu(processedItem, index);
446
+ var actionProps = mergeProps({
254
447
  href: url || '#',
255
- role: 'menuitem',
256
- className: cx('anchor'),
257
- target: target,
258
- onClick: onClick,
259
- 'aria-label': _label
260
- }, getPTOptions('anchor'));
261
- var content = /*#__PURE__*/React.createElement("a", anchorProps, icon, label);
262
- if (template) {
448
+ 'aria-hidden': true,
449
+ tabIndex: '-1',
450
+ onFocus: function onFocus(event) {
451
+ return event.stopPropagation();
452
+ },
453
+ className: cx('action'),
454
+ target: target
455
+ }, getPTOptions(processedItem, 'action'));
456
+ var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));
457
+ if (item.template) {
263
458
  var defaultContentOptions = {
264
- onClick: onClick,
265
- className: className,
459
+ className: linkClassName,
266
460
  labelClassName: 'p-menuitem-text',
267
461
  iconClassName: iconClassName,
462
+ submenuIconClassName: submenuIconClassName,
268
463
  element: content,
269
- props: props
464
+ props: props,
465
+ active: active,
466
+ disabled: disabled
270
467
  };
271
- content = ObjectUtils.getJSXElement(template, props.menuitem, defaultContentOptions);
468
+ content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
272
469
  }
273
- var menuItemProps = mergeProps({
274
- className: cx('menuItem'),
275
- role: 'none'
276
- }, getPTOptions('menuItem'));
277
- return /*#__PURE__*/React.createElement("li", menuItemProps, content);
470
+ var contentProps = mergeProps({
471
+ onClick: function onClick(event) {
472
+ return onItemClick(event, processedItem);
473
+ },
474
+ onMouseEnter: function onMouseEnter(event) {
475
+ return onItemMouseEnter(event, processedItem);
476
+ },
477
+ className: cx('content')
478
+ }, getPTOptions(processedItem, 'content'));
479
+ var menuitemProps = mergeProps({
480
+ key: key,
481
+ id: key,
482
+ 'aria-label': item.label,
483
+ 'aria-disabled': disabled,
484
+ 'aria-expanded': grouped ? active : undefined,
485
+ 'aria-haspopup': grouped && !url ? 'menu' : undefined,
486
+ 'aria-level': props.level + 1,
487
+ 'aria-setsize': getAriaSetSize(),
488
+ 'aria-posinset': getAriaPosInset(index),
489
+ 'data-p-highlight': active,
490
+ 'data-p-disabled': disabled,
491
+ 'data-p-visited': focused,
492
+ className: cx('menuitem', {
493
+ className: item.className,
494
+ active: active,
495
+ focused: focused,
496
+ disabled: disabled
497
+ }),
498
+ style: style,
499
+ onMouseEnter: function onMouseEnter(event) {
500
+ return onItemMouseEnter(event, item);
501
+ },
502
+ role: 'menuitem'
503
+ }, getPTOptions(processedItem, 'menuitem'));
504
+ return /*#__PURE__*/React.createElement("li", menuitemProps, /*#__PURE__*/React.createElement("div", contentProps, content), submenu);
278
505
  };
279
- var createItem = function createItem() {
280
- return props.menuitem.separator ? createSeparator() : createMenuitem();
506
+ var createItem = function createItem(processedItem, index) {
507
+ return getItemProp(processedItem, 'separator') ? createSeparator(index) : createMenuItem(processedItem, index);
281
508
  };
282
- var item = createItem();
283
- return item;
284
- });
285
- SplitButtonItem.displayName = 'SplitButtonItem';
509
+ var createMenu = function createMenu() {
510
+ return props.model ? props.model.map(createItem) : null;
511
+ };
512
+ var submenu = createMenu();
513
+ var ptKey = props.root ? 'menu' : 'submenu';
514
+ var menuProps = mergeProps({
515
+ ref: elementRef,
516
+ id: props.id,
517
+ tabIndex: props.tabIndex,
518
+ onFocus: props.onFocus,
519
+ onBlur: props.onBlur,
520
+ onKeyDown: props.onKeyDown,
521
+ className: cx(ptKey, {
522
+ subProps: props
523
+ }),
524
+ style: sx(ptKey, {
525
+ subProps: props
526
+ }),
527
+ role: props.root ? 'menubar' : 'menu',
528
+ 'aria-label': props.ariaLabel,
529
+ 'aria-labelledby': props.ariaLabelledby,
530
+ 'aria-orientation': props.ariaOrientation,
531
+ 'aria-activedescendant': props.focusedItemId
532
+ }, ptm(ptKey, {
533
+ hostName: props.hostName
534
+ }));
535
+ return /*#__PURE__*/React.createElement("ul", menuProps, submenu);
536
+ }));
537
+ TieredMenuSub.displayName = 'TieredMenuSub';
286
538
 
287
539
  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; }
288
540
  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; }
289
- var SplitButtonPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {
290
- var ptm = props.ptm,
291
- cx = props.cx;
292
- var getPTOptions = function getPTOptions(key, options) {
293
- return ptm(key, _objectSpread$1({
294
- hostName: props.hostName
295
- }, options));
296
- };
297
- var createElement = function createElement() {
298
- var menuProps = mergeProps({
299
- ref: ref,
300
- className: cx('menu', {
301
- subProps: props
302
- }),
303
- style: props.menuStyle,
304
- onClick: props.onClick
305
- }, getPTOptions('menu'));
306
- var menuListProps = mergeProps({
307
- id: props.menuId,
308
- className: cx('menuList'),
309
- role: 'menu'
310
- }, getPTOptions('menuList'));
311
- var transitionProps = mergeProps({
312
- classNames: cx('transition'),
313
- "in": props["in"],
314
- timeout: {
315
- enter: 120,
316
- exit: 100
317
- },
318
- options: props.transitionOptions,
319
- unmountOnExit: true,
320
- onEnter: props.onEnter,
321
- onEntered: props.onEntered,
322
- onExit: props.onExit,
323
- onExited: props.onExited
324
- }, getPTOptions('transition'));
325
- return /*#__PURE__*/React.createElement(CSSTransition, _extends({
326
- nodeRef: ref
327
- }, transitionProps), /*#__PURE__*/React.createElement("div", menuProps, /*#__PURE__*/React.createElement("ul", menuListProps, props.children)));
328
- };
329
- var element = createElement();
330
- return /*#__PURE__*/React.createElement(Portal, {
331
- element: element,
332
- appendTo: props.appendTo
333
- });
334
- });
335
- SplitButtonPanel.displayName = 'SplitButtonPanel';
336
-
337
- var usePrevious = function usePrevious(newValue) {
338
- var ref = React.useRef(undefined);
339
- React.useEffect(function () {
340
- ref.current = newValue;
541
+ var TieredMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
542
+ var context = React.useContext(PrimeReactContext);
543
+ var props = TieredMenuBase.getProps(inProps, context);
544
+ var _React$useState = React.useState(props.id),
545
+ _React$useState2 = _slicedToArray(_React$useState, 2),
546
+ idState = _React$useState2[0],
547
+ setIdState = _React$useState2[1];
548
+ var _React$useState3 = React.useState(!props.popup),
549
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
550
+ visibleState = _React$useState4[0],
551
+ setVisibleState = _React$useState4[1];
552
+ var _React$useState5 = React.useState([]),
553
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
554
+ activeItemPath = _React$useState6[0],
555
+ setActiveItemPath = _React$useState6[1];
556
+ var _React$useState7 = React.useState(false),
557
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
558
+ focused = _React$useState8[0],
559
+ setFocused = _React$useState8[1];
560
+ var _React$useState9 = React.useState(null),
561
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
562
+ focusedItemId = _React$useState10[0],
563
+ setFocusedItemId = _React$useState10[1];
564
+ var _React$useState11 = React.useState({
565
+ index: -1,
566
+ level: 0,
567
+ parentKey: ''
568
+ }),
569
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
570
+ focusedItemInfo = _React$useState12[0],
571
+ setFocusedItemInfo = _React$useState12[1];
572
+ var _React$useState13 = React.useState(false),
573
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
574
+ dirty = _React$useState14[0],
575
+ setDirty = _React$useState14[1];
576
+ var _React$useState15 = React.useState([]),
577
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
578
+ processedItems = _React$useState16[0],
579
+ setProcessedItems = _React$useState16[1];
580
+ var _React$useState17 = React.useState([]),
581
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
582
+ visibleItems = _React$useState18[0],
583
+ setVisibleItems = _React$useState18[1];
584
+ var _React$useState19 = React.useState(false),
585
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
586
+ focusTrigger = _React$useState20[0],
587
+ setFocusTrigger = _React$useState20[1];
588
+ var _React$useState21 = React.useState(null),
589
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
590
+ attributeSelectorState = _React$useState22[0],
591
+ setAttributeSelectorState = _React$useState22[1];
592
+ var _TieredMenuBase$setMe = TieredMenuBase.setMetaData({
593
+ props: props,
594
+ state: {
595
+ id: idState,
596
+ visible: visibleState,
597
+ attributeSelector: attributeSelectorState
598
+ }
599
+ }),
600
+ ptm = _TieredMenuBase$setMe.ptm,
601
+ cx = _TieredMenuBase$setMe.cx,
602
+ sx = _TieredMenuBase$setMe.sx,
603
+ isUnstyled = _TieredMenuBase$setMe.isUnstyled;
604
+ useHandleStyle(TieredMenuBase.css.styles, isUnstyled, {
605
+ name: 'tieredmenu'
341
606
  });
342
- return ref.current;
343
- };
344
-
345
- /* eslint-disable */
346
- var useUnmountEffect = function useUnmountEffect(fn) {
347
- return React.useEffect(function () {
348
- return fn;
349
- }, []);
350
- };
351
- /* eslint-enable */
352
-
353
- /* eslint-disable */
354
- var useEventListener = function useEventListener(_ref) {
355
- var _ref$target = _ref.target,
356
- target = _ref$target === void 0 ? 'document' : _ref$target,
357
- type = _ref.type,
358
- listener = _ref.listener,
359
- options = _ref.options,
360
- _ref$when = _ref.when,
361
- when = _ref$when === void 0 ? true : _ref$when;
607
+ var containerRef = React.useRef(null);
608
+ var menuRef = React.useRef(null);
362
609
  var targetRef = React.useRef(null);
363
- var listenerRef = React.useRef(null);
364
- var prevOptions = usePrevious(options);
365
- var bind = function bind() {
366
- var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
367
- if (ObjectUtils.isNotEmpty(bindOptions.target)) {
368
- unbind();
369
- (bindOptions.when || when) && (targetRef.current = DomHandler.getTargetElement(bindOptions.target));
370
- }
371
- if (!listenerRef.current && targetRef.current) {
372
- listenerRef.current = function (event) {
373
- return listener && listener(event);
374
- };
375
- targetRef.current.addEventListener(type, listenerRef.current, options);
610
+ var relatedTarget = React.useRef(null);
611
+ var styleElementRef = React.useRef(null);
612
+ var searchValue = React.useRef(null);
613
+ var searchTimeout = React.useRef(null);
614
+ var isMobileMode = useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
615
+ var _useEventListener = useEventListener({
616
+ type: 'click',
617
+ listener: function listener(event) {
618
+ var isOutsideContainer = containerRef.current && !containerRef.current.contains(event.target);
619
+ var isOutsideTarget = props.popup ? !(targetRef.current && (targetRef.current === event.target || targetRef.current.contains(event.target))) : true;
620
+ if (isOutsideContainer && isOutsideTarget) {
621
+ hide(event, !props.popup);
622
+ }
623
+ }
624
+ }),
625
+ _useEventListener2 = _slicedToArray(_useEventListener, 2),
626
+ bindDocumentClickListener = _useEventListener2[0],
627
+ unbindDocumentClickListener = _useEventListener2[1];
628
+ var _useResizeListener = useResizeListener({
629
+ listener: function listener() {
630
+ !isMobileMode && hide(event, true);
631
+ }
632
+ }),
633
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
634
+ bindDocumentResizeListener = _useResizeListener2[0],
635
+ unbindDocumentResizeListener = _useResizeListener2[1];
636
+ var onPanelClick = function onPanelClick(event) {
637
+ if (props.popup) {
638
+ OverlayService.emit('overlay-click', {
639
+ originalEvent: event,
640
+ target: targetRef.current
641
+ });
376
642
  }
377
643
  };
378
- var unbind = function unbind() {
379
- if (listenerRef.current) {
380
- targetRef.current.removeEventListener(type, listenerRef.current, options);
381
- listenerRef.current = null;
644
+ var toggle = function toggle(event) {
645
+ if (props.popup) {
646
+ visibleState ? hide(event) : show(event);
382
647
  }
383
648
  };
384
- React.useEffect(function () {
385
- if (when) {
386
- targetRef.current = DomHandler.getTargetElement(target);
387
- } else {
388
- unbind();
389
- targetRef.current = null;
649
+ var show = function show(event) {
650
+ if (props.popup) {
651
+ targetRef.current = event.currentTarget;
652
+ setVisibleState(true);
653
+ props.onShow && props.onShow(event);
654
+ relatedTarget.current = event.relatedTarget || null;
390
655
  }
391
- }, [target, when]);
392
- React.useEffect(function () {
393
- if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {
394
- unbind();
395
- when && bind();
656
+ setFocusedItemInfo({
657
+ index: findFirstFocusedItemIndex(),
658
+ level: 0,
659
+ parentKey: ''
660
+ });
661
+ };
662
+ var hide = function hide(event, isFocus) {
663
+ if (props.popup) {
664
+ setVisibleState(false);
665
+ props.onHide && props.onHide(event);
396
666
  }
397
- }, [listener, options]);
398
- useUnmountEffect(function () {
399
- unbind();
400
- });
401
- return [bind, unbind];
402
- };
403
- /* eslint-enable */
404
-
405
- var useOnEscapeKey = function useOnEscapeKey(ref, condition, callback) {
406
- var handleEsc = function handleEsc(event) {
407
- if (event.key === 'Esc' || event.key === 'Escape') {
408
- event.stopImmediatePropagation();
409
- callback(event);
667
+ var menuElement = getMenuElement();
668
+ setActiveItemPath([]);
669
+ setFocusedItemInfo({
670
+ index: -1,
671
+ level: 0,
672
+ parentKey: ''
673
+ });
674
+ isFocus && DomHandler.focus(relatedTarget.current || targetRef.current || menuElement);
675
+ setDirty(false);
676
+ };
677
+ var onFocus = function onFocus(event) {
678
+ setFocused(true);
679
+ setFocusedItemInfo(focusedItemInfo.index !== -1 ? focusedItemInfo : {
680
+ index: findFirstFocusedItemIndex(),
681
+ level: 0,
682
+ parentKey: ''
683
+ });
684
+ props.onFocus && props.onFocus(event);
685
+ };
686
+ var onBlur = function onBlur(event) {
687
+ setFocused(false);
688
+ setFocusedItemInfo({
689
+ index: -1,
690
+ level: 0,
691
+ parentKey: ''
692
+ });
693
+ searchValue.current = '';
694
+ setDirty(false);
695
+ props.onBlur && props.onBlur(event);
696
+ };
697
+ var onKeyDown = function onKeyDown(event) {
698
+ var metaKey = event.metaKey || event.ctrlKey;
699
+ switch (event.code) {
700
+ case 'ArrowDown':
701
+ onArrowDownKey(event);
702
+ break;
703
+ case 'ArrowUp':
704
+ onArrowUpKey(event);
705
+ break;
706
+ case 'ArrowLeft':
707
+ onArrowLeftKey(event);
708
+ break;
709
+ case 'ArrowRight':
710
+ onArrowRightKey(event);
711
+ break;
712
+ case 'Home':
713
+ onHomeKey(event);
714
+ break;
715
+ case 'End':
716
+ onEndKey(event);
717
+ break;
718
+ case 'Space':
719
+ onSpaceKey(event);
720
+ break;
721
+ case 'Enter':
722
+ onEnterKey(event);
723
+ break;
724
+ case 'Escape':
725
+ props.popup && DomHandler.focus(targetRef.current);
726
+ onEscapeKey(event);
727
+ break;
728
+ case 'Tab':
729
+ onTabKey(event);
730
+ break;
731
+ case 'PageDown':
732
+ case 'PageUp':
733
+ case 'Backspace':
734
+ case 'ShiftLeft':
735
+ case 'ShiftRight':
736
+ //NOOP
737
+ break;
738
+ default:
739
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
740
+ searchItems(event.key);
741
+ }
742
+ break;
410
743
  }
411
- return;
412
744
  };
413
- var _useEventListener = useEventListener({
414
- type: 'keydown',
415
- listener: handleEsc
416
- }),
417
- _useEventListener2 = _slicedToArray(_useEventListener, 2),
418
- bindKeyDownListener = _useEventListener2[0],
419
- unbindKeyDownListener = _useEventListener2[1];
420
- React.useEffect(function () {
421
- if (!condition) {
745
+ var onItemChange = function onItemChange(event) {
746
+ var processedItem = event.processedItem,
747
+ isFocus = event.isFocus;
748
+ if (ObjectUtils.isEmpty(processedItem)) return;
749
+ var index = processedItem.index,
750
+ key = processedItem.key,
751
+ level = processedItem.level,
752
+ parentKey = processedItem.parentKey,
753
+ items = processedItem.items;
754
+ var grouped = ObjectUtils.isNotEmpty(items);
755
+ var _activeItemPath = activeItemPath.filter(function (p) {
756
+ return p.parentKey !== parentKey && p.parentKey !== key;
757
+ });
758
+ if (grouped) {
759
+ _activeItemPath.push(processedItem);
760
+ }
761
+ setFocusedItemInfo({
762
+ index: index,
763
+ level: level,
764
+ parentKey: parentKey
765
+ });
766
+ setActiveItemPath(_activeItemPath);
767
+ grouped && setDirty(true);
768
+ isFocus && DomHandler.focus(getMenuElement());
769
+ };
770
+ var onItemClick = function onItemClick(event) {
771
+ var originalEvent = event.originalEvent,
772
+ processedItem = event.processedItem;
773
+ if (isItemDisabled(processedItem) || props.isMobileMode) {
422
774
  return;
423
775
  }
424
- if (!ref.current) {
776
+ var grouped = isProccessedItemGroup(processedItem);
777
+ var root = ObjectUtils.isEmpty(processedItem.parent);
778
+ var selected = isSelected(processedItem);
779
+ var menuElement = getMenuElement();
780
+ if (selected) {
781
+ var index = processedItem.index,
782
+ key = processedItem.key,
783
+ level = processedItem.level,
784
+ parentKey = processedItem.parentKey;
785
+ setActiveItemPath(activeItemPath.filter(function (p) {
786
+ return key !== p.key && key.startsWith(p.key);
787
+ }));
788
+ setFocusedItemInfo({
789
+ index: index,
790
+ level: level,
791
+ parentKey: parentKey
792
+ });
793
+ if (!grouped) {
794
+ setDirty(!root);
795
+ }
796
+ setTimeout(function () {
797
+ DomHandler.focus(menuElement);
798
+ if (grouped) {
799
+ setDirty(true);
800
+ }
801
+ }, 0);
802
+ } else {
803
+ if (grouped) {
804
+ DomHandler.focus(menuElement);
805
+ onItemChange(event);
806
+ } else {
807
+ var rootProcessedItem = root ? processedItem : activeItemPath.find(function (p) {
808
+ return p.parentKey === '';
809
+ });
810
+ var rootProcessedItemIndex = rootProcessedItem ? rootProcessedItem.index : -1;
811
+ hide(originalEvent, true);
812
+ setFocusedItemInfo({
813
+ index: rootProcessedItemIndex,
814
+ parentKey: rootProcessedItem ? rootProcessedItem.parentKey : ''
815
+ });
816
+ }
817
+ }
818
+ };
819
+ var onItemMouseEnter = function onItemMouseEnter(event) {
820
+ var originalEvent = event.originalEvent,
821
+ processedItem = event.processedItem;
822
+ if (isItemDisabled(processedItem) || props.isMobileMode) {
823
+ originalEvent.preventDefault();
425
824
  return;
426
825
  }
427
- bindKeyDownListener();
826
+ if (dirty && !props.popup) {
827
+ onItemChange(event);
828
+ }
829
+ };
830
+ var onArrowDownKey = function onArrowDownKey(event) {
831
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
832
+ changeFocusedItemIndex(itemIndex);
833
+ event.preventDefault();
834
+ };
835
+ var onArrowUpKey = function onArrowUpKey(event) {
836
+ if (event.altKey) {
837
+ if (props.popup) {
838
+ DomHandler.focus(targetRef.current);
839
+ }
840
+ if (focusedItemInfo.index !== -1) {
841
+ var processedItem = visibleItems[focusedItemInfo.index];
842
+ var grouped = isProccessedItemGroup(processedItem);
843
+ !grouped && onItemChange({
844
+ originalEvent: event,
845
+ processedItem: processedItem
846
+ });
847
+ }
848
+ props.popup && hide(event, true);
849
+ event.preventDefault();
850
+ } else {
851
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
852
+ changeFocusedItemIndex(itemIndex);
853
+ event.preventDefault();
854
+ }
855
+ };
856
+ var onArrowLeftKey = function onArrowLeftKey(event) {
857
+ var processedItem = visibleItems[focusedItemInfo.index];
858
+ var parentItem = activeItemPath.find(function (p) {
859
+ return p.key === processedItem.parentKey;
860
+ });
861
+ var root = ObjectUtils.isEmpty(processedItem.parent);
862
+ if (!root) {
863
+ setFocusedItemInfo({
864
+ index: -1,
865
+ parentKey: parentItem ? parentItem.parentKey : ''
866
+ });
867
+ searchValue.current = '';
868
+ setTimeout(function () {
869
+ return setFocusTrigger(true);
870
+ }, 0);
871
+ }
872
+ setActiveItemPath(activeItemPath.filter(function (p) {
873
+ return p.parentKey !== focusedItemInfo.parentKey;
874
+ }));
875
+ event.preventDefault();
876
+ };
877
+ var onArrowRightKey = function onArrowRightKey(event) {
878
+ var processedItem = visibleItems[focusedItemInfo.index];
879
+ var grouped = isProccessedItemGroup(processedItem);
880
+ if (grouped) {
881
+ onItemChange({
882
+ originalEvent: event,
883
+ processedItem: processedItem
884
+ });
885
+ setFocusedItemInfo({
886
+ index: -1,
887
+ parentKey: processedItem.key
888
+ });
889
+ searchValue.current = '';
890
+ setTimeout(function () {
891
+ return setFocusTrigger(true);
892
+ }, 0);
893
+ }
894
+ event.preventDefault();
895
+ };
896
+ var onHomeKey = function onHomeKey(event) {
897
+ changeFocusedItemIndex(findFirstItemIndex());
898
+ event.preventDefault();
899
+ };
900
+ var onEndKey = function onEndKey(event) {
901
+ changeFocusedItemIndex(findLastItemIndex());
902
+ event.preventDefault();
903
+ };
904
+ var onEnterKey = function onEnterKey(event) {
905
+ if (focusedItemInfo.index !== -1) {
906
+ var _element = DomHandler.findSingle(getMenuElement(), "li[id=\"".concat("".concat(focusedItemId), "\"]"));
907
+ var anchorElement = _element && DomHandler.findSingle(_element, '[data-pc-section="action"]');
908
+ props.popup && DomHandler.focus(targetRef.current);
909
+ anchorElement ? anchorElement.click() : _element && _element.click();
910
+ }
911
+ event.preventDefault();
912
+ };
913
+ var onSpaceKey = function onSpaceKey(event) {
914
+ onEnterKey(event);
915
+ };
916
+ var onEscapeKey = function onEscapeKey(event) {
917
+ hide(event, true);
918
+ !props.popup && setFocusedItemInfo(_objectSpread$1(_objectSpread$1({}, focusedItemInfo), {}, {
919
+ index: findFirstFocusedItemIndex()
920
+ }));
921
+ event.preventDefault();
922
+ };
923
+ var onTabKey = function onTabKey(event) {
924
+ if (focusedItemInfo.index !== -1) {
925
+ var processedItem = visibleItems[focusedItemInfo.index];
926
+ var grouped = isProccessedItemGroup(processedItem);
927
+ !grouped && onItemChange({
928
+ originalEvent: event,
929
+ processedItem: processedItem
930
+ });
931
+ }
932
+ hide(event);
933
+ };
934
+ var getMenuElement = function getMenuElement() {
935
+ return menuRef.current.getElement() || null;
936
+ };
937
+ var getItemProp = function getItemProp(item, name) {
938
+ return item ? ObjectUtils.getItemValue(item[name]) : undefined;
939
+ };
940
+ var getItemLabel = function getItemLabel(item) {
941
+ return getItemProp(item, 'label');
942
+ };
943
+ var isItemDisabled = function isItemDisabled(item) {
944
+ return getItemProp(item, 'disabled');
945
+ };
946
+ var isItemSeparator = function isItemSeparator(item) {
947
+ return getItemProp(item, 'separator');
948
+ };
949
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
950
+ return processedItem ? getItemLabel(processedItem.item) : undefined;
951
+ };
952
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
953
+ return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
954
+ };
955
+ var isItemMatched = function isItemMatched(processedItem) {
956
+ return isValidItem(processedItem) && getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
957
+ };
958
+ var isValidItem = function isValidItem(processedItem) {
959
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
960
+ };
961
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
962
+ return isValidItem(processedItem) && isSelected(processedItem);
963
+ };
964
+ var isSelected = function isSelected(processedItem) {
965
+ return activeItemPath.some(function (p) {
966
+ return p.key === processedItem.key;
967
+ });
968
+ };
969
+ var findFirstItemIndex = function findFirstItemIndex() {
970
+ return visibleItems.findIndex(function (processedItem) {
971
+ return isValidItem(processedItem);
972
+ });
973
+ };
974
+ var findLastItemIndex = function findLastItemIndex() {
975
+ return ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
976
+ return isValidItem(processedItem);
977
+ });
978
+ };
979
+ var findNextItemIndex = function findNextItemIndex(index) {
980
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
981
+ return isValidItem(processedItem);
982
+ }) : -1;
983
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
984
+ };
985
+ var findPrevItemIndex = function findPrevItemIndex(index) {
986
+ var matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
987
+ return isValidItem(processedItem);
988
+ }) : -1;
989
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
990
+ };
991
+ var findSelectedItemIndex = function findSelectedItemIndex() {
992
+ return visibleItems.findIndex(function (processedItem) {
993
+ return isValidSelectedItem(processedItem);
994
+ });
995
+ };
996
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
997
+ var selectedIndex = findSelectedItemIndex();
998
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
999
+ };
1000
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
1001
+ var selectedIndex = findSelectedItemIndex();
1002
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
1003
+ };
1004
+ var searchItems = function searchItems(_char) {
1005
+ searchValue.current = (searchValue.current || '') + _char;
1006
+ var itemIndex = -1;
1007
+ var matched = false;
1008
+ if (focusedItemInfo.index !== -1) {
1009
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
1010
+ return isItemMatched(processedItem);
1011
+ });
1012
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
1013
+ return isItemMatched(processedItem);
1014
+ }) : itemIndex + focusedItemInfo.index;
1015
+ } else {
1016
+ itemIndex = visibleItems.findIndex(function (processedItem) {
1017
+ return isItemMatched(processedItem);
1018
+ });
1019
+ }
1020
+ if (itemIndex !== -1) {
1021
+ matched = true;
1022
+ }
1023
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
1024
+ itemIndex = findFirstFocusedItemIndex();
1025
+ }
1026
+ if (itemIndex !== -1) {
1027
+ changeFocusedItemIndex(itemIndex);
1028
+ }
1029
+ if (searchTimeout.current) {
1030
+ clearTimeout(searchTimeout);
1031
+ }
1032
+ searchTimeout.current = setTimeout(function () {
1033
+ searchValue.current = '';
1034
+ searchTimeout.current = null;
1035
+ }, 500);
1036
+ return matched;
1037
+ };
1038
+ var changeFocusedItemIndex = function changeFocusedItemIndex(index) {
1039
+ if (focusedItemInfo.index !== index) {
1040
+ setFocusedItemInfo(_objectSpread$1(_objectSpread$1({}, focusedItemInfo), {}, {
1041
+ index: index
1042
+ }));
1043
+ scrollInView();
1044
+ }
1045
+ };
1046
+ var scrollInView = function scrollInView() {
1047
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
1048
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
1049
+ var element = DomHandler.findSingle(getMenuElement(), "li[id=\"".concat(id, "\"]"));
1050
+ if (element) {
1051
+ element.scrollIntoView && element.scrollIntoView({
1052
+ block: 'nearest',
1053
+ inline: 'start'
1054
+ });
1055
+ }
1056
+ };
1057
+ var createProcessedItems = function createProcessedItems(items) {
1058
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
1059
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1060
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
1061
+ var processedItems = [];
1062
+ items && items.forEach(function (item, index) {
1063
+ var key = (parentKey !== '' ? parentKey + '_' : '') + index;
1064
+ var newItem = {
1065
+ item: item,
1066
+ index: index,
1067
+ level: level,
1068
+ key: key,
1069
+ parent: parent,
1070
+ parentKey: parentKey
1071
+ };
1072
+ newItem['items'] = createProcessedItems(item.items, level + 1, newItem, key);
1073
+ processedItems.push(newItem);
1074
+ });
1075
+ return processedItems;
1076
+ };
1077
+ var createStyle = function createStyle() {
1078
+ if (!styleElementRef.current) {
1079
+ styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce);
1080
+ var selector = "".concat(attributeSelectorState);
1081
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-tieredmenu[").concat(selector, "] > ul {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n }\n\n .p-tieredmenu[").concat(selector, "] .p-submenu-list {\n position: relative;\n }\n\n .p-tieredmenu[").concat(selector, "] .p-menuitem-active > .p-submenu-list {\n left: 0;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-tieredmenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-tieredmenu[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n }\n\n ").concat(!props.popup ? ".p-tieredmenu[".concat(selector, "] { width: 100%; }") : '', "\n}\n");
1082
+ styleElementRef.current.innerHTML = innerHTML;
1083
+ }
1084
+ };
1085
+ var destroyStyle = function destroyStyle() {
1086
+ styleElementRef.current = DomHandler.removeInlineStyle(styleElementRef.current);
1087
+ };
1088
+ var alignOverlay = function alignOverlay() {
1089
+ DomHandler.absolutePosition(containerRef.current, targetRef.current);
1090
+ var targetWidth = DomHandler.getOuterWidth(targetRef.current);
1091
+ if (targetWidth > DomHandler.getOuterWidth(containerRef.current)) {
1092
+ containerRef.current.style.minWidth = DomHandler.getOuterWidth(targetRef.current) + 'px';
1093
+ }
1094
+ };
1095
+ var onEnter = function onEnter() {
1096
+ if (props.autoZIndex) {
1097
+ ZIndexUtils.set('menu', containerRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, props.baseZIndex || context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
1098
+ }
1099
+ DomHandler.addStyles(containerRef.current, {
1100
+ position: 'absolute',
1101
+ top: '0',
1102
+ left: '0'
1103
+ });
1104
+ alignOverlay();
1105
+ DomHandler.focus(menuRef.current.getElement());
1106
+ scrollInView();
1107
+ if (attributeSelectorState && props.breakpoint) {
1108
+ containerRef.current.setAttribute(attributeSelectorState, '');
1109
+ createStyle();
1110
+ }
1111
+ };
1112
+ var onEntered = function onEntered() {
1113
+ bindDocumentClickListener();
1114
+ bindDocumentResizeListener();
1115
+ };
1116
+ var onExit = function onExit() {
1117
+ targetRef.current = null;
1118
+ unbindDocumentClickListener();
1119
+ unbindDocumentResizeListener();
1120
+ };
1121
+ var onExited = function onExited() {
1122
+ ZIndexUtils.clear(containerRef.current);
1123
+ destroyStyle();
1124
+ };
1125
+ useMountEffect(function () {
1126
+ var uniqueId = UniqueComponentId();
1127
+ !idState && setIdState(uniqueId);
1128
+ if (props.breakpoint) {
1129
+ !attributeSelectorState && setAttributeSelectorState(uniqueId);
1130
+ }
1131
+ });
1132
+ useUpdateEffect(function () {
1133
+ var itemsToProcess = props.model || [];
1134
+ var processed = createProcessedItems(itemsToProcess);
1135
+ setProcessedItems(processed);
1136
+ }, props.model);
1137
+ useUpdateEffect(function () {
1138
+ var processedItem = activeItemPath.find(function (p) {
1139
+ return p.key === focusedItemInfo.parentKey;
1140
+ });
1141
+ var processed = processedItem ? processedItem.items : processedItems;
1142
+ setVisibleItems(processed);
1143
+ }, [activeItemPath, focusedItemInfo, processedItems]);
1144
+ useUpdateEffect(function () {
1145
+ var focusedId = focusedItemInfo.index !== -1 ? "".concat(idState).concat(ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null;
1146
+ setFocusedItemId(focusedId);
1147
+ }, [focusedItemInfo]);
1148
+ useUpdateEffect(function () {
1149
+ if (!props.popup) {
1150
+ if (ObjectUtils.isNotEmpty(activeItemPath)) {
1151
+ bindDocumentClickListener();
1152
+ bindDocumentResizeListener();
1153
+ } else {
1154
+ unbindDocumentClickListener();
1155
+ unbindDocumentResizeListener();
1156
+ }
1157
+ }
1158
+ }, [activeItemPath]);
1159
+ useUpdateEffect(function () {
1160
+ if (focusTrigger) {
1161
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
1162
+ changeFocusedItemIndex(itemIndex);
1163
+ setActiveItemPath(activeItemPath.filter(function (p) {
1164
+ return p.parentKey !== focusedItemInfo.parentKey;
1165
+ }));
1166
+ setFocusTrigger(false);
1167
+ }
1168
+ }, [focusTrigger]);
1169
+ useUpdateEffect(function () {
1170
+ if (attributeSelectorState && containerRef.current) {
1171
+ containerRef.current.setAttribute(attributeSelectorState, '');
1172
+ createStyle();
1173
+ }
428
1174
  return function () {
429
- unbindKeyDownListener();
1175
+ destroyStyle();
430
1176
  };
1177
+ }, [attributeSelectorState, props.breakpoint]);
1178
+ useUnmountEffect(function () {
1179
+ ZIndexUtils.clear(containerRef.current);
431
1180
  });
432
- return [ref, callback];
433
- };
1181
+ React.useImperativeHandle(ref, function () {
1182
+ return {
1183
+ props: props,
1184
+ toggle: toggle,
1185
+ show: show,
1186
+ hide: hide,
1187
+ getElement: function getElement() {
1188
+ return containerRef.current;
1189
+ }
1190
+ };
1191
+ });
1192
+ var createElement = function createElement() {
1193
+ var rootProps = mergeProps({
1194
+ ref: containerRef,
1195
+ id: props.id,
1196
+ className: cx('root'),
1197
+ style: props.style,
1198
+ onClick: onPanelClick
1199
+ }, TieredMenuBase.getOtherProps(props), ptm('root'));
1200
+ var transitionProps = mergeProps({
1201
+ classNames: cx('transition'),
1202
+ "in": visibleState,
1203
+ timeout: {
1204
+ enter: 120,
1205
+ exit: 100
1206
+ },
1207
+ options: props.transitionOptions,
1208
+ unmountOnExit: true,
1209
+ onEnter: onEnter,
1210
+ onEntered: onEntered,
1211
+ onExit: onExit,
1212
+ onExited: onExited
1213
+ }, ptm('transition'));
1214
+ return /*#__PURE__*/React.createElement(CSSTransition, _extends({
1215
+ nodeRef: containerRef
1216
+ }, transitionProps), /*#__PURE__*/React.createElement("div", rootProps, /*#__PURE__*/React.createElement(TieredMenuSub, {
1217
+ id: idState + '_list',
1218
+ ref: menuRef,
1219
+ hostName: "TieredMenu",
1220
+ menuProps: props,
1221
+ tabIndex: 0,
1222
+ model: processedItems,
1223
+ ariaLabel: props.ariaLabel,
1224
+ ariaLabelledBy: props.ariaLabelledBy,
1225
+ ariaOrientation: "vertical",
1226
+ ariaActiveDescendant: focused ? focusedItemId : undefined,
1227
+ menuId: idState,
1228
+ level: 0,
1229
+ focusedItemId: focusedItemId,
1230
+ activeItemPath: activeItemPath,
1231
+ onFocus: onFocus,
1232
+ onBlur: onBlur,
1233
+ onKeyDown: onKeyDown,
1234
+ onItemClick: onItemClick,
1235
+ onItemMouseEnter: onItemMouseEnter,
1236
+ root: true,
1237
+ popup: props.popup,
1238
+ onHide: hide,
1239
+ isMobileMode: isMobileMode,
1240
+ submenuIcon: props.submenuIcon,
1241
+ ptm: ptm,
1242
+ cx: cx,
1243
+ sx: sx
1244
+ })));
1245
+ };
1246
+ var element = createElement();
1247
+ return props.popup ? /*#__PURE__*/React.createElement(Portal, {
1248
+ element: element,
1249
+ appendTo: props.appendTo
1250
+ }) : element;
1251
+ }));
1252
+ TieredMenu.displayName = 'TieredMenu';
434
1253
 
435
1254
  function ownKeys(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; }
436
1255
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -446,6 +1265,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
446
1265
  overlayVisibleState = _React$useState4[0],
447
1266
  setOverlayVisibleState = _React$useState4[1];
448
1267
  var elementRef = React.useRef(null);
1268
+ var menuRef = React.useRef(null);
449
1269
  var defaultButtonRef = React.useRef(null);
450
1270
  var overlayRef = React.useRef(null);
451
1271
  var metaData = {
@@ -462,57 +1282,34 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
462
1282
  useHandleStyle(SplitButtonBase.css.styles, isUnstyled, {
463
1283
  name: 'splitbutton'
464
1284
  });
465
- useOnEscapeKey(overlayRef, overlayVisibleState, function () {
466
- return hide();
467
- });
468
- var _useOverlayListener = useOverlayListener({
469
- target: elementRef,
470
- overlay: overlayRef,
471
- listener: function listener(event, _ref) {
472
- var valid = _ref.valid;
473
- valid && hide();
474
- },
475
- when: overlayVisibleState
476
- }),
477
- _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),
478
- bindOverlayListener = _useOverlayListener2[0],
479
- unbindOverlayListener = _useOverlayListener2[1];
480
1285
  var onPanelClick = function onPanelClick(event) {
481
1286
  OverlayService.emit('overlay-click', {
482
1287
  originalEvent: event,
483
1288
  target: elementRef.current
484
1289
  });
485
1290
  };
486
- var onDropdownButtonClick = function onDropdownButtonClick() {
487
- overlayVisibleState ? hide() : show();
1291
+ var onMenuButtonKeyDown = function onMenuButtonKeyDown(event) {
1292
+ if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {
1293
+ onDropdownButtonClick(event);
1294
+ event.preventDefault();
1295
+ }
488
1296
  };
489
- var onItemClick = function onItemClick() {
490
- hide();
1297
+ var onDropdownButtonClick = function onDropdownButtonClick(event) {
1298
+ overlayVisibleState ? hide(event) : show(event);
491
1299
  };
492
- var show = function show() {
1300
+ var show = function show(event) {
493
1301
  setOverlayVisibleState(true);
1302
+ menuRef.current && menuRef.current.show(event);
494
1303
  };
495
- var hide = function hide() {
1304
+ var hide = function hide(event) {
496
1305
  setOverlayVisibleState(false);
1306
+ menuRef.current && menuRef.current.hide(event);
497
1307
  };
498
- var onOverlayEnter = function onOverlayEnter() {
499
- ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['overlay'] || PrimeReact.zIndex['overlay']);
500
- DomHandler.addStyles(overlayRef.current, {
501
- position: 'absolute',
502
- top: '0',
503
- left: '0'
504
- });
505
- alignOverlay();
506
- };
507
- var onOverlayEntered = function onOverlayEntered() {
508
- bindOverlayListener();
1308
+ var onMenuShow = function onMenuShow() {
509
1309
  props.onShow && props.onShow();
510
1310
  };
511
- var onOverlayExit = function onOverlayExit() {
512
- unbindOverlayListener();
513
- };
514
- var onOverlayExited = function onOverlayExited() {
515
- ZIndexUtils.clear(overlayRef.current);
1311
+ var onMenuHide = function onMenuHide() {
1312
+ setOverlayVisibleState(false);
516
1313
  props.onHide && props.onHide();
517
1314
  };
518
1315
  var alignOverlay = function alignOverlay() {
@@ -524,7 +1321,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
524
1321
  }
525
1322
  alignOverlay();
526
1323
  });
527
- useUnmountEffect$1(function () {
1324
+ useUnmountEffect(function () {
528
1325
  ZIndexUtils.clear(overlayRef.current);
529
1326
  });
530
1327
  React.useImperativeHandle(ref, function () {
@@ -537,22 +1334,6 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
537
1334
  }
538
1335
  };
539
1336
  });
540
- var createItems = function createItems() {
541
- if (props.model) {
542
- return props.model.map(function (menuitem, index) {
543
- return /*#__PURE__*/React.createElement(SplitButtonItem, {
544
- hostName: "SplitButton",
545
- splitButtonProps: props,
546
- menuitem: menuitem,
547
- key: index,
548
- onItemClick: onItemClick,
549
- ptm: ptm,
550
- cx: cx
551
- });
552
- });
553
- }
554
- return null;
555
- };
556
1337
  if (props.visible === false) {
557
1338
  return null;
558
1339
  }
@@ -563,8 +1344,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
563
1344
  };
564
1345
  var size = sizeMapping[props.size];
565
1346
  var buttonContent = props.buttonTemplate ? ObjectUtils.getJSXElement(props.buttonTemplate, props) : null;
566
- var items = createItems();
567
- var menuId = idState + '_menu';
1347
+ var menuId = idState + '_overlay';
568
1348
  var dropdownIcon = function dropdownIcon() {
569
1349
  var iconProps = mergeProps({
570
1350
  className: cx('icon')
@@ -592,6 +1372,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
592
1372
  loadingIcon: props.loadingIcon,
593
1373
  severity: props.severity,
594
1374
  label: props.label,
1375
+ "aria-label": props.label,
595
1376
  raised: props.raised,
596
1377
  onClick: props.onClick,
597
1378
  disabled: props.disabled,
@@ -613,7 +1394,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
613
1394
  disabled: props.disabled,
614
1395
  "aria-expanded": overlayVisibleState,
615
1396
  "aria-haspopup": "true",
616
- "aria-controls": overlayVisibleState ? menuId : null
1397
+ "aria-controls": menuId
617
1398
  }, props.menuButtonProps, {
618
1399
  size: props.size,
619
1400
  severity: props.severity,
@@ -624,24 +1405,24 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
624
1405
  __parentMetadata: {
625
1406
  parent: metaData
626
1407
  },
1408
+ onKeyDown: onMenuButtonKeyDown,
627
1409
  unstyled: props.unstyled
628
- })), /*#__PURE__*/React.createElement(SplitButtonPanel, {
629
- hostName: "SplitButton",
630
- ref: overlayRef,
1410
+ })), /*#__PURE__*/React.createElement(TieredMenu, {
1411
+ ref: menuRef,
1412
+ popup: true,
1413
+ unstyled: props.unstyled,
1414
+ model: props.model,
631
1415
  appendTo: props.appendTo,
632
- menuId: menuId,
633
- menuStyle: props.menuStyle,
634
- menuClassName: props.menuClassName,
1416
+ id: menuId,
1417
+ style: props.menuStyle,
1418
+ autoZIndex: props.autoZIndex,
1419
+ baseZIndex: props.baseZIndex,
1420
+ className: props.menuClassName,
635
1421
  onClick: onPanelClick,
636
- "in": overlayVisibleState,
637
- onEnter: onOverlayEnter,
638
- onEntered: onOverlayEntered,
639
- onExit: onOverlayExit,
640
- onExited: onOverlayExited,
641
- transitionOptions: props.transitionOptions,
642
- ptm: ptm,
643
- cx: cx
644
- }, items)), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
1422
+ onShow: onMenuShow,
1423
+ onHide: onMenuHide,
1424
+ pt: ptm('menu')
1425
+ })), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
645
1426
  target: elementRef,
646
1427
  content: props.tooltip
647
1428
  }, props.tooltipOptions, {