primevue 3.20.0 → 3.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/README.md +3 -15
  2. package/accordion/accordion.cjs.js +1 -1
  3. package/accordion/accordion.cjs.min.js +1 -1
  4. package/accordion/accordion.esm.js +1 -1
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +1 -1
  7. package/accordion/accordion.min.js +1 -1
  8. package/autocomplete/AutoComplete.d.ts +9 -1
  9. package/autocomplete/AutoComplete.vue +41 -22
  10. package/autocomplete/autocomplete.cjs.js +53 -25
  11. package/autocomplete/autocomplete.cjs.min.js +1 -1
  12. package/autocomplete/autocomplete.esm.js +53 -25
  13. package/autocomplete/autocomplete.esm.min.js +1 -1
  14. package/autocomplete/autocomplete.js +53 -25
  15. package/autocomplete/autocomplete.min.js +1 -1
  16. package/avatar/avatar.cjs.js +1 -1
  17. package/avatar/avatar.cjs.min.js +1 -1
  18. package/avatar/avatar.esm.js +1 -1
  19. package/avatar/avatar.esm.min.js +1 -1
  20. package/avatar/avatar.js +1 -1
  21. package/avatar/avatar.min.js +1 -1
  22. package/avatargroup/avatargroup.cjs.js +1 -1
  23. package/avatargroup/avatargroup.cjs.min.js +1 -1
  24. package/avatargroup/avatargroup.esm.js +1 -1
  25. package/avatargroup/avatargroup.esm.min.js +1 -1
  26. package/avatargroup/avatargroup.js +1 -1
  27. package/avatargroup/avatargroup.min.js +1 -1
  28. package/badgedirective/badgedirective.cjs.js +1 -1
  29. package/badgedirective/badgedirective.cjs.min.js +1 -1
  30. package/badgedirective/badgedirective.esm.js +1 -1
  31. package/badgedirective/badgedirective.esm.min.js +1 -1
  32. package/badgedirective/badgedirective.js +1 -1
  33. package/badgedirective/badgedirective.min.js +1 -1
  34. package/breadcrumb/Breadcrumb.vue +1 -1
  35. package/breadcrumb/breadcrumb.cjs.js +2 -3
  36. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  37. package/breadcrumb/breadcrumb.esm.js +2 -3
  38. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  39. package/breadcrumb/breadcrumb.js +2 -3
  40. package/breadcrumb/breadcrumb.min.js +1 -1
  41. package/calendar/Calendar.d.ts +1 -1
  42. package/calendar/Calendar.vue +3 -2
  43. package/calendar/calendar.cjs.js +4 -3
  44. package/calendar/calendar.cjs.min.js +1 -1
  45. package/calendar/calendar.esm.js +4 -3
  46. package/calendar/calendar.esm.min.js +1 -1
  47. package/calendar/calendar.js +4 -3
  48. package/calendar/calendar.min.js +1 -1
  49. package/carousel/Carousel.d.ts +9 -1
  50. package/carousel/Carousel.vue +144 -19
  51. package/carousel/carousel.cjs.js +159 -45
  52. package/carousel/carousel.cjs.min.js +1 -1
  53. package/carousel/carousel.esm.js +160 -46
  54. package/carousel/carousel.esm.min.js +1 -1
  55. package/carousel/carousel.js +160 -46
  56. package/carousel/carousel.min.js +1 -1
  57. package/cascadeselect/CascadeSelect.vue +9 -4
  58. package/cascadeselect/cascadeselect.cjs.js +9 -4
  59. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  60. package/cascadeselect/cascadeselect.esm.js +9 -4
  61. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  62. package/cascadeselect/cascadeselect.js +9 -4
  63. package/cascadeselect/cascadeselect.min.js +1 -1
  64. package/chart/Chart.d.ts +5 -0
  65. package/chart/Chart.vue +5 -1
  66. package/chart/chart.cjs.js +6 -2
  67. package/chart/chart.cjs.min.js +1 -1
  68. package/chart/chart.esm.js +7 -3
  69. package/chart/chart.esm.min.js +1 -1
  70. package/chart/chart.js +6 -2
  71. package/chart/chart.min.js +1 -1
  72. package/checkbox/Checkbox.vue +1 -3
  73. package/checkbox/checkbox.cjs.js +3 -4
  74. package/checkbox/checkbox.cjs.min.js +1 -1
  75. package/checkbox/checkbox.esm.js +4 -5
  76. package/checkbox/checkbox.esm.min.js +1 -1
  77. package/checkbox/checkbox.js +3 -4
  78. package/checkbox/checkbox.min.js +1 -1
  79. package/chip/chip.cjs.js +1 -1
  80. package/chip/chip.cjs.min.js +1 -1
  81. package/chip/chip.esm.js +1 -1
  82. package/chip/chip.esm.min.js +1 -1
  83. package/chip/chip.js +1 -1
  84. package/chip/chip.min.js +1 -1
  85. package/chips/chips.cjs.js +1 -1
  86. package/chips/chips.cjs.min.js +1 -1
  87. package/chips/chips.esm.js +1 -1
  88. package/chips/chips.esm.min.js +1 -1
  89. package/chips/chips.js +1 -1
  90. package/chips/chips.min.js +1 -1
  91. package/colorpicker/ColorPicker.vue +5 -7
  92. package/colorpicker/colorpicker.cjs.js +5 -7
  93. package/colorpicker/colorpicker.cjs.min.js +1 -1
  94. package/colorpicker/colorpicker.esm.js +5 -7
  95. package/colorpicker/colorpicker.esm.min.js +1 -1
  96. package/colorpicker/colorpicker.js +6 -8
  97. package/colorpicker/colorpicker.min.js +1 -1
  98. package/config/PrimeVue.d.ts +37 -0
  99. package/config/config.cjs.js +38 -1
  100. package/config/config.cjs.min.js +1 -1
  101. package/config/config.esm.js +38 -1
  102. package/config/config.esm.min.js +1 -1
  103. package/config/config.js +38 -1
  104. package/config/config.min.js +1 -1
  105. package/confirmationservice/ConfirmationService.d.ts +1 -1
  106. package/confirmdialog/ConfirmDialog.vue +1 -1
  107. package/confirmdialog/confirmdialog.cjs.js +6 -3
  108. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  109. package/confirmdialog/confirmdialog.esm.js +7 -4
  110. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  111. package/confirmdialog/confirmdialog.js +6 -3
  112. package/confirmdialog/confirmdialog.min.js +1 -1
  113. package/confirmpopup/ConfirmPopup.vue +11 -10
  114. package/confirmpopup/confirmpopup.cjs.js +15 -13
  115. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  116. package/confirmpopup/confirmpopup.esm.js +15 -13
  117. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  118. package/confirmpopup/confirmpopup.js +15 -13
  119. package/confirmpopup/confirmpopup.min.js +1 -1
  120. package/contextmenu/ContextMenuSub.vue +3 -5
  121. package/contextmenu/contextmenu.cjs.js +4 -6
  122. package/contextmenu/contextmenu.cjs.min.js +1 -1
  123. package/contextmenu/contextmenu.esm.js +4 -6
  124. package/contextmenu/contextmenu.esm.min.js +1 -1
  125. package/contextmenu/contextmenu.js +4 -6
  126. package/contextmenu/contextmenu.min.js +1 -1
  127. package/core/core.js +537 -261
  128. package/core/core.min.js +13 -13
  129. package/datatable/BodyCell.vue +39 -14
  130. package/datatable/ColumnFilter.vue +67 -41
  131. package/datatable/DataTable.d.ts +11 -3
  132. package/datatable/DataTable.vue +162 -25
  133. package/datatable/HeaderCell.vue +12 -6
  134. package/datatable/HeaderCheckbox.vue +17 -14
  135. package/datatable/RowCheckbox.vue +28 -13
  136. package/datatable/RowRadioButton.vue +11 -3
  137. package/datatable/TableBody.vue +25 -7
  138. package/datatable/TableFooter.vue +1 -1
  139. package/datatable/TableHeader.vue +9 -3
  140. package/datatable/TableLoadingBody.vue +1 -1
  141. package/datatable/datatable.cjs.js +540 -269
  142. package/datatable/datatable.cjs.min.js +1 -1
  143. package/datatable/datatable.esm.js +539 -269
  144. package/datatable/datatable.esm.min.js +1 -1
  145. package/datatable/datatable.js +539 -269
  146. package/datatable/datatable.min.js +1 -1
  147. package/dataviewlayoutoptions/DataViewLayoutOptions.vue +23 -3
  148. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.js +40 -11
  149. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.min.js +1 -1
  150. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.js +40 -11
  151. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.min.js +1 -1
  152. package/dataviewlayoutoptions/dataviewlayoutoptions.js +40 -11
  153. package/dataviewlayoutoptions/dataviewlayoutoptions.min.js +1 -1
  154. package/dialog/Dialog.vue +12 -7
  155. package/dialog/dialog.cjs.js +15 -10
  156. package/dialog/dialog.cjs.min.js +1 -1
  157. package/dialog/dialog.esm.js +15 -10
  158. package/dialog/dialog.esm.min.js +1 -1
  159. package/dialog/dialog.js +15 -10
  160. package/dialog/dialog.min.js +1 -1
  161. package/divider/divider.cjs.js +1 -1
  162. package/divider/divider.cjs.min.js +1 -1
  163. package/divider/divider.esm.js +1 -1
  164. package/divider/divider.esm.min.js +1 -1
  165. package/divider/divider.js +1 -1
  166. package/divider/divider.min.js +1 -1
  167. package/dock/dock.cjs.js +1 -1
  168. package/dock/dock.cjs.min.js +1 -1
  169. package/dock/dock.esm.js +1 -1
  170. package/dock/dock.esm.min.js +1 -1
  171. package/dock/dock.js +1 -1
  172. package/dock/dock.min.js +1 -1
  173. package/dropdown/Dropdown.vue +24 -16
  174. package/dropdown/dropdown.cjs.js +25 -17
  175. package/dropdown/dropdown.cjs.min.js +1 -1
  176. package/dropdown/dropdown.esm.js +25 -17
  177. package/dropdown/dropdown.esm.min.js +1 -1
  178. package/dropdown/dropdown.js +25 -17
  179. package/dropdown/dropdown.min.js +1 -1
  180. package/editor/Editor.vue +7 -1
  181. package/editor/editor.cjs.js +35 -6
  182. package/editor/editor.cjs.min.js +1 -1
  183. package/editor/editor.esm.js +35 -6
  184. package/editor/editor.esm.min.js +1 -1
  185. package/editor/editor.js +35 -6
  186. package/editor/editor.min.js +1 -1
  187. package/fieldset/Fieldset.vue +1 -1
  188. package/fieldset/fieldset.cjs.js +2 -2
  189. package/fieldset/fieldset.cjs.min.js +1 -1
  190. package/fieldset/fieldset.esm.js +2 -2
  191. package/fieldset/fieldset.esm.min.js +1 -1
  192. package/fieldset/fieldset.js +3 -3
  193. package/fieldset/fieldset.min.js +1 -1
  194. package/fileupload/FileUpload.d.ts +51 -1
  195. package/fileupload/FileUpload.vue +2 -2
  196. package/fileupload/fileupload.cjs.js +3 -3
  197. package/fileupload/fileupload.cjs.min.js +1 -1
  198. package/fileupload/fileupload.esm.js +3 -3
  199. package/fileupload/fileupload.esm.min.js +1 -1
  200. package/fileupload/fileupload.js +3 -3
  201. package/fileupload/fileupload.min.js +1 -1
  202. package/focustrap/focustrap.cjs.js +86 -64
  203. package/focustrap/focustrap.cjs.min.js +1 -1
  204. package/focustrap/focustrap.esm.js +85 -63
  205. package/focustrap/focustrap.esm.min.js +1 -1
  206. package/focustrap/focustrap.js +86 -64
  207. package/focustrap/focustrap.min.js +1 -1
  208. package/galleria/Galleria.d.ts +15 -3
  209. package/galleria/Galleria.vue +36 -6
  210. package/galleria/GalleriaContent.vue +11 -7
  211. package/galleria/GalleriaItem.vue +36 -6
  212. package/galleria/GalleriaThumbnails.vue +108 -4
  213. package/galleria/galleria.cjs.js +259 -123
  214. package/galleria/galleria.cjs.min.js +1 -1
  215. package/galleria/galleria.esm.js +258 -123
  216. package/galleria/galleria.esm.min.js +1 -1
  217. package/galleria/galleria.js +259 -124
  218. package/galleria/galleria.min.js +1 -1
  219. package/image/Image.vue +71 -13
  220. package/image/image.cjs.js +113 -40
  221. package/image/image.cjs.min.js +1 -1
  222. package/image/image.esm.js +113 -41
  223. package/image/image.esm.min.js +1 -1
  224. package/image/image.js +113 -41
  225. package/image/image.min.js +1 -1
  226. package/inlinemessage/inlinemessage.cjs.js +1 -1
  227. package/inlinemessage/inlinemessage.cjs.min.js +1 -1
  228. package/inlinemessage/inlinemessage.esm.js +1 -1
  229. package/inlinemessage/inlinemessage.esm.min.js +1 -1
  230. package/inlinemessage/inlinemessage.js +1 -1
  231. package/inlinemessage/inlinemessage.min.js +1 -1
  232. package/inplace/inplace.cjs.js +1 -1
  233. package/inplace/inplace.cjs.min.js +1 -1
  234. package/inplace/inplace.esm.js +1 -1
  235. package/inplace/inplace.esm.min.js +1 -1
  236. package/inplace/inplace.js +1 -1
  237. package/inplace/inplace.min.js +1 -1
  238. package/inputnumber/InputNumber.vue +11 -20
  239. package/inputnumber/inputnumber.cjs.js +12 -21
  240. package/inputnumber/inputnumber.cjs.min.js +1 -1
  241. package/inputnumber/inputnumber.esm.js +12 -21
  242. package/inputnumber/inputnumber.esm.min.js +1 -1
  243. package/inputnumber/inputnumber.js +12 -21
  244. package/inputnumber/inputnumber.min.js +1 -1
  245. package/knob/knob.cjs.js +1 -1
  246. package/knob/knob.cjs.min.js +1 -1
  247. package/knob/knob.esm.js +1 -1
  248. package/knob/knob.esm.min.js +1 -1
  249. package/knob/knob.js +1 -1
  250. package/knob/knob.min.js +1 -1
  251. package/listbox/Listbox.vue +12 -8
  252. package/listbox/listbox.cjs.js +13 -9
  253. package/listbox/listbox.cjs.min.js +1 -1
  254. package/listbox/listbox.esm.js +13 -9
  255. package/listbox/listbox.esm.min.js +1 -1
  256. package/listbox/listbox.js +14 -10
  257. package/listbox/listbox.min.js +1 -1
  258. package/megamenu/MegaMenu.vue +10 -1
  259. package/megamenu/MegaMenuSub.vue +3 -5
  260. package/megamenu/megamenu.cjs.js +14 -7
  261. package/megamenu/megamenu.cjs.min.js +1 -1
  262. package/megamenu/megamenu.esm.js +14 -7
  263. package/megamenu/megamenu.esm.min.js +1 -1
  264. package/megamenu/megamenu.js +14 -7
  265. package/megamenu/megamenu.min.js +1 -1
  266. package/menu/Menu.vue +8 -2
  267. package/menu/menu.cjs.js +9 -3
  268. package/menu/menu.cjs.min.js +1 -1
  269. package/menu/menu.esm.js +9 -3
  270. package/menu/menu.esm.min.js +1 -1
  271. package/menu/menu.js +9 -3
  272. package/menu/menu.min.js +1 -1
  273. package/menubar/Menubar.vue +7 -2
  274. package/menubar/MenubarSub.vue +3 -5
  275. package/menubar/menubar.cjs.js +11 -8
  276. package/menubar/menubar.cjs.min.js +1 -1
  277. package/menubar/menubar.esm.js +11 -8
  278. package/menubar/menubar.esm.min.js +1 -1
  279. package/menubar/menubar.js +11 -8
  280. package/menubar/menubar.min.js +1 -1
  281. package/message/Message.d.ts +5 -1
  282. package/message/Message.vue +15 -5
  283. package/message/message.cjs.js +24 -10
  284. package/message/message.cjs.min.js +1 -1
  285. package/message/message.esm.js +25 -11
  286. package/message/message.esm.min.js +1 -1
  287. package/message/message.js +24 -10
  288. package/message/message.min.js +1 -1
  289. package/multiselect/MultiSelect.vue +53 -36
  290. package/multiselect/multiselect.cjs.js +54 -37
  291. package/multiselect/multiselect.cjs.min.js +1 -1
  292. package/multiselect/multiselect.esm.js +55 -38
  293. package/multiselect/multiselect.esm.min.js +1 -1
  294. package/multiselect/multiselect.js +54 -37
  295. package/multiselect/multiselect.min.js +1 -1
  296. package/orderlist/OrderList.d.ts +33 -1
  297. package/orderlist/OrderList.vue +265 -63
  298. package/orderlist/orderlist.cjs.js +280 -70
  299. package/orderlist/orderlist.cjs.min.js +1 -1
  300. package/orderlist/orderlist.esm.js +281 -71
  301. package/orderlist/orderlist.esm.min.js +1 -1
  302. package/orderlist/orderlist.js +281 -71
  303. package/orderlist/orderlist.min.js +1 -1
  304. package/organizationchart/OrganizationChartNode.vue +7 -1
  305. package/organizationchart/organizationchart.cjs.js +8 -2
  306. package/organizationchart/organizationchart.cjs.min.js +1 -1
  307. package/organizationchart/organizationchart.esm.js +9 -3
  308. package/organizationchart/organizationchart.esm.min.js +1 -1
  309. package/organizationchart/organizationchart.js +8 -2
  310. package/organizationchart/organizationchart.min.js +1 -1
  311. package/overlaypanel/overlaypanel.cjs.js +1 -1
  312. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  313. package/overlaypanel/overlaypanel.esm.js +1 -1
  314. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  315. package/overlaypanel/overlaypanel.js +1 -1
  316. package/overlaypanel/overlaypanel.min.js +1 -1
  317. package/package.json +2 -2
  318. package/paginator/CurrentPageReport.vue +0 -1
  319. package/paginator/JumpToPageDropdown.vue +0 -1
  320. package/paginator/JumpToPageInput.vue +19 -4
  321. package/paginator/PageLinks.vue +16 -1
  322. package/paginator/Paginator.vue +24 -11
  323. package/paginator/RowsPerPageDropdown.vue +0 -1
  324. package/paginator/paginator.cjs.js +51 -20
  325. package/paginator/paginator.cjs.min.js +1 -1
  326. package/paginator/paginator.esm.js +51 -20
  327. package/paginator/paginator.esm.min.js +1 -1
  328. package/paginator/paginator.js +51 -20
  329. package/paginator/paginator.min.js +1 -1
  330. package/panel/Panel.vue +2 -2
  331. package/panel/panel.cjs.js +3 -3
  332. package/panel/panel.cjs.min.js +1 -1
  333. package/panel/panel.esm.js +3 -3
  334. package/panel/panel.esm.min.js +1 -1
  335. package/panel/panel.js +4 -4
  336. package/panel/panel.min.js +1 -1
  337. package/panelmenu/PanelMenu.vue +4 -4
  338. package/panelmenu/PanelMenuList.vue +57 -0
  339. package/panelmenu/PanelMenuSub.vue +3 -5
  340. package/panelmenu/panelmenu.cjs.js +78 -10
  341. package/panelmenu/panelmenu.cjs.min.js +1 -1
  342. package/panelmenu/panelmenu.esm.js +78 -10
  343. package/panelmenu/panelmenu.esm.min.js +1 -1
  344. package/panelmenu/panelmenu.js +78 -10
  345. package/panelmenu/panelmenu.min.js +1 -1
  346. package/password/Password.vue +5 -0
  347. package/password/password.cjs.js +1 -1
  348. package/password/password.cjs.min.js +1 -1
  349. package/password/password.esm.js +1 -1
  350. package/password/password.esm.min.js +1 -1
  351. package/password/password.js +1 -1
  352. package/password/password.min.js +1 -1
  353. package/picklist/PickList.d.ts +45 -1
  354. package/picklist/PickList.vue +305 -58
  355. package/picklist/picklist.cjs.js +350 -89
  356. package/picklist/picklist.cjs.min.js +1 -1
  357. package/picklist/picklist.esm.js +351 -90
  358. package/picklist/picklist.esm.min.js +1 -1
  359. package/picklist/picklist.js +351 -90
  360. package/picklist/picklist.min.js +1 -1
  361. package/progressbar/progressbar.cjs.js +1 -1
  362. package/progressbar/progressbar.cjs.min.js +1 -1
  363. package/progressbar/progressbar.esm.js +1 -1
  364. package/progressbar/progressbar.esm.min.js +1 -1
  365. package/progressbar/progressbar.js +1 -1
  366. package/progressbar/progressbar.min.js +1 -1
  367. package/progressspinner/ProgressSpinner.vue +0 -47
  368. package/progressspinner/progressspinner.cjs.js +1 -1
  369. package/progressspinner/progressspinner.cjs.min.js +1 -1
  370. package/progressspinner/progressspinner.esm.js +1 -1
  371. package/progressspinner/progressspinner.esm.min.js +1 -1
  372. package/progressspinner/progressspinner.js +1 -1
  373. package/progressspinner/progressspinner.min.js +1 -1
  374. package/rating/Rating.d.ts +1 -0
  375. package/rating/rating.cjs.js +1 -1
  376. package/rating/rating.cjs.min.js +1 -1
  377. package/rating/rating.esm.js +1 -1
  378. package/rating/rating.esm.min.js +1 -1
  379. package/rating/rating.js +1 -1
  380. package/rating/rating.min.js +1 -1
  381. package/resources/primevue.css +2 -6
  382. package/resources/primevue.min.css +1 -1
  383. package/resources/themes/arya-blue/theme.css +77 -14
  384. package/resources/themes/arya-green/theme.css +77 -14
  385. package/resources/themes/arya-orange/theme.css +77 -14
  386. package/resources/themes/arya-purple/theme.css +77 -14
  387. package/resources/themes/bootstrap4-dark-blue/theme.css +77 -14
  388. package/resources/themes/bootstrap4-dark-purple/theme.css +77 -14
  389. package/resources/themes/bootstrap4-light-blue/theme.css +77 -14
  390. package/resources/themes/bootstrap4-light-purple/theme.css +77 -14
  391. package/resources/themes/fluent-light/theme.css +77 -14
  392. package/resources/themes/lara-dark-blue/theme.css +81 -14
  393. package/resources/themes/lara-dark-indigo/theme.css +81 -14
  394. package/resources/themes/lara-dark-purple/theme.css +81 -14
  395. package/resources/themes/lara-dark-teal/theme.css +81 -14
  396. package/resources/themes/lara-light-blue/theme.css +81 -14
  397. package/resources/themes/lara-light-indigo/theme.css +81 -14
  398. package/resources/themes/lara-light-purple/theme.css +81 -14
  399. package/resources/themes/lara-light-teal/theme.css +81 -14
  400. package/resources/themes/luna-amber/theme.css +77 -14
  401. package/resources/themes/luna-blue/theme.css +77 -14
  402. package/resources/themes/luna-green/theme.css +77 -14
  403. package/resources/themes/luna-pink/theme.css +77 -14
  404. package/resources/themes/md-dark-deeppurple/theme.css +101 -20
  405. package/resources/themes/md-dark-indigo/theme.css +101 -20
  406. package/resources/themes/md-light-deeppurple/theme.css +101 -20
  407. package/resources/themes/md-light-indigo/theme.css +101 -20
  408. package/resources/themes/mdc-dark-deeppurple/theme.css +101 -20
  409. package/resources/themes/mdc-dark-indigo/theme.css +101 -20
  410. package/resources/themes/mdc-light-deeppurple/theme.css +101 -20
  411. package/resources/themes/mdc-light-indigo/theme.css +101 -20
  412. package/resources/themes/nova/theme.css +77 -14
  413. package/resources/themes/nova-accent/theme.css +77 -14
  414. package/resources/themes/nova-alt/theme.css +77 -14
  415. package/resources/themes/nova-vue/theme.css +77 -14
  416. package/resources/themes/rhea/theme.css +77 -14
  417. package/resources/themes/saga-blue/theme.css +77 -14
  418. package/resources/themes/saga-green/theme.css +77 -14
  419. package/resources/themes/saga-orange/theme.css +77 -14
  420. package/resources/themes/saga-purple/theme.css +77 -14
  421. package/resources/themes/tailwind-light/theme.css +81 -14
  422. package/resources/themes/vela-blue/theme.css +77 -14
  423. package/resources/themes/vela-green/theme.css +77 -14
  424. package/resources/themes/vela-orange/theme.css +77 -14
  425. package/resources/themes/vela-purple/theme.css +77 -14
  426. package/scrollpanel/scrollpanel.cjs.js +1 -1
  427. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  428. package/scrollpanel/scrollpanel.esm.js +1 -1
  429. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  430. package/scrollpanel/scrollpanel.js +1 -1
  431. package/scrollpanel/scrollpanel.min.js +1 -1
  432. package/scrolltop/scrolltop.cjs.js +1 -1
  433. package/scrolltop/scrolltop.cjs.min.js +1 -1
  434. package/scrolltop/scrolltop.esm.js +1 -1
  435. package/scrolltop/scrolltop.esm.min.js +1 -1
  436. package/scrolltop/scrolltop.js +1 -1
  437. package/scrolltop/scrolltop.min.js +1 -1
  438. package/selectbutton/SelectButton.vue +1 -1
  439. package/selectbutton/selectbutton.cjs.js +1 -1
  440. package/selectbutton/selectbutton.cjs.min.js +1 -1
  441. package/selectbutton/selectbutton.esm.js +1 -1
  442. package/selectbutton/selectbutton.esm.min.js +1 -1
  443. package/selectbutton/selectbutton.js +2 -2
  444. package/selectbutton/selectbutton.min.js +1 -1
  445. package/sidebar/Sidebar.d.ts +4 -0
  446. package/sidebar/Sidebar.vue +210 -142
  447. package/sidebar/sidebar.cjs.js +146 -121
  448. package/sidebar/sidebar.cjs.min.js +1 -1
  449. package/sidebar/sidebar.esm.js +147 -122
  450. package/sidebar/sidebar.esm.min.js +1 -1
  451. package/sidebar/sidebar.js +146 -121
  452. package/sidebar/sidebar.min.js +1 -1
  453. package/skeleton/skeleton.cjs.js +1 -1
  454. package/skeleton/skeleton.cjs.min.js +1 -1
  455. package/skeleton/skeleton.esm.js +1 -1
  456. package/skeleton/skeleton.esm.min.js +1 -1
  457. package/skeleton/skeleton.js +1 -1
  458. package/skeleton/skeleton.min.js +1 -1
  459. package/slider/slider.cjs.js +1 -1
  460. package/slider/slider.cjs.min.js +1 -1
  461. package/slider/slider.esm.js +1 -1
  462. package/slider/slider.esm.min.js +1 -1
  463. package/slider/slider.js +1 -1
  464. package/slider/slider.min.js +1 -1
  465. package/speeddial/SpeedDial.d.ts +19 -1
  466. package/speeddial/SpeedDial.vue +254 -7
  467. package/speeddial/speeddial.cjs.js +255 -14
  468. package/speeddial/speeddial.cjs.min.js +1 -1
  469. package/speeddial/speeddial.esm.js +256 -15
  470. package/speeddial/speeddial.esm.min.js +1 -1
  471. package/speeddial/speeddial.js +255 -14
  472. package/speeddial/speeddial.min.js +1 -1
  473. package/splitbutton/SplitButton.d.ts +20 -4
  474. package/splitbutton/SplitButton.vue +56 -8
  475. package/splitbutton/splitbutton.cjs.js +57 -17
  476. package/splitbutton/splitbutton.cjs.min.js +1 -1
  477. package/splitbutton/splitbutton.esm.js +57 -17
  478. package/splitbutton/splitbutton.esm.min.js +1 -1
  479. package/splitbutton/splitbutton.js +57 -17
  480. package/splitbutton/splitbutton.min.js +1 -1
  481. package/splitter/Splitter.vue +1 -1
  482. package/splitter/splitter.cjs.js +1 -1
  483. package/splitter/splitter.cjs.min.js +1 -1
  484. package/splitter/splitter.esm.js +1 -1
  485. package/splitter/splitter.esm.min.js +1 -1
  486. package/splitter/splitter.js +1 -1
  487. package/splitter/splitter.min.js +1 -1
  488. package/steps/steps.cjs.js +1 -1
  489. package/steps/steps.cjs.min.js +1 -1
  490. package/steps/steps.esm.js +1 -1
  491. package/steps/steps.esm.min.js +1 -1
  492. package/steps/steps.js +1 -1
  493. package/steps/steps.min.js +1 -1
  494. package/tabmenu/TabMenu.vue +4 -16
  495. package/tabmenu/tabmenu.cjs.js +19 -16
  496. package/tabmenu/tabmenu.cjs.min.js +1 -1
  497. package/tabmenu/tabmenu.esm.js +19 -16
  498. package/tabmenu/tabmenu.esm.min.js +1 -1
  499. package/tabmenu/tabmenu.js +19 -16
  500. package/tabmenu/tabmenu.min.js +1 -1
  501. package/tabview/TabView.vue +2 -2
  502. package/tabview/tabview.cjs.js +3 -3
  503. package/tabview/tabview.cjs.min.js +1 -1
  504. package/tabview/tabview.esm.js +3 -3
  505. package/tabview/tabview.esm.min.js +1 -1
  506. package/tabview/tabview.js +3 -3
  507. package/tabview/tabview.min.js +1 -1
  508. package/tag/tag.cjs.js +1 -1
  509. package/tag/tag.cjs.min.js +1 -1
  510. package/tag/tag.esm.js +1 -1
  511. package/tag/tag.esm.min.js +1 -1
  512. package/tag/tag.js +1 -1
  513. package/tag/tag.min.js +1 -1
  514. package/terminal/terminal.cjs.js +1 -1
  515. package/terminal/terminal.cjs.min.js +1 -1
  516. package/terminal/terminal.esm.js +1 -1
  517. package/terminal/terminal.esm.min.js +1 -1
  518. package/terminal/terminal.js +1 -1
  519. package/terminal/terminal.min.js +1 -1
  520. package/tieredmenu/TieredMenu.vue +13 -3
  521. package/tieredmenu/TieredMenuSub.vue +3 -5
  522. package/tieredmenu/tieredmenu.cjs.js +17 -9
  523. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  524. package/tieredmenu/tieredmenu.esm.js +17 -9
  525. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  526. package/tieredmenu/tieredmenu.js +17 -9
  527. package/tieredmenu/tieredmenu.min.js +1 -1
  528. package/timeline/timeline.cjs.js +1 -1
  529. package/timeline/timeline.cjs.min.js +1 -1
  530. package/timeline/timeline.esm.js +1 -1
  531. package/timeline/timeline.esm.min.js +1 -1
  532. package/timeline/timeline.js +1 -1
  533. package/timeline/timeline.min.js +1 -1
  534. package/toast/Toast.d.ts +5 -1
  535. package/toast/Toast.vue +5 -0
  536. package/toast/ToastMessage.vue +36 -8
  537. package/toast/toast.cjs.js +49 -13
  538. package/toast/toast.cjs.min.js +1 -1
  539. package/toast/toast.esm.js +50 -14
  540. package/toast/toast.esm.min.js +1 -1
  541. package/toast/toast.js +49 -13
  542. package/toast/toast.min.js +1 -1
  543. package/toolbar/Toolbar.d.ts +6 -0
  544. package/toolbar/Toolbar.vue +12 -2
  545. package/toolbar/toolbar.cjs.js +7 -3
  546. package/toolbar/toolbar.cjs.min.js +1 -1
  547. package/toolbar/toolbar.esm.js +7 -3
  548. package/toolbar/toolbar.esm.min.js +1 -1
  549. package/toolbar/toolbar.js +7 -3
  550. package/toolbar/toolbar.min.js +1 -1
  551. package/tree/Tree.d.ts +8 -0
  552. package/tree/Tree.vue +10 -2
  553. package/tree/TreeNode.vue +174 -37
  554. package/tree/tree.cjs.js +193 -59
  555. package/tree/tree.cjs.min.js +1 -1
  556. package/tree/tree.esm.js +193 -59
  557. package/tree/tree.esm.min.js +1 -1
  558. package/tree/tree.js +193 -59
  559. package/tree/tree.min.js +1 -1
  560. package/treeselect/TreeSelect.vue +40 -26
  561. package/treeselect/treeselect.cjs.js +46 -30
  562. package/treeselect/treeselect.cjs.min.js +1 -1
  563. package/treeselect/treeselect.esm.js +44 -28
  564. package/treeselect/treeselect.esm.min.js +1 -1
  565. package/treeselect/treeselect.js +45 -29
  566. package/treeselect/treeselect.min.js +1 -1
  567. package/treetable/BodyCell.vue +4 -4
  568. package/treetable/HeaderCell.vue +4 -2
  569. package/treetable/TreeTable.d.ts +4 -0
  570. package/treetable/TreeTable.vue +43 -17
  571. package/treetable/TreeTableRow.vue +200 -59
  572. package/treetable/treetable.cjs.js +798 -621
  573. package/treetable/treetable.cjs.min.js +1 -1
  574. package/treetable/treetable.esm.js +795 -618
  575. package/treetable/treetable.esm.min.js +1 -1
  576. package/treetable/treetable.js +795 -618
  577. package/treetable/treetable.min.js +1 -1
  578. package/utils/utils.cjs.js +67 -47
  579. package/utils/utils.cjs.min.js +1 -1
  580. package/utils/utils.esm.js +67 -47
  581. package/utils/utils.esm.min.js +1 -1
  582. package/utils/utils.js +67 -47
  583. package/utils/utils.min.js +1 -1
  584. package/vetur-attributes.json +35 -283
  585. package/vetur-tags.json +26 -89
  586. package/virtualscroller/virtualscroller.cjs.js +1 -1
  587. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  588. package/virtualscroller/virtualscroller.esm.js +1 -1
  589. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  590. package/virtualscroller/virtualscroller.js +1 -1
  591. package/virtualscroller/virtualscroller.min.js +1 -1
  592. package/web-types.json +94 -998
  593. package/galleria/GalleriaItemSlot.vue +0 -53
