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
@@ -1,11 +1,11 @@
1
1
  <template>
2
- <td :style="containerStyle" :class="containerClass">
2
+ <td :style="containerStyle" :class="containerClass" role="cell">
3
3
  <button v-if="columnProp('expander')" v-ripple type="button" class="p-treetable-toggler p-link" @click="toggle" :style="togglerStyle" tabindex="-1">
4
4
  <i :class="togglerIcon"></i>
5
5
  </button>
6
- <div v-if="checkboxSelectionMode && columnProp('expander')" :class="['p-checkbox p-treetable-checkbox p-component', { 'p-checkbox-focused': checkboxFocused }]" @click="toggleCheckbox" role="checkbox" :aria-checked="checked">
6
+ <div v-if="checkboxSelectionMode && columnProp('expander')" :class="['p-checkbox p-treetable-checkbox p-component', { 'p-checkbox-focused': checkboxFocused }]" @click="toggleCheckbox">
7
7
  <div class="p-hidden-accessible">
8
- <input type="checkbox" @focus="onCheckboxFocus" @blur="onCheckboxBlur" />
8
+ <input type="checkbox" @focus="onCheckboxFocus" @blur="onCheckboxBlur" tabindex="-1" />
9
9
  </div>
10
10
  <div ref="checkboxEl" :class="checkboxClass">
11
11
  <span :class="checkboxIcon"></span>
@@ -19,8 +19,8 @@
19
19
  </template>
20
20
 
21
21
  <script>
22
- import { DomHandler, ObjectUtils } from 'primevue/utils';
23
22
  import Ripple from 'primevue/ripple';
23
+ import { DomHandler, ObjectUtils } from 'primevue/utils';
24
24
 
