primevue 3.30.0 → 3.30.2

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 (303) hide show
  1. package/README.md +4 -2
  2. package/accordion/Accordion.d.ts +6 -1
  3. package/accordion/Accordion.vue +2 -1
  4. package/accordion/accordion.cjs.js +5 -9
  5. package/accordion/accordion.cjs.min.js +1 -1
  6. package/accordion/accordion.esm.js +5 -9
  7. package/accordion/accordion.esm.min.js +1 -1
  8. package/accordion/accordion.js +6 -10
  9. package/accordion/accordion.min.js +1 -1
  10. package/accordiontab/AccordionTab.d.ts +1 -1
  11. package/autocomplete/AutoComplete.d.ts +1 -1
  12. package/avatar/Avatar.d.ts +1 -1
  13. package/badge/Badge.d.ts +1 -1
  14. package/basecomponent/BaseComponent.vue +12 -16
  15. package/basecomponent/basecomponent.cjs.js +18 -6
  16. package/basecomponent/basecomponent.cjs.min.js +1 -1
  17. package/basecomponent/basecomponent.esm.js +18 -6
  18. package/basecomponent/basecomponent.esm.min.js +1 -1
  19. package/basecomponent/basecomponent.js +18 -6
  20. package/basecomponent/basecomponent.min.js +1 -1
  21. package/basedirective/basedirective.cjs.js +8 -2
  22. package/basedirective/basedirective.cjs.min.js +1 -1
  23. package/basedirective/basedirective.esm.js +8 -2
  24. package/basedirective/basedirective.esm.min.js +1 -1
  25. package/basedirective/basedirective.js +8 -2
  26. package/basedirective/basedirective.min.js +1 -1
  27. package/blockui/BlockUI.d.ts +1 -1
  28. package/breadcrumb/Breadcrumb.d.ts +1 -1
  29. package/button/Button.d.ts +1 -1
  30. package/calendar/Calendar.d.ts +1 -1
  31. package/carousel/Carousel.d.ts +1 -1
  32. package/cascadeselect/CascadeSelect.d.ts +1 -1
  33. package/chart/Chart.d.ts +1 -1
  34. package/checkbox/Checkbox.d.ts +1 -1
  35. package/chip/Chip.d.ts +1 -1
  36. package/chips/Chips.d.ts +1 -1
  37. package/colorpicker/ColorPicker.d.ts +1 -1
  38. package/column/Column.d.ts +49 -1
  39. package/columngroup/ColumnGroup.d.ts +6 -1
  40. package/config/PrimeVue.d.ts +13 -6
  41. package/confirmdialog/ConfirmDialog.d.ts +1 -1
  42. package/confirmpopup/ConfirmPopup.d.ts +1 -1
  43. package/contextmenu/ContextMenu.d.ts +1 -1
  44. package/core/core.js +144 -103
  45. package/core/core.min.js +10 -10
  46. package/datatable/BaseDataTable.vue +7 -1
  47. package/datatable/BodyCell.vue +7 -4
  48. package/datatable/ColumnFilter.vue +43 -8
  49. package/datatable/DataTable.d.ts +31 -1
  50. package/datatable/FooterCell.vue +5 -2
  51. package/datatable/HeaderCell.vue +8 -3
  52. package/datatable/HeaderCheckbox.vue +5 -2
  53. package/datatable/RowCheckbox.vue +5 -2
  54. package/datatable/RowRadioButton.vue +5 -2
  55. package/datatable/TableBody.vue +33 -13
  56. package/datatable/TableFooter.vue +13 -4
  57. package/datatable/TableHeader.vue +16 -5
  58. package/datatable/datatable.cjs.js +221 -145
  59. package/datatable/datatable.cjs.min.js +1 -1
  60. package/datatable/datatable.esm.js +221 -145
  61. package/datatable/datatable.esm.min.js +1 -1
  62. package/datatable/datatable.js +222 -146
  63. package/datatable/datatable.min.js +1 -1
  64. package/dataview/BaseDataView.vue +1 -2
  65. package/dataview/DataView.d.ts +1 -1
  66. package/dataview/DataView.vue +3 -3
  67. package/dataview/dataview.cjs.js +5 -13
  68. package/dataview/dataview.cjs.min.js +1 -1
  69. package/dataview/dataview.esm.js +5 -13
  70. package/dataview/dataview.esm.min.js +1 -1
  71. package/dataview/dataview.js +5 -13
  72. package/dataview/dataview.min.js +1 -1
  73. package/dataviewlayoutoptions/DataViewLayoutOptions.d.ts +6 -1
  74. package/deferredcontent/DeferredContent.d.ts +1 -1
  75. package/dialog/Dialog.d.ts +1 -1
  76. package/dialog/Dialog.vue +13 -1
  77. package/dialog/dialog.cjs.js +6 -2
  78. package/dialog/dialog.cjs.min.js +1 -1
  79. package/dialog/dialog.esm.js +6 -2
  80. package/dialog/dialog.esm.min.js +1 -1
  81. package/dialog/dialog.js +6 -2
  82. package/dialog/dialog.min.js +1 -1
  83. package/divider/Divider.d.ts +1 -1
  84. package/dock/Dock.d.ts +5 -1
  85. package/dock/DockSub.vue +9 -8
  86. package/dock/dock.cjs.js +9 -8
  87. package/dock/dock.cjs.min.js +1 -1
  88. package/dock/dock.esm.js +9 -8
  89. package/dock/dock.esm.min.js +1 -1
  90. package/dock/dock.js +9 -8
  91. package/dock/dock.min.js +1 -1
  92. package/dropdown/Dropdown.d.ts +1 -1
  93. package/editor/Editor.d.ts +1 -1
  94. package/fieldset/Fieldset.d.ts +1 -1
  95. package/fileupload/FileUpload.d.ts +1 -1
  96. package/galleria/Galleria.d.ts +5 -1
  97. package/galleria/GalleriaContent.vue +16 -6
  98. package/galleria/GalleriaItem.vue +2 -1
  99. package/galleria/GalleriaThumbnails.vue +1 -0
  100. package/galleria/galleria.cjs.js +34 -17
  101. package/galleria/galleria.cjs.min.js +1 -1
  102. package/galleria/galleria.esm.js +35 -18
  103. package/galleria/galleria.esm.min.js +1 -1
  104. package/galleria/galleria.js +34 -17
  105. package/galleria/galleria.min.js +1 -1
  106. package/image/Image.d.ts +1 -1
  107. package/inlinemessage/InlineMessage.d.ts +1 -1
  108. package/inplace/Inplace.d.ts +1 -1
  109. package/inputnumber/InputNumber.d.ts +1 -1
  110. package/inputswitch/InputSwitch.d.ts +1 -1
  111. package/inputtext/InputText.d.ts +26 -1
  112. package/inputtext/InputText.vue +2 -1
  113. package/inputtext/inputtext.cjs.js +2 -1
  114. package/inputtext/inputtext.cjs.min.js +1 -1
  115. package/inputtext/inputtext.esm.js +2 -1
  116. package/inputtext/inputtext.esm.min.js +1 -1
  117. package/inputtext/inputtext.js +2 -1
  118. package/inputtext/inputtext.min.js +1 -1
  119. package/knob/Knob.d.ts +1 -1
  120. package/listbox/Listbox.d.ts +1 -1
  121. package/megamenu/MegaMenu.d.ts +1 -1
  122. package/menu/Menu.d.ts +1 -1
  123. package/menubar/Menubar.d.ts +1 -1
  124. package/message/BaseMessage.vue +2 -2
  125. package/message/Message.d.ts +11 -1
  126. package/message/Message.vue +3 -3
  127. package/message/message.cjs.js +8 -8
  128. package/message/message.cjs.min.js +1 -1
  129. package/message/message.esm.js +8 -8
  130. package/message/message.esm.min.js +1 -1
  131. package/message/message.js +8 -8
  132. package/message/message.min.js +1 -1
  133. package/multiselect/MultiSelect.d.ts +1 -1
  134. package/multiselect/MultiSelect.vue +3 -2
  135. package/multiselect/multiselect.cjs.js +5 -5
  136. package/multiselect/multiselect.cjs.min.js +1 -1
  137. package/multiselect/multiselect.esm.js +6 -6
  138. package/multiselect/multiselect.esm.min.js +1 -1
  139. package/multiselect/multiselect.js +5 -5
  140. package/multiselect/multiselect.min.js +1 -1
  141. package/orderlist/OrderList.d.ts +18 -1
  142. package/orderlist/OrderList.vue +7 -7
  143. package/orderlist/orderlist.cjs.js +19 -15
  144. package/orderlist/orderlist.cjs.min.js +1 -1
  145. package/orderlist/orderlist.esm.js +19 -15
  146. package/orderlist/orderlist.esm.min.js +1 -1
  147. package/orderlist/orderlist.js +19 -15
  148. package/orderlist/orderlist.min.js +1 -1
  149. package/organizationchart/OrganizationChart.d.ts +1 -1
  150. package/overlaypanel/OverlayPanel.d.ts +1 -1
  151. package/overlaypanel/OverlayPanel.vue +4 -2
  152. package/overlaypanel/overlaypanel.cjs.js +4 -2
  153. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  154. package/overlaypanel/overlaypanel.esm.js +4 -2
  155. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  156. package/overlaypanel/overlaypanel.js +4 -2
  157. package/overlaypanel/overlaypanel.min.js +1 -1
  158. package/package.json +1 -1
  159. package/paginator/JumpToPageDropdown.vue +1 -1
  160. package/paginator/Paginator.d.ts +1 -26
  161. package/paginator/paginator.cjs.js +1 -1
  162. package/paginator/paginator.cjs.min.js +1 -1
  163. package/paginator/paginator.esm.js +1 -1
  164. package/paginator/paginator.esm.min.js +1 -1
  165. package/paginator/paginator.js +1 -1
  166. package/paginator/paginator.min.js +1 -1
  167. package/panel/Panel.d.ts +2 -2
  168. package/panelmenu/PanelMenu.d.ts +1 -1
  169. package/password/Password.d.ts +1 -1
  170. package/picklist/BasePickList.vue +4 -4
  171. package/picklist/PickList.d.ts +22 -1
  172. package/picklist/PickList.vue +19 -19
  173. package/picklist/picklist.cjs.js +59 -47
  174. package/picklist/picklist.cjs.min.js +1 -1
  175. package/picklist/picklist.esm.js +59 -47
  176. package/picklist/picklist.esm.min.js +1 -1
  177. package/picklist/picklist.js +59 -47
  178. package/picklist/picklist.min.js +1 -1
  179. package/progressbar/ProgressBar.d.ts +1 -1
  180. package/progressspinner/ProgressSpinner.d.ts +1 -1
  181. package/radiobutton/RadioButton.d.ts +1 -1
  182. package/rating/Rating.d.ts +1 -1
  183. package/row/Row.d.ts +1 -1
  184. package/scrollpanel/ScrollPanel.d.ts +1 -1
  185. package/scrollpanel/ScrollPanel.vue +2 -0
  186. package/scrollpanel/scrollpanel.cjs.js +6 -2
  187. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  188. package/scrollpanel/scrollpanel.esm.js +6 -2
  189. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  190. package/scrollpanel/scrollpanel.js +6 -2
  191. package/scrollpanel/scrollpanel.min.js +1 -1
  192. package/scrolltop/ScrollTop.d.ts +1 -1
  193. package/selectbutton/SelectButton.d.ts +1 -1
  194. package/sidebar/Sidebar.d.ts +1 -1
  195. package/sidebar/Sidebar.vue +1 -1
  196. package/sidebar/sidebar.cjs.js +3 -1
  197. package/sidebar/sidebar.cjs.min.js +1 -1
  198. package/sidebar/sidebar.esm.js +3 -1
  199. package/sidebar/sidebar.esm.min.js +1 -1
  200. package/sidebar/sidebar.js +3 -1
  201. package/sidebar/sidebar.min.js +1 -1
  202. package/skeleton/Skeleton.d.ts +1 -1
  203. package/slider/Slider.d.ts +1 -1
  204. package/speeddial/SpeedDial.d.ts +1 -1
  205. package/splitbutton/SplitButton.d.ts +1 -1
  206. package/splitbutton/SplitButton.vue +2 -1
  207. package/splitbutton/splitbutton.cjs.js +4 -2
  208. package/splitbutton/splitbutton.cjs.min.js +1 -1
  209. package/splitbutton/splitbutton.esm.js +4 -2
  210. package/splitbutton/splitbutton.esm.min.js +1 -1
  211. package/splitbutton/splitbutton.js +4 -2
  212. package/splitbutton/splitbutton.min.js +1 -1
  213. package/splitter/Splitter.d.ts +1 -1
  214. package/splitterpanel/SplitterPanel.d.ts +1 -1
  215. package/steps/Steps.d.ts +1 -1
  216. package/tabmenu/TabMenu.d.ts +1 -1
  217. package/tabmenu/TabMenu.vue +71 -72
  218. package/tabmenu/tabmenu.cjs.js +67 -75
  219. package/tabmenu/tabmenu.cjs.min.js +1 -1
  220. package/tabmenu/tabmenu.esm.js +67 -75
  221. package/tabmenu/tabmenu.esm.min.js +1 -1
  222. package/tabmenu/tabmenu.js +67 -75
  223. package/tabmenu/tabmenu.min.js +1 -1
  224. package/tabpanel/TabPanel.d.ts +17 -1
  225. package/tabview/TabView.d.ts +6 -1
  226. package/tabview/TabView.vue +12 -4
  227. package/tabview/tabview.cjs.js +23 -16
  228. package/tabview/tabview.cjs.min.js +1 -1
  229. package/tabview/tabview.esm.js +23 -16
  230. package/tabview/tabview.esm.min.js +1 -1
  231. package/tabview/tabview.js +24 -17
  232. package/tabview/tabview.min.js +1 -1
  233. package/tag/Tag.d.ts +1 -1
  234. package/terminal/Terminal.d.ts +1 -1
  235. package/textarea/Textarea.d.ts +18 -1
  236. package/textarea/Textarea.vue +8 -1
  237. package/textarea/textarea.cjs.js +8 -1
  238. package/textarea/textarea.cjs.min.js +1 -1
  239. package/textarea/textarea.esm.js +8 -1
  240. package/textarea/textarea.esm.min.js +1 -1
  241. package/textarea/textarea.js +8 -1
  242. package/textarea/textarea.min.js +1 -1
  243. package/tieredmenu/TieredMenu.d.ts +1 -1
  244. package/timeline/Timeline.d.ts +20 -1
  245. package/timeline/Timeline.vue +14 -6
  246. package/timeline/timeline.cjs.js +17 -7
  247. package/timeline/timeline.cjs.min.js +1 -1
  248. package/timeline/timeline.esm.js +17 -7
  249. package/timeline/timeline.esm.min.js +1 -1
  250. package/timeline/timeline.js +17 -7
  251. package/timeline/timeline.min.js +1 -1
  252. package/toast/BaseToast.vue +2 -2
  253. package/toast/Toast.d.ts +11 -1
  254. package/toast/ToastMessage.vue +3 -2
  255. package/toast/toast.cjs.js +7 -6
  256. package/toast/toast.cjs.min.js +1 -1
  257. package/toast/toast.esm.js +7 -6
  258. package/toast/toast.esm.min.js +1 -1
  259. package/toast/toast.js +7 -6
  260. package/toast/toast.min.js +1 -1
  261. package/togglebutton/ToggleButton.d.ts +1 -1
  262. package/toolbar/Toolbar.d.ts +1 -1
  263. package/tree/Tree.d.ts +10 -1
  264. package/tree/TreeNode.vue +3 -1
  265. package/tree/tree.cjs.js +3 -1
  266. package/tree/tree.cjs.min.js +1 -1
  267. package/tree/tree.esm.js +3 -1
  268. package/tree/tree.esm.min.js +1 -1
  269. package/tree/tree.js +3 -1
  270. package/tree/tree.min.js +1 -1
  271. package/treeselect/TreeSelect.d.ts +1 -1
  272. package/treetable/BaseTreeTable.vue +9 -3
  273. package/treetable/BodyCell.vue +16 -5
  274. package/treetable/FooterCell.vue +5 -2
  275. package/treetable/HeaderCell.vue +11 -3
  276. package/treetable/TreeTable.d.ts +31 -9
  277. package/treetable/TreeTable.vue +13 -5
  278. package/treetable/TreeTableRow.vue +11 -2
  279. package/treetable/treetable.cjs.js +84 -55
  280. package/treetable/treetable.cjs.min.js +1 -1
  281. package/treetable/treetable.esm.js +85 -56
  282. package/treetable/treetable.esm.min.js +1 -1
  283. package/treetable/treetable.js +84 -55
  284. package/treetable/treetable.min.js +1 -1
  285. package/tristatecheckbox/TriStateCheckbox.d.ts +1 -1
  286. package/usestyle/UseStyle.d.ts +1 -0
  287. package/usestyle/usestyle.cjs.js +12 -10
  288. package/usestyle/usestyle.cjs.min.js +1 -1
  289. package/usestyle/usestyle.esm.js +12 -10
  290. package/usestyle/usestyle.esm.min.js +1 -1
  291. package/usestyle/usestyle.js +12 -10
  292. package/usestyle/usestyle.min.js +1 -1
  293. package/utils/Utils.d.ts +4 -3
  294. package/utils/utils.cjs.js +19 -5
  295. package/utils/utils.cjs.min.js +1 -1
  296. package/utils/utils.esm.js +19 -5
  297. package/utils/utils.esm.min.js +1 -1
  298. package/utils/utils.js +19 -5
  299. package/utils/utils.min.js +1 -1
  300. package/vetur-attributes.json +8 -0
  301. package/vetur-tags.json +2 -0
  302. package/virtualscroller/VirtualScroller.d.ts +1 -1
  303. package/web-types.json +21 -1
