primevue 3.22.4 → 3.24.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 (338) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +13 -13
  3. package/accordion/Accordion.d.ts +53 -21
  4. package/accordiontab/AccordionTab.d.ts +33 -12
  5. package/autocomplete/AutoComplete.d.ts +111 -84
  6. package/avatar/Avatar.d.ts +38 -25
  7. package/avatar/Avatar.vue +1 -1
  8. package/avatar/avatar.cjs.js +2 -1
  9. package/avatar/avatar.cjs.min.js +1 -1
  10. package/avatar/avatar.esm.js +2 -1
  11. package/avatar/avatar.esm.min.js +1 -1
  12. package/avatar/avatar.js +2 -1
  13. package/avatar/avatar.min.js +1 -1
  14. package/avatargroup/AvatarGroup.d.ts +30 -14
  15. package/badge/Badge.d.ts +34 -20
  16. package/badge/Badge.vue +16 -5
  17. package/badge/badge.cjs.js +15 -5
  18. package/badge/badge.cjs.min.js +1 -1
  19. package/badge/badge.esm.js +15 -5
  20. package/badge/badge.esm.min.js +1 -1
  21. package/badge/badge.js +16 -7
  22. package/badge/badge.min.js +1 -1
  23. package/badgedirective/BadgeDirective.d.ts +60 -1
  24. package/blockui/BlockUI.d.ts +36 -16
  25. package/breadcrumb/Breadcrumb.d.ts +37 -20
  26. package/breadcrumb/Breadcrumb.vue +1 -1
  27. package/breadcrumb/breadcrumb.cjs.js +2 -1
  28. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  29. package/breadcrumb/breadcrumb.esm.js +2 -1
  30. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  31. package/breadcrumb/breadcrumb.js +2 -1
  32. package/breadcrumb/breadcrumb.min.js +1 -1
  33. package/button/Button.d.ts +74 -17
  34. package/button/Button.vue +51 -8
  35. package/button/button.cjs.js +51 -8
  36. package/button/button.cjs.min.js +1 -1
  37. package/button/button.esm.js +51 -8
  38. package/button/button.esm.min.js +1 -1
  39. package/button/button.js +51 -8
  40. package/button/button.min.js +1 -1
  41. package/calendar/Calendar.d.ts +112 -77
  42. package/calendar/Calendar.vue +4 -4
  43. package/calendar/calendar.cjs.js +4 -4
  44. package/calendar/calendar.cjs.min.js +1 -1
  45. package/calendar/calendar.esm.js +4 -4
  46. package/calendar/calendar.esm.min.js +1 -1
  47. package/calendar/calendar.js +4 -4
  48. package/calendar/calendar.min.js +1 -1
  49. package/card/Card.d.ts +35 -15
  50. package/carousel/Carousel.d.ts +47 -29
  51. package/cascadeselect/CascadeSelect.d.ts +70 -59
  52. package/chart/Chart.d.ts +41 -23
  53. package/checkbox/Checkbox.d.ts +39 -15
  54. package/checkbox/Checkbox.vue +1 -1
  55. package/checkbox/checkbox.cjs.js +1 -1
  56. package/checkbox/checkbox.cjs.min.js +1 -1
  57. package/checkbox/checkbox.esm.js +1 -1
  58. package/checkbox/checkbox.esm.min.js +1 -1
  59. package/checkbox/checkbox.js +1 -1
  60. package/checkbox/checkbox.min.js +1 -1
  61. package/chip/Chip.d.ts +35 -14
  62. package/chips/Chips.d.ts +45 -20
  63. package/colorpicker/ColorPicker.d.ts +46 -28
  64. package/column/Column.d.ts +81 -65
  65. package/columngroup/ColumnGroup.d.ts +29 -13
  66. package/config/PrimeVue.d.ts +1 -2
  67. package/config/config.cjs.js +20 -2
  68. package/config/config.cjs.min.js +1 -1
  69. package/config/config.esm.js +20 -2
  70. package/config/config.esm.min.js +1 -1
  71. package/config/config.js +20 -2
  72. package/config/config.min.js +1 -1
  73. package/confirmationoptions/ConfirmationOptions.d.ts +15 -6
  74. package/confirmationservice/ConfirmationService.d.ts +11 -0
  75. package/confirmdialog/ConfirmDialog.d.ts +35 -17
  76. package/confirmpopup/ConfirmPopup.d.ts +32 -17
  77. package/contextmenu/ContextMenu.d.ts +51 -35
  78. package/core/core.js +368 -121
  79. package/core/core.min.js +8 -8
  80. package/datatable/DataTable.d.ts +248 -205
  81. package/datatable/DataTable.vue +78 -117
  82. package/datatable/TableBody.vue +3 -17
  83. package/datatable/datatable.cjs.js +73 -67
  84. package/datatable/datatable.cjs.min.js +1 -1
  85. package/datatable/datatable.esm.js +73 -67
  86. package/datatable/datatable.esm.min.js +1 -1
  87. package/datatable/datatable.js +73 -67
  88. package/datatable/datatable.min.js +1 -1
  89. package/dataview/DataView.d.ts +65 -47
  90. package/dataviewlayoutoptions/DataViewLayoutOptions.d.ts +33 -13
  91. package/deferredcontent/DeferredContent.d.ts +30 -13
  92. package/dialog/Dialog.d.ts +67 -46
  93. package/dialog/Dialog.vue +1 -1
  94. package/dialog/dialog.cjs.js +1 -1
  95. package/dialog/dialog.cjs.min.js +1 -1
  96. package/dialog/dialog.esm.js +1 -1
  97. package/dialog/dialog.esm.min.js +1 -1
  98. package/dialog/dialog.js +1 -1
  99. package/dialog/dialog.min.js +1 -1
  100. package/dialogservice/DialogService.d.ts +13 -2
  101. package/divider/Divider.d.ts +35 -30
  102. package/dock/Dock.d.ts +49 -36
  103. package/dropdown/Dropdown.d.ts +90 -82
  104. package/dropdown/Dropdown.vue +1 -1
  105. package/dropdown/dropdown.cjs.js +1 -1
  106. package/dropdown/dropdown.cjs.min.js +1 -1
  107. package/dropdown/dropdown.esm.js +1 -1
  108. package/dropdown/dropdown.esm.min.js +1 -1
  109. package/dropdown/dropdown.js +1 -1
  110. package/dropdown/dropdown.min.js +1 -1
  111. package/dynamicdialog/DynamicDialog.d.ts +30 -10
  112. package/dynamicdialog/DynamicDialog.vue +2 -2
  113. package/dynamicdialog/dynamicdialog.cjs.js +3 -3
  114. package/dynamicdialog/dynamicdialog.cjs.min.js +1 -1
  115. package/dynamicdialog/dynamicdialog.esm.js +2 -2
  116. package/dynamicdialog/dynamicdialog.esm.min.js +1 -1
  117. package/dynamicdialog/dynamicdialog.js +3 -3
  118. package/dynamicdialog/dynamicdialog.min.js +1 -1
  119. package/dynamicdialogoptions/DynamicDialogOptions.d.ts +28 -8
  120. package/editor/Editor.d.ts +48 -17
  121. package/fieldset/Fieldset.d.ts +43 -16
  122. package/fileupload/FileUpload.d.ts +101 -47
  123. package/focustrap/FocusTrap.d.ts +42 -3
  124. package/fullcalendar/FullCalendar.d.ts +1 -1
  125. package/galleria/Galleria.d.ts +64 -40
  126. package/image/Image.d.ts +33 -14
  127. package/inlinemessage/InlineMessage.d.ts +31 -17
  128. package/inplace/Inplace.d.ts +41 -18
  129. package/inputmask/InputMask.d.ts +41 -17
  130. package/inputnumber/InputNumber.d.ts +60 -41
  131. package/inputswitch/InputSwitch.d.ts +35 -15
  132. package/inputswitch/InputSwitch.vue +1 -0
  133. package/inputswitch/inputswitch.cjs.js +1 -1
  134. package/inputswitch/inputswitch.cjs.min.js +1 -1
  135. package/inputswitch/inputswitch.esm.js +1 -1
  136. package/inputswitch/inputswitch.esm.min.js +1 -1
  137. package/inputswitch/inputswitch.js +1 -1
  138. package/inputswitch/inputswitch.min.js +1 -1
  139. package/inputtext/InputText.d.ts +32 -12
  140. package/knob/Knob.d.ts +47 -21
  141. package/listbox/Listbox.d.ts +81 -60
  142. package/megamenu/MegaMenu.d.ts +42 -27
  143. package/megamenu/MegaMenu.vue +17 -0
  144. package/megamenu/megamenu.cjs.js +1 -1
  145. package/megamenu/megamenu.cjs.min.js +1 -1
  146. package/megamenu/megamenu.esm.js +1 -1
  147. package/megamenu/megamenu.esm.min.js +1 -1
  148. package/megamenu/megamenu.js +1 -1
  149. package/megamenu/megamenu.min.js +1 -1
  150. package/menu/Menu.d.ts +57 -28
  151. package/menu/Menu.vue +6 -0
  152. package/menu/menu.cjs.js +26 -8
  153. package/menu/menu.cjs.min.js +1 -1
  154. package/menu/menu.esm.js +27 -9
  155. package/menu/menu.esm.min.js +1 -1
  156. package/menu/menu.js +26 -8
  157. package/menu/menu.min.js +1 -1
  158. package/menubar/Menubar.d.ts +36 -19
  159. package/menuitem/MenuItem.d.ts +22 -10
  160. package/message/Message.d.ts +40 -21
  161. package/multiselect/MultiSelect.d.ts +111 -90
  162. package/orderlist/OrderList.d.ts +51 -23
  163. package/organizationchart/OrganizationChart.d.ts +43 -26
  164. package/overlaypanel/OverlayPanel.d.ts +46 -26
  165. package/package.json +2 -2
  166. package/paginator/Paginator.d.ts +49 -24
  167. package/panel/Panel.d.ts +39 -14
  168. package/panelmenu/PanelMenu.d.ts +49 -21
  169. package/password/Password.d.ts +47 -28
  170. package/picklist/PickList.d.ts +74 -33
  171. package/progressbar/ProgressBar.d.ts +34 -17
  172. package/progressspinner/ProgressSpinner.d.ts +32 -13
  173. package/radiobutton/RadioButton.d.ts +32 -14
  174. package/rating/Rating.d.ts +51 -25
  175. package/resources/themes/arya-blue/theme.css +34 -11
  176. package/resources/themes/arya-green/theme.css +34 -11
  177. package/resources/themes/arya-orange/theme.css +34 -11
  178. package/resources/themes/arya-purple/theme.css +34 -11
  179. package/resources/themes/bootstrap4-dark-blue/theme.css +34 -11
  180. package/resources/themes/bootstrap4-dark-purple/theme.css +34 -11
  181. package/resources/themes/bootstrap4-light-blue/theme.css +34 -11
  182. package/resources/themes/bootstrap4-light-purple/theme.css +34 -11
  183. package/resources/themes/fluent-light/theme.css +34 -11
  184. package/resources/themes/lara-dark-blue/theme.css +34 -11
  185. package/resources/themes/lara-dark-indigo/theme.css +34 -11
  186. package/resources/themes/lara-dark-purple/theme.css +34 -11
  187. package/resources/themes/lara-dark-teal/theme.css +34 -11
  188. package/resources/themes/lara-light-blue/theme.css +34 -11
  189. package/resources/themes/lara-light-indigo/theme.css +34 -11
  190. package/resources/themes/lara-light-purple/theme.css +34 -11
  191. package/resources/themes/lara-light-teal/theme.css +34 -11
  192. package/resources/themes/luna-amber/theme.css +34 -11
  193. package/resources/themes/luna-blue/theme.css +34 -11
  194. package/resources/themes/luna-green/theme.css +34 -11
  195. package/resources/themes/luna-pink/theme.css +34 -11
  196. package/resources/themes/md-dark-deeppurple/theme.css +34 -11
  197. package/resources/themes/md-dark-indigo/theme.css +34 -11
  198. package/resources/themes/md-light-deeppurple/theme.css +34 -11
  199. package/resources/themes/md-light-indigo/theme.css +34 -11
  200. package/resources/themes/mdc-dark-deeppurple/theme.css +34 -11
  201. package/resources/themes/mdc-dark-indigo/theme.css +34 -11
  202. package/resources/themes/mdc-light-deeppurple/theme.css +34 -11
  203. package/resources/themes/mdc-light-indigo/theme.css +34 -11
  204. package/resources/themes/mira/fonts/Inter-Bold.woff +0 -0
  205. package/resources/themes/mira/fonts/Inter-Bold.woff2 +0 -0
  206. package/resources/themes/mira/fonts/Inter-Medium.woff +0 -0
  207. package/resources/themes/mira/fonts/Inter-Medium.woff2 +0 -0
  208. package/resources/themes/mira/fonts/Inter-Regular.woff +0 -0
  209. package/resources/themes/mira/fonts/Inter-Regular.woff2 +0 -0
  210. package/resources/themes/mira/fonts/Inter-SemiBold.woff +0 -0
  211. package/resources/themes/mira/fonts/Inter-SemiBold.woff2 +0 -0
  212. package/resources/themes/mira/theme.css +6089 -0
  213. package/resources/themes/nano/theme.css +5861 -0
  214. package/resources/themes/nova/theme.css +34 -11
  215. package/resources/themes/nova-accent/theme.css +34 -11
  216. package/resources/themes/nova-alt/theme.css +34 -11
  217. package/resources/themes/nova-vue/theme.css +34 -11
  218. package/resources/themes/rhea/theme.css +34 -11
  219. package/resources/themes/saga-blue/theme.css +34 -11
  220. package/resources/themes/saga-green/theme.css +34 -11
  221. package/resources/themes/saga-orange/theme.css +34 -11
  222. package/resources/themes/saga-purple/theme.css +34 -11
  223. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  224. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  225. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  226. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  227. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  228. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  229. package/resources/themes/soho-dark/theme.css +5854 -0
  230. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  231. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  232. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  233. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  234. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  235. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  236. package/resources/themes/soho-light/theme.css +5908 -0
  237. package/resources/themes/tailwind-light/theme.css +34 -11
  238. package/resources/themes/vela-blue/theme.css +34 -11
  239. package/resources/themes/vela-green/theme.css +34 -11
  240. package/resources/themes/vela-orange/theme.css +34 -11
  241. package/resources/themes/vela-purple/theme.css +34 -11
  242. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  243. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  244. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  245. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  246. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  247. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  248. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  249. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  250. package/resources/themes/viva-dark/theme.css +6016 -0
  251. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  252. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  253. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  254. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  255. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  256. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  257. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  258. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  259. package/resources/themes/viva-light/theme.css +6016 -0
  260. package/ripple/Ripple.d.ts +24 -1
  261. package/row/Row.d.ts +28 -10
  262. package/scrollpanel/ScrollPanel.d.ts +29 -11
  263. package/scrolltop/ScrollTop.d.ts +35 -18
  264. package/selectbutton/SelectButton.d.ts +47 -27
  265. package/sidebar/Sidebar.d.ts +46 -27
  266. package/skeleton/Skeleton.d.ts +36 -22
  267. package/slider/Slider.d.ts +46 -23
  268. package/speeddial/SpeedDial.d.ts +64 -51
  269. package/splitbutton/SplitButton.d.ts +73 -24
  270. package/splitbutton/SplitButton.vue +41 -1
  271. package/splitbutton/splitbutton.cjs.js +43 -3
  272. package/splitbutton/splitbutton.cjs.min.js +1 -1
  273. package/splitbutton/splitbutton.esm.js +43 -3
  274. package/splitbutton/splitbutton.esm.min.js +1 -1
  275. package/splitbutton/splitbutton.js +43 -3
  276. package/splitbutton/splitbutton.min.js +1 -1
  277. package/splitter/Splitter.d.ts +49 -30
  278. package/splitterpanel/SplitterPanel.d.ts +28 -10
  279. package/steps/Steps.d.ts +36 -15
  280. package/styleclass/StyleClass.d.ts +72 -1
  281. package/tabmenu/TabMenu.d.ts +41 -16
  282. package/tabmenu/TabMenu.vue +1 -1
  283. package/tabmenu/tabmenu.cjs.js +1 -0
  284. package/tabmenu/tabmenu.cjs.min.js +1 -1
  285. package/tabmenu/tabmenu.esm.js +1 -0
  286. package/tabmenu/tabmenu.esm.min.js +1 -1
  287. package/tabmenu/tabmenu.js +1 -0
  288. package/tabmenu/tabmenu.min.js +1 -1
  289. package/tabpanel/TabPanel.d.ts +29 -11
  290. package/tabview/TabView.d.ts +47 -19
  291. package/tag/Tag.d.ts +33 -15
  292. package/tag/Tag.vue +1 -1
  293. package/tag/tag.cjs.js +4 -2
  294. package/tag/tag.cjs.min.js +1 -1
  295. package/tag/tag.esm.js +5 -3
  296. package/tag/tag.esm.min.js +1 -1
  297. package/tag/tag.js +4 -2
  298. package/tag/tag.min.js +1 -1
  299. package/terminal/Terminal.d.ts +30 -14
  300. package/terminalservice/TerminalService.d.ts +24 -5
  301. package/textarea/Textarea.d.ts +33 -11
  302. package/tieredmenu/TieredMenu.d.ts +45 -31
  303. package/timeline/Timeline.d.ts +41 -32
  304. package/toast/Toast.d.ts +63 -35
  305. package/toast/Toast.vue +4 -2
  306. package/toast/ToastMessage.vue +4 -4
  307. package/toast/toast.cjs.js +8 -6
  308. package/toast/toast.cjs.min.js +1 -1
  309. package/toast/toast.esm.js +8 -6
  310. package/toast/toast.esm.min.js +1 -1
  311. package/toast/toast.js +8 -6
  312. package/toast/toast.min.js +1 -1
  313. package/toastservice/ToastService.d.ts +16 -3
  314. package/togglebutton/ToggleButton.d.ts +42 -22
  315. package/toolbar/Toolbar.d.ts +34 -14
  316. package/tooltip/Tooltip.d.ts +99 -1
  317. package/tree/Tree.d.ts +55 -36
  318. package/treeselect/TreeSelect.d.ts +63 -55
  319. package/treetable/TreeTable.d.ts +121 -107
  320. package/tristatecheckbox/TriStateCheckbox.d.ts +35 -12
  321. package/ts-helpers.d.ts +2 -2
  322. package/utils/utils.cjs.js +20 -22
  323. package/utils/utils.cjs.min.js +1 -1
  324. package/utils/utils.esm.js +20 -22
  325. package/utils/utils.esm.min.js +1 -1
  326. package/utils/utils.js +20 -22
  327. package/utils/utils.min.js +1 -1
  328. package/vetur-attributes.json +62 -2
  329. package/vetur-tags.json +17 -2
  330. package/virtualscroller/VirtualScroller.d.ts +99 -43
  331. package/virtualscroller/VirtualScroller.vue +248 -72
  332. package/virtualscroller/virtualscroller.cjs.js +234 -72
  333. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  334. package/virtualscroller/virtualscroller.esm.js +234 -72
  335. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  336. package/virtualscroller/virtualscroller.js +235 -74
  337. package/virtualscroller/virtualscroller.min.js +1 -1
  338. package/web-types.json +1930 -1742