25
25
  export default {
26
26
  name: 'BodyCell',
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <th :style="[containerStyle]" :class="containerClass" @click="onClick" @keydown="onKeyDown" :tabindex="columnProp('sortable') ? '0' : null" :aria-sort="ariaSort">
2
+ <th :style="[containerStyle]" :class="containerClass" @click="onClick" @keydown="onKeyDown" :tabindex="columnProp('sortable') ? '0' : null" :aria-sort="ariaSort" role="columnheader">
3
3
  <span v-if="resizableColumns && !columnProp('frozen')" class="p-column-resizer" @mousedown="onResizeStart"></span>
4
4
  <component v-if="column.children && column.children.header" :is="column.children.header" :column="column" />
5
5
  <span v-if="columnProp('header')" class="p-column-title">{{ columnProp('header') }}</span>
@@ -97,8 +97,10 @@ export default {
97
97
  this.$emit('column-click', { originalEvent: event, column: this.column });
98
98
  },
99
99
  onKeyDown(event) {
100
- if (event.which === 13 && event.currentTarget.nodeName === 'TH' && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {
100
+ if ((event.code === 'Enter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {
101
101
  this.$emit('column-click', { originalEvent: event, column: this.column });
102
+
103
+ event.preventDefault();
102
104
  }
103
105
  },
104
106
  onResizeStart(event) {
@@ -340,6 +340,10 @@ export interface TreeTableProps {
340
340
  * Default value is 'stack'.
341
341
  */
342
342
  responsiveLayout?: TreeTableResponsiveLayoutType;
343
+ /**
344
+ * Props to pass to the table element.
345
+ */
346
+ tableProps?: any | undefined;
343
347
  }
344
348
 
345
349
  export interface TreeTableSlots {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="containerClass" data-scrollselectors=".p-treetable-scrollable-body">
2
+ <div :class="containerClass" data-scrollselectors=".p-treetable-scrollable-body" role="table">
3
3
  <div v-if="loading" class="p-treetable-loading">
4
4
  <div class="p-treetable-loading-overlay p-component-overlay">
5
5
  <i :class="loadingIconClass"></i>
@@ -29,9 +29,9 @@
29
29
  </template>
30
30
  </TTPaginator>
31
31
  <div class="p-treetable-wrapper" :style="{ maxHeight: scrollHeight }">
32
- <table ref="table">
33
- <thead class="p-treetable-thead">
34
- <tr>
32
+ <table ref="table" role="table" v-bind="tableProps">
33
+ <thead class="p-treetable-thead" role="rowgroup">
34
+ <tr role="row">
35
35
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
36
36
  <TTHeaderCell
37
37
  v-if="!columnProp(col, 'hidden')"
@@ -54,19 +54,22 @@
54
54
  </template>
55
55
  </tr>
56
56
  </thead>
57
- <tbody class="p-treetable-tbody">
57
+ <tbody class="p-treetable-tbody" role="rowgroup">
58
58
  <template v-if="!empty">
59
59
  <TTRow
60
- v-for="node of dataToRender"
60
+ v-for="(node, index) of dataToRender"
61
61
  :key="node.key"
62
62
  :columns="columns"
63
63
  :node="node"
64
64
  :level="0"
65
65
  :expandedKeys="d_expandedKeys"
66
- @node-toggle="onNodeToggle"
67
66
  :indentation="indentation"
68
67
  :selectionMode="selectionMode"
69
68
  :selectionKeys="selectionKeys"
69
+ :ariaSetSize="dataToRender.length"
70
+ :ariaPosInset="index + 1"
71
+ :tabindex="setTabindex(node, index)"
72
+ @node-toggle="onNodeToggle"
70
73
  @node-click="onNodeClick"
71
74
  @checkbox-change="onCheckboxChange"
72
75
  ></TTRow>
@@ -77,8 +80,8 @@
77
80
  </td>
78
81
  </tr>
79
82
  </tbody>
80
- <tfoot v-if="hasFooter" class="p-treetable-tfoot">
81
- <tr>
83
+ <tfoot v-if="hasFooter" class="p-treetable-tfoot" role="rowgroup">
84
+ <tr role="row">
82
85
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
83
86
  <TTFooterCell v-if="!columnProp(col, 'hidden')" :column="col"></TTFooterCell>
84
87
  </template>
@@ -114,12 +117,12 @@
114
117
  </template>
115
118
 
116
119
  <script>
117
- import { ObjectUtils, DomHandler } from 'primevue/utils';
118
120
  import { FilterService } from 'primevue/api';
119
- import TreeTableRow from './TreeTableRow.vue';
120
- import HeaderCell from './HeaderCell.vue';
121
- import FooterCell from './FooterCell.vue';
122
121
  import Paginator from 'primevue/paginator';
122
+ import { DomHandler, ObjectUtils } from 'primevue/utils';
123
+ import FooterCell from './FooterCell.vue';
124
+ import HeaderCell from './HeaderCell.vue';
125
+ import TreeTableRow from './TreeTableRow.vue';
123
126
 
124
127
  export default {
125
128
  name: 'TreeTable',
@@ -288,6 +291,10 @@ export default {
288
291
  responsiveLayout: {
289
292
  type: String,
290
293
  default: null
294
+ },
295
+ tableProps: {
296
+ type: Object,
297
+ default: null
291
298
  }
292
299
  },
293
300
  documentColumnResizeListener: null,
@@ -301,7 +308,8 @@ export default {
301
308
  d_rows: this.rows,
302
309
  d_sortField: this.sortField,
303
310
  d_sortOrder: this.sortOrder,
304
- d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : []
311
+ d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],
312
+ hasASelectedNode: false
305
313
  };
306
314
  },
307
315
  watch: {
@@ -710,7 +718,7 @@ export default {
710
718
  this.columnResizing = true;
711
719
  this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;
712
720
 
713
- this.bindColumnResizeEvents();
721
+ this.bindColumnResizeEvents(event);
714
722
  },
715
723
  onColumnResize(event) {
716
724
  let containerLeft = DomHandler.getOffset(this.$el).left;
@@ -783,7 +791,7 @@ export default {
783
791
  }
784
792
  }
785
793
  },
786
- bindColumnResizeEvents() {
794
+ bindColumnResizeEvents(event) {
787
795
  if (!this.documentColumnResizeListener) {
788
796
  this.documentColumnResizeListener = document.addEventListener('mousemove', () => {
789
797
  if (this.columnResizing) {
@@ -813,7 +821,7 @@ export default {
813
821
  }
814
822
  },
815
823
  onColumnKeyDown(event, col) {
816
- if (event.which === 13 && event.currentTarget.nodeName === 'TH' && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {
824
+ if (event.code === 'Enter' && event.currentTarget.nodeName === 'TH' && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {
817
825
  this.onColumnHeaderClick(event, col);
818
826
  }
819
827
  },
@@ -836,6 +844,24 @@ export default {
836
844
  },
837
845
  updateScrollWidth() {
838
846
  this.$refs.table.style.width = this.$refs.table.scrollWidth + 'px';
847
+ },
848
+ getItemLabel(node) {
849
+ return node.data.name;
850
+ },
851
+ setTabindex(node, index) {
852
+ if (this.isNodeSelected(node)) {
853
+ this.hasASelectedNode = true;
854
+
855
+ return 0;
856
+ }
857
+
858
+ if (this.selectionMode) {
859
+ if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;
860
+ } else if (!this.selectionMode && index === 0) {
861
+ return 0;
862
+ }
863
+
864
+ return -1;
839
865
  }
840
866
  },
841
867
  computed: {
@@ -1,5 +1,20 @@
1
1
  <template>
2
- <tr :class="containerClass" @click="onClick" @keydown="onKeyDown" @touchend="onTouchEnd" :style="node.style" tabindex="0">
2
+ <tr
3
+ ref="node"
4
+ :class="containerClass"
5
+ :style="node.style"
6
+ :tabindex="tabindex"
7
+ role="row"
8
+ :aria-expanded="expanded"
9
+ :aria-level="level + 1"
10
+ :aria-setsize="ariaSetSize"
11
+ :aria-posinset="ariaPosInset"
12
+ :aria-selected="getAriaSelected"
13
+ :aria-checked="checked || undefined"
14
+ @click="onClick"
15
+ @keydown="onKeyDown"
16
+ @touchend="onTouchEnd"
17
+ >
3
18
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
4
19
  <TTBodyCell
5
20
  v-if="!columnProp(col, 'hidden')"
@@ -29,6 +44,8 @@
29
44
  :selectionMode="selectionMode"
30
45
  :selectionKeys="selectionKeys"
31
46
  :indentation="indentation"
47
+ :ariaPosInset="node.children.indexOf(childNode) + 1"
48
+ :ariaSetSize="node.children.length"
32
49
  @node-toggle="$emit('node-toggle', $event)"
33
50
  @node-click="$emit('node-click', $event)"
34
51
  @checkbox-change="onCheckboxChange"
@@ -75,6 +92,18 @@ export default {
75
92
  indentation: {
76
93
  type: Number,
77
94
  default: 1
95
+ },
96
+ tabindex: {
97
+ type: Number,
98
+ default: -1
99
+ },
100
+ ariaSetSize: {
101
+ type: Number,
102
+ default: null
103
+ },
104
+ ariaPosInset: {
105
+ type: Number,
106
+ default: null
78
107
  }
79
108
  },
80
109
  nodeTouched: false,
@@ -90,70 +119,174 @@ export default {
90
119
  return;
91
120
  }
92
121
 
122
+ this.setTabIndexForSelectionMode(event, this.nodeTouched);
123
+
93
124
  this.$emit('node-click', {
94
125
  originalEvent: event,
95
126
  nodeTouched: this.nodeTouched,
96
127
  node: this.node
97
128
  });
98
-
99
129
  this.nodeTouched = false;
100
130
  },
101
131
  onTouchEnd() {
102
132
  this.nodeTouched = true;
103
133
  },
104
- onKeyDown(event) {
105
- if (event.target === this.$el) {
106
- const rowElement = this.$el;
107
-
108
- switch (event.which) {
109
- //down arrow
110
- case 40: {
111
- const nextRow = rowElement.nextElementSibling;
112
-
113
- if (nextRow) {
114
- nextRow.focus();
115
- }
116
-
117
- event.preventDefault();
118
- break;
119
- }
120
-
121
- //up arrow
122
- case 38: {
123
- const previousRow = rowElement.previousElementSibling;
124
-
125
- if (previousRow) {
126
- previousRow.focus();
127
- }
128
-
129
- event.preventDefault();
130
- break;
131
- }
132
-
133
- //right-left arrows
134
- case 37:
135
-
136
- case 39: {
137
- if (!this.leaf) {
138
- this.$emit('node-toggle', this.node);
139
- event.preventDefault();
140
- }
141
-
142
- break;
143
- }
144
-
145
- //enter
146
- case 13: {
147
- this.onClick(event);
148
- event.preventDefault();
149
- break;
150
- }
151
-
152
- default:
153
- //no op
154
- break;
134
+ onKeyDown(event, item) {
135
+ switch (event.code) {
136
+ case 'ArrowDown':
137
+ this.onArrowDownKey(event);
138
+ break;
139
+
140
+ case 'ArrowUp':
141
+ this.onArrowUpKey(event);
142
+ break;
143
+
144
+ case 'ArrowLeft':
145
+ this.onArrowLeftKey(event);
146
+ break;
147
+
148
+ case 'ArrowRight':
149
+ this.onArrowRightKey(event);
150
+ break;
151
+
152
+ case 'Home':
153
+ this.onHomeKey(event);
154
+ break;
155
+
156
+ case 'End':
157
+ this.onEndKey(event);
158
+ break;
159
+
160
+ case 'Enter':
161
+ case 'Space':
162
+ this.onEnterKey(event, item);
163
+ break;
164
+
165
+ case 'Tab':
166
+ this.onTabKey(event);
167
+ break;
168
+
169
+ default:
170
+ break;
171
+ }
172
+ },
173
+ onArrowDownKey(event) {
174
+ const nextElementSibling = event.currentTarget.nextElementSibling;
175
+
176
+ nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);
177
+
178
+ event.preventDefault();
179
+ },
180
+ onArrowUpKey(event) {
181
+ const previousElementSibling = event.currentTarget.previousElementSibling;
182
+
183
+ previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);
184
+
185
+ event.preventDefault();
186
+ },
187
+ onArrowRightKey(event) {
188
+ const ishiddenIcon = DomHandler.findSingle(event.currentTarget, 'button').style.visibility === 'hidden';
189
+ const togglerElement = DomHandler.findSingle(this.$refs.node, '.p-treetable-toggler');
190
+
191
+ if (ishiddenIcon) return;
192
+
193
+ !this.expanded && togglerElement.click();
194
+
195
+ this.$nextTick(() => {
196
+ this.onArrowDownKey(event);
197
+ });
198
+
199
+ event.preventDefault();
200
+ },
201
+ onArrowLeftKey(event) {
202
+ if (this.level === 0 && !this.expanded) {
203
+ return;
204
+ }
205
+
206
+ const currentTarget = event.currentTarget;
207
+ const ishiddenIcon = DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';
208
+ const togglerElement = DomHandler.findSingle(currentTarget, '.p-treetable-toggler');
209
+
210
+ if (this.expanded && !ishiddenIcon) {
211
+ togglerElement.click();
212
+
213
+ return;
214
+ }
215
+
216
+ const target = this.findBeforeClickableNode(currentTarget);
217
+
218
+ target && this.focusRowChange(currentTarget, target);
219
+ },
220
+ onHomeKey(event) {
221
+ const findFirstElement = DomHandler.findSingle(event.currentTarget.parentElement, `tr[aria-level="${this.level + 1}"]`);
222
+
223
+ findFirstElement && DomHandler.focus(findFirstElement);
224
+
225
+ event.preventDefault();
226
+ },
227
+ onEndKey(event) {
228
+ const nodes = DomHandler.find(event.currentTarget.parentElement, `tr[aria-level="${this.level + 1}"]`);
229
+ const findFirstElement = nodes[nodes.length - 1];
230
+
231
+ DomHandler.focus(findFirstElement);
232
+
233
+ event.preventDefault();
234
+ },
235
+ onEnterKey(event) {
236
+ event.preventDefault();
237
+ this.setTabIndexForSelectionMode(event, this.nodeTouched);
238
+
239
+ if (this.selectionMode === 'checkbox') {
240
+ this.toggleCheckbox();
241
+
242
+ return;
243
+ }
244
+
245
+ this.$emit('node-click', {
246
+ originalEvent: event,
247
+ nodeTouched: this.nodeTouched,
248
+ node: this.node
249
+ });
250
+
251
+ this.nodeTouched = false;
252
+ },
253
+ onTabKey() {
254
+ const rows = [...DomHandler.find(this.$refs.node.parentElement, 'tr')];
255
+ const hasSelectedRow = rows.some((row) => DomHandler.hasClass(row, 'p-highlight') || row.getAttribute('aria-checked') === 'true');
256
+
257
+ rows.forEach((row) => {
258
+ row.tabIndex = -1;
259
+ });
260
+
261
+ if (hasSelectedRow) {
262
+ const selectedNodes = rows.filter((node) => DomHandler.hasClass(node, 'p-highlight') || node.getAttribute('aria-checked') === 'true');
263
+
264
+ selectedNodes[0].tabIndex = 0;
265
+
266
+ return;
267
+ }
268
+
269
+ rows[0].tabIndex = 0;
270
+ },
271
+ focusRowChange(firstFocusableRow, currentFocusedRow) {
272
+ firstFocusableRow.tabIndex = '-1';
273
+ currentFocusedRow.tabIndex = '0';
274
+ DomHandler.focus(currentFocusedRow);
275
+ },
276
+ findBeforeClickableNode(node) {
277
+ const prevNode = node.previousElementSibling;
278
+
279
+ if (prevNode) {
280
+ const prevNodeButton = prevNode.querySelector('button');
281
+
282
+ if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {
283
+ return prevNode;
155
284
  }
285
+
286
+ return this.findBeforeClickableNode(prevNode);
156
287
  }
288
+
289
+ return null;
157
290
  },
158
291
  toggleCheckbox() {
159
292
  let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};
@@ -232,6 +365,17 @@ export default {
232
365
  check: event.check,
233
366
  selectionKeys: _selectionKeys
234
367
  });
368
+ },
369
+ setTabIndexForSelectionMode(event, nodeTouched) {
370
+ if (this.selectionMode !== null) {
371
+ const elements = [...DomHandler.find(this.$refs.node.parentElement, 'tr')];
372
+
373
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
374
+
375
+ if (elements.every((element) => element.tabIndex === -1)) {
376
+ elements[0].tabIndex = 0;
377
+ }
378
+ }
235
379
  }
236
380
  },
237
381
  computed: {
@@ -243,9 +387,6 @@ export default {
243
387
  }
244
388
  ];
245
389
  },
246
- hasChildren() {
247
- return this.node.children && this.node.children.length > 0;
248
- },
249
390
  expanded() {
250
391
  return this.expandedKeys && this.expandedKeys[this.node.key] === true;
251
392
  },
@@ -255,14 +396,14 @@ export default {
255
396
  selected() {
256
397
  return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;
257
398
  },
258
- childLevel() {
259
- return this.level + 1;
260
- },
261
399
  checked() {
262
400
  return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;
263
401
  },
264
402
  partialChecked() {
265
403
  return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;
404
+ },
405
+ getAriaSelected() {
406
+ return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;
266
407
  }
267
408
  },
268
409
  components: {