@@ -2,91 +2,113 @@
2
2
 
3
3
  var utils = require('primevue/utils');
4
4
 
5
- let element,
6
- firstVNode,
7
- lastVNode,
8
- shiftKey = false;
9
-
10
- function firstHiddenFocus() {
11
- if (shiftKey) {
12
- lastVNode.focus();
13
- } else {
14
- const firstFocusableEl = utils.DomHandler.getFirstFocusableElement(element, ':not(.p-hidden-focusable)');
15
-
16
- utils.DomHandler.focus(firstFocusableEl);
17
- }
18
- }
5
+ function bind(el, binding) {
6
+ const { onFocusIn, onFocusOut } = binding.value || {};
19
7
 
20
- function lastHiddenFocus() {
21
- if (shiftKey) {
22
- const lastFocusableEl = utils.DomHandler.getLastFocusableElement(element, ':not(.p-hidden-focusable)');
8
+ el.$_pfocustrap_mutationobserver = new MutationObserver((mutationList) => {
9
+ mutationList.forEach((mutation) => {
10
+ if (mutation.type === 'childList' && !el.contains(document.activeElement)) {
11
+ const findNextFocusableElement = (el) => {
12
+ const focusableElement = utils.DomHandler.isFocusableElement(el) ? el : utils.DomHandler.getFirstFocusableElement(el);
23
13
 
24
- utils.DomHandler.focus(lastFocusableEl);
25
- } else {
26
- firstVNode.focus();
27
- }
28
- }
14
+ return utils.ObjectUtils.isNotEmpty(focusableElement) ? focusableElement : findNextFocusableElement(el.nextSibling);
15
+ };
16
+
17
+ utils.DomHandler.focus(findNextFocusableElement(mutation.nextSibling));
18
+ }
19
+ });
20
+ });
21
+
22
+ el.$_pfocustrap_mutationobserver.disconnect();
23
+ el.$_pfocustrap_mutationobserver.observe(el, {
24
+ childList: true
25
+ });
29
26
 
30
- function createHiddenElement(callback) {
31
- const el = document.createElement('span');
27
+ el.$_pfocustrap_focusinlistener = (event) => onFocusIn && onFocusIn(event);
28
+ el.$_pfocustrap_focusoutlistener = (event) => onFocusOut && onFocusOut(event);
32
29
 
33
- el.classList = 'p-hidden-accessible p-hidden-focusable';
34
- el.tabIndex = '0';
35
- el.setAttribute('aria-hidden', 'true');
36
- el.setAttribute('role', 'presentation');
37
- el.addEventListener('focus', callback);
30
+ el.addEventListener('focusin', el.$_pfocustrap_focusinlistener);
31
+ el.addEventListener('focusout', el.$_pfocustrap_focusoutlistener);
32
+ }
38
33
 
39
- return el;
34
+ function unbind(el) {
35
+ el.$_pfocustrap_mutationobserver && el.$_pfocustrap_mutationobserver.disconnect();
36
+ el.$_pfocustrap_focusinlistener && el.removeEventListener('focusin', el.$_pfocustrap_focusinlistener) && (el.$_pfocustrap_focusinlistener = null);
37
+ el.$_pfocustrap_focusoutlistener && el.removeEventListener('focusout', el.$_pfocustrap_focusoutlistener) && (el.$_pfocustrap_focusoutlistener = null);
40
38
  }
41
39
 
42
- function createHiddenElements(el) {
43
- firstVNode = createHiddenElement(firstHiddenFocus);
44
- lastVNode = createHiddenElement(lastHiddenFocus);
40
+ function autoFocus(el, binding) {
41
+ const { autoFocusSelector = '', firstFocusableSelector = '', autoFocus = false } = binding.value || {};
42
+ let focusableElement = utils.DomHandler.getFirstFocusableElement(el, `[autofocus]:not(.p-hidden-focusable)${autoFocusSelector}`);
45
43
 
46
- el.prepend(firstVNode);
47
- el.append(lastVNode);
44
+ autoFocus && !focusableElement && (focusableElement = utils.DomHandler.getFirstFocusableElement(el, `:not(.p-hidden-focusable)${firstFocusableSelector}`));
45
+ utils.DomHandler.focus(focusableElement);
48
46
  }
49
47
 
50
- function bind(el) {
51
- el.$_pfocustrap_keydownlistener = (e) => {
52
- if (e.code === 'Tab') {
53
- shiftKey = e.shiftKey;
54
- }
55
- };
48
+ function onFirstHiddenElementFocus(event) {
49
+ const { currentTarget, relatedTarget } = event;
50
+ const focusableElement =
51
+ relatedTarget === currentTarget.$_pfocustrap_lasthiddenfocusableelement
52
+ ? utils.DomHandler.getFirstFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
53
+ : currentTarget.$_pfocustrap_lasthiddenfocusableelement;
56
54
 
57
- el.addEventListener('keydown', el.$_pfocustrap_keydownlistener);
55
+ utils.DomHandler.focus(focusableElement);
58
56
  }
59
57
 
60
- function unbind(el) {
61
- if (el.$_pfocustrap_keydownlistener) {
62
- el.removeEventListener('keydown', el.$_pfocustrap_keydownlistener);
63
- el.$_pfocustrap_keydownlistener = null;
64
- }
58
+ function onLastHiddenElementFocus(event) {
59
+ const { currentTarget, relatedTarget } = event;
60
+ const focusableElement =
61
+ relatedTarget === currentTarget.$_pfocustrap_firsthiddenfocusableelement
62
+ ? utils.DomHandler.getLastFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
63
+ : currentTarget.$_pfocustrap_firsthiddenfocusableelement;
64
+
65
+ utils.DomHandler.focus(focusableElement);
65
66
  }
66
67
 
67
- const FocusTrap = {
68
- mounted(el, binding, vnode) {
69
- const firstFocusableEl = utils.DomHandler.getFirstFocusableElement(el, ':not(.p-hidden-focusable)');
68
+ function createHiddenFocusableElements(el, binding) {
69
+ const { tabIndex = 0, firstFocusableSelector = '', lastFocusableSelector = '' } = binding.value || {};
70
70
 
71
- if (firstFocusableEl) {
72
- el.$_pfocustrapFocusTrapDisabled = false;
71
+ const createFocusableElement = (onFocus) => {
72
+ const element = document.createElement('span');
73
73
 
74
- if (binding.value && typeof binding.value === 'object') {
75
- el.$_pfocustrapFocusTrapDisabled = binding.value.focusTrapDisabled;
76
- }
74
+ element.classList = 'p-hidden-accessible p-hidden-focusable';
75
+ element.tabIndex = tabIndex;
76
+ element.setAttribute('aria-hidden', 'true');
77
+ element.setAttribute('role', 'presentation');
78
+ element.addEventListener('focus', onFocus);
77
79
 
78
- if (!el.$_pfocustrapFocusTrapDisabled) {
79
- element = el;
80
- createHiddenElements(el);
81
- bind(el);
82
- }
80
+ return element;
81
+ };
82
+
83
+ const firstFocusableElement = createFocusableElement(onFirstHiddenElementFocus);
84
+ const lastFocusableElement = createFocusableElement(onLastHiddenElementFocus);
85
+
86
+ firstFocusableElement.$_pfocustrap_lasthiddenfocusableelement = lastFocusableElement;
87
+ firstFocusableElement.$_pfocustrap_focusableselector = firstFocusableSelector;
88
+
89
+ lastFocusableElement.$_pfocustrap_firsthiddenfocusableelement = firstFocusableElement;
90
+ lastFocusableElement.$_pfocustrap_focusableselector = lastFocusableSelector;
91
+
92
+ el.prepend(firstFocusableElement);
93
+ el.append(lastFocusableElement);
94
+ }
95
+
96
+ const FocusTrap = {
97
+ mounted(el, binding) {
98
+ const { disabled } = binding.value || {};
99
+
100
+ if (!disabled) {
101
+ createHiddenFocusableElements(el, binding);
102
+ bind(el, binding);
103
+ autoFocus(el, binding);
83
104
  }
84
105
  },
106
+ updated(el, binding) {
107
+ const { disabled } = binding.value || {};
108
+
109
+ disabled && unbind(el);
110
+ },
85
111
  unmounted(el) {
86
- element = null;
87
- firstVNode = null;
88
- lastVNode = null;
89
- shiftKey = false;
90
112
  unbind(el);
91
113
  }
92
114
  };
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/utils");let t,n,o,s=!1;function u(){if(s)o.focus();else{const n=e.DomHandler.getFirstFocusableElement(t,":not(.p-hidden-focusable)");e.DomHandler.focus(n)}}function a(){if(s){const n=e.DomHandler.getLastFocusableElement(t,":not(.p-hidden-focusable)");e.DomHandler.focus(n)}else n.focus()}function l(e){const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex="0",t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t}const r={mounted(r,c,d){e.DomHandler.getFirstFocusableElement(r,":not(.p-hidden-focusable)")&&(r.$_pfocustrapFocusTrapDisabled=!1,c.value&&"object"==typeof c.value&&(r.$_pfocustrapFocusTrapDisabled=c.value.focusTrapDisabled),r.$_pfocustrapFocusTrapDisabled||(t=r,function(e){n=l(u),o=l(a),e.prepend(n),e.append(o)}(r),function(e){e.$_pfocustrap_keydownlistener=e=>{"Tab"===e.code&&(s=e.shiftKey)},e.addEventListener("keydown",e.$_pfocustrap_keydownlistener)}(r)))},unmounted(e){t=null,n=null,o=null,s=!1,function(e){e.$_pfocustrap_keydownlistener&&(e.removeEventListener("keydown",e.$_pfocustrap_keydownlistener),e.$_pfocustrap_keydownlistener=null)}(e)}};module.exports=r;
1
+ "use strict";var e=require("primevue/utils");function t(e){e.$_pfocustrap_mutationobserver&&e.$_pfocustrap_mutationobserver.disconnect(),e.$_pfocustrap_focusinlistener&&e.removeEventListener("focusin",e.$_pfocustrap_focusinlistener)&&(e.$_pfocustrap_focusinlistener=null),e.$_pfocustrap_focusoutlistener&&e.removeEventListener("focusout",e.$_pfocustrap_focusoutlistener)&&(e.$_pfocustrap_focusoutlistener=null)}function o(t){const{currentTarget:o,relatedTarget:s}=t,n=s===o.$_pfocustrap_lasthiddenfocusableelement?e.DomHandler.getFirstFocusableElement(o.parentElement,`:not(.p-hidden-focusable)${o.$_pfocustrap_focusableselector}`):o.$_pfocustrap_lasthiddenfocusableelement;e.DomHandler.focus(n)}function s(t){const{currentTarget:o,relatedTarget:s}=t,n=s===o.$_pfocustrap_firsthiddenfocusableelement?e.DomHandler.getLastFocusableElement(o.parentElement,`:not(.p-hidden-focusable)${o.$_pfocustrap_focusableselector}`):o.$_pfocustrap_firsthiddenfocusableelement;e.DomHandler.focus(n)}const n={mounted(t,n){const{disabled:u}=n.value||{};u||(function(e,t){const{tabIndex:n=0,firstFocusableSelector:u="",lastFocusableSelector:c=""}=t.value||{},r=e=>{const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex=n,t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t},a=r(o),l=r(s);a.$_pfocustrap_lasthiddenfocusableelement=l,a.$_pfocustrap_focusableselector=u,l.$_pfocustrap_firsthiddenfocusableelement=a,l.$_pfocustrap_focusableselector=c,e.prepend(a),e.append(l)}(t,n),function(t,o){const{onFocusIn:s,onFocusOut:n}=o.value||{};t.$_pfocustrap_mutationobserver=new MutationObserver((o=>{o.forEach((o=>{if("childList"===o.type&&!t.contains(document.activeElement)){const t=o=>{const s=e.DomHandler.isFocusableElement(o)?o:e.DomHandler.getFirstFocusableElement(o);return e.ObjectUtils.isNotEmpty(s)?s:t(o.nextSibling)};e.DomHandler.focus(t(o.nextSibling))}}))})),t.$_pfocustrap_mutationobserver.disconnect(),t.$_pfocustrap_mutationobserver.observe(t,{childList:!0}),t.$_pfocustrap_focusinlistener=e=>s&&s(e),t.$_pfocustrap_focusoutlistener=e=>n&&n(e),t.addEventListener("focusin",t.$_pfocustrap_focusinlistener),t.addEventListener("focusout",t.$_pfocustrap_focusoutlistener)}(t,n),function(t,o){const{autoFocusSelector:s="",firstFocusableSelector:n="",autoFocus:u=!1}=o.value||{};let c=e.DomHandler.getFirstFocusableElement(t,`[autofocus]:not(.p-hidden-focusable)${s}`);u&&!c&&(c=e.DomHandler.getFirstFocusableElement(t,`:not(.p-hidden-focusable)${n}`)),e.DomHandler.focus(c)}(t,n))},updated(e,o){const{disabled:s}=o.value||{};s&&t(e)},unmounted(e){t(e)}};module.exports=n;
@@ -1,90 +1,112 @@
1
- import { DomHandler } from 'primevue/utils';
1
+ import { DomHandler, ObjectUtils } from 'primevue/utils';
2
2
 
3
- let element,
4
- firstVNode,
5
- lastVNode,
6
- shiftKey = false;
3
+ function bind(el, binding) {
4
+ const { onFocusIn, onFocusOut } = binding.value || {};
7
5
 
8
- function firstHiddenFocus() {
9
- if (shiftKey) {
10
- lastVNode.focus();
11
- } else {
12
- const firstFocusableEl = DomHandler.getFirstFocusableElement(element, ':not(.p-hidden-focusable)');
6
+ el.$_pfocustrap_mutationobserver = new MutationObserver((mutationList) => {
7
+ mutationList.forEach((mutation) => {
8
+ if (mutation.type === 'childList' && !el.contains(document.activeElement)) {
9
+ const findNextFocusableElement = (el) => {
10
+ const focusableElement = DomHandler.isFocusableElement(el) ? el : DomHandler.getFirstFocusableElement(el);
13
11
 
14
- DomHandler.focus(firstFocusableEl);
15
- }
16
- }
12
+ return ObjectUtils.isNotEmpty(focusableElement) ? focusableElement : findNextFocusableElement(el.nextSibling);
13
+ };
17
14
 
18
- function lastHiddenFocus() {
19
- if (shiftKey) {
20
- const lastFocusableEl = DomHandler.getLastFocusableElement(element, ':not(.p-hidden-focusable)');
15
+ DomHandler.focus(findNextFocusableElement(mutation.nextSibling));
16
+ }
17
+ });
18
+ });
21
19
 
22
- DomHandler.focus(lastFocusableEl);
23
- } else {
24
- firstVNode.focus();
25
- }
26
- }
20
+ el.$_pfocustrap_mutationobserver.disconnect();
21
+ el.$_pfocustrap_mutationobserver.observe(el, {
22
+ childList: true
23
+ });
27
24
 
28
- function createHiddenElement(callback) {
29
- const el = document.createElement('span');
25
+ el.$_pfocustrap_focusinlistener = (event) => onFocusIn && onFocusIn(event);
26
+ el.$_pfocustrap_focusoutlistener = (event) => onFocusOut && onFocusOut(event);
30
27
 
31
- el.classList = 'p-hidden-accessible p-hidden-focusable';
32
- el.tabIndex = '0';
33
- el.setAttribute('aria-hidden', 'true');
34
- el.setAttribute('role', 'presentation');
35
- el.addEventListener('focus', callback);
28
+ el.addEventListener('focusin', el.$_pfocustrap_focusinlistener);
29
+ el.addEventListener('focusout', el.$_pfocustrap_focusoutlistener);
30
+ }
36
31
 
37
- return el;
32
+ function unbind(el) {
33
+ el.$_pfocustrap_mutationobserver && el.$_pfocustrap_mutationobserver.disconnect();
34
+ el.$_pfocustrap_focusinlistener && el.removeEventListener('focusin', el.$_pfocustrap_focusinlistener) && (el.$_pfocustrap_focusinlistener = null);
35
+ el.$_pfocustrap_focusoutlistener && el.removeEventListener('focusout', el.$_pfocustrap_focusoutlistener) && (el.$_pfocustrap_focusoutlistener = null);
38
36
  }
39
37
 
40
- function createHiddenElements(el) {
41
- firstVNode = createHiddenElement(firstHiddenFocus);
42
- lastVNode = createHiddenElement(lastHiddenFocus);
38
+ function autoFocus(el, binding) {
39
+ const { autoFocusSelector = '', firstFocusableSelector = '', autoFocus = false } = binding.value || {};
40
+ let focusableElement = DomHandler.getFirstFocusableElement(el, `[autofocus]:not(.p-hidden-focusable)${autoFocusSelector}`);
43
41
 
44
- el.prepend(firstVNode);
45
- el.append(lastVNode);
42
+ autoFocus && !focusableElement && (focusableElement = DomHandler.getFirstFocusableElement(el, `:not(.p-hidden-focusable)${firstFocusableSelector}`));
43
+ DomHandler.focus(focusableElement);
46
44
  }
47
45
 
48
- function bind(el) {
49
- el.$_pfocustrap_keydownlistener = (e) => {
50
- if (e.code === 'Tab') {
51
- shiftKey = e.shiftKey;
52
- }
53
- };
46
+ function onFirstHiddenElementFocus(event) {
47
+ const { currentTarget, relatedTarget } = event;
48
+ const focusableElement =
49
+ relatedTarget === currentTarget.$_pfocustrap_lasthiddenfocusableelement
50
+ ? DomHandler.getFirstFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
51
+ : currentTarget.$_pfocustrap_lasthiddenfocusableelement;
54
52
 
55
- el.addEventListener('keydown', el.$_pfocustrap_keydownlistener);
53
+ DomHandler.focus(focusableElement);
56
54
  }
57
55
 
58
- function unbind(el) {
59
- if (el.$_pfocustrap_keydownlistener) {
60
- el.removeEventListener('keydown', el.$_pfocustrap_keydownlistener);
61
- el.$_pfocustrap_keydownlistener = null;
62
- }
56
+ function onLastHiddenElementFocus(event) {
57
+ const { currentTarget, relatedTarget } = event;
58
+ const focusableElement =
59
+ relatedTarget === currentTarget.$_pfocustrap_firsthiddenfocusableelement
60
+ ? DomHandler.getLastFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
61
+ : currentTarget.$_pfocustrap_firsthiddenfocusableelement;
62
+
63
+ DomHandler.focus(focusableElement);
63
64
  }
64
65
 
65
- const FocusTrap = {
66
- mounted(el, binding, vnode) {
67
- const firstFocusableEl = DomHandler.getFirstFocusableElement(el, ':not(.p-hidden-focusable)');
66
+ function createHiddenFocusableElements(el, binding) {
67
+ const { tabIndex = 0, firstFocusableSelector = '', lastFocusableSelector = '' } = binding.value || {};
68
68
 
69
- if (firstFocusableEl) {
70
- el.$_pfocustrapFocusTrapDisabled = false;
69
+ const createFocusableElement = (onFocus) => {
70
+ const element = document.createElement('span');
71
71
 
72
- if (binding.value && typeof binding.value === 'object') {
73
- el.$_pfocustrapFocusTrapDisabled = binding.value.focusTrapDisabled;
74
- }
72
+ element.classList = 'p-hidden-accessible p-hidden-focusable';
73
+ element.tabIndex = tabIndex;
74
+ element.setAttribute('aria-hidden', 'true');
75
+ element.setAttribute('role', 'presentation');
76
+ element.addEventListener('focus', onFocus);
75
77
 
76
- if (!el.$_pfocustrapFocusTrapDisabled) {
77
- element = el;
78
- createHiddenElements(el);
79
- bind(el);
80
- }
78
+ return element;
79
+ };
80
+
81
+ const firstFocusableElement = createFocusableElement(onFirstHiddenElementFocus);
82
+ const lastFocusableElement = createFocusableElement(onLastHiddenElementFocus);
83
+
84
+ firstFocusableElement.$_pfocustrap_lasthiddenfocusableelement = lastFocusableElement;
85
+ firstFocusableElement.$_pfocustrap_focusableselector = firstFocusableSelector;
86
+
87
+ lastFocusableElement.$_pfocustrap_firsthiddenfocusableelement = firstFocusableElement;
88
+ lastFocusableElement.$_pfocustrap_focusableselector = lastFocusableSelector;
89
+
90
+ el.prepend(firstFocusableElement);
91
+ el.append(lastFocusableElement);
92
+ }
93
+
94
+ const FocusTrap = {
95
+ mounted(el, binding) {
96
+ const { disabled } = binding.value || {};
97
+
98
+ if (!disabled) {
99
+ createHiddenFocusableElements(el, binding);
100
+ bind(el, binding);
101
+ autoFocus(el, binding);
81
102
  }
82
103
  },
104
+ updated(el, binding) {
105
+ const { disabled } = binding.value || {};
106
+
107
+ disabled && unbind(el);
108
+ },
83
109
  unmounted(el) {
84
- element = null;
85
- firstVNode = null;
86
- lastVNode = null;
87
- shiftKey = false;
88
110
  unbind(el);
89
111
  }
90
112
  };
@@ -1 +1 @@
1
- import{DomHandler as e}from"primevue/utils";let t,n,s,o=!1;function u(){if(o)s.focus();else{const n=e.getFirstFocusableElement(t,":not(.p-hidden-focusable)");e.focus(n)}}function a(){if(o){const n=e.getLastFocusableElement(t,":not(.p-hidden-focusable)");e.focus(n)}else n.focus()}function c(e){const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex="0",t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t}const l={mounted(l,i,r){e.getFirstFocusableElement(l,":not(.p-hidden-focusable)")&&(l.$_pfocustrapFocusTrapDisabled=!1,i.value&&"object"==typeof i.value&&(l.$_pfocustrapFocusTrapDisabled=i.value.focusTrapDisabled),l.$_pfocustrapFocusTrapDisabled||(t=l,function(e){n=c(u),s=c(a),e.prepend(n),e.append(s)}(l),function(e){e.$_pfocustrap_keydownlistener=e=>{"Tab"===e.code&&(o=e.shiftKey)},e.addEventListener("keydown",e.$_pfocustrap_keydownlistener)}(l)))},unmounted(e){t=null,n=null,s=null,o=!1,function(e){e.$_pfocustrap_keydownlistener&&(e.removeEventListener("keydown",e.$_pfocustrap_keydownlistener),e.$_pfocustrap_keydownlistener=null)}(e)}};export{l as default};
1
+ import{DomHandler as e,ObjectUtils as t}from"primevue/utils";function s(e){e.$_pfocustrap_mutationobserver&&e.$_pfocustrap_mutationobserver.disconnect(),e.$_pfocustrap_focusinlistener&&e.removeEventListener("focusin",e.$_pfocustrap_focusinlistener)&&(e.$_pfocustrap_focusinlistener=null),e.$_pfocustrap_focusoutlistener&&e.removeEventListener("focusout",e.$_pfocustrap_focusoutlistener)&&(e.$_pfocustrap_focusoutlistener=null)}function o(t){const{currentTarget:s,relatedTarget:o}=t,n=o===s.$_pfocustrap_lasthiddenfocusableelement?e.getFirstFocusableElement(s.parentElement,`:not(.p-hidden-focusable)${s.$_pfocustrap_focusableselector}`):s.$_pfocustrap_lasthiddenfocusableelement;e.focus(n)}function n(t){const{currentTarget:s,relatedTarget:o}=t,n=o===s.$_pfocustrap_firsthiddenfocusableelement?e.getLastFocusableElement(s.parentElement,`:not(.p-hidden-focusable)${s.$_pfocustrap_focusableselector}`):s.$_pfocustrap_firsthiddenfocusableelement;e.focus(n)}const u={mounted(s,u){const{disabled:c}=u.value||{};c||(function(e,t){const{tabIndex:s=0,firstFocusableSelector:u="",lastFocusableSelector:c=""}=t.value||{},r=e=>{const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex=s,t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t},a=r(o),l=r(n);a.$_pfocustrap_lasthiddenfocusableelement=l,a.$_pfocustrap_focusableselector=u,l.$_pfocustrap_firsthiddenfocusableelement=a,l.$_pfocustrap_focusableselector=c,e.prepend(a),e.append(l)}(s,u),function(s,o){const{onFocusIn:n,onFocusOut:u}=o.value||{};s.$_pfocustrap_mutationobserver=new MutationObserver((o=>{o.forEach((o=>{if("childList"===o.type&&!s.contains(document.activeElement)){const s=o=>{const n=e.isFocusableElement(o)?o:e.getFirstFocusableElement(o);return t.isNotEmpty(n)?n:s(o.nextSibling)};e.focus(s(o.nextSibling))}}))})),s.$_pfocustrap_mutationobserver.disconnect(),s.$_pfocustrap_mutationobserver.observe(s,{childList:!0}),s.$_pfocustrap_focusinlistener=e=>n&&n(e),s.$_pfocustrap_focusoutlistener=e=>u&&u(e),s.addEventListener("focusin",s.$_pfocustrap_focusinlistener),s.addEventListener("focusout",s.$_pfocustrap_focusoutlistener)}(s,u),function(t,s){const{autoFocusSelector:o="",firstFocusableSelector:n="",autoFocus:u=!1}=s.value||{};let c=e.getFirstFocusableElement(t,`[autofocus]:not(.p-hidden-focusable)${o}`);u&&!c&&(c=e.getFirstFocusableElement(t,`:not(.p-hidden-focusable)${n}`)),e.focus(c)}(s,u))},updated(e,t){const{disabled:o}=t.value||{};o&&s(e)},unmounted(e){s(e)}};export{u as default};
@@ -2,91 +2,113 @@ this.primevue = this.primevue || {};
2
2
  this.primevue.focustrap = (function (utils) {
3
3
  'use strict';
4
4
 
5
- let element,
6
- firstVNode,
7
- lastVNode,
8
- shiftKey = false;
9
-
10
- function firstHiddenFocus() {
11
- if (shiftKey) {
12
- lastVNode.focus();
13
- } else {
14
- const firstFocusableEl = utils.DomHandler.getFirstFocusableElement(element, ':not(.p-hidden-focusable)');
15
-
16
- utils.DomHandler.focus(firstFocusableEl);
17
- }
18
- }
5
+ function bind(el, binding) {
6
+ const { onFocusIn, onFocusOut } = binding.value || {};
19
7
 
20
- function lastHiddenFocus() {
21
- if (shiftKey) {
22
- const lastFocusableEl = utils.DomHandler.getLastFocusableElement(element, ':not(.p-hidden-focusable)');
8
+ el.$_pfocustrap_mutationobserver = new MutationObserver((mutationList) => {
9
+ mutationList.forEach((mutation) => {
10
+ if (mutation.type === 'childList' && !el.contains(document.activeElement)) {
11
+ const findNextFocusableElement = (el) => {
12
+ const focusableElement = utils.DomHandler.isFocusableElement(el) ? el : utils.DomHandler.getFirstFocusableElement(el);
23
13
 
24
- utils.DomHandler.focus(lastFocusableEl);
25
- } else {
26
- firstVNode.focus();
27
- }
28
- }
14
+ return utils.ObjectUtils.isNotEmpty(focusableElement) ? focusableElement : findNextFocusableElement(el.nextSibling);
15
+ };
16
+
17
+ utils.DomHandler.focus(findNextFocusableElement(mutation.nextSibling));
18
+ }
19
+ });
20
+ });
21
+
22
+ el.$_pfocustrap_mutationobserver.disconnect();
23
+ el.$_pfocustrap_mutationobserver.observe(el, {
24
+ childList: true
25
+ });
29
26
 
30
- function createHiddenElement(callback) {
31
- const el = document.createElement('span');
27
+ el.$_pfocustrap_focusinlistener = (event) => onFocusIn && onFocusIn(event);
28
+ el.$_pfocustrap_focusoutlistener = (event) => onFocusOut && onFocusOut(event);
32
29
 
33
- el.classList = 'p-hidden-accessible p-hidden-focusable';
34
- el.tabIndex = '0';
35
- el.setAttribute('aria-hidden', 'true');
36
- el.setAttribute('role', 'presentation');
37
- el.addEventListener('focus', callback);
30
+ el.addEventListener('focusin', el.$_pfocustrap_focusinlistener);
31
+ el.addEventListener('focusout', el.$_pfocustrap_focusoutlistener);
32
+ }
38
33
 
39
- return el;
34
+ function unbind(el) {
35
+ el.$_pfocustrap_mutationobserver && el.$_pfocustrap_mutationobserver.disconnect();
36
+ el.$_pfocustrap_focusinlistener && el.removeEventListener('focusin', el.$_pfocustrap_focusinlistener) && (el.$_pfocustrap_focusinlistener = null);
37
+ el.$_pfocustrap_focusoutlistener && el.removeEventListener('focusout', el.$_pfocustrap_focusoutlistener) && (el.$_pfocustrap_focusoutlistener = null);
40
38
  }
41
39
 
42
- function createHiddenElements(el) {
43
- firstVNode = createHiddenElement(firstHiddenFocus);
44
- lastVNode = createHiddenElement(lastHiddenFocus);
40
+ function autoFocus(el, binding) {
41
+ const { autoFocusSelector = '', firstFocusableSelector = '', autoFocus = false } = binding.value || {};
42
+ let focusableElement = utils.DomHandler.getFirstFocusableElement(el, `[autofocus]:not(.p-hidden-focusable)${autoFocusSelector}`);
45
43
 
46
- el.prepend(firstVNode);
47
- el.append(lastVNode);
44
+ autoFocus && !focusableElement && (focusableElement = utils.DomHandler.getFirstFocusableElement(el, `:not(.p-hidden-focusable)${firstFocusableSelector}`));
45
+ utils.DomHandler.focus(focusableElement);
48
46
  }
49
47
 
50
- function bind(el) {
51
- el.$_pfocustrap_keydownlistener = (e) => {
52
- if (e.code === 'Tab') {
53
- shiftKey = e.shiftKey;
54
- }
55
- };
48
+ function onFirstHiddenElementFocus(event) {
49
+ const { currentTarget, relatedTarget } = event;
50
+ const focusableElement =
51
+ relatedTarget === currentTarget.$_pfocustrap_lasthiddenfocusableelement
52
+ ? utils.DomHandler.getFirstFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
53
+ : currentTarget.$_pfocustrap_lasthiddenfocusableelement;
56
54
 
57
- el.addEventListener('keydown', el.$_pfocustrap_keydownlistener);
55
+ utils.DomHandler.focus(focusableElement);
58
56
  }
59
57
 
60
- function unbind(el) {
61
- if (el.$_pfocustrap_keydownlistener) {
62
- el.removeEventListener('keydown', el.$_pfocustrap_keydownlistener);
63
- el.$_pfocustrap_keydownlistener = null;
64
- }
58
+ function onLastHiddenElementFocus(event) {
59
+ const { currentTarget, relatedTarget } = event;
60
+ const focusableElement =
61
+ relatedTarget === currentTarget.$_pfocustrap_firsthiddenfocusableelement
62
+ ? utils.DomHandler.getLastFocusableElement(currentTarget.parentElement, `:not(.p-hidden-focusable)${currentTarget.$_pfocustrap_focusableselector}`)
63
+ : currentTarget.$_pfocustrap_firsthiddenfocusableelement;
64
+
65
+ utils.DomHandler.focus(focusableElement);
65
66
  }
66
67
 
67
- const FocusTrap = {
68
- mounted(el, binding, vnode) {
69
- const firstFocusableEl = utils.DomHandler.getFirstFocusableElement(el, ':not(.p-hidden-focusable)');
68
+ function createHiddenFocusableElements(el, binding) {
69
+ const { tabIndex = 0, firstFocusableSelector = '', lastFocusableSelector = '' } = binding.value || {};
70
70
 
71
- if (firstFocusableEl) {
72
- el.$_pfocustrapFocusTrapDisabled = false;
71
+ const createFocusableElement = (onFocus) => {
72
+ const element = document.createElement('span');
73
73
 
74
- if (binding.value && typeof binding.value === 'object') {
75
- el.$_pfocustrapFocusTrapDisabled = binding.value.focusTrapDisabled;
76
- }
74
+ element.classList = 'p-hidden-accessible p-hidden-focusable';
75
+ element.tabIndex = tabIndex;
76
+ element.setAttribute('aria-hidden', 'true');
77
+ element.setAttribute('role', 'presentation');
78
+ element.addEventListener('focus', onFocus);
77
79
 
78
- if (!el.$_pfocustrapFocusTrapDisabled) {
79
- element = el;
80
- createHiddenElements(el);
81
- bind(el);
82
- }
80
+ return element;
81
+ };
82
+
83
+ const firstFocusableElement = createFocusableElement(onFirstHiddenElementFocus);
84
+ const lastFocusableElement = createFocusableElement(onLastHiddenElementFocus);
85
+
86
+ firstFocusableElement.$_pfocustrap_lasthiddenfocusableelement = lastFocusableElement;
87
+ firstFocusableElement.$_pfocustrap_focusableselector = firstFocusableSelector;
88
+
89
+ lastFocusableElement.$_pfocustrap_firsthiddenfocusableelement = firstFocusableElement;
90
+ lastFocusableElement.$_pfocustrap_focusableselector = lastFocusableSelector;
91
+
92
+ el.prepend(firstFocusableElement);
93
+ el.append(lastFocusableElement);
94
+ }
95
+
96
+ const FocusTrap = {
97
+ mounted(el, binding) {
98
+ const { disabled } = binding.value || {};
99
+
100
+ if (!disabled) {
101
+ createHiddenFocusableElements(el, binding);
102
+ bind(el, binding);
103
+ autoFocus(el, binding);
83
104
  }
84
105
  },
106
+ updated(el, binding) {
107
+ const { disabled } = binding.value || {};
108
+
109
+ disabled && unbind(el);
110
+ },
85
111
  unmounted(el) {
86
- element = null;
87
- firstVNode = null;
88
- lastVNode = null;
89
- shiftKey = false;
90
112
  unbind(el);
91
113
  }
92
114
  };
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.focustrap=function(e){"use strict";let t,n,s,o=!1;function u(){if(o)s.focus();else{const n=e.DomHandler.getFirstFocusableElement(t,":not(.p-hidden-focusable)");e.DomHandler.focus(n)}}function r(){if(o){const n=e.DomHandler.getLastFocusableElement(t,":not(.p-hidden-focusable)");e.DomHandler.focus(n)}else n.focus()}function a(e){const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex="0",t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t}return{mounted(i,c,l){e.DomHandler.getFirstFocusableElement(i,":not(.p-hidden-focusable)")&&(i.$_pfocustrapFocusTrapDisabled=!1,c.value&&"object"==typeof c.value&&(i.$_pfocustrapFocusTrapDisabled=c.value.focusTrapDisabled),i.$_pfocustrapFocusTrapDisabled||(t=i,function(e){n=a(u),s=a(r),e.prepend(n),e.append(s)}(i),function(e){e.$_pfocustrap_keydownlistener=e=>{"Tab"===e.code&&(o=e.shiftKey)},e.addEventListener("keydown",e.$_pfocustrap_keydownlistener)}(i)))},unmounted(e){t=null,n=null,s=null,o=!1,function(e){e.$_pfocustrap_keydownlistener&&(e.removeEventListener("keydown",e.$_pfocustrap_keydownlistener),e.$_pfocustrap_keydownlistener=null)}(e)}}}(primevue.utils);
1
+ this.primevue=this.primevue||{},this.primevue.focustrap=function(e){"use strict";function t(e){e.$_pfocustrap_mutationobserver&&e.$_pfocustrap_mutationobserver.disconnect(),e.$_pfocustrap_focusinlistener&&e.removeEventListener("focusin",e.$_pfocustrap_focusinlistener)&&(e.$_pfocustrap_focusinlistener=null),e.$_pfocustrap_focusoutlistener&&e.removeEventListener("focusout",e.$_pfocustrap_focusoutlistener)&&(e.$_pfocustrap_focusoutlistener=null)}function o(t){const{currentTarget:o,relatedTarget:s}=t,n=s===o.$_pfocustrap_lasthiddenfocusableelement?e.DomHandler.getFirstFocusableElement(o.parentElement,`:not(.p-hidden-focusable)${o.$_pfocustrap_focusableselector}`):o.$_pfocustrap_lasthiddenfocusableelement;e.DomHandler.focus(n)}function s(t){const{currentTarget:o,relatedTarget:s}=t,n=s===o.$_pfocustrap_firsthiddenfocusableelement?e.DomHandler.getLastFocusableElement(o.parentElement,`:not(.p-hidden-focusable)${o.$_pfocustrap_focusableselector}`):o.$_pfocustrap_firsthiddenfocusableelement;e.DomHandler.focus(n)}const n={mounted(t,n){const{disabled:u}=n.value||{};u||(function(e,t){const{tabIndex:n=0,firstFocusableSelector:u="",lastFocusableSelector:c=""}=t.value||{},r=e=>{const t=document.createElement("span");return t.classList="p-hidden-accessible p-hidden-focusable",t.tabIndex=n,t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.addEventListener("focus",e),t},a=r(o),l=r(s);a.$_pfocustrap_lasthiddenfocusableelement=l,a.$_pfocustrap_focusableselector=u,l.$_pfocustrap_firsthiddenfocusableelement=a,l.$_pfocustrap_focusableselector=c,e.prepend(a),e.append(l)}(t,n),function(t,o){const{onFocusIn:s,onFocusOut:n}=o.value||{};t.$_pfocustrap_mutationobserver=new MutationObserver((o=>{o.forEach((o=>{if("childList"===o.type&&!t.contains(document.activeElement)){const t=o=>{const s=e.DomHandler.isFocusableElement(o)?o:e.DomHandler.getFirstFocusableElement(o);return e.ObjectUtils.isNotEmpty(s)?s:t(o.nextSibling)};e.DomHandler.focus(t(o.nextSibling))}}))})),t.$_pfocustrap_mutationobserver.disconnect(),t.$_pfocustrap_mutationobserver.observe(t,{childList:!0}),t.$_pfocustrap_focusinlistener=e=>s&&s(e),t.$_pfocustrap_focusoutlistener=e=>n&&n(e),t.addEventListener("focusin",t.$_pfocustrap_focusinlistener),t.addEventListener("focusout",t.$_pfocustrap_focusoutlistener)}(t,n),function(t,o){const{autoFocusSelector:s="",firstFocusableSelector:n="",autoFocus:u=!1}=o.value||{};let c=e.DomHandler.getFirstFocusableElement(t,`[autofocus]:not(.p-hidden-focusable)${s}`);u&&!c&&(c=e.DomHandler.getFirstFocusableElement(t,`:not(.p-hidden-focusable)${n}`)),e.DomHandler.focus(c)}(t,n))},updated(e,o){const{disabled:s}=o.value||{};s&&t(e)},unmounted(e){t(e)}};return n}(primevue.utils);
@@ -1,4 +1,4 @@
1
- import { VNode } from 'vue';
1
+ import { ButtonHTMLAttributes, HTMLAttributes, VNode } from 'vue';
2
2
  import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
3
3
 
4
4
  type GalleriaThumbnailsPositionType = 'bottom' | 'top' | 'left' | 'right' | undefined;
@@ -119,11 +119,23 @@ export interface GalleriaProps {
119
119
  /**
120
120
  * Inline style of the component on fullscreen mode. Otherwise, the 'style' property can be used.
121
121
  */
122
- containerStyle?: any;
122
+ containerStyle?: any | undefined;
123
123
  /**
124
124
  * Style class of the component on fullscreen mode. Otherwise, the 'class' property can be used.
125
125
  */
126
- containerClass?: any;
126
+ containerClass?: any | undefined;
127
+ /**
128
+ * Uses to pass all properties of the HTMLDivElement to the container element on fullscreen mode.
129
+ */
130
+ containerProps?: HTMLAttributes | undefined;
131
+ /**
132
+ * Uses to pass all properties of the HTMLButtonElement to the previous navigation button.
133
+ */
134
+ prevButtonProps?: ButtonHTMLAttributes | undefined;
135
+ /**
136
+ * Uses to pass all properties of the HTMLButtonElement to the next navigation button.
137
+ */
138
+ nextButtonProps?: ButtonHTMLAttributes | undefined;
127
139
  }
128
140
 
129
141
  export interface GalleriaSlots {