@@ -259,7 +259,9 @@ const classes = {
259
259
  'p-datatable-striped': props.stripedRows,
260
260
  'p-datatable-gridlines': props.showGridlines,
261
261
  'p-datatable-grouped-header': instance.headerColumnGroup != null,
262
- 'p-datatable-grouped-footer': instance.footerColumnGroup != null
262
+ 'p-datatable-grouped-footer': instance.footerColumnGroup != null,
263
+ 'p-datatable-sm': props.size === 'small',
264
+ 'p-datatable-lg': props.size === 'large'
263
265
  }
264
266
  ],
265
267
  loadingOverlay: 'p-datatable-loading-overlay p-component-overlay',
@@ -709,6 +711,10 @@ export default {
709
711
  type: Boolean,
710
712
  default: false
711
713
  },
714
+ size: {
715
+ type: String,
716
+ default: null
717
+ },
712
718
  tableStyle: {
713
719
  type: null,
714
720
  default: null
@@ -46,8 +46,8 @@
46
46
  </template>
47
47
  <template v-else-if="columnProp('rowReorder')">
48
48
  <component v-if="column.children && column.children.rowreordericon" :is="column.children.rowreordericon" :class="cx('rowReorderIcon')" />
49
- <i v-else-if="columnProp('rowReorderIcon')" :class="[cx('rowReorderIcon'), columnProp('rowReorderIcon')]" />
50
- <BarsIcon v-else :class="cx('rowReorderIcon')" data-pc-section="rowreordericon" />
49
+ <i v-else-if="columnProp('rowReorderIcon')" :class="[cx('rowReorderIcon'), columnProp('rowReorderIcon')]" v-bind="getColumnPT('rowReorderIcon')" />
50
+ <BarsIcon v-else :class="cx('rowReorderIcon')" v-bind="getColumnPT('rowReorderIcon')" />
51
51
  </template>
52
52
  <template v-else-if="columnProp('expander')">
53
53
  <button v-ripple :class="cx('rowToggler')" type="button" :aria-expanded="isRowExpanded" :aria-controls="ariaControls" :aria-label="expandButtonAriaLabel" @click="toggleRow" v-bind="getColumnPT('rowToggler')">
@@ -86,6 +86,7 @@ import TimesIcon from 'primevue/icons/times';
86
86
  import OverlayEventBus from 'primevue/overlayeventbus';
87
87
  import Ripple from 'primevue/ripple';
88
88
  import { DomHandler, ObjectUtils } from 'primevue/utils';
89
+ import { mergeProps } from 'vue';
89
90
  import RowCheckbox from './RowCheckbox.vue';
90
91
  import RowRadioButton from './RowRadioButton.vue';
91
92
 
@@ -213,11 +214,13 @@ export default {
213
214
  state: this.$data
214
215
  },
215
216
  context: {
216
- index: this.index
217
+ index: this.index,
218
+ size: this.$parentInstance?.$parentInstance?.size,
219
+ showGridlines: this.$parentInstance?.$parentInstance?.showGridlines
217
220
  }
218
221
  };
