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
@@ -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, useDisplayOrder, useGlobalOnEscapeKey, ESC_KEY_HANDLING_PRIORITIES } from 'primereact/hooks';
7
7
  import { ChevronDownIcon } from 'primereact/icons/chevrondown';
8
8
  import { OverlayService } from 'primereact/overlayservice';
9
- import { Tooltip } from 'primereact/tooltip';
10
- import { classNames, mergeProps, IconUtils, ObjectUtils, DomHandler, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
11
9
  import { CSSTransition } from 'primereact/csstransition';
12
10
  import { Portal } from 'primereact/portal';
11
+ import { classNames, mergeProps, DomHandler, ObjectUtils, IconUtils, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
12
+ import { AngleRightIcon } from 'primereact/icons/angleright';
13
+ import { Ripple } from 'primereact/ripple';
14
+ import { Tooltip } from 'primereact/tooltip';
13
15
 
14
16
  function _extends() {
15
17
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -122,6 +124,1058 @@ function _slicedToArray(arr, i) {
122
124
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
123
125
  }
124
126
 
127
+ var classes$1 = {
128
+ root: function root(_ref) {
129
+ var props = _ref.props,
130
+ context = _ref.context;
131
+ return classNames('p-tieredmenu p-component', {
132
+ 'p-tieredmenu-overlay': props.popup,
133
+ 'p-input-filled': context && context.inputStyle === 'filled' || PrimeReact.inputStyle === 'filled',
134
+ 'p-ripple-disabled': context && context.ripple === false || PrimeReact.ripple === false
135
+ }, props.className);
136
+ },
137
+ separator: 'p-menuitem-separator',
138
+ icon: function icon(_ref2) {
139
+ var _icon = _ref2._icon;
140
+ return classNames('p-menuitem-icon', _icon);
141
+ },
142
+ content: 'p-menuitem-content',
143
+ label: 'p-menuitem-text',
144
+ submenuIcon: 'p-submenu-icon',
145
+ action: 'p-menuitem-link',
146
+ menuitem: function menuitem(_ref3) {
147
+ var _className = _ref3._className,
148
+ active = _ref3.active,
149
+ focused = _ref3.focused,
150
+ disabled = _ref3.disabled;
151
+ return classNames('p-menuitem', {
152
+ 'p-menuitem-active p-highlight': active,
153
+ 'p-focus': focused,
154
+ 'p-disabled': disabled
155
+ }, _className);
156
+ },
157
+ menu: 'p-tieredmenu-root-list',
158
+ submenu: 'p-submenu-list',
159
+ transition: 'p-connected-overlay'
160
+ };
161
+ var inlineStyles = {
162
+ submenu: function submenu(_ref4) {
163
+ var props = _ref4.subProps;
164
+ return {
165
+ display: !props.root && props.parentActive ? 'block' : 'none'
166
+ };
167
+ }
168
+ };
169
+ var styles$1 = "\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";
170
+ var TieredMenuBase = ComponentBase.extend({
171
+ defaultProps: {
172
+ __TYPE: 'TieredMenu',
173
+ id: null,
174
+ model: null,
175
+ popup: false,
176
+ style: null,
177
+ className: null,
178
+ autoZIndex: true,
179
+ baseZIndex: 0,
180
+ breakpoint: undefined,
181
+ scrollHeight: '400px',
182
+ appendTo: null,
183
+ transitionOptions: null,
184
+ onShow: null,
185
+ onFocus: null,
186
+ onBlur: null,
187
+ onHide: null,
188
+ submenuIcon: null,
189
+ children: undefined
190
+ },
191
+ css: {
192
+ classes: classes$1,
193
+ styles: styles$1,
194
+ inlineStyles: inlineStyles
195
+ }
196
+ });
197
+
198
+ 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
+ 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 TieredMenuSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
201
+ var elementRef = React.useRef(null);
202
+ var ptm = props.ptm,
203
+ cx = props.cx,
204
+ sx = props.sx;
205
+ var getPTOptions = function getPTOptions(item, key) {
206
+ return ptm(key, {
207
+ hostName: props.hostName,
208
+ context: {
209
+ active: isItemActive(item)
210
+ }
211
+ });
212
+ };
213
+ var position = function position() {
214
+ if (elementRef.current) {
215
+ var parentItem = elementRef.current.parentElement;
216
+ var containerOffset = DomHandler.getOffset(parentItem);
217
+ var viewport = DomHandler.getViewport();
218
+ var sublistWidth = elementRef.current.offsetParent ? elementRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(elementRef.current);
219
+ var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);
220
+ var top = parseInt(containerOffset.top, 10) + elementRef.current.offsetHeight - DomHandler.getWindowScrollTop();
221
+ if (top > viewport.height) {
222
+ elementRef.current.style.top = viewport.height - top + 'px';
223
+ } else {
224
+ elementRef.current.style.top = '0px';
225
+ }
226
+ if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {
227
+ DomHandler.addClass(elementRef.current, 'p-submenu-list-flipped');
228
+ }
229
+ }
230
+ };
231
+ var onItemClick = function onItemClick(event, processedItem) {
232
+ var item = processedItem.item;
233
+ if (isItemDisabled(processedItem)) {
234
+ event.preventDefault();
235
+ return;
236
+ }
237
+ if (!item.url) {
238
+ event.preventDefault();
239
+ }
240
+ if (item.command) {
241
+ item.command({
242
+ originalEvent: event,
243
+ item: item
244
+ });
245
+ }
246
+ props.onItemClick && props.onItemClick({
247
+ originalEvent: event,
248
+ processedItem: processedItem
249
+ });
250
+ };
251
+ var getItemId = function getItemId(processedItem) {
252
+ return "".concat(props.menuId, "_").concat(processedItem.key);
253
+ };
254
+ var getItemProp = function getItemProp(processedItem, name, params) {
255
+ return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
256
+ };
257
+ var isItemActive = function isItemActive(processedItem) {
258
+ return props.activeItemPath.some(function (path) {
259
+ return path.key === processedItem.key;
260
+ });
261
+ };
262
+ var isItemVisible = function isItemVisible(processedItem) {
263
+ return getItemProp(processedItem, 'visible') !== false;
264
+ };
265
+ var isItemDisabled = function isItemDisabled(processedItem) {
266
+ return getItemProp(processedItem, 'disabled');
267
+ };
268
+ var isItemFocused = function isItemFocused(processedItem) {
269
+ return props.focusedItemId === getItemId(processedItem);
270
+ };
271
+ var isItemGroup = function isItemGroup(processedItem) {
272
+ return ObjectUtils.isNotEmpty(processedItem.items);
273
+ };
274
+ var onItemMouseEnter = function onItemMouseEnter(event, processedItem) {
275
+ props.onItemMouseEnter && props.onItemMouseEnter({
276
+ originalEvent: event,
277
+ processedItem: processedItem
278
+ });
279
+ };
280
+ var getAriaSetSize = function getAriaSetSize() {
281
+ return props.model.filter(function (processedItem) {
282
+ return isItemVisible(processedItem) && !getItemProp(processedItem, 'separator');
283
+ }).length;
284
+ };
285
+ var getAriaPosInset = function getAriaPosInset(index) {
286
+ return index - props.model.slice(0, index).filter(function (processedItem) {
287
+ return isItemVisible(processedItem) && getItemProp(processedItem, 'separator');
288
+ }).length + 1;
289
+ };
290
+ useUpdateEffect(function () {
291
+ if (!props.root && props.parentActive && !props.isMobileMode) {
292
+ position();
293
+ }
294
+ }, [props.parentActive]);
295
+ React.useImperativeHandle(ref, function () {
296
+ return {
297
+ getElement: function getElement() {
298
+ return elementRef.current;
299
+ }
300
+ };
301
+ });
302
+ var createSeparator = function createSeparator(index) {
303
+ var key = 'separator_' + index;
304
+ var separatorProps = mergeProps({
305
+ key: key,
306
+ className: cx('separator'),
307
+ role: 'separator'
308
+ }, ptm('separator', {
309
+ hostName: props.hostName
310
+ }));
311
+ return /*#__PURE__*/React.createElement("li", separatorProps);
312
+ };
313
+ var createSubmenu = function createSubmenu(processedItem, index) {
314
+ if (isItemGroup(processedItem)) {
315
+ return /*#__PURE__*/React.createElement(TieredMenuSub, {
316
+ id: props.id + '_' + index,
317
+ menuProps: props.menuProps,
318
+ model: processedItem.items,
319
+ menuId: props.menuId,
320
+ ariaLabelledby: getItemId(item),
321
+ focusedItemId: props.focusedItemId,
322
+ activeItemPath: props.activeItemPath,
323
+ level: props.level + 1,
324
+ onItemClick: props.onItemClick,
325
+ popup: props.popup,
326
+ onItemMouseEnter: props.onItemMouseEnter,
327
+ parentActive: isItemActive(processedItem),
328
+ isMobileMode: props.isMobileMode,
329
+ submenuIcon: props.submenuIcon,
330
+ ptm: props.ptm,
331
+ cx: cx,
332
+ sx: sx
333
+ });
334
+ }
335
+ return null;
336
+ };
337
+ var createMenuItem = function createMenuItem(processedItem, index) {
338
+ if (isItemVisible(processedItem) === false) {
339
+ return null;
340
+ }
341
+ var item = processedItem.item;
342
+ var style = getItemProp(processedItem, 'style');
343
+ var _icon = getItemProp(processedItem, 'icon');
344
+ var target = getItemProp(processedItem, 'target');
345
+ var url = getItemProp(processedItem, 'url');
346
+ var key = getItemId(processedItem);
347
+ var focused = isItemFocused(processedItem);
348
+ var active = isItemActive(processedItem);
349
+ var disabled = isItemDisabled(processedItem);
350
+ var grouped = isItemGroup(processedItem);
351
+ var linkClassName = classNames('p-menuitem-link');
352
+ var iconClassName = classNames('p-menuitem-icon', _icon);
353
+ var iconProps = mergeProps({
354
+ className: classNames(item.icon, 'p-menuitem-icon', 'icon')
355
+ }, getPTOptions(processedItem, 'icon'));
356
+ var icon = IconUtils.getJSXIcon(_icon, _objectSpread$2({}, iconProps), {
357
+ props: props.menuProps
358
+ });
359
+ var labelProps = mergeProps({
360
+ className: cx('label')
361
+ }, getPTOptions(processedItem, 'label'));
362
+ var label = item.label && /*#__PURE__*/React.createElement("span", labelProps, item.label);
363
+ var submenuIconClassName = 'p-submenu-icon';
364
+ var submenuIconProps = mergeProps({
365
+ className: cx('submenuIcon')
366
+ }, getPTOptions(processedItem, 'submenuIcon'));
367
+ var submenuIcon = grouped && IconUtils.getJSXIcon(props.submenuIcon || /*#__PURE__*/React.createElement(AngleRightIcon, submenuIconProps), _objectSpread$2({}, submenuIconProps), {
368
+ props: props.menuProps
369
+ });
370
+ var submenu = createSubmenu(processedItem, index);
371
+ var actionProps = mergeProps({
372
+ href: url || '#',
373
+ 'aria-hidden': true,
374
+ tabIndex: '-1',
375
+ onFocus: function onFocus(event) {
376
+ return event.stopPropagation();
377
+ },
378
+ className: cx('action'),
379
+ target: target
380
+ }, getPTOptions(processedItem, 'action'));
381
+ var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));
382
+ if (item.template) {
383
+ var defaultContentOptions = {
384
+ className: linkClassName,
385
+ labelClassName: 'p-menuitem-text',
386
+ iconClassName: iconClassName,
387
+ submenuIconClassName: submenuIconClassName,
388
+ element: content,
389
+ props: props,
390
+ active: active,
391
+ disabled: disabled
392
+ };
393
+ content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
394
+ }
395
+ var contentProps = mergeProps({
396
+ onClick: function onClick(event) {
397
+ return onItemClick(event, processedItem);
398
+ },
399
+ onMouseEnter: function onMouseEnter(event) {
400
+ return onItemMouseEnter(event, processedItem);
401
+ },
402
+ className: cx('content')
403
+ }, getPTOptions(processedItem, 'content'));
404
+ var menuitemProps = mergeProps({
405
+ key: key,
406
+ id: key,
407
+ 'aria-label': item.label,
408
+ 'aria-disabled': disabled,
409
+ 'aria-expanded': grouped ? active : undefined,
410
+ 'aria-haspopup': grouped && !url ? 'menu' : undefined,
411
+ 'aria-level': props.level + 1,
412
+ 'aria-setsize': getAriaSetSize(),
413
+ 'aria-posinset': getAriaPosInset(index),
414
+ 'data-p-highlight': active,
415
+ 'data-p-disabled': disabled,
416
+ 'data-p-visited': focused,
417
+ className: cx('menuitem', {
418
+ className: item.className,
419
+ active: active,
420
+ focused: focused,
421
+ disabled: disabled
422
+ }),
423
+ style: style,
424
+ onMouseEnter: function onMouseEnter(event) {
425
+ return onItemMouseEnter(event, item);
426
+ },
427
+ role: 'menuitem'
428
+ }, getPTOptions(processedItem, 'menuitem'));
429
+ return /*#__PURE__*/React.createElement("li", menuitemProps, /*#__PURE__*/React.createElement("div", contentProps, content), submenu);
430
+ };
431
+ var createItem = function createItem(processedItem, index) {
432
+ return getItemProp(processedItem, 'separator') ? createSeparator(index) : createMenuItem(processedItem, index);
433
+ };
434
+ var createMenu = function createMenu() {
435
+ return props.model ? props.model.map(createItem) : null;
436
+ };
437
+ var submenu = createMenu();
438
+ var ptKey = props.root ? 'menu' : 'submenu';
439
+ var menuProps = mergeProps({
440
+ ref: elementRef,
441
+ id: props.id,
442
+ tabIndex: props.tabIndex,
443
+ onFocus: props.onFocus,
444
+ onBlur: props.onBlur,
445
+ onKeyDown: props.onKeyDown,
446
+ className: cx(ptKey, {
447
+ subProps: props
448
+ }),
449
+ style: sx(ptKey, {
450
+ subProps: props
451
+ }),
452
+ role: props.root ? 'menubar' : 'menu',
453
+ 'aria-label': props.ariaLabel,
454
+ 'aria-labelledby': props.ariaLabelledby,
455
+ 'aria-orientation': props.ariaOrientation,
456
+ 'aria-activedescendant': props.focusedItemId
457
+ }, ptm(ptKey, {
458
+ hostName: props.hostName
459
+ }));
460
+ return /*#__PURE__*/React.createElement("ul", menuProps, submenu);
461
+ }));
462
+ TieredMenuSub.displayName = 'TieredMenuSub';
463
+
464
+ 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; }
465
+ 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; }
466
+ var TieredMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
467
+ var context = React.useContext(PrimeReactContext);
468
+ var props = TieredMenuBase.getProps(inProps, context);
469
+ var _React$useState = React.useState(props.id),
470
+ _React$useState2 = _slicedToArray(_React$useState, 2),
471
+ idState = _React$useState2[0],
472
+ setIdState = _React$useState2[1];
473
+ var _React$useState3 = React.useState(!props.popup),
474
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
475
+ visibleState = _React$useState4[0],
476
+ setVisibleState = _React$useState4[1];
477
+ var _React$useState5 = React.useState([]),
478
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
479
+ activeItemPath = _React$useState6[0],
480
+ setActiveItemPath = _React$useState6[1];
481
+ var _React$useState7 = React.useState(false),
482
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
483
+ focused = _React$useState8[0],
484
+ setFocused = _React$useState8[1];
485
+ var _React$useState9 = React.useState(null),
486
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
487
+ focusedItemId = _React$useState10[0],
488
+ setFocusedItemId = _React$useState10[1];
489
+ var _React$useState11 = React.useState({
490
+ index: -1,
491
+ level: 0,
492
+ parentKey: ''
493
+ }),
494
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
495
+ focusedItemInfo = _React$useState12[0],
496
+ setFocusedItemInfo = _React$useState12[1];
497
+ var _React$useState13 = React.useState(false),
498
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
499
+ dirty = _React$useState14[0],
500
+ setDirty = _React$useState14[1];
501
+ var _React$useState15 = React.useState([]),
502
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
503
+ processedItems = _React$useState16[0],
504
+ setProcessedItems = _React$useState16[1];
505
+ var _React$useState17 = React.useState([]),
506
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
507
+ visibleItems = _React$useState18[0],
508
+ setVisibleItems = _React$useState18[1];
509
+ var _React$useState19 = React.useState(false),
510
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
511
+ focusTrigger = _React$useState20[0],
512
+ setFocusTrigger = _React$useState20[1];
513
+ var _React$useState21 = React.useState(null),
514
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
515
+ attributeSelectorState = _React$useState22[0],
516
+ setAttributeSelectorState = _React$useState22[1];
517
+ var _TieredMenuBase$setMe = TieredMenuBase.setMetaData({
518
+ props: props,
519
+ state: {
520
+ id: idState,
521
+ visible: visibleState,
522
+ attributeSelector: attributeSelectorState
523
+ }
524
+ }),
525
+ ptm = _TieredMenuBase$setMe.ptm,
526
+ cx = _TieredMenuBase$setMe.cx,
527
+ sx = _TieredMenuBase$setMe.sx,
528
+ isUnstyled = _TieredMenuBase$setMe.isUnstyled;
529
+ useHandleStyle(TieredMenuBase.css.styles, isUnstyled, {
530
+ name: 'tieredmenu'
531
+ });
532
+ var containerRef = React.useRef(null);
533
+ var menuRef = React.useRef(null);
534
+ var targetRef = React.useRef(null);
535
+ var relatedTarget = React.useRef(null);
536
+ var styleElementRef = React.useRef(null);
537
+ var searchValue = React.useRef(null);
538
+ var searchTimeout = React.useRef(null);
539
+ var isMobileMode = useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
540
+ var _useEventListener = useEventListener({
541
+ type: 'click',
542
+ listener: function listener(event) {
543
+ var isOutsideContainer = containerRef.current && !containerRef.current.contains(event.target);
544
+ var isOutsideTarget = props.popup ? !(targetRef.current && (targetRef.current === event.target || targetRef.current.contains(event.target))) : true;
545
+ if (isOutsideContainer && isOutsideTarget) {
546
+ hide(event, !props.popup);
547
+ }
548
+ }
549
+ }),
550
+ _useEventListener2 = _slicedToArray(_useEventListener, 2),
551
+ bindDocumentClickListener = _useEventListener2[0],
552
+ unbindDocumentClickListener = _useEventListener2[1];
553
+ var _useResizeListener = useResizeListener({
554
+ listener: function listener() {
555
+ !isMobileMode && hide(event, true);
556
+ }
557
+ }),
558
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
559
+ bindDocumentResizeListener = _useResizeListener2[0],
560
+ unbindDocumentResizeListener = _useResizeListener2[1];
561
+ var onPanelClick = function onPanelClick(event) {
562
+ if (props.popup) {
563
+ OverlayService.emit('overlay-click', {
564
+ originalEvent: event,
565
+ target: targetRef.current
566
+ });
567
+ }
568
+ };
569
+ var toggle = function toggle(event) {
570
+ if (props.popup) {
571
+ visibleState ? hide(event) : show(event);
572
+ }
573
+ };
574
+ var show = function show(event) {
575
+ if (props.popup) {
576
+ targetRef.current = event.currentTarget;
577
+ setVisibleState(true);
578
+ props.onShow && props.onShow(event);
579
+ relatedTarget.current = event.relatedTarget || null;
580
+ }
581
+ setFocusedItemInfo({
582
+ index: findFirstFocusedItemIndex(),
583
+ level: 0,
584
+ parentKey: ''
585
+ });
586
+ };
587
+ var hide = function hide(event, isFocus) {
588
+ if (props.popup) {
589
+ setVisibleState(false);
590
+ props.onHide && props.onHide(event);
591
+ }
592
+ var menuElement = getMenuElement();
593
+ setActiveItemPath([]);
594
+ setFocusedItemInfo({
595
+ index: -1,
596
+ level: 0,
597
+ parentKey: ''
598
+ });
599
+ isFocus && DomHandler.focus(relatedTarget.current || targetRef.current || menuElement);
600
+ setDirty(false);
601
+ };
602
+ var onFocus = function onFocus(event) {
603
+ setFocused(true);
604
+ setFocusedItemInfo(focusedItemInfo.index !== -1 ? focusedItemInfo : {
605
+ index: findFirstFocusedItemIndex(),
606
+ level: 0,
607
+ parentKey: ''
608
+ });
609
+ props.onFocus && props.onFocus(event);
610
+ };
611
+ var onBlur = function onBlur(event) {
612
+ setFocused(false);
613
+ setFocusedItemInfo({
614
+ index: -1,
615
+ level: 0,
616
+ parentKey: ''
617
+ });
618
+ searchValue.current = '';
619
+ setDirty(false);
620
+ props.onBlur && props.onBlur(event);
621
+ };
622
+ var onKeyDown = function onKeyDown(event) {
623
+ var metaKey = event.metaKey || event.ctrlKey;
624
+ switch (event.code) {
625
+ case 'ArrowDown':
626
+ onArrowDownKey(event);
627
+ break;
628
+ case 'ArrowUp':
629
+ onArrowUpKey(event);
630
+ break;
631
+ case 'ArrowLeft':
632
+ onArrowLeftKey(event);
633
+ break;
634
+ case 'ArrowRight':
635
+ onArrowRightKey(event);
636
+ break;
637
+ case 'Home':
638
+ onHomeKey(event);
639
+ break;
640
+ case 'End':
641
+ onEndKey(event);
642
+ break;
643
+ case 'Space':
644
+ onSpaceKey(event);
645
+ break;
646
+ case 'Enter':
647
+ onEnterKey(event);
648
+ break;
649
+ case 'Escape':
650
+ props.popup && DomHandler.focus(targetRef.current);
651
+ onEscapeKey(event);
652
+ break;
653
+ case 'Tab':
654
+ onTabKey(event);
655
+ break;
656
+ case 'PageDown':
657
+ case 'PageUp':
658
+ case 'Backspace':
659
+ case 'ShiftLeft':
660
+ case 'ShiftRight':
661
+ //NOOP
662
+ break;
663
+ default:
664
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
665
+ searchItems(event.key);
666
+ }
667
+ break;
668
+ }
669
+ };
670
+ var onItemChange = function onItemChange(event) {
671
+ var processedItem = event.processedItem,
672
+ isFocus = event.isFocus;
673
+ if (ObjectUtils.isEmpty(processedItem)) return;
674
+ var index = processedItem.index,
675
+ key = processedItem.key,
676
+ level = processedItem.level,
677
+ parentKey = processedItem.parentKey,
678
+ items = processedItem.items;
679
+ var grouped = ObjectUtils.isNotEmpty(items);
680
+ var _activeItemPath = activeItemPath.filter(function (p) {
681
+ return p.parentKey !== parentKey && p.parentKey !== key;
682
+ });
683
+ if (grouped) {
684
+ _activeItemPath.push(processedItem);
685
+ }
686
+ setFocusedItemInfo({
687
+ index: index,
688
+ level: level,
689
+ parentKey: parentKey
690
+ });
691
+ setActiveItemPath(_activeItemPath);
692
+ grouped && setDirty(true);
693
+ isFocus && DomHandler.focus(getMenuElement());
694
+ };
695
+ var onItemClick = function onItemClick(event) {
696
+ var originalEvent = event.originalEvent,
697
+ processedItem = event.processedItem;
698
+ if (isItemDisabled(processedItem) || props.isMobileMode) {
699
+ return;
700
+ }
701
+ var grouped = isProccessedItemGroup(processedItem);
702
+ var root = ObjectUtils.isEmpty(processedItem.parent);
703
+ var selected = isSelected(processedItem);
704
+ var menuElement = getMenuElement();
705
+ if (selected) {
706
+ var index = processedItem.index,
707
+ key = processedItem.key,
708
+ level = processedItem.level,
709
+ parentKey = processedItem.parentKey;
710
+ setActiveItemPath(activeItemPath.filter(function (p) {
711
+ return key !== p.key && key.startsWith(p.key);
712
+ }));
713
+ setFocusedItemInfo({
714
+ index: index,
715
+ level: level,
716
+ parentKey: parentKey
717
+ });
718
+ if (!grouped) {
719
+ setDirty(!root);
720
+ }
721
+ setTimeout(function () {
722
+ DomHandler.focus(menuElement);
723
+ if (grouped) {
724
+ setDirty(true);
725
+ }
726
+ }, 0);
727
+ } else {
728
+ if (grouped) {
729
+ DomHandler.focus(menuElement);
730
+ onItemChange(event);
731
+ } else {
732
+ var rootProcessedItem = root ? processedItem : activeItemPath.find(function (p) {
733
+ return p.parentKey === '';
734
+ });
735
+ var rootProcessedItemIndex = rootProcessedItem ? rootProcessedItem.index : -1;
736
+ hide(originalEvent, true);
737
+ setFocusedItemInfo({
738
+ index: rootProcessedItemIndex,
739
+ parentKey: rootProcessedItem ? rootProcessedItem.parentKey : ''
740
+ });
741
+ }
742
+ }
743
+ };
744
+ var onItemMouseEnter = function onItemMouseEnter(event) {
745
+ var originalEvent = event.originalEvent,
746
+ processedItem = event.processedItem;
747
+ if (isItemDisabled(processedItem) || props.isMobileMode) {
748
+ originalEvent.preventDefault();
749
+ return;
750
+ }
751
+ if (dirty && !props.popup) {
752
+ onItemChange(event);
753
+ }
754
+ };
755
+ var onArrowDownKey = function onArrowDownKey(event) {
756
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
757
+ changeFocusedItemIndex(itemIndex);
758
+ event.preventDefault();
759
+ };
760
+ var onArrowUpKey = function onArrowUpKey(event) {
761
+ if (event.altKey) {
762
+ if (props.popup) {
763
+ DomHandler.focus(targetRef.current);
764
+ }
765
+ if (focusedItemInfo.index !== -1) {
766
+ var processedItem = visibleItems[focusedItemInfo.index];
767
+ var grouped = isProccessedItemGroup(processedItem);
768
+ !grouped && onItemChange({
769
+ originalEvent: event,
770
+ processedItem: processedItem
771
+ });
772
+ }
773
+ props.popup && hide(event, true);
774
+ event.preventDefault();
775
+ } else {
776
+ var itemIndex = focusedItemInfo.index !== -1 ? findPrevItemIndex(focusedItemInfo.index) : findLastFocusedItemIndex();
777
+ changeFocusedItemIndex(itemIndex);
778
+ event.preventDefault();
779
+ }
780
+ };
781
+ var onArrowLeftKey = function onArrowLeftKey(event) {
782
+ var processedItem = visibleItems[focusedItemInfo.index];
783
+ var parentItem = activeItemPath.find(function (p) {
784
+ return p.key === processedItem.parentKey;
785
+ });
786
+ var root = ObjectUtils.isEmpty(processedItem.parent);
787
+ if (!root) {
788
+ setFocusedItemInfo({
789
+ index: -1,
790
+ parentKey: parentItem ? parentItem.parentKey : ''
791
+ });
792
+ searchValue.current = '';
793
+ setTimeout(function () {
794
+ return setFocusTrigger(true);
795
+ }, 0);
796
+ }
797
+ setActiveItemPath(activeItemPath.filter(function (p) {
798
+ return p.parentKey !== focusedItemInfo.parentKey;
799
+ }));
800
+ event.preventDefault();
801
+ };
802
+ var onArrowRightKey = function onArrowRightKey(event) {
803
+ var processedItem = visibleItems[focusedItemInfo.index];
804
+ var grouped = isProccessedItemGroup(processedItem);
805
+ if (grouped) {
806
+ onItemChange({
807
+ originalEvent: event,
808
+ processedItem: processedItem
809
+ });
810
+ setFocusedItemInfo({
811
+ index: -1,
812
+ parentKey: processedItem.key
813
+ });
814
+ searchValue.current = '';
815
+ setTimeout(function () {
816
+ return setFocusTrigger(true);
817
+ }, 0);
818
+ }
819
+ event.preventDefault();
820
+ };
821
+ var onHomeKey = function onHomeKey(event) {
822
+ changeFocusedItemIndex(findFirstItemIndex());
823
+ event.preventDefault();
824
+ };
825
+ var onEndKey = function onEndKey(event) {
826
+ changeFocusedItemIndex(findLastItemIndex());
827
+ event.preventDefault();
828
+ };
829
+ var onEnterKey = function onEnterKey(event) {
830
+ if (focusedItemInfo.index !== -1) {
831
+ var _element = DomHandler.findSingle(getMenuElement(), "li[id=\"".concat("".concat(focusedItemId), "\"]"));
832
+ var anchorElement = _element && DomHandler.findSingle(_element, '[data-pc-section="action"]');
833
+ props.popup && DomHandler.focus(targetRef.current);
834
+ anchorElement ? anchorElement.click() : _element && _element.click();
835
+ }
836
+ event.preventDefault();
837
+ };
838
+ var onSpaceKey = function onSpaceKey(event) {
839
+ onEnterKey(event);
840
+ };
841
+ var onEscapeKey = function onEscapeKey(event) {
842
+ hide(event, true);
843
+ !props.popup && setFocusedItemInfo(_objectSpread$1(_objectSpread$1({}, focusedItemInfo), {}, {
844
+ index: findFirstFocusedItemIndex()
845
+ }));
846
+ event.preventDefault();
847
+ };
848
+ var onTabKey = function onTabKey(event) {
849
+ if (focusedItemInfo.index !== -1) {
850
+ var processedItem = visibleItems[focusedItemInfo.index];
851
+ var grouped = isProccessedItemGroup(processedItem);
852
+ !grouped && onItemChange({
853
+ originalEvent: event,
854
+ processedItem: processedItem
855
+ });
856
+ }
857
+ hide(event);
858
+ };
859
+ var getMenuElement = function getMenuElement() {
860
+ return menuRef.current.getElement() || null;
861
+ };
862
+ var getItemProp = function getItemProp(item, name) {
863
+ return item ? ObjectUtils.getItemValue(item[name]) : undefined;
864
+ };
865
+ var getItemLabel = function getItemLabel(item) {
866
+ return getItemProp(item, 'label');
867
+ };
868
+ var isItemDisabled = function isItemDisabled(item) {
869
+ return getItemProp(item, 'disabled');
870
+ };
871
+ var isItemSeparator = function isItemSeparator(item) {
872
+ return getItemProp(item, 'separator');
873
+ };
874
+ var getProccessedItemLabel = function getProccessedItemLabel(processedItem) {
875
+ return processedItem ? getItemLabel(processedItem.item) : undefined;
876
+ };
877
+ var isProccessedItemGroup = function isProccessedItemGroup(processedItem) {
878
+ return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
879
+ };
880
+ var isItemMatched = function isItemMatched(processedItem) {
881
+ return isValidItem(processedItem) && getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(searchValue.current.toLocaleLowerCase());
882
+ };
883
+ var isValidItem = function isValidItem(processedItem) {
884
+ return !!processedItem && !isItemDisabled(processedItem.item) && !isItemSeparator(processedItem.item);
885
+ };
886
+ var isValidSelectedItem = function isValidSelectedItem(processedItem) {
887
+ return isValidItem(processedItem) && isSelected(processedItem);
888
+ };
889
+ var isSelected = function isSelected(processedItem) {
890
+ return activeItemPath.some(function (p) {
891
+ return p.key === processedItem.key;
892
+ });
893
+ };
894
+ var findFirstItemIndex = function findFirstItemIndex() {
895
+ return visibleItems.findIndex(function (processedItem) {
896
+ return isValidItem(processedItem);
897
+ });
898
+ };
899
+ var findLastItemIndex = function findLastItemIndex() {
900
+ return ObjectUtils.findLastIndex(visibleItems, function (processedItem) {
901
+ return isValidItem(processedItem);
902
+ });
903
+ };
904
+ var findNextItemIndex = function findNextItemIndex(index) {
905
+ var matchedItemIndex = index < visibleItems.length - 1 ? visibleItems.slice(index + 1).findIndex(function (processedItem) {
906
+ return isValidItem(processedItem);
907
+ }) : -1;
908
+ return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
909
+ };
910
+ var findPrevItemIndex = function findPrevItemIndex(index) {
911
+ var matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(visibleItems.slice(0, index), function (processedItem) {
912
+ return isValidItem(processedItem);
913
+ }) : -1;
914
+ return matchedItemIndex > -1 ? matchedItemIndex : index;
915
+ };
916
+ var findSelectedItemIndex = function findSelectedItemIndex() {
917
+ return visibleItems.findIndex(function (processedItem) {
918
+ return isValidSelectedItem(processedItem);
919
+ });
920
+ };
921
+ var findFirstFocusedItemIndex = function findFirstFocusedItemIndex() {
922
+ var selectedIndex = findSelectedItemIndex();
923
+ return selectedIndex < 0 ? findFirstItemIndex() : selectedIndex;
924
+ };
925
+ var findLastFocusedItemIndex = function findLastFocusedItemIndex() {
926
+ var selectedIndex = findSelectedItemIndex();
927
+ return selectedIndex < 0 ? findLastItemIndex() : selectedIndex;
928
+ };
929
+ var searchItems = function searchItems(_char) {
930
+ searchValue.current = (searchValue.current || '') + _char;
931
+ var itemIndex = -1;
932
+ var matched = false;
933
+ if (focusedItemInfo.index !== -1) {
934
+ itemIndex = visibleItems.slice(focusedItemInfo.index).findIndex(function (processedItem) {
935
+ return isItemMatched(processedItem);
936
+ });
937
+ itemIndex = itemIndex === -1 ? visibleItems.slice(0, focusedItemInfo.index).findIndex(function (processedItem) {
938
+ return isItemMatched(processedItem);
939
+ }) : itemIndex + focusedItemInfo.index;
940
+ } else {
941
+ itemIndex = visibleItems.findIndex(function (processedItem) {
942
+ return isItemMatched(processedItem);
943
+ });
944
+ }
945
+ if (itemIndex !== -1) {
946
+ matched = true;
947
+ }
948
+ if (itemIndex === -1 && focusedItemInfo.index === -1) {
949
+ itemIndex = findFirstFocusedItemIndex();
950
+ }
951
+ if (itemIndex !== -1) {
952
+ changeFocusedItemIndex(itemIndex);
953
+ }
954
+ if (searchTimeout.current) {
955
+ clearTimeout(searchTimeout);
956
+ }
957
+ searchTimeout.current = setTimeout(function () {
958
+ searchValue.current = '';
959
+ searchTimeout.current = null;
960
+ }, 500);
961
+ return matched;
962
+ };
963
+ var changeFocusedItemIndex = function changeFocusedItemIndex(index) {
964
+ if (focusedItemInfo.index !== index) {
965
+ setFocusedItemInfo(_objectSpread$1(_objectSpread$1({}, focusedItemInfo), {}, {
966
+ index: index
967
+ }));
968
+ scrollInView();
969
+ }
970
+ };
971
+ var scrollInView = function scrollInView() {
972
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
973
+ var id = index !== -1 ? "".concat(idState, "_").concat(index) : focusedItemId;
974
+ var element = DomHandler.findSingle(getMenuElement(), "li[id=\"".concat(id, "\"]"));
975
+ if (element) {
976
+ element.scrollIntoView && element.scrollIntoView({
977
+ block: 'nearest',
978
+ inline: 'start'
979
+ });
980
+ }
981
+ };
982
+ var createProcessedItems = function createProcessedItems(items) {
983
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
984
+ var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
985
+ var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
986
+ var processedItems = [];
987
+ items && items.forEach(function (item, index) {
988
+ var key = (parentKey !== '' ? parentKey + '_' : '') + index;
989
+ var newItem = {
990
+ item: item,
991
+ index: index,
992
+ level: level,
993
+ key: key,
994
+ parent: parent,
995
+ parentKey: parentKey
996
+ };
997
+ newItem['items'] = createProcessedItems(item.items, level + 1, newItem, key);
998
+ processedItems.push(newItem);
999
+ });
1000
+ return processedItems;
1001
+ };
1002
+ var createStyle = function createStyle() {
1003
+ if (!styleElementRef.current) {
1004
+ styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce, context && context.styleContainer);
1005
+ var selector = "".concat(attributeSelectorState);
1006
+ 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");
1007
+ styleElementRef.current.innerHTML = innerHTML;
1008
+ }
1009
+ };
1010
+ var destroyStyle = function destroyStyle() {
1011
+ styleElementRef.current = DomHandler.removeInlineStyle(styleElementRef.current);
1012
+ };
1013
+ var alignOverlay = function alignOverlay() {
1014
+ DomHandler.absolutePosition(containerRef.current, targetRef.current);
1015
+ var targetWidth = DomHandler.getOuterWidth(targetRef.current);
1016
+ if (targetWidth > DomHandler.getOuterWidth(containerRef.current)) {
1017
+ containerRef.current.style.minWidth = DomHandler.getOuterWidth(targetRef.current) + 'px';
1018
+ }
1019
+ };
1020
+ var onEnter = function onEnter() {
1021
+ if (props.autoZIndex) {
1022
+ ZIndexUtils.set('menu', containerRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, props.baseZIndex || context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
1023
+ }
1024
+ DomHandler.addStyles(containerRef.current, {
1025
+ position: 'absolute',
1026
+ top: '0',
1027
+ left: '0'
1028
+ });
1029
+ alignOverlay();
1030
+ DomHandler.focus(menuRef.current.getElement());
1031
+ scrollInView();
1032
+ if (attributeSelectorState && props.breakpoint) {
1033
+ containerRef.current.setAttribute(attributeSelectorState, '');
1034
+ createStyle();
1035
+ }
1036
+ };
1037
+ var onEntered = function onEntered() {
1038
+ bindDocumentClickListener();
1039
+ bindDocumentResizeListener();
1040
+ };
1041
+ var onExit = function onExit() {
1042
+ targetRef.current = null;
1043
+ unbindDocumentClickListener();
1044
+ unbindDocumentResizeListener();
1045
+ };
1046
+ var onExited = function onExited() {
1047
+ ZIndexUtils.clear(containerRef.current);
1048
+ destroyStyle();
1049
+ };
1050
+ useMountEffect(function () {
1051
+ var uniqueId = UniqueComponentId();
1052
+ !idState && setIdState(uniqueId);
1053
+ if (props.breakpoint) {
1054
+ !attributeSelectorState && setAttributeSelectorState(uniqueId);
1055
+ }
1056
+ });
1057
+ useUpdateEffect(function () {
1058
+ var itemsToProcess = props.model || [];
1059
+ var processed = createProcessedItems(itemsToProcess);
1060
+ setProcessedItems(processed);
1061
+ }, props.model);
1062
+ useUpdateEffect(function () {
1063
+ var processedItem = activeItemPath.find(function (p) {
1064
+ return p.key === focusedItemInfo.parentKey;
1065
+ });
1066
+ var processed = processedItem ? processedItem.items : processedItems;
1067
+ setVisibleItems(processed);
1068
+ }, [activeItemPath, focusedItemInfo, processedItems]);
1069
+ useUpdateEffect(function () {
1070
+ var focusedId = focusedItemInfo.index !== -1 ? "".concat(idState).concat(ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null;
1071
+ setFocusedItemId(focusedId);
1072
+ }, [focusedItemInfo]);
1073
+ useUpdateEffect(function () {
1074
+ if (!props.popup) {
1075
+ if (ObjectUtils.isNotEmpty(activeItemPath)) {
1076
+ bindDocumentClickListener();
1077
+ bindDocumentResizeListener();
1078
+ } else {
1079
+ unbindDocumentClickListener();
1080
+ unbindDocumentResizeListener();
1081
+ }
1082
+ }
1083
+ }, [activeItemPath]);
1084
+ useUpdateEffect(function () {
1085
+ if (focusTrigger) {
1086
+ var itemIndex = focusedItemInfo.index !== -1 ? findNextItemIndex(focusedItemInfo.index) : findFirstFocusedItemIndex();
1087
+ changeFocusedItemIndex(itemIndex);
1088
+ setActiveItemPath(activeItemPath.filter(function (p) {
1089
+ return p.parentKey !== focusedItemInfo.parentKey;
1090
+ }));
1091
+ setFocusTrigger(false);
1092
+ }
1093
+ }, [focusTrigger]);
1094
+ useUpdateEffect(function () {
1095
+ if (attributeSelectorState && containerRef.current) {
1096
+ containerRef.current.setAttribute(attributeSelectorState, '');
1097
+ createStyle();
1098
+ }
1099
+ return function () {
1100
+ destroyStyle();
1101
+ };
1102
+ }, [attributeSelectorState, props.breakpoint]);
1103
+ useUnmountEffect(function () {
1104
+ ZIndexUtils.clear(containerRef.current);
1105
+ });
1106
+ React.useImperativeHandle(ref, function () {
1107
+ return {
1108
+ props: props,
1109
+ toggle: toggle,
1110
+ show: show,
1111
+ hide: hide,
1112
+ getElement: function getElement() {
1113
+ return containerRef.current;
1114
+ }
1115
+ };
1116
+ });
1117
+ var createElement = function createElement() {
1118
+ var rootProps = mergeProps({
1119
+ ref: containerRef,
1120
+ id: props.id,
1121
+ className: cx('root'),
1122
+ style: props.style,
1123
+ onClick: onPanelClick
1124
+ }, TieredMenuBase.getOtherProps(props), ptm('root'));
1125
+ var transitionProps = mergeProps({
1126
+ classNames: cx('transition'),
1127
+ "in": visibleState,
1128
+ timeout: {
1129
+ enter: 120,
1130
+ exit: 100
1131
+ },
1132
+ options: props.transitionOptions,
1133
+ unmountOnExit: true,
1134
+ onEnter: onEnter,
1135
+ onEntered: onEntered,
1136
+ onExit: onExit,
1137
+ onExited: onExited
1138
+ }, ptm('transition'));
1139
+ return /*#__PURE__*/React.createElement(CSSTransition, _extends({
1140
+ nodeRef: containerRef
1141
+ }, transitionProps), /*#__PURE__*/React.createElement("div", rootProps, /*#__PURE__*/React.createElement(TieredMenuSub, {
1142
+ id: idState + '_list',
1143
+ ref: menuRef,
1144
+ hostName: "TieredMenu",
1145
+ menuProps: props,
1146
+ tabIndex: 0,
1147
+ model: processedItems,
1148
+ ariaLabel: props.ariaLabel,
1149
+ ariaLabelledBy: props.ariaLabelledBy,
1150
+ ariaOrientation: "vertical",
1151
+ ariaActiveDescendant: focused ? focusedItemId : undefined,
1152
+ menuId: idState,
1153
+ level: 0,
1154
+ focusedItemId: focusedItemId,
1155
+ activeItemPath: activeItemPath,
1156
+ onFocus: onFocus,
1157
+ onBlur: onBlur,
1158
+ onKeyDown: onKeyDown,
1159
+ onItemClick: onItemClick,
1160
+ onItemMouseEnter: onItemMouseEnter,
1161
+ root: true,
1162
+ popup: props.popup,
1163
+ onHide: hide,
1164
+ isMobileMode: isMobileMode,
1165
+ submenuIcon: props.submenuIcon,
1166
+ ptm: ptm,
1167
+ cx: cx,
1168
+ sx: sx
1169
+ })));
1170
+ };
1171
+ var element = createElement();
1172
+ return props.popup ? /*#__PURE__*/React.createElement(Portal, {
1173
+ element: element,
1174
+ appendTo: props.appendTo
1175
+ }) : element;
1176
+ }));
1177
+ TieredMenu.displayName = 'TieredMenu';
1178
+
125
1179
  var classes = {
126
1180
  icon: 'p-button-icon p-c',
127
1181
  root: function root(_ref) {
@@ -159,6 +1213,8 @@ var SplitButtonBase = ComponentBase.extend({
159
1213
  id: null,
160
1214
  label: null,
161
1215
  icon: null,
1216
+ autoZIndex: false,
1217
+ baseZIndex: 0,
162
1218
  loading: false,
163
1219
  loadingIcon: null,
164
1220
  model: null,
@@ -195,243 +1251,6 @@ var SplitButtonBase = ComponentBase.extend({
195
1251
  }
196
1252
  });
197
1253
 
198
- 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
- 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) {
201
- 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));
207
- };
208
- var onClick = function onClick(e) {
209
- if (props.menuitem.command) {
210
- props.menuitem.command({
211
- originalEvent: e,
212
- item: props.menuitem
213
- });
214
- }
215
- if (props.onItemClick) {
216
- props.onItemClick(e);
217
- }
218
- e.preventDefault();
219
- };
220
- var createSeparator = function createSeparator() {
221
- var separatorProps = mergeProps({
222
- className: cx('separator'),
223
- role: 'separator'
224
- }, getPTOptions('separator'));
225
- return /*#__PURE__*/React.createElement("li", separatorProps);
226
- };
227
- var createMenuitem = function createMenuitem() {
228
- if (props.menuitem.visible === false) {
229
- return null;
230
- }
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
- });
242
- 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
248
- });
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({
254
- 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) {
263
- var defaultContentOptions = {
264
- onClick: onClick,
265
- className: className,
266
- labelClassName: 'p-menuitem-text',
267
- iconClassName: iconClassName,
268
- element: content,
269
- props: props
270
- };
271
- content = ObjectUtils.getJSXElement(template, props.menuitem, defaultContentOptions);
272
- }
273
- var menuItemProps = mergeProps({
274
- className: cx('menuItem'),
275
- role: 'none'
276
- }, getPTOptions('menuItem'));
277
- return /*#__PURE__*/React.createElement("li", menuItemProps, content);
278
- };
279
- var createItem = function createItem() {
280
- return props.menuitem.separator ? createSeparator() : createMenuitem();
281
- };
282
- var item = createItem();
283
- return item;
284
- });
285
- SplitButtonItem.displayName = 'SplitButtonItem';
286
-
287
- 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
- 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;
341
- });
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;
362
- 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);
376
- }
377
- };
378
- var unbind = function unbind() {
379
- if (listenerRef.current) {
380
- targetRef.current.removeEventListener(type, listenerRef.current, options);
381
- listenerRef.current = null;
382
- }
383
- };
384
- React.useEffect(function () {
385
- if (when) {
386
- targetRef.current = DomHandler.getTargetElement(target);
387
- } else {
388
- unbind();
389
- targetRef.current = null;
390
- }
391
- }, [target, when]);
392
- React.useEffect(function () {
393
- if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {
394
- unbind();
395
- when && bind();
396
- }
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);
410
- }
411
- return;
412
- };
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) {
422
- return;
423
- }
424
- if (!ref.current) {
425
- return;
426
- }
427
- bindKeyDownListener();
428
- return function () {
429
- unbindKeyDownListener();
430
- };
431
- });
432
- return [ref, callback];
433
- };
434
-
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; }
437
1256
  var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {
@@ -446,8 +1265,10 @@ 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);
1271
+ var overlayDisplayOrder = useDisplayOrder('split-button-tooltip', overlayVisibleState);
451
1272
  var metaData = {
452
1273
  props: props,
453
1274
  state: {
@@ -462,57 +1283,41 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
462
1283
  useHandleStyle(SplitButtonBase.css.styles, isUnstyled, {
463
1284
  name: 'splitbutton'
464
1285
  });
465
- useOnEscapeKey(overlayRef, overlayVisibleState, function () {
466
- return hide();
1286
+ useGlobalOnEscapeKey({
1287
+ callback: function callback() {
1288
+ hide();
1289
+ },
1290
+ when: overlayVisibleState,
1291
+ priority: [ESC_KEY_HANDLING_PRIORITIES.SPLIT_BUTTON, overlayDisplayOrder]
467
1292
  });
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
1293
  var onPanelClick = function onPanelClick(event) {
481
1294
  OverlayService.emit('overlay-click', {
482
1295
  originalEvent: event,
483
1296
  target: elementRef.current
484
1297
  });
485
1298
  };
486
- var onDropdownButtonClick = function onDropdownButtonClick() {
487
- overlayVisibleState ? hide() : show();
1299
+ var onMenuButtonKeyDown = function onMenuButtonKeyDown(event) {
1300
+ if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {
1301
+ onDropdownButtonClick(event);
1302
+ event.preventDefault();
1303
+ }
488
1304
  };
489
- var onItemClick = function onItemClick() {
490
- hide();
1305
+ var onDropdownButtonClick = function onDropdownButtonClick(event) {
1306
+ overlayVisibleState ? hide(event) : show(event);
491
1307
  };
492
- var show = function show() {
1308
+ var show = function show(event) {
493
1309
  setOverlayVisibleState(true);
1310
+ menuRef.current && menuRef.current.show(event);
494
1311
  };
495
- var hide = function hide() {
1312
+ var hide = function hide(event) {
496
1313
  setOverlayVisibleState(false);
1314
+ menuRef.current && menuRef.current.hide(event);
497
1315
  };
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();
1316
+ var onMenuShow = function onMenuShow() {
509
1317
  props.onShow && props.onShow();
510
1318
  };
511
- var onOverlayExit = function onOverlayExit() {
512
- unbindOverlayListener();
513
- };
514
- var onOverlayExited = function onOverlayExited() {
515
- ZIndexUtils.clear(overlayRef.current);
1319
+ var onMenuHide = function onMenuHide() {
1320
+ setOverlayVisibleState(false);
516
1321
  props.onHide && props.onHide();
517
1322
  };
518
1323
  var alignOverlay = function alignOverlay() {
@@ -524,7 +1329,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
524
1329
  }
525
1330
  alignOverlay();
526
1331
  });
527
- useUnmountEffect$1(function () {
1332
+ useUnmountEffect(function () {
528
1333
  ZIndexUtils.clear(overlayRef.current);
529
1334
  });
530
1335
  React.useImperativeHandle(ref, function () {
@@ -537,22 +1342,6 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
537
1342
  }
538
1343
  };
539
1344
  });
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
1345
  if (props.visible === false) {
557
1346
  return null;
558
1347
  }
@@ -563,8 +1352,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
563
1352
  };
564
1353
  var size = sizeMapping[props.size];
565
1354
  var buttonContent = props.buttonTemplate ? ObjectUtils.getJSXElement(props.buttonTemplate, props) : null;
566
- var items = createItems();
567
- var menuId = idState + '_menu';
1355
+ var menuId = idState + '_overlay';
568
1356
  var dropdownIcon = function dropdownIcon() {
569
1357
  var iconProps = mergeProps({
570
1358
  className: cx('icon')
@@ -592,6 +1380,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
592
1380
  loadingIcon: props.loadingIcon,
593
1381
  severity: props.severity,
594
1382
  label: props.label,
1383
+ "aria-label": props.label,
595
1384
  raised: props.raised,
596
1385
  onClick: props.onClick,
597
1386
  disabled: props.disabled,
@@ -613,7 +1402,7 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
613
1402
  disabled: props.disabled,
614
1403
  "aria-expanded": overlayVisibleState,
615
1404
  "aria-haspopup": "true",
616
- "aria-controls": overlayVisibleState ? menuId : null
1405
+ "aria-controls": menuId
617
1406
  }, props.menuButtonProps, {
618
1407
  size: props.size,
619
1408
  severity: props.severity,
@@ -624,24 +1413,24 @@ var SplitButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
624
1413
  __parentMetadata: {
625
1414
  parent: metaData
626
1415
  },
1416
+ onKeyDown: onMenuButtonKeyDown,
627
1417
  unstyled: props.unstyled
628
- })), /*#__PURE__*/React.createElement(SplitButtonPanel, {
629
- hostName: "SplitButton",
630
- ref: overlayRef,
1418
+ })), /*#__PURE__*/React.createElement(TieredMenu, {
1419
+ ref: menuRef,
1420
+ popup: true,
1421
+ unstyled: props.unstyled,
1422
+ model: props.model,
631
1423
  appendTo: props.appendTo,
632
- menuId: menuId,
633
- menuStyle: props.menuStyle,
634
- menuClassName: props.menuClassName,
1424
+ id: menuId,
1425
+ style: props.menuStyle,
1426
+ autoZIndex: props.autoZIndex,
1427
+ baseZIndex: props.baseZIndex,
1428
+ className: props.menuClassName,
635
1429
  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({
1430
+ onShow: onMenuShow,
1431
+ onHide: onMenuHide,
1432
+ pt: ptm('menu')
1433
+ })), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
645
1434
  target: elementRef,
646
1435
  content: props.tooltip
647
1436
  }, props.tooltipOptions, {