@@ -29,9 +29,21 @@
29
29
  </template>
30
30
  </DTPaginator>
31
31
  <div class="p-datatable-wrapper" :style="{ maxHeight: virtualScrollerDisabled ? scrollHeight : '' }">
32
- <DTVirtualScroller ref="virtualScroller" v-bind="virtualScrollerOptions" :items="processedData" :columns="columns" :style="{ height: scrollHeight }" :disabled="virtualScrollerDisabled" loaderDisabled :showSpacer="false">
32
+ <DTVirtualScroller
33
+ ref="virtualScroller"
34
+ v-bind="virtualScrollerOptions"
35
+ :items="processedData"
36
+ :columns="columns"
37
+ :style="{ height: scrollHeight !== 'flex' ? scrollHeight : undefined }"
38
+ :scrollHeight="scrollHeight !== 'flex' ? undefined : '100%'"
39
+ :disabled="virtualScrollerDisabled"
40
+ loaderDisabled
41
+ inline
42
+ autoSize
43
+ :showSpacer="false"
44
+ >
33
45
  <template #content="slotProps">
34
- <table ref="table" role="table" :class="[tableClass, 'p-datatable-table']" :style="[tableStyle, slotProps.spacerStyle]" v-bind="tableProps">
46
+ <table ref="table" role="table" :class="tableStyleClass" :style="[tableStyle, slotProps.spacerStyle]" v-bind="tableProps">
35
47
  <DTTableHeader