219
222
 
220
- return { ...this.ptm(`column.${key}`, { column: columnMetaData }), ...this.ptmo(this.getColumnProp(), key, columnMetaData) };
223
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
221
224
  },
222
225
  getColumnProp() {
223
226
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;
@@ -14,11 +14,11 @@
14
14
  :class="cx('filterMenuButton')"
15
15
  @click="toggleMenu($event)"
16
16
  @keydown="onToggleButtonKeyDown($event)"
17
- v-bind="getColumnPT('filterMenuButton')"
17
+ v-bind="getColumnPT('filterMenuButton', ptmFilterMenuParams)"
18
18
  >
19
- <component :is="filterIconTemplate || 'FilterIcon'" />
19
+ <component :is="filterIconTemplate || 'FilterIcon'" v-bind="getColumnPT('filterMenuIcon')" />
20
20
  </button>
21
- <button v-if="showClearButton && display === 'row'" :class="cx('headerFilterClearButton')" type="button" @click="clearFilter()" v-bind="getColumnPT('headerFilterClearButton')">
21
+ <button v-if="showClearButton && display === 'row'" :class="cx('headerFilterClearButton')" type="button" @click="clearFilter()" v-bind="getColumnPT('headerFilterClearButton', ptmHeaderFilterClearParams)">
22
22
  <component :is="filterClearIconTemplate || 'FilterSlashIcon'" v-bind="getColumnPT('filterClearIcon')" />
23
23
  </button>
24
24
  <Portal>
@@ -47,7 +47,7 @@
47
47
  @keydown="onRowMatchModeKeyDown($event)"
48
48
  @keydown.enter.prevent="onRowMatchModeChange(matchMode.value)"
49
49
  :tabindex="i === 0 ? '0' : null"
50
- v-bind="getColumnPT('filterRowItem')"
50
+ v-bind="getColumnPT('filterRowItem', ptmFilterRowItemOptions(matchMode))"
51
51
  >
52
52
  {{ matchMode.label }}
53
53
  </li>
@@ -96,6 +96,9 @@
96
96
  @click="removeConstraint(i)"
97
97
  :label="removeRuleButtonLabel"
98
98
  :unstyled="unstyled"
99
+ text
100
+ severity="danger"
101
+ size="small"
99
102
  :pt="getColumnPT('filterRemoveButton')"
100
103
  data-pc-section="filterremovebutton"
101
104
  >
@@ -114,6 +117,9 @@
114
117
  :class="cx('filterAddRuleButton')"
115
118
  @click="addConstraint()"
116
119
  :unstyled="unstyled"
120
+ text
121
+ severity="info"
122
+ size="small"
117
123
  :pt="getColumnPT('filterAddRuleButton')"
118
124
  data-pc-section="filteraddrulebutton"
119
125
  >
@@ -130,6 +136,8 @@
130
136
  :label="clearButtonLabel"
131
137
  @click="clearFilter"
132
138
  :unstyled="unstyled"
139
+ size="small"
140
+ outlined
133
141
  :pt="getColumnPT('filterClearButton')"
134
142
  data-pc-section="filterclearbutton"
135
143
  ></CFButton>
@@ -142,6 +150,7 @@
142
150
  :label="applyButtonLabel"
143
151
  @click="applyFilter()"
144
152
  :unstyled="unstyled"
153
+ size="small"
145
154
  :pt="getColumnPT('filterApplyButton')"
146
155
  data-pc-section="filterapplybutton"
147
156
  ></CFButton>
@@ -169,6 +178,7 @@ import TrashIcon from 'primevue/icons/trash';
169
178
  import OverlayEventBus from 'primevue/overlayeventbus';
170
179
  import Portal from 'primevue/portal';
171
180
  import { ConnectedOverlayScrollHandler, DomHandler, UniqueComponentId, ZIndexUtils } from 'primevue/utils';
181
+ import { mergeProps } from 'vue';
172
182
 
173
183
  export default {
174
184
  name: 'ColumnFilter',
@@ -316,18 +326,28 @@ export default {
316
326
  }
317
327
  },
318
328
  methods: {
319
- getColumnPT(key) {
320
- return this.ptmo(this.getColumnProp(), key, {
329
+ getColumnPT(key, params) {
330
+ const columnMetaData = {
321
331
  props: this.column.props,
322
332
  parent: {
323
333
  props: this.$props,
324
334
  state: this.$data
325
- }
326
- });
335
+ },
336
+ ...params
337
+ };
338
+
339
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
327
340
  },
328
341
  getColumnProp() {
329
342
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;
330
343
  },
344
+ ptmFilterRowItemOptions(matchMode) {
345
+ return {
346
+ context: {
347
+ highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)
348
+ }
349
+ };
350
+ },
331
351
  clearFilter() {
332
352
  let _filters = { ...this.filters };
333
353
 
@@ -667,6 +687,21 @@ export default {
667
687
  },
668
688
  filterConstraintAriaLabel() {
669
689
  return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;
690
+ },
691
+ ptmHeaderFilterClearParams() {
692
+ return {
693
+ context: {
694
+ hidden: this.hasRowFilter()
695
+ }
696
+ };
697
+ },
698
+ ptmFilterMenuParams() {
699
+ return {
700
+ context: {
701
+ overlayVisible: this.overlayVisible,
702
+ active: this.hasFilter()
703
+ }
704
+ };
670
705
  }
671
706
  },
672
707
  components: {
@@ -16,7 +16,7 @@ import { RowPassThroughOptionType } from '../row';
16
16
  import { ClassComponent, GlobalComponentConstructor, Nullable } from '../ts-helpers';
17
17
  import { VirtualScrollerPassThroughOptionType, VirtualScrollerProps } from '../virtualscroller';
18
18
 
19
- export declare type DataTablePassThroughOptionType = DataTablePassThroughAttributes | ((options: DataTablePassThroughMethodOptions) => DataTablePassThroughAttributes) | null | undefined;
19
+ export declare type DataTablePassThroughOptionType = DataTablePassThroughAttributes | ((options: DataTablePassThroughMethodOptions) => DataTablePassThroughAttributes | string) | string | null | undefined;
20
20
 
21
21
  /**
22
22
  * Custom passthrough(pt) option method.
@@ -25,6 +25,7 @@ export interface DataTablePassThroughMethodOptions {
25
25
  instance: any;
26
26
  props: DataTableProps;
27
27
  state: DataTableState;
28
+ context: DataTableContext;
28
29
  }
29
30
 
30
31
  /**
@@ -721,6 +722,31 @@ export interface DataTableState {
721
722
  d_editing: boolean;
722
723
  }
723
724
 
725
+ /**
726
+ * Defines current options in DataTable component.
727
+ */
728
+ export interface DataTableContext {
729
+ /**
730
+ * Current index of the row.
731
+ */
732
+ index: number;
733
+ /**
734
+ * Current selectable state of row as a boolean.
735
+ * @defaultValue false
736
+ */
737
+ selectable: boolean;
738
+ /**
739
+ * Current selected state of row as a boolean.
740
+ * @defaultValue false
741
+ */
742
+ selected: boolean;
743
+ /**
744
+ * Current stripedRows state of row as a boolean.
745
+ * @defaultValue false
746
+ */
747
+ stripedRows: boolean;
748
+ }
749
+
724
750
  /**
725
751
  * Defines valid properties in DataTable component.
726
752
  */
@@ -1013,6 +1039,10 @@ export interface DataTableProps {
1013
1039
  * @defaultValue false
1014
1040
  */
1015
1041
  stripedRows?: boolean | undefined;
1042
+ /**
1043
+ * Defines the size of the table.
1044
+ */
1045
+ size?: 'small' | 'large' | undefined;
1016
1046
  /**
1017
1047
  * Inline style of the table element.
1018
1048
  */
@@ -8,6 +8,7 @@
8
8
  <script>
9
9
  import BaseComponent from 'primevue/basecomponent';
10
10
  import { DomHandler, ObjectUtils } from 'primevue/utils';
11
+ import { mergeProps } from 'vue';
11
12
 
12
13
  export default {
13
14
  name: 'FooterCell',
@@ -50,11 +51,13 @@ export default {
50
51
  state: this.$data
51
52
  },
52
53
  context: {
53
- index: this.index
54
+ index: this.index,
55
+ size: this.$parentInstance?.$parentInstance?.size,
56
+ showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false
54
57
  }
55
58
  };
56
59
 
57
- return { ...this.ptm(`column.${key}`, { column: columnMetaData }), ...this.ptmo(this.getColumnProp(), key, columnMetaData) };
60
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
58
61
  },
59
62
  getColumnProp() {
60
63
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;
@@ -27,7 +27,7 @@
27
27
  <component v-if="column.children && column.children.header" :is="column.children.header" :column="column" />
28
28
  <span v-if="columnProp('header')" :class="cx('headerTitle')" v-bind="getColumnPT('headerTitle')">{{ columnProp('header') }}</span>
29
29
  <span v-if="columnProp('sortable')" v-bind="getColumnPT('sort')">
30
- <component :is="(column.children && column.children.sorticon) || sortableColumnIcon" :sorted="sortState.sorted" :sortOrder="sortState.sortOrder" data-pc-section="sorticon" :class="cx('sortIcon')" />
30
+ <component :is="(column.children && column.children.sorticon) || sortableColumnIcon" :sorted="sortState.sorted" :sortOrder="sortState.sortOrder" data-pc-section="sorticon" :class="cx('sortIcon')" v-bind="getColumnPT('sorticon')" />
31
31
  </span>
32
32
  <span v-if="isMultiSorted()" :class="cx('sortBadge')" v-bind="getColumnPT('sortBadge')">{{ getBadgeValue() }}</span>
33
33
  <DTHeaderCheckbox
@@ -87,6 +87,7 @@ import SortAltIcon from 'primevue/icons/sortalt';
87
87
  import SortAmountDownIcon from 'primevue/icons/sortamountdown';
88
88
  import SortAmountUpAltIcon from 'primevue/icons/sortamountupalt';
89
89
  import { DomHandler, ObjectUtils } from 'primevue/utils';
90
+ import { mergeProps } from 'vue';
90
91
  import ColumnFilter from './ColumnFilter.vue';
91
92
  import HeaderCheckbox from './HeaderCheckbox.vue';
92
93
 
@@ -213,11 +214,15 @@ export default {
213
214
  state: this.$data
214
215
  },
215
216
  context: {
216
- index: this.index
217
+ index: this.index,
218
+ sorted: this.isColumnSorted(),
219
+ resizable: this.resizableColumns,
220
+ size: this.$parentInstance?.$parentInstance?.size,
221
+ showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false
217
222
  }
218
223
  };
219
224
 
220
- return { ...this.ptm(`column.${key}`, { column: columnMetaData }), ...this.ptmo(this.getColumnProp(), key, columnMetaData) };
225
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
221
226
  },
222
227
  getColumnProp() {
223
228
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:
@@ -24,6 +24,7 @@
24
24
  import BaseComponent from 'primevue/basecomponent';
25
25
  import CheckIcon from 'primevue/icons/check';
26
26
  import { DomHandler } from 'primevue/utils';
27
+ import { mergeProps } from 'vue';
27
28
 
28
29
  export default {
29
30
  name: 'HeaderCheckbox',
@@ -46,7 +47,7 @@ export default {
46
47
  },
47
48
  methods: {
48
49
  getColumnPT(key) {
49
- return this.ptmo(this.getColumnProp(), key, {
50
+ const columnMetaData = {
50
51
  props: this.column.props,
51
52
  parent: {
52
53
  props: this.$props,
@@ -57,7 +58,9 @@ export default {
57
58
  focused: this.focused,
58
59
  disabled: this.disabled
59
60
  }
60
- });
61
+ };
62
+
63
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
61
64
  },
62
65
  getColumnProp() {
63
66
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:
@@ -25,6 +25,7 @@
25
25
  import BaseComponent from 'primevue/basecomponent';
26
26
  import CheckIcon from 'primevue/icons/check';
27
27
  import { DomHandler } from 'primevue/utils';
28
+ import { mergeProps } from 'vue';
28
29
 
29
30
  export default {
30
31
  name: 'RowCheckbox',
@@ -51,7 +52,7 @@ export default {
51
52
  },
52
53
  methods: {
53
54
  getColumnPT(key) {
54
- return this.ptmo(this.getColumnProp(), key, {
55
+ const columnMetaData = {
55
56
  props: this.column.props,
56
57
  parent: {
57
58
  props: this.$props,
@@ -63,7 +64,9 @@ export default {
63
64
  focused: this.focused,
64
65
  disabled: this.$attrs.disabled
65
66
  }
66
- });
67
+ };
68
+
69
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
67
70
  },
68
71
  getColumnProp() {
69
72
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:
@@ -12,6 +12,7 @@
12
12
  <script>
13
13
  import BaseComponent from 'primevue/basecomponent';
14
14
  import { DomHandler } from 'primevue/utils';
15
+ import { mergeProps } from 'vue';
15
16
 
16
17
  export default {
17
18
  name: 'RowRadioButton',
@@ -36,7 +37,7 @@ export default {
36
37
  },
37
38
  methods: {
38
39
  getColumnPT(key) {
39
- return this.ptmo(this.getColumnProp(), key, {
40
+ const columnMetaData = {
40
41
  props: this.column.props,
41
42
  parent: {
42
43
  props: this.$props,
@@ -48,7 +49,9 @@ export default {
48
49
  focused: this.focused,
49
50
  disabled: this.$attrs.disabled
50
51
  }
51
- });
52
+ };
53
+
54
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));
52
55
  },
53
56
  getColumnProp() {
54
57
  return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tbody :ref="bodyRef" :class="cx('tbody')" role="rowgroup" :style="bodyStyle" v-bind="ptm('tbody')">
2
+ <tbody :ref="bodyRef" :class="cx('tbody')" role="rowgroup" :style="bodyStyle" v-bind="ptm('tbody', ptmTBodyOptions)">
3
3
  <template v-if="!empty">
4
4
  <template v-for="(rowData, index) of value">
5
5
  <tr
@@ -10,14 +10,14 @@
10
10
  role="row"
11
11
  v-bind="ptm('rowGroupHeader')"
12
12
  >
13
- <td :colspan="columnsLength - 1" v-bind="{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }">
14
- <button v-if="expandableRowGroups" :class="cx('rowGroupToggler')" @click="onRowGroupToggle($event, rowData)" type="button" v-bind="getColumnPT('rowGroupToggler')">
13
+ <td :colspan="columnsLength - 1" v-bind="{ ...ptm('column.root'), ...ptm('column.bodyCell') }" data-pc-section="bodycell">
14
+ <button v-if="expandableRowGroups" :class="cx('rowGroupToggler')" @click="onRowGroupToggle($event, rowData)" type="button" v-bind="ptm('rowGroupToggler')">
15
15
  <component v-if="templates['rowgrouptogglericon']" :is="templates['rowgrouptogglericon']" :expanded="isRowGroupExpanded(rowData)" />
16
16
  <template v-else>
17
- <span v-if="isRowGroupExpanded(rowData) && expandedRowIcon" :class="[cx('rowGroupTogglerIcon'), expandedRowIcon]" v-bind="getColumnPT('rowGroupTogglerIcon')" />
18
- <ChevronDownIcon v-else-if="isRowGroupExpanded(rowData) && !expandedRowIcon" :class="cx('rowGroupTogglerIcon')" v-bind="getColumnPT('rowGroupTogglerIcon')" />
19
- <span v-else-if="!isRowGroupExpanded(rowData) && collapsedRowIcon" :class="[cx('rowGroupTogglerIcon'), collapsedRowIcon]" v-bind="getColumnPT('rowGroupTogglerIcon')" />
20
- <ChevronRightIcon v-else-if="!isRowGroupExpanded(rowData) && !collapsedRowIcon" :class="cx('rowGroupTogglerIcon')" v-bind="getColumnPT('rowGroupTogglerIcon')" />
17
+ <span v-if="isRowGroupExpanded(rowData) && expandedRowIcon" :class="[cx('rowGroupTogglerIcon'), expandedRowIcon]" v-bind="ptm('rowGroupTogglerIcon')" />
18
+ <ChevronDownIcon v-else-if="isRowGroupExpanded(rowData) && !expandedRowIcon" :class="cx('rowGroupTogglerIcon')" v-bind="ptm('rowGroupTogglerIcon')" />
19
+ <span v-else-if="!isRowGroupExpanded(rowData) && collapsedRowIcon" :class="[cx('rowGroupTogglerIcon'), collapsedRowIcon]" v-bind="ptm('rowGroupTogglerIcon')" />
20
+ <ChevronRightIcon v-else-if="!isRowGroupExpanded(rowData) && !collapsedRowIcon" :class="cx('rowGroupTogglerIcon')" v-bind="ptm('rowGroupTogglerIcon')" />
21
21
  </template>
22
22
  </button>
23
23
  <component :is="templates['groupheader']" :data="rowData" :index="getRowIndex(index)" />
@@ -42,7 +42,7 @@
42
42
  @dragleave="onRowDragLeave($event)"
43
43
  @dragend="onRowDragEnd($event)"
44
44
  @drop="onRowDrop($event)"
45
- v-bind="ptm('bodyRow')"
45
+ v-bind="getBodyRowPTOptions('bodyRow', rowData, index)"
46
46
  :data-p-selectable-row="selectionMode ? true : false"
47
47
  :data-p-highlight="selection && isSelected(rowData)"
48
48
  :data-p-highlight-contextmenu="contextMenuSelection && isSelectedWithContextMenu(rowData)"
@@ -102,7 +102,7 @@
102
102
  role="row"
103
103
  v-bind="ptm('rowGroupFooter')"
104
104
  >
105
- <td :colspan="columnsLength - 1" v-bind="{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }">
105
+ <td :colspan="columnsLength - 1" v-bind="{ ...ptm('column.root'), ...ptm('column.footerCell') }" data-pc-section="footercell">
106
106
  <component :is="templates['groupfooter']" :data="rowData" :index="getRowIndex(index)" />
107
107
  </td>
108
108
  </tr>
@@ -121,6 +121,7 @@ import BaseComponent from 'primevue/basecomponent';
121
121
  import ChevronDownIcon from 'primevue/icons/chevrondown';
122
122
  import ChevronRightIcon from 'primevue/icons/chevronright';
123
123
  import { DomHandler, ObjectUtils, UniqueComponentId } from 'primevue/utils';
124
+ import { mergeProps } from 'vue';
124
125
  import BodyCell from './BodyCell.vue';
125
126
 
126
127
  export default {
@@ -306,18 +307,30 @@ export default {
306
307
  columnProp(col, prop) {
307
308
  return ObjectUtils.getVNodeProp(col, prop);
308
309
  },
309
- getColumnPT(column, key) {
310
- return this.ptmo(this.getColumnProp(column), key, {
311
- props: column.props,
310
+ getColumnPT(currentColumn, key) {
311
+ const columnMetaData = {
312
+ props: currentColumn.props,
312
313
  parent: {
313
314
  props: this.$props,
314
315
  state: this.$data
315
316
  }
316
- });
317
+ };
318
+
319
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(currentColumn), key, columnMetaData));
317
320
  },
318
321
  getColumnProp(column) {
319
322
  return column.props && column.props.pt ? column.props.pt : undefined; //@todo
320
323
  },
324
+ getBodyRowPTOptions(key, rowdata, index) {
325
+ return this.ptm(key, {
326
+ context: {
327
+ index,
328
+ selectable: this.$parentInstance?.$parentInstance?.rowHover || this.$parentInstance?.$parentInstance?.selectionMode,
329
+ selected: this.isSelected(rowdata),
330
+ stripedRows: this.$parentInstance?.$parentInstance?.stripedRows || false
331
+ }
332
+ });
333
+ },
321
334
  shouldRenderRowGroupHeader(value, rowData, i) {
322
335
  let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.groupRowsBy);
323
336
  let prevRowData = value[i - 1];
@@ -609,6 +622,13 @@ export default {
609
622
  },
610
623
  nameAttributeSelector() {
611
624
  return UniqueComponentId();
625
+ },
626
+ ptmTBodyOptions() {
627
+ return {
628
+ context: {
629
+ scrollable: this.$parentInstance?.$parentInstance?.scrollable
630
+ }
631
+ };
612
632
  }
613
633
  },
614
634
  components: {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tfoot v-if="hasFooter" :class="cx('tfoot')" :style="sx('tfoot')" role="rowgroup" v-bind="columnGroup ? { ...ptm('tfoot'), ...getColumnGroupPT('root') } : ptm('tfoot')" data-pc-section="tfoot">
2
+ <tfoot v-if="hasFooter" :class="cx('tfoot')" :style="sx('tfoot')" role="rowgroup" v-bind="columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)" data-pc-section="tfoot">
3
3
  <tr v-if="!columnGroup" role="row" v-bind="ptm('footerRow')">
4
4
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
5
5
  <DTFooterCell v-if="!columnProp(col, 'hidden')" :column="col" :pt="pt" />
@@ -18,6 +18,7 @@
18
18
  <script>
19
19
  import BaseComponent from 'primevue/basecomponent';
20
20
  import { ObjectUtils } from 'primevue/utils';
21
+ import { mergeProps } from 'vue';
21
22
  import FooterCell from './FooterCell.vue';
22
23
 
23
24
  export default {
@@ -46,11 +47,12 @@ export default {
46
47
  state: this.$data
47
48
  },
48
49
  context: {
49
- type: 'header'
50
+ type: 'footer',
51
+ scrollable: this.ptmTFootOptions.context.scrollable
50
52
  }
51
53
  };
52
54
 
53
- return { ...this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), ...this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData) };
55
+ return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));
54
56
  },
55
57
  getColumnGroupProps() {
56
58
  return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo
@@ -67,7 +69,7 @@ export default {
67
69
  }
68
70
  };
69
71
 
70
- return { ...this.ptm(`row.${key}`, { row: rowMetaData }), ...this.ptmo(this.getRowProp(row), key, rowMetaData) };
72
+ return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));
71
73
  },
72
74
  getRowProp(row) {
73
75
  return row.props && row.props.pt ? row.props.pt : undefined; //@todo
@@ -118,6 +120,13 @@ export default {
118
120
  }
119
121
 
120
122
  return hasFooter;
123
+ },
124
+ ptmTFootOptions() {
125
+ return {
126
+ context: {
127
+ scrollable: this.$parentInstance?.$parentInstance?.scrollable
128
+ }
129
+ };
121
130
  }
122
131
  },
123
132
  components: {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <thead :class="cx('thead')" :style="sx('thead')" role="rowgroup" v-bind="columnGroup ? { ...ptm('thead'), ...getColumnGroupPT('root') } : ptm('thead')" data-pc-section="thead">
2
+ <thead :class="cx('thead')" :style="sx('thead')" role="rowgroup" v-bind="columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)" data-pc-section="thead">
3
3
  <template v-if="!columnGroup">
4
4
  <tr role="row" v-bind="ptm('headerRow')">
5
5
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
@@ -131,6 +131,7 @@
131
131
  <script>
132
132
  import BaseComponent from 'primevue/basecomponent';
133
133
  import { ObjectUtils } from 'primevue/utils';
134
+ import { mergeProps } from 'vue';
134
135
  import ColumnFilter from './ColumnFilter.vue';
135
136
  import HeaderCell from './HeaderCell.vue';
136
137
  import HeaderCheckbox from './HeaderCheckbox.vue';
@@ -243,11 +244,12 @@ export default {
243
244
  state: this.$data
244
245
  },
245
246
  context: {
246
- type: 'header'
247
+ type: 'header',
248
+ scrollable: this.$parentInstance?.$parentInstance?.scrollable
247
249
  }
248
250
  };
249
251
 
250
- return { ...this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), ...this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData) };
252
+ return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));
251
253
  },