36
48
  :columnGroup="headerColumnGroup"
37
49
  :columns="slotProps.columns"
@@ -171,11 +183,15 @@
171
183
  :editingMeta="d_editingMeta"
172
184
  @editing-meta-change="onEditingMetaChange"
173
185
  />
186
+ <tbody v-if="hasSpacerStyle(slotProps.spacerStyle)" :style="{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }" class="p-datatable-virtualscroller-spacer"></tbody>
174
187
  <DTTableFooter :columnGroup="footerColumnGroup" :columns="slotProps.columns" />
175
188
  </table>
176
189
  </template>
177
190
  </DTVirtualScroller>
178
191
  </div>
192
+ <div v-if="$slots.footer" class="p-datatable-footer">
193
+ <slot name="footer"></slot>
194
+ </div>
179
195
  <DTPaginator
180
196
  v-if="paginatorBottom"
181
197
  :rows="d_rows"
@@ -196,9 +212,6 @@
196
212
  <slot name="paginatorend"></slot>
197
213
  </template>
198
214
  </DTPaginator>
199
- <div v-if="$slots.footer" class="p-datatable-footer">
200
- <slot name="footer"></slot>
201
- </div>
202
215
  <div ref="resizeHelper" class="p-column-resizer-helper" style="display: none"></div>