252
254
  getColumnGroupProps() {
253
255
  return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo
@@ -264,7 +266,7 @@ export default {
264
266
  }
265
267
  };
266
268
 
267
- return { ...this.ptm(`row.${key}`, { row: rowMetaData }), ...this.ptmo(this.getRowProp(row), key, rowMetaData) };
269
+ return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));
268
270
  },
269
271
  getRowProp(row) {
270
272
  return row.props && row.props.pt ? row.props.pt : undefined; //@todo
@@ -281,7 +283,7 @@ export default {
281
283
  }
282
284
  };
283
285
 
284
- return { ...this.ptm(`column.${key}`, { column: columnMetaData }), ...this.ptmo(this.getColumnProp(column), key, columnMetaData) };
286
+ return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));
285
287
  },
286
288
  getColumnProp(column) {
287
289
  return column.props && column.props.pt ? column.props.pt : undefined; //@todo
@@ -322,6 +324,15 @@ export default {
322
324
  }
323
325
  }
324
326
  },
327
+ computed: {
328
+ ptmTHeadOptions() {
329
+ return {
330
+ context: {
331
+ scrollable: this.$parentInstance?.$parentInstance?.scrollable
332
+ }
333
+ };
334
+ }
335
+ },
325
336
  components: {
326
337
  DTHeaderCell: HeaderCell,
327
338
  DTHeaderCheckbox: HeaderCheckbox,