203
216
  <span v-if="reorderableColumns" ref="reorderIndicatorUp" class="pi pi-arrow-down p-datatable-reorder-indicator-up" style="position: absolute; display: none" />
204
217
  <span v-if="reorderableColumns" ref="reorderIndicatorDown" class="pi pi-arrow-up p-datatable-reorder-indicator-down" style="position: absolute; display: none" />
@@ -401,10 +414,6 @@ export default {
401
414
  type: Function,
402
415
  default: null
403
416
  },
404
- autoLayout: {
405
- type: Boolean,
406
- default: false
407
- },
408
417
  resizableColumns: {
409
418
  type: Boolean,
410
419
  default: false
@@ -473,10 +482,6 @@ export default {
473
482
  type: Boolean,
474
483
  default: false
475
484
  },
476
- scrollDirection: {
477
- type: String,
478
- default: 'vertical'
479
- },
480
485
  virtualScrollerOptions: {
481
486
  type: Object,
482
487
  default: null
@@ -491,7 +496,7 @@ export default {
491
496
  },
492
497
  responsiveLayout: {
493
498
  type: String,
494
- default: 'stack'
499
+ default: 'scroll'
495
500
  },
496
501
  breakpoint: {
497
502
  type: String,
@@ -1117,7 +1122,7 @@ export default {
1117
1122
 
1118
1123
  if (firstSelectedRow) {
1119
1124
  firstSelectedRow.tabIndex = '0';
1120
- focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');
1125
+ focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');
1121
1126
  } else {
1122
1127
  rows[0].tabIndex = '0';
1123
1128
  focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');
@@ -1368,7 +1373,7 @@ export default {
1368
1373
 
1369
1374
  if (i === 0) csv += '\n';
1370
1375
 
1371
- if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {
1376
+ if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {
1372
1377
  if (footerInitiated) csv += this.csvSeparator;
1373
1378
  else footerInitiated = true;
1374
1379
 
@@ -1462,15 +1467,16 @@ export default {
1462
1467
  this.createStyleElement();
1463
1468
 
1464
1469
  let innerHTML = '';
1470
+ let selector = `.p-datatable[${this.attributeSelector}] > .p-datatable-wrapper ${this.virtualScrollerDisabled ? '' : '> .p-virtualscroller'} > .p-datatable-table`;
1465
1471
 
1466
1472
  widths.forEach((width, index) => {
1467
1473
  let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
1468
- let style = this.scrollable ? `flex: 1 1 ${colWidth}px !important` : `width: ${colWidth}px !important`;
1474
+ let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;
1469
1475
 
1470
1476
  innerHTML += `
1471
- .p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th:nth-child(${index + 1}),
1472
- .p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1473
- .p-datatable[${this.attributeSelector}] .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1477
+ ${selector} > .p-datatable-thead > tr > th:nth-child(${index + 1}),
1478
+ ${selector} > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1479
+ ${selector} > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1474
1480
  ${style}
1475
1481
  }
1476
1482
  `;
@@ -1685,7 +1691,7 @@ export default {
1685
1691
  let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;
1686
1692
  let processedData = [...this.processedData];
1687
1693
 
1688
- ObjectUtils.reorderArray(processedData, this.draggedRowIndex, dropIndex);
1694
+ ObjectUtils.reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);
1689
1695
 
1690
1696
  this.$emit('row-reorder', {
1691
1697
  originalEvent: event,
@@ -1902,14 +1908,15 @@ export default {
1902
1908
  this.createStyleElement();
1903
1909
 
1904
1910
  let innerHTML = '';
1911
+ let selector = `.p-datatable[${this.attributeSelector}] > .p-datatable-wrapper ${this.virtualScrollerDisabled ? '' : '> .p-virtualscroller'} > .p-datatable-table`;
1905
1912
 
1906
1913
  widths.forEach((width, index) => {
1907
- let style = this.scrollable ? `flex: 1 1 ${width}px !important` : `width: ${width}px !important`;
1914
+ let style = `width: ${width}px !important; max-width: ${width}px !important`;
1908
1915
 
1909
1916
  innerHTML += `
1910
- .p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th:nth-child(${index + 1}),
1911
- .p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1912
- .p-datatable[${this.attributeSelector}] .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1917
+ ${selector} > .p-datatable-thead > tr > th:nth-child(${index + 1}),
1918
+ ${selector} > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1919
+ ${selector} > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1913
1920
  ${style}
1914
1921
  }
1915
1922
  `;
@@ -2034,31 +2041,34 @@ export default {
2034
2041
  this.responsiveStyleElement.type = 'text/css';
2035
2042
  document.head.appendChild(this.responsiveStyleElement);
2036
2043
 
2044
+ let tableSelector = `.p-datatable-wrapper ${this.virtualScrollerDisabled ? '' : '> .p-virtualscroller'} > .p-datatable-table`;
2045
+ let selector = `.p-datatable[${this.attributeSelector}] > ${tableSelector}`;
2046
+ let gridLinesSelector = `.p-datatable[${this.attributeSelector}].p-datatable-gridlines > ${tableSelector}`;
2037
2047
  let innerHTML = `
2038
2048
  @media screen and (max-width: ${this.breakpoint}) {
2039
- .p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th,
2040
- .p-datatable[${this.attributeSelector}] .p-datatable-tfoot > tr > td {
2049
+ ${selector} > .p-datatable-thead > tr > th,
2050
+ ${selector} > .p-datatable-tfoot > tr > td {
2041
2051
  display: none !important;
2042
2052
  }
2043
2053
 
2044
- .p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td {
2054
+ ${selector} > .p-datatable-tbody > tr > td {
2045
2055
  display: flex;
2046
2056
  width: 100% !important;
2047
2057
  align-items: center;
2048
2058
  justify-content: space-between;
2049
2059
  }
2050
2060
 
2051
- .p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:not(:last-child) {
2061
+ ${selector} > .p-datatable-tbody > tr > td:not(:last-child) {
2052
2062
  border: 0 none;
2053
2063
  }
2054
2064
 
2055
- .p-datatable[${this.attributeSelector}].p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {
2065
+ ${gridLinesSelector} > .p-datatable-tbody > tr > td:last-child {
2056
2066
  border-top: 0;
2057
2067
  border-right: 0;
2058
2068
  border-left: 0;
2059
2069
  }
2060
2070
 
2061
- .p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td > .p-column-title {
2071
+ ${selector} > .p-datatable-tbody > tr > td > .p-column-title {
2062
2072
  display: block;
2063
2073
  }
2064
2074
  }
@@ -2109,6 +2119,9 @@ export default {
2109
2119
  },
2110
2120
  getVirtualScrollerRef() {
2111
2121
  return this.$refs.virtualScroller;
2122
+ },
2123
+ hasSpacerStyle(style) {
2124
+ return ObjectUtils.isNotEmpty(style);
2112
2125
  }
2113
2126
  },
2114
2127
  computed: {
@@ -2117,13 +2130,9 @@ export default {
2117
2130
  'p-datatable p-component',
2118
2131
  {
2119
2132
  'p-datatable-hoverable-rows': this.rowHover || this.selectionMode,
2120
- 'p-datatable-auto-layout': this.autoLayout,
2121
2133
  'p-datatable-resizable': this.resizableColumns,
2122
2134
  'p-datatable-resizable-fit': this.resizableColumns && this.columnResizeMode === 'fit',
2123
2135
  'p-datatable-scrollable': this.scrollable,
2124
- 'p-datatable-scrollable-vertical': this.scrollable && this.scrollDirection === 'vertical',
2125
- 'p-datatable-scrollable-horizontal': this.scrollable && this.scrollDirection === 'horizontal',
2126
- 'p-datatable-scrollable-both': this.scrollable && this.scrollDirection === 'both',
2127
2136
  'p-datatable-flex-scrollable': this.scrollable && this.scrollHeight === 'flex',
2128
2137
  'p-datatable-responsive-stack': this.responsiveLayout === 'stack',
2129
2138
  'p-datatable-responsive-scroll': this.responsiveLayout === 'scroll',
@@ -2134,6 +2143,17 @@ export default {
2134
2143
  }
2135
2144
  ];
2136
2145
  },
2146
+ tableStyleClass() {
2147
+ return [
2148
+ 'p-datatable-table',
2149
+ {
2150
+ 'p-datatable-scrollable-table': this.scrollable,
2151
+ 'p-datatable-resizable-table': this.resizableColumns,
2152
+ 'p-datatable-resizable-table-fit': this.resizableColumns && this.columnResizeMode === 'fit'
2153
+ },
2154
+ this.tableClass
2155
+ ];
2156
+ },
2137
2157
  columns() {
2138
2158
  let children = this.getChildren();
2139
2159
 
@@ -2266,10 +2286,13 @@ export default {
2266
2286
  position: relative;
2267
2287
  }
2268
2288
 
2269
- .p-datatable table {
2270
- border-collapse: collapse;
2271
- min-width: 100%;
2272
- table-layout: fixed;
2289
+ .p-datatable > .p-datatable-wrapper {
2290
+ overflow: auto;
2291
+ }
2292
+
2293
+ .p-datatable-table {
2294
+ border-spacing: 0px;
2295
+ width: 100%;
2273
2296
  }
2274
2297
 
2275
2298
  .p-datatable .p-sortable-column {
@@ -2289,59 +2312,27 @@ export default {
2289
2312
  justify-content: center;
2290
2313
  }
2291
2314
 
2292
- .p-datatable-responsive-scroll > .p-datatable-wrapper {
2293
- overflow-x: auto;
2294
- }
2295
-
2296
- .p-datatable-responsive-scroll > .p-datatable-wrapper > table,
2297
- .p-datatable-auto-layout > .p-datatable-wrapper > table {
2298
- table-layout: auto;
2299
- }
2300
-
2301
2315
  .p-datatable-hoverable-rows .p-selectable-row {
2302
2316
  cursor: pointer;
2303
2317
  }
2304
2318
 
2305
2319
  /* Scrollable */
2306
- .p-datatable-scrollable .p-datatable-wrapper {
2320
+ .p-datatable-scrollable > .p-datatable-wrapper {
2307
2321
  position: relative;
2308
- overflow: auto;
2309
2322
  }
2310
2323
 
2311
- .p-datatable-scrollable .p-datatable-thead,
2312
- .p-datatable-scrollable .p-datatable-tbody,
2313
- .p-datatable-scrollable .p-datatable-tfoot {
2314
- display: block;
2315
- }
2316
-
2317
- .p-datatable-scrollable .p-datatable-thead > tr,
2318
- .p-datatable-scrollable .p-datatable-tbody > tr,
2319
- .p-datatable-scrollable .p-datatable-tfoot > tr {
2320
- display: flex;
2321
- flex-wrap: nowrap;
2322
- width: 100%;
2323
- }
2324
-
2325
- .p-datatable-scrollable .p-datatable-thead > tr > th,
2326
- .p-datatable-scrollable .p-datatable-tbody > tr > td,
2327
- .p-datatable-scrollable .p-datatable-tfoot > tr > td {
2328
- display: flex;
2329
- flex: 1 1 0;
2330
- align-items: center;
2331
- }
2332
-
2333
- .p-datatable-scrollable .p-datatable-thead {
2324
+ .p-datatable-scrollable-table > .p-datatable-thead {
2334
2325
  position: sticky;
2335
2326
  top: 0;
2336
2327
  z-index: 1;
2337
2328
  }
2338
2329
 
2339
- .p-datatable-scrollable .p-datatable-frozen-tbody {
2330
+ .p-datatable-scrollable-table > .p-datatable-frozen-tbody {
2340
2331
  position: sticky;
2341
2332
  z-index: 1;
2342
2333
  }
2343
2334
 
2344
- .p-datatable-scrollable .p-datatable-tfoot {
2335
+ .p-datatable-scrollable-table > .p-datatable-tfoot {
2345
2336
  position: sticky;
2346
2337
  bottom: 0;
2347
2338
  z-index: 1;
@@ -2356,72 +2347,38 @@ export default {
2356
2347
  z-index: 1;
2357
2348
  }
2358
2349
 
2359
- .p-datatable-scrollable-both .p-datatable-thead > tr > th,
2360
- .p-datatable-scrollable-both .p-datatable-tbody > tr > td,
2361
- .p-datatable-scrollable-both .p-datatable-tfoot > tr > td,
2362
- .p-datatable-scrollable-horizontal .p-datatable-thead > tr > th .p-datatable-scrollable-horizontal .p-datatable-tbody > tr > td,
2363
- .p-datatable-scrollable-horizontal .p-datatable-tfoot > tr > td {
2364
- flex: 1 0 auto;
2365
- }
2366
-
2367
2350
  .p-datatable-flex-scrollable {
2368
2351
  display: flex;
2369
2352
  flex-direction: column;
2370
2353
  height: 100%;
2371
2354
  }
2372
2355
 
2373
- .p-datatable-flex-scrollable .p-datatable-wrapper {
2356
+ .p-datatable-flex-scrollable > .p-datatable-wrapper {
2374
2357
  display: flex;
2375
2358
  flex-direction: column;
2376
2359
  flex: 1;
2377
2360
  height: 100%;
2378
2361
  }
2379
2362
 
2380
- .p-datatable-scrollable .p-rowgroup-header {
2363
+ .p-datatable-scrollable-table > .p-datatable-tbody > .p-rowgroup-header {
2381
2364
  position: sticky;
2382
2365
  z-index: 1;
2383
2366
  }
2384
2367
 
2385
- .p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,
2386
- .p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot {
2387
- display: table;
2388
- border-collapse: collapse;
2389
- width: 100%;
2390
- table-layout: fixed;
2391
- }
2392
-
2393
- .p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead > tr,
2394
- .p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot > tr {
2395
- display: table-row;
2396
- }
2397
-
2398
- .p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead > tr > th,
2399
- .p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot > tr > td {
2400
- display: table-cell;
2401
- }
2402
-
2403
- .p-datatable-scrollable .p-virtualscroller > .p-datatable-table {
2404
- display: inline-block; /* For Safari */
2405
- }
2406
-
2407
2368
  /* Resizable */
2408
- .p-datatable-resizable > .p-datatable-wrapper {
2409
- overflow-x: auto;
2410
- }
2411
-
2412
- .p-datatable-resizable .p-datatable-thead > tr > th,
2413
- .p-datatable-resizable .p-datatable-tfoot > tr > td,
2414
- .p-datatable-resizable .p-datatable-tbody > tr > td {
2369
+ .p-datatable-resizable-table > .p-datatable-thead > tr > th,
2370
+ .p-datatable-resizable-table > .p-datatable-tfoot > tr > td,
2371
+ .p-datatable-resizable-table > .p-datatable-tbody > tr > td {
2415
2372
  overflow: hidden;
2416
2373
  white-space: nowrap;
2417
2374
  }
2418
2375
 
2419
- .p-datatable-resizable .p-resizable-column:not(.p-frozen-column) {
2376
+ .p-datatable-resizable-table > .p-datatable-thead > tr > th.p-resizable-column:not(.p-frozen-column) {
2420
2377
  background-clip: padding-box;
2421
2378
  position: relative;
2422
2379
  }
2423
2380
 
2424
- .p-datatable-resizable-fit .p-resizable-column:last-child .p-column-resizer {
2381
+ .p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-resizable-column:last-child .p-column-resizer {
2425
2382
  display: none;
2426
2383
  }
2427
2384
 
@@ -2560,7 +2517,11 @@ export default {
2560
2517
  }
2561
2518
 
2562
2519
  /* VirtualScroller */
2563
- .p-datatable .p-virtualscroller-loading {
2520
+ .p-datatable-virtualscroller-spacer {
2521
+ display: flex;
2522
+ }
2523
+
2524
+ .p-datatable .p-virtualscroller .p-virtualscroller-loading {
2564
2525
  transform: none !important;
2565
2526
  min-height: 0;
2566
2527
  position: sticky;
@@ -67,7 +67,9 @@
67
67
  </td>
68
68
  </tr>
69
69
  <tr v-if="templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(index))" :key="getRowKey(rowData, getRowIndex(index)) + '_subfooter'" class="p-rowgroup-footer" role="row">
70
- <component :is="templates['groupfooter']" :data="rowData" :index="getRowIndex(index)" />
70
+ <td :colspan="columnsLength - 1">
71
+ <component :is="templates['groupfooter']" :data="rowData" :index="getRowIndex(index)" />
72
+ </td>
71
73
  </tr>
72
74
  </template>
73
75
  </template>
@@ -238,13 +240,6 @@ export default {
238
240
  isARowSelected: false
239
241
  };
240
242
  },
241
- watch: {
242
- virtualScrollerContentProps(newValue, oldValue) {
243
- if (!this.isVirtualScrollerDisabled && this.getVirtualScrollerProp('vertical') && this.getVirtualScrollerProp('itemSize', oldValue) !== this.getVirtualScrollerProp('itemSize', newValue)) {
244
- this.updateVirtualScrollerPosition();
245
- }
246
- }
247
- },
248
243
  mounted() {
249
244
  if (this.frozenRow) {
250
245
  this.updateFrozenRowStickyPosition();
@@ -253,10 +248,6 @@ export default {
253
248
  if (this.scrollable && this.rowGroupMode === 'subheader') {
254
249
  this.updateFrozenRowGroupHeaderStickyPosition();
255
250
  }
256
-
257
- if (!this.isVirtualScrollerDisabled && this.getVirtualScrollerProp('vertical')) {
258
- this.updateVirtualScrollerPosition();
259
- }
260
251
  },
261
252
  updated() {
262
253
  if (this.frozenRow) {
@@ -538,11 +529,6 @@ export default {
538
529
 
539
530
  this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';
540
531
  },
541
- updateVirtualScrollerPosition() {
542
- const tableHeaderHeight = DomHandler.getOuterHeight(this.$el.previousElementSibling);
543
-
544
- this.$el.style.top = (this.$el.style.top || 0) + tableHeaderHeight + 'px';
545
- },
546
532
  getVirtualScrollerProp(option, options) {
547
533
  options = options || this.virtualScrollerContentProps;
548
534