primevue 2.7.0 → 2.8.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.
- package/accordiontab/accordiontab.common.js +22 -0
- package/accordiontab/accordiontab.umd.js +22 -0
- package/accordiontab/accordiontab.umd.min.js +1 -1
- package/api/Api.d.ts +296 -0
- package/api/Api.js +47 -0
- package/api/FilterMatchMode.js +26 -0
- package/api/FilterOperator.js +12 -0
- package/api/FilterService.js +260 -0
- package/api/PrimeIcons.js +246 -0
- package/api/ToastSeverity.js +14 -0
- package/api/api.common.js +4889 -0
- package/api/api.umd.js +4899 -0
- package/api/api.umd.min.js +1 -0
- package/api/demo.html +8 -0
- package/api/filtermatchmode.common.js +186 -0
- package/api/filtermatchmode.umd.js +196 -0
- package/api/filtermatchmode.umd.min.js +1 -0
- package/api/filteroperator.common.js +172 -0
- package/api/filteroperator.umd.js +182 -0
- package/api/filteroperator.umd.min.js +1 -0
- package/{utils/filterutils.common.js → api/filterservice.common.js} +207 -110
- package/{utils/filterutils.umd.js → api/filterservice.umd.js} +209 -112
- package/api/filterservice.umd.min.js +1 -0
- package/api/index.d.ts +1 -0
- package/api/index.js +2 -0
- package/api/primeicons.common.js +406 -0
- package/api/primeicons.umd.js +416 -0
- package/api/primeicons.umd.min.js +1 -0
- package/api/toastseverity.common.js +174 -0
- package/api/toastseverity.umd.js +184 -0
- package/api/toastseverity.umd.min.js +1 -0
- package/autocomplete/autocomplete.common.js +45 -21
- package/autocomplete/autocomplete.umd.js +45 -21
- package/autocomplete/autocomplete.umd.min.js +1 -1
- package/badgedirective/badgedirective.common.js +22 -0
- package/badgedirective/badgedirective.umd.js +22 -0
- package/badgedirective/badgedirective.umd.min.js +1 -1
- package/blockui/blockui.common.js +22 -0
- package/blockui/blockui.umd.js +22 -0
- package/blockui/blockui.umd.min.js +1 -1
- package/button/button.common.js +22 -0
- package/button/button.umd.js +22 -0
- package/button/button.umd.min.js +1 -1
- package/calendar/Calendar.vue +23 -6
- package/calendar/calendar.common.js +71 -37
- package/calendar/calendar.umd.js +71 -37
- package/calendar/calendar.umd.min.js +1 -1
- package/carousel/carousel.common.js +22 -0
- package/carousel/carousel.umd.js +22 -0
- package/carousel/carousel.umd.min.js +1 -1
- package/cascadeselect/cascadeselect.common.js +42 -17
- package/cascadeselect/cascadeselect.umd.js +42 -17
- package/cascadeselect/cascadeselect.umd.min.js +1 -1
- package/cascadeselect/cascadeselectsub.common.js +42 -17
- package/cascadeselect/cascadeselectsub.umd.js +42 -17
- package/cascadeselect/cascadeselectsub.umd.min.js +1 -1
- package/cascadeselect/demo.html +4 -3
- package/chart/Chart.vue +16 -5
- package/chart/chart.common.js +18 -6
- package/chart/chart.umd.js +18 -6
- package/chart/chart.umd.min.js +1 -1
- package/checkbox/checkbox.common.js +25 -17
- package/checkbox/checkbox.umd.js +25 -17
- package/checkbox/checkbox.umd.min.js +1 -1
- package/colorpicker/colorpicker.common.js +22 -0
- package/colorpicker/colorpicker.umd.js +22 -0
- package/colorpicker/colorpicker.umd.min.js +1 -1
- package/column/Column.vue +72 -12
- package/column/column.common.js +71 -11
- package/column/column.umd.js +71 -11
- package/column/column.umd.min.js +1 -1
- package/config/PrimeVue.d.ts +24 -2
- package/config/PrimeVue.js +34 -4
- package/config/primevue.common.js +3584 -133
- package/config/primevue.umd.js +3584 -133
- package/config/primevue.umd.min.js +1 -1
- package/confirmationeventbus/confirmationeventbus.common.js +0 -4
- package/confirmationeventbus/confirmationeventbus.umd.js +0 -4
- package/confirmationeventbus/confirmationeventbus.umd.min.js +1 -1
- package/confirmationservice/confirmationservice.common.js +0 -4
- package/confirmationservice/confirmationservice.umd.js +0 -4
- package/confirmationservice/confirmationservice.umd.min.js +1 -1
- package/confirmdialog/confirmdialog.common.js +24 -7
- package/confirmdialog/confirmdialog.umd.js +24 -7
- package/confirmdialog/confirmdialog.umd.min.js +1 -1
- package/confirmpopup/confirmpopup.common.js +22 -4
- package/confirmpopup/confirmpopup.umd.js +22 -4
- package/confirmpopup/confirmpopup.umd.min.js +1 -1
- package/contextmenu/contextmenu.common.js +22 -0
- package/contextmenu/contextmenu.umd.js +22 -0
- package/contextmenu/contextmenu.umd.min.js +1 -1
- package/contextmenu/contextmenusub.common.js +22 -0
- package/contextmenu/contextmenusub.umd.js +22 -0
- package/contextmenu/contextmenusub.umd.min.js +1 -1
- package/datatable/BodyCell.vue +116 -36
- package/datatable/ColumnFilter.vue +558 -0
- package/datatable/ColumnSlot.vue +21 -1
- package/datatable/DataTable.d.ts +34 -8
- package/datatable/DataTable.vue +569 -379
- package/datatable/FooterCell.vue +82 -0
- package/datatable/HeaderCell.vue +246 -0
- package/datatable/TableBody.vue +79 -19
- package/datatable/TableFooter.vue +34 -18
- package/datatable/TableHeader.vue +79 -134
- package/datatable/bodycell.common.js +570 -56
- package/datatable/bodycell.umd.js +570 -56
- package/datatable/bodycell.umd.min.js +1 -1
- package/datatable/columnfilter.common.js +7610 -0
- package/datatable/columnfilter.umd.js +7620 -0
- package/datatable/columnfilter.umd.min.js +1 -0
- package/datatable/columnslot.common.js +21 -1
- package/datatable/columnslot.umd.js +21 -1
- package/datatable/columnslot.umd.min.js +1 -1
- package/datatable/datatable.common.js +2777 -1703
- package/datatable/datatable.umd.js +2777 -1703
- package/datatable/datatable.umd.min.js +1 -1
- package/datatable/demo.html +3 -3
- package/datatable/{scrollableview.common.js → footercell.common.js} +1861 -411
- package/datatable/{scrollableview.umd.js → footercell.umd.js} +1863 -413
- package/datatable/footercell.umd.min.js +1 -0
- package/datatable/headercell.common.js +8058 -0
- package/datatable/headercell.umd.js +8068 -0
- package/datatable/headercell.umd.min.js +1 -0
- package/datatable/tablebody.common.js +1054 -478
- package/datatable/tablebody.umd.js +1054 -478
- package/datatable/tablebody.umd.min.js +1 -1
- package/datatable/tablefooter.common.js +3785 -105
- package/datatable/tablefooter.umd.js +3785 -105
- package/datatable/tablefooter.umd.min.js +1 -1
- package/datatable/tableheader.common.js +6629 -2139
- package/datatable/tableheader.umd.js +6629 -2139
- package/datatable/tableheader.umd.min.js +1 -1
- package/datatable/tableloadingbody.common.js +21 -1
- package/datatable/tableloadingbody.umd.js +21 -1
- package/datatable/tableloadingbody.umd.min.js +1 -1
- package/dataview/dataview.common.js +53 -30
- package/dataview/dataview.umd.js +53 -30
- package/dataview/dataview.umd.min.js +1 -1
- package/dialog/dialog.common.js +24 -6
- package/dialog/dialog.umd.js +24 -6
- package/dialog/dialog.umd.min.js +1 -1
- package/dropdown/Dropdown.vue +2 -0
- package/dropdown/dropdown.common.js +45 -20
- package/dropdown/dropdown.umd.js +45 -20
- package/dropdown/dropdown.umd.min.js +1 -1
- package/fieldset/fieldset.common.js +22 -0
- package/fieldset/fieldset.umd.js +22 -0
- package/fieldset/fieldset.umd.min.js +1 -1
- package/fileupload/fileupload.common.js +22 -0
- package/fileupload/fileupload.umd.js +22 -0
- package/fileupload/fileupload.umd.min.js +1 -1
- package/fullcalendar/fullcalendar.common.js +5 -9
- package/fullcalendar/fullcalendar.umd.js +5 -9
- package/fullcalendar/fullcalendar.umd.min.js +2 -2
- package/galleria/galleria.common.js +22 -4
- package/galleria/galleria.umd.js +22 -4
- package/galleria/galleria.umd.min.js +1 -1
- package/galleria/galleriacontent.common.js +22 -0
- package/galleria/galleriacontent.umd.js +22 -0
- package/galleria/galleriacontent.umd.min.js +1 -1
- package/galleria/galleriaitem.common.js +22 -0
- package/galleria/galleriaitem.umd.js +22 -0
- package/galleria/galleriaitem.umd.min.js +1 -1
- package/galleria/galleriathumbnails.common.js +22 -0
- package/galleria/galleriathumbnails.umd.js +22 -0
- package/galleria/galleriathumbnails.umd.min.js +1 -1
- package/imagepreview/imagepreview.common.js +22 -0
- package/imagepreview/imagepreview.umd.js +22 -0
- package/imagepreview/imagepreview.umd.min.js +1 -1
- package/inplace/inplace.common.js +22 -0
- package/inplace/inplace.umd.js +22 -0
- package/inplace/inplace.umd.min.js +1 -1
- package/inputmask/inputmask.common.js +24 -6
- package/inputmask/inputmask.umd.js +24 -6
- package/inputmask/inputmask.umd.min.js +1 -1
- package/inputnumber/inputnumber.common.js +26 -9
- package/inputnumber/inputnumber.umd.js +26 -9
- package/inputnumber/inputnumber.umd.min.js +1 -1
- package/inputtext/inputtext.common.js +2 -6
- package/inputtext/inputtext.umd.js +2 -6
- package/inputtext/inputtext.umd.min.js +1 -1
- package/listbox/listbox.common.js +42 -17
- package/listbox/listbox.umd.js +42 -17
- package/listbox/listbox.umd.min.js +1 -1
- package/megamenu/megamenu.common.js +22 -0
- package/megamenu/megamenu.umd.js +22 -0
- package/megamenu/megamenu.umd.min.js +1 -1
- package/menu/menu.common.js +22 -0
- package/menu/menu.umd.js +22 -0
- package/menu/menu.umd.min.js +1 -1
- package/menu/menuitem.common.js +22 -0
- package/menu/menuitem.umd.js +22 -0
- package/menu/menuitem.umd.min.js +1 -1
- package/menubar/menubar.common.js +22 -0
- package/menubar/menubar.umd.js +22 -0
- package/menubar/menubar.umd.min.js +1 -1
- package/menubar/menubarsub.common.js +22 -0
- package/menubar/menubarsub.umd.js +22 -0
- package/menubar/menubarsub.umd.min.js +1 -1
- package/message/message.common.js +22 -0
- package/message/message.umd.js +22 -0
- package/message/message.umd.min.js +1 -1
- package/multiselect/multiselect.common.js +42 -17
- package/multiselect/multiselect.umd.js +42 -17
- package/multiselect/multiselect.umd.min.js +1 -1
- package/orderlist/orderlist.common.js +42 -17
- package/orderlist/orderlist.umd.js +42 -17
- package/orderlist/orderlist.umd.min.js +1 -1
- package/organizationchart/organizationchart.common.js +24 -6
- package/organizationchart/organizationchart.umd.js +24 -6
- package/organizationchart/organizationchart.umd.min.js +1 -1
- package/organizationchart/organizationchartnode.common.js +22 -0
- package/organizationchart/organizationchartnode.umd.js +22 -0
- package/organizationchart/organizationchartnode.umd.min.js +1 -1
- package/overlayeventbus/OverlayEventBus.js +14 -0
- package/overlayeventbus/demo.html +8 -0
- package/overlayeventbus/index.d.ts +1 -0
- package/overlayeventbus/index.js +2 -0
- package/overlayeventbus/overlayeventbus.common.js +1773 -0
- package/overlayeventbus/overlayeventbus.umd.js +1783 -0
- package/overlayeventbus/overlayeventbus.umd.min.js +1 -0
- package/overlaypanel/overlaypanel.common.js +22 -0
- package/overlaypanel/overlaypanel.umd.js +22 -0
- package/overlaypanel/overlaypanel.umd.min.js +1 -1
- package/package.json +1 -1
- package/paginator/firstpagelink.common.js +22 -0
- package/paginator/firstpagelink.umd.js +22 -0
- package/paginator/firstpagelink.umd.min.js +1 -1
- package/paginator/jumptopagedropdown.common.js +49 -24
- package/paginator/jumptopagedropdown.umd.js +49 -24
- package/paginator/jumptopagedropdown.umd.min.js +1 -1
- package/paginator/jumptopageinput.common.js +26 -9
- package/paginator/jumptopageinput.umd.js +26 -9
- package/paginator/jumptopageinput.umd.min.js +1 -1
- package/paginator/lastpagelink.common.js +22 -0
- package/paginator/lastpagelink.umd.js +22 -0
- package/paginator/lastpagelink.umd.min.js +1 -1
- package/paginator/nextpagelink.common.js +22 -0
- package/paginator/nextpagelink.umd.js +22 -0
- package/paginator/nextpagelink.umd.min.js +1 -1
- package/paginator/pagelinks.common.js +22 -0
- package/paginator/pagelinks.umd.js +22 -0
- package/paginator/pagelinks.umd.min.js +1 -1
- package/paginator/paginator.common.js +53 -30
- package/paginator/paginator.umd.js +53 -30
- package/paginator/paginator.umd.min.js +1 -1
- package/paginator/prevpagelink.common.js +22 -0
- package/paginator/prevpagelink.umd.js +22 -0
- package/paginator/prevpagelink.umd.min.js +1 -1
- package/paginator/rowsperpagedropdown.common.js +49 -24
- package/paginator/rowsperpagedropdown.umd.js +49 -24
- package/paginator/rowsperpagedropdown.umd.min.js +1 -1
- package/panel/panel.common.js +22 -0
- package/panel/panel.umd.js +22 -0
- package/panel/panel.umd.min.js +1 -1
- package/password/password.common.js +24 -6
- package/password/password.umd.js +24 -6
- package/password/password.umd.min.js +1 -1
- package/picklist/PickList.vue +0 -3
- package/picklist/picklist.common.js +44 -22
- package/picklist/picklist.umd.js +44 -22
- package/picklist/picklist.umd.min.js +1 -1
- package/radiobutton/radiobutton.common.js +25 -17
- package/radiobutton/radiobutton.umd.js +25 -17
- package/radiobutton/radiobutton.umd.min.js +1 -1
- package/ripple/ripple.common.js +22 -0
- package/ripple/ripple.umd.js +22 -0
- package/ripple/ripple.umd.min.js +1 -1
- package/scrollpanel/scrollpanel.common.js +22 -0
- package/scrollpanel/scrollpanel.umd.js +22 -0
- package/scrollpanel/scrollpanel.umd.min.js +1 -1
- package/scrolltop/scrolltop.common.js +22 -0
- package/scrolltop/scrolltop.umd.js +22 -0
- package/scrolltop/scrolltop.umd.min.js +1 -1
- package/selectbutton/selectbutton.common.js +42 -17
- package/selectbutton/selectbutton.umd.js +42 -17
- package/selectbutton/selectbutton.umd.min.js +1 -1
- package/sidebar/sidebar.common.js +22 -0
- package/sidebar/sidebar.umd.js +22 -0
- package/sidebar/sidebar.umd.min.js +1 -1
- package/slider/Slider.vue +20 -12
- package/slider/slider.common.js +36 -9
- package/slider/slider.umd.js +36 -9
- package/slider/slider.umd.min.js +1 -1
- package/speeddial/speeddial.common.js +24 -6
- package/speeddial/speeddial.umd.js +24 -6
- package/speeddial/speeddial.umd.min.js +1 -1
- package/splitbutton/splitbutton.common.js +22 -0
- package/splitbutton/splitbutton.umd.js +22 -0
- package/splitbutton/splitbutton.umd.min.js +1 -1
- package/splitter/splitter.common.js +22 -0
- package/splitter/splitter.umd.js +22 -0
- package/splitter/splitter.umd.min.js +1 -1
- package/styleclass/styleclass.common.js +22 -0
- package/styleclass/styleclass.umd.js +22 -0
- package/styleclass/styleclass.umd.min.js +1 -1
- package/tabmenu/tabmenu.common.js +22 -0
- package/tabmenu/tabmenu.umd.js +22 -0
- package/tabmenu/tabmenu.umd.min.js +1 -1
- package/tabview/tabview.common.js +42 -17
- package/tabview/tabview.umd.js +42 -17
- package/tabview/tabview.umd.min.js +1 -1
- package/textarea/textarea.common.js +2 -6
- package/textarea/textarea.umd.js +2 -6
- package/textarea/textarea.umd.min.js +1 -1
- package/tieredmenu/demo.html +3 -4
- package/tieredmenu/tieredmenu.common.js +22 -0
- package/tieredmenu/tieredmenu.umd.js +22 -0
- package/tieredmenu/tieredmenu.umd.min.js +1 -1
- package/tieredmenu/tieredmenusub.common.js +22 -0
- package/tieredmenu/tieredmenusub.umd.js +22 -0
- package/tieredmenu/tieredmenusub.umd.min.js +1 -1
- package/timeline/timeline.common.js +25 -17
- package/timeline/timeline.umd.js +25 -17
- package/timeline/timeline.umd.min.js +1 -1
- package/toast/toast.common.js +22 -0
- package/toast/toast.umd.js +22 -0
- package/toast/toast.umd.min.js +1 -1
- package/toast/toastmessage.common.js +22 -0
- package/toast/toastmessage.umd.js +22 -0
- package/toast/toastmessage.umd.min.js +1 -1
- package/togglebutton/togglebutton.common.js +22 -0
- package/togglebutton/togglebutton.umd.js +22 -0
- package/togglebutton/togglebutton.umd.min.js +1 -1
- package/tooltip/Tooltip.js +1 -1
- package/tooltip/tooltip.common.js +29 -17
- package/tooltip/tooltip.umd.js +29 -17
- package/tooltip/tooltip.umd.min.js +1 -1
- package/tree/tree.common.js +46 -23
- package/tree/tree.umd.js +46 -23
- package/tree/tree.umd.min.js +1 -1
- package/tree/treenode.common.js +24 -6
- package/tree/treenode.umd.js +24 -6
- package/tree/treenode.umd.min.js +1 -1
- package/treetable/BodyCell.vue +162 -0
- package/treetable/FooterCell.vue +81 -0
- package/treetable/HeaderCell.vue +183 -0
- package/treetable/TreeTable.vue +85 -108
- package/treetable/bodycell.common.js +5596 -0
- package/treetable/bodycell.umd.js +5606 -0
- package/treetable/bodycell.umd.min.js +1 -0
- package/treetable/demo.html +3 -3
- package/treetable/footercell.common.js +5300 -0
- package/treetable/footercell.umd.js +5310 -0
- package/treetable/footercell.umd.min.js +1 -0
- package/treetable/headercell.common.js +5529 -0
- package/treetable/headercell.umd.js +5539 -0
- package/treetable/headercell.umd.min.js +1 -0
- package/treetable/treetable.common.js +917 -481
- package/treetable/treetable.umd.js +917 -481
- package/treetable/treetable.umd.min.js +1 -1
- package/treetable/treetablerow.common.js +44 -20
- package/treetable/treetablerow.umd.js +44 -20
- package/treetable/treetablerow.umd.min.js +1 -1
- package/treetable/treetablerowloader.common.js +46 -23
- package/treetable/treetablerowloader.umd.js +46 -23
- package/treetable/treetablerowloader.umd.min.js +1 -1
- package/utils/ConnectedOverlayScrollHandler.js +1 -1
- package/utils/DomHandler.js +18 -1
- package/utils/ObjectUtils.js +15 -2
- package/utils/Utils.d.ts +73 -0
- package/utils/Utils.js +47 -0
- package/utils/connectedoverlayscrollhandler.common.js +22 -0
- package/utils/connectedoverlayscrollhandler.umd.js +22 -0
- package/utils/connectedoverlayscrollhandler.umd.min.js +1 -1
- package/utils/demo.html +3 -3
- package/utils/domhandler.common.js +22 -0
- package/utils/domhandler.umd.js +22 -0
- package/utils/domhandler.umd.min.js +1 -1
- package/utils/eventbus.common.js +0 -4
- package/utils/eventbus.umd.js +0 -4
- package/utils/eventbus.umd.min.js +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +2 -0
- package/utils/objectutils.common.js +25 -17
- package/utils/objectutils.umd.js +25 -17
- package/utils/objectutils.umd.min.js +1 -1
- package/utils/utils.common.js +5481 -0
- package/utils/utils.umd.js +5491 -0
- package/utils/utils.umd.min.js +1 -0
- package/vetur-attributes.json +4 -0
- package/vetur-tags.json +1 -0
- package/web-types.json +24 -1
- package/datatable/ScrollableView.vue +0 -223
- package/datatable/scrollableview.umd.min.js +0 -1
- package/utils/FilterUtils.js +0 -176
- package/utils/filterutils.umd.min.js +0 -1
package/datatable/DataTable.vue
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="containerClass">
|
|
2
|
+
<div :class="containerClass" data-scrollselectors=".p-datatable-wrapper">
|
|
3
3
|
<slot></slot>
|
|
4
4
|
<div class="p-datatable-loading-overlay p-component-overlay" v-if="loading">
|
|
5
5
|
<i :class="loadingIconClass"></i>
|
|
@@ -16,101 +16,37 @@
|
|
|
16
16
|
<slot name="paginatorend"></slot>
|
|
17
17
|
</template>
|
|
18
18
|
</DTPaginator>
|
|
19
|
-
<div class="p-datatable-wrapper"
|
|
20
|
-
<table ref="table" role="
|
|
19
|
+
<div class="p-datatable-wrapper" :style="{maxHeight: scrollHeight}">
|
|
20
|
+
<table ref="table" role="table" :class="[tableClass, 'p-datatable-table']" :style="tableStyle">
|
|
21
21
|
<DTTableHeader :columnGroup="headerColumnGroup" :columns="columns" :rowGroupMode="rowGroupMode"
|
|
22
|
-
:groupRowsBy="groupRowsBy" :resizableColumns="resizableColumns" :allRowsSelected="allRowsSelected" :empty="empty"
|
|
23
|
-
:sortMode="sortMode" :sortField="d_sortField" :sortOrder="d_sortOrder" :multiSortMeta="d_multiSortMeta"
|
|
24
|
-
@column-click="onColumnHeaderClick($event)" @column-mousedown="onColumnHeaderMouseDown($event)"
|
|
22
|
+
:groupRowsBy="groupRowsBy" :groupRowSortField="groupRowSortField" :resizableColumns="resizableColumns" :allRowsSelected="allRowsSelected" :empty="empty"
|
|
23
|
+
:sortMode="sortMode" :sortField="d_sortField" :sortOrder="d_sortOrder" :multiSortMeta="d_multiSortMeta" :filters="d_filters" :filtersStore="filters" :filterDisplay="filterDisplay"
|
|
24
|
+
@column-click="onColumnHeaderClick($event)" @column-mousedown="onColumnHeaderMouseDown($event)" @filter-change="onFilterChange" @filter-apply="onFilterApply"
|
|
25
25
|
@column-dragstart="onColumnHeaderDragStart($event)" @column-dragover="onColumnHeaderDragOver($event)" @column-dragleave="onColumnHeaderDragLeave($event)" @column-drop="onColumnHeaderDrop($event)"
|
|
26
26
|
@column-resizestart="onColumnResizeStart($event)" @checkbox-change="toggleRowsWithCheckbox($event)" />
|
|
27
|
+
<DTTableBody v-if="frozenValue" :value="frozenValue" :frozenRow="true" class="p-datatable-frozen-tbody" :columns="columns" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
28
|
+
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy" :scrollable="scrollable"
|
|
29
|
+
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
30
|
+
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading" :responsiveLayout="responsiveLayout"
|
|
31
|
+
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-dblclick="onRowDblClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
32
|
+
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
33
|
+
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
34
|
+
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
35
|
+
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"
|
|
36
|
+
:editingMeta="d_editingMeta" @editing-meta-change="onEditingMetaChange" />
|
|
27
37
|
<DTTableBody :value="dataToRender" :columns="columns" :empty="empty" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
28
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy"
|
|
38
|
+
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy" :scrollable="scrollable"
|
|
29
39
|
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
30
|
-
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading"
|
|
40
|
+
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading" :responsiveLayout="responsiveLayout"
|
|
31
41
|
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-dblclick="onRowDblClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
32
42
|
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
33
43
|
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
34
44
|
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
35
|
-
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"
|
|
45
|
+
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"
|
|
46
|
+
:editingMeta="d_editingMeta" @editing-meta-change="onEditingMetaChange" />
|
|
36
47
|
<DTTableFooter :columnGroup="footerColumnGroup" :columns="columns" />
|
|
37
48
|
</table>
|
|
38
49
|
</div>
|
|
39
|
-
<div class="p-datatable-scrollable-wrapper" v-else>
|
|
40
|
-
<DTScrollableView v-if="hasFrozenColumns" :scrollHeight="scrollHeight" :columns="frozenColumns" :frozenWidth="frozenWidth" :frozen="true"
|
|
41
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy">
|
|
42
|
-
<template #header>
|
|
43
|
-
<DTTableHeader :columnGroup="frozenHeaderColumnGroup" :columns="frozenColumns" :rowGroupMode="rowGroupMode"
|
|
44
|
-
:groupRowsBy="groupRowsBy" :resizableColumns="resizableColumns" :allRowsSelected="allRowsSelected" :empty="empty"
|
|
45
|
-
:sortMode="sortMode" :sortField="d_sortField" :sortOrder="d_sortOrder" :multiSortMeta="d_multiSortMeta"
|
|
46
|
-
@column-click="onColumnHeaderClick($event)" @column-mousedown="onColumnHeaderMouseDown($event)"
|
|
47
|
-
@column-dragstart="onColumnHeaderDragStart($event)" @column-dragover="onColumnHeaderDragOver($event)" @column-dragleave="onColumnHeaderDragLeave($event)" @column-drop="onColumnHeaderDrop($event)"
|
|
48
|
-
@column-resizestart="onColumnResizeStart($event)" @checkbox-change="toggleRowsWithCheckbox($event)" />
|
|
49
|
-
</template>
|
|
50
|
-
<template #body>
|
|
51
|
-
<DTTableBody :value="dataToRender" :columns="frozenColumns" :empty="empty" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
52
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy"
|
|
53
|
-
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
54
|
-
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading"
|
|
55
|
-
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
56
|
-
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
57
|
-
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
58
|
-
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
59
|
-
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"/>
|
|
60
|
-
</template>
|
|
61
|
-
<template #frozenbody>
|
|
62
|
-
<DTTableBody v-if="frozenValue" :value="frozenValue" :columns="frozenColumns" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
63
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy"
|
|
64
|
-
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
65
|
-
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading"
|
|
66
|
-
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
67
|
-
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
68
|
-
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
69
|
-
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
70
|
-
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"/>
|
|
71
|
-
</template>
|
|
72
|
-
<template #footer>
|
|
73
|
-
<DTTableFooter :columnGroup="frozenFooterColumnGroup" :columns="frozenColumns" />
|
|
74
|
-
</template>
|
|
75
|
-
</DTScrollableView>
|
|
76
|
-
<DTScrollableView :scrollHeight="scrollHeight" :columns="scrollableColumns" :frozenWidth="frozenWidth" :rows="rows"
|
|
77
|
-
:virtualScroll="virtualScroll" :virtualRowHeight="virtualRowHeight" :totalRecords="totalRecordsLength" @virtual-scroll="onVirtualScroll"
|
|
78
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy">
|
|
79
|
-
<template #header>
|
|
80
|
-
<DTTableHeader :columnGroup="headerColumnGroup" :columns="scrollableColumns" :rowGroupMode="rowGroupMode"
|
|
81
|
-
:groupRowsBy="groupRowsBy" :resizableColumns="resizableColumns" :allRowsSelected="allRowsSelected" :empty="empty"
|
|
82
|
-
:sortMode="sortMode" :sortField="d_sortField" :sortOrder="d_sortOrder" :multiSortMeta="d_multiSortMeta"
|
|
83
|
-
@column-click="onColumnHeaderClick($event)" @column-mousedown="onColumnHeaderMouseDown($event)"
|
|
84
|
-
@column-dragstart="onColumnHeaderDragStart($event)" @column-dragover="onColumnHeaderDragOver($event)" @column-dragleave="onColumnHeaderDragLeave($event)" @column-drop="onColumnHeaderDrop($event)"
|
|
85
|
-
@column-resizestart="onColumnResizeStart($event)" @checkbox-change="toggleRowsWithCheckbox($event)" />
|
|
86
|
-
</template>
|
|
87
|
-
<template #body>
|
|
88
|
-
<DTTableBody :value="dataToRender" :columns="scrollableColumns" :empty="empty" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
89
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy"
|
|
90
|
-
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
91
|
-
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading"
|
|
92
|
-
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
93
|
-
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
94
|
-
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
95
|
-
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
96
|
-
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"/>
|
|
97
|
-
</template>
|
|
98
|
-
<template #frozenbody>
|
|
99
|
-
<DTTableBody v-if="frozenValue" :value="frozenValue" :columns="scrollableColumns" :dataKey="dataKey" :selection="selection" :selectionKeys="d_selectionKeys" :selectionMode="selectionMode" :contextMenu="contextMenu" :contextMenuSelection="contextMenuSelection"
|
|
100
|
-
:rowGroupMode="rowGroupMode" :groupRowsBy="groupRowsBy" :expandableRowGroups="expandableRowGroups" :rowClass="rowClass" :rowStyle="rowStyle" :editMode="editMode" :compareSelectionBy="compareSelectionBy"
|
|
101
|
-
:expandedRowIcon="expandedRowIcon" :collapsedRowIcon="collapsedRowIcon" :expandedRows="expandedRows" :expandedRowKeys="d_expandedRowKeys" :expandedRowGroups="expandedRowGroups"
|
|
102
|
-
:editingRows="editingRows" :editingRowKeys="d_editingRowKeys" :templates="$scopedSlots" :loading="loading"
|
|
103
|
-
@rowgroup-toggle="toggleRowGroup" @row-click="onRowClick($event)" @row-rightclick="onRowRightClick($event)" @row-touchend="onRowTouchEnd" @row-keydown="onRowKeyDown"
|
|
104
|
-
@row-mousedown="onRowMouseDown" @row-dragstart="onRowDragStart($event)" @row-dragover="onRowDragOver($event)" @row-dragleave="onRowDragLeave($event)" @row-dragend="onRowDragEnd($event)" @row-drop="onRowDrop($event)"
|
|
105
|
-
@row-toggle="toggleRow($event)" @radio-change="toggleRowWithRadio($event)" @checkbox-change="toggleRowWithCheckbox($event)"
|
|
106
|
-
@cell-edit-init="onCellEditInit($event)" @cell-edit-complete="onCellEditComplete($event)" @cell-edit-cancel="onCellEditCancel($event)"
|
|
107
|
-
@row-edit-init="onRowEditInit($event)" @row-edit-save="onRowEditSave($event)" @row-edit-cancel="onRowEditCancel($event)"/>
|
|
108
|
-
</template>
|
|
109
|
-
<template #footer>
|
|
110
|
-
<DTTableFooter :columnGroup="footerColumnGroup" :columns="scrollableColumns" />
|
|
111
|
-
</template>
|
|
112
|
-
</DTScrollableView>
|
|
113
|
-
</div>
|
|
114
50
|
<DTPaginator v-if="paginatorBottom" :rows="d_rows" :first="lazy ? 0 : d_first" :totalRecords="totalRecordsLength" :pageLinkSize="pageLinkSize" :template="paginatorTemplate" :rowsPerPageOptions="rowsPerPageOptions"
|
|
115
51
|
:currentPageReportTemplate="currentPageReportTemplate" class="p-paginator-bottom" @page="onPage($event)" :alwaysShow="alwaysShowPaginator">
|
|
116
52
|
<template #start v-if="$scopedSlots.paginatorstart">
|
|
@@ -131,10 +67,12 @@
|
|
|
131
67
|
|
|
132
68
|
<script>
|
|
133
69
|
import ObjectUtils from '../utils/ObjectUtils';
|
|
134
|
-
import FilterUtils from '../utils/FilterUtils';
|
|
135
70
|
import DomHandler from '../utils/DomHandler';
|
|
136
|
-
import
|
|
137
|
-
import
|
|
71
|
+
import UniqueComponentId from '../utils/UniqueComponentId';
|
|
72
|
+
import FilterMatchMode from '../api/FilterMatchMode';
|
|
73
|
+
import FilterOperator from '../api/FilterOperator';
|
|
74
|
+
import FilterService from '../api/FilterService';
|
|
75
|
+
import Paginator from '../paginator/Paginator.vue';
|
|
138
76
|
import TableHeader from './TableHeader.vue';
|
|
139
77
|
import TableBody from './TableBody.vue';
|
|
140
78
|
import TableFooter from './TableFooter.vue';
|
|
@@ -229,6 +167,14 @@ export default {
|
|
|
229
167
|
type: Object,
|
|
230
168
|
default: null
|
|
231
169
|
},
|
|
170
|
+
filterDisplay: {
|
|
171
|
+
type: String,
|
|
172
|
+
default: null
|
|
173
|
+
},
|
|
174
|
+
globalFilterFields: {
|
|
175
|
+
type: Array,
|
|
176
|
+
default: null
|
|
177
|
+
},
|
|
232
178
|
filterLocale: {
|
|
233
179
|
type: String,
|
|
234
180
|
default: undefined
|
|
@@ -269,6 +215,10 @@ export default {
|
|
|
269
215
|
type: String,
|
|
270
216
|
default: 'download'
|
|
271
217
|
},
|
|
218
|
+
exportFunction: {
|
|
219
|
+
type: Function,
|
|
220
|
+
default: null
|
|
221
|
+
},
|
|
272
222
|
autoLayout: {
|
|
273
223
|
type: Boolean,
|
|
274
224
|
default: false
|
|
@@ -341,6 +291,10 @@ export default {
|
|
|
341
291
|
type: Boolean,
|
|
342
292
|
default: false
|
|
343
293
|
},
|
|
294
|
+
scrollDirection: {
|
|
295
|
+
type: String,
|
|
296
|
+
default: "vertical"
|
|
297
|
+
},
|
|
344
298
|
scrollHeight: {
|
|
345
299
|
type: String,
|
|
346
300
|
default: null
|
|
@@ -349,21 +303,29 @@ export default {
|
|
|
349
303
|
type: Array,
|
|
350
304
|
default: null
|
|
351
305
|
},
|
|
352
|
-
|
|
306
|
+
responsiveLayout: {
|
|
353
307
|
type: String,
|
|
354
|
-
default:
|
|
308
|
+
default: 'stack'
|
|
309
|
+
},
|
|
310
|
+
breakpoint: {
|
|
311
|
+
type: String,
|
|
312
|
+
default: '960px'
|
|
355
313
|
},
|
|
356
|
-
|
|
314
|
+
showGridlines: {
|
|
357
315
|
type: Boolean,
|
|
358
316
|
default: false
|
|
359
317
|
},
|
|
360
|
-
|
|
361
|
-
type:
|
|
362
|
-
default:
|
|
318
|
+
stripedRows: {
|
|
319
|
+
type: Boolean,
|
|
320
|
+
default: false
|
|
363
321
|
},
|
|
364
|
-
|
|
365
|
-
type:
|
|
366
|
-
default:
|
|
322
|
+
tableStyle: {
|
|
323
|
+
type: null,
|
|
324
|
+
default: null
|
|
325
|
+
},
|
|
326
|
+
tableClass: {
|
|
327
|
+
type: String,
|
|
328
|
+
default: null
|
|
367
329
|
}
|
|
368
330
|
},
|
|
369
331
|
data() {
|
|
@@ -374,10 +336,13 @@ export default {
|
|
|
374
336
|
d_sortField: this.sortField,
|
|
375
337
|
d_sortOrder: this.sortOrder,
|
|
376
338
|
d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],
|
|
339
|
+
d_groupRowsSortMeta: null,
|
|
377
340
|
d_selectionKeys: null,
|
|
378
341
|
d_expandedRowKeys: null,
|
|
379
342
|
d_columnOrder: null,
|
|
380
|
-
d_editingRowKeys: null
|
|
343
|
+
d_editingRowKeys: null,
|
|
344
|
+
d_editingMeta: {},
|
|
345
|
+
d_filters: this.cloneFilters(this.filters)
|
|
381
346
|
};
|
|
382
347
|
},
|
|
383
348
|
rowTouched: false,
|
|
@@ -397,7 +362,6 @@ export default {
|
|
|
397
362
|
columnWidthsState: null,
|
|
398
363
|
tableWidthState: null,
|
|
399
364
|
columnWidthsRestored: false,
|
|
400
|
-
virtualScrollTimer: null,
|
|
401
365
|
watch: {
|
|
402
366
|
first(newValue) {
|
|
403
367
|
this.d_first = newValue;
|
|
@@ -414,9 +378,12 @@ export default {
|
|
|
414
378
|
multiSortMeta(newValue) {
|
|
415
379
|
this.d_multiSortMeta = newValue;
|
|
416
380
|
},
|
|
417
|
-
selection
|
|
418
|
-
|
|
419
|
-
|
|
381
|
+
selection: {
|
|
382
|
+
immediate: true,
|
|
383
|
+
handler(newValue) {
|
|
384
|
+
if (this.dataKey) {
|
|
385
|
+
this.updateSelectionKeys(newValue);
|
|
386
|
+
}
|
|
420
387
|
}
|
|
421
388
|
},
|
|
422
389
|
expandedRows(newValue) {
|
|
@@ -428,6 +395,12 @@ export default {
|
|
|
428
395
|
if (this.dataKey) {
|
|
429
396
|
this.updateEditingRowKeys(newValue);
|
|
430
397
|
}
|
|
398
|
+
},
|
|
399
|
+
filters: {
|
|
400
|
+
deep: true,
|
|
401
|
+
handler: function(newValue) {
|
|
402
|
+
this.d_filters = this.cloneFilters(newValue);
|
|
403
|
+
}
|
|
431
404
|
}
|
|
432
405
|
},
|
|
433
406
|
beforeMount() {
|
|
@@ -448,25 +421,41 @@ export default {
|
|
|
448
421
|
this.d_columnOrder = columnOrder;
|
|
449
422
|
}
|
|
450
423
|
|
|
451
|
-
|
|
424
|
+
this.$el.setAttribute(this.attributeSelector, '');
|
|
425
|
+
|
|
426
|
+
if (this.responsiveLayout === 'stack' && !this.scrollable) {
|
|
427
|
+
this.createResponsiveStyle();
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
if (this.isStateful() && this.resizableColumns) {
|
|
452
431
|
this.restoreColumnWidths();
|
|
453
432
|
}
|
|
433
|
+
|
|
434
|
+
if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {
|
|
435
|
+
this.updateEditingRowKeys(this.editingRows);
|
|
436
|
+
}
|
|
454
437
|
},
|
|
455
|
-
|
|
438
|
+
beforeUnmount() {
|
|
456
439
|
this.unbindColumnResizeEvents();
|
|
440
|
+
this.destroyStyleElement();
|
|
441
|
+
this.destroyResponsiveStyle();
|
|
457
442
|
},
|
|
458
443
|
updated() {
|
|
459
444
|
if (this.isStateful()) {
|
|
460
445
|
this.saveState();
|
|
446
|
+
}
|
|
461
447
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
this.columnWidthsRestored = true;
|
|
465
|
-
}
|
|
448
|
+
if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {
|
|
449
|
+
this.updateEditingRowKeys(this.editingRows);
|
|
466
450
|
}
|
|
467
451
|
},
|
|
468
452
|
methods: {
|
|
453
|
+
columnProp(col, prop) {
|
|
454
|
+
return ObjectUtils.getVNodeProp(col, prop);
|
|
455
|
+
},
|
|
469
456
|
onPage(event) {
|
|
457
|
+
this.clearEditingMetaData();
|
|
458
|
+
|
|
470
459
|
this.d_first = event.first;
|
|
471
460
|
this.d_rows = event.rows;
|
|
472
461
|
|
|
@@ -477,14 +466,15 @@ export default {
|
|
|
477
466
|
this.$emit('update:first', this.d_first);
|
|
478
467
|
this.$emit('update:rows', this.d_rows);
|
|
479
468
|
this.$emit('page', pageEvent);
|
|
469
|
+
this.$emit('value-change', this.processedData);
|
|
480
470
|
},
|
|
481
471
|
onColumnHeaderClick(e) {
|
|
482
472
|
const event = e.originalEvent;
|
|
483
473
|
const column = e.column;
|
|
484
474
|
|
|
485
|
-
if (column
|
|
475
|
+
if (this.columnProp(column, 'sortable')) {
|
|
486
476
|
const targetNode = event.target;
|
|
487
|
-
const columnField = column
|
|
477
|
+
const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');
|
|
488
478
|
|
|
489
479
|
if (DomHandler.hasClass(targetNode, 'p-sortable-column') || DomHandler.hasClass(targetNode, 'p-column-title')
|
|
490
480
|
|| DomHandler.hasClass(targetNode, 'p-sortable-column-icon') || DomHandler.hasClass(targetNode.parentElement, 'p-sortable-column-icon')) {
|
|
@@ -520,10 +510,22 @@ export default {
|
|
|
520
510
|
}
|
|
521
511
|
|
|
522
512
|
this.$emit('sort', this.createLazyLoadEvent(event));
|
|
513
|
+
this.$emit('value-change', this.processedData);
|
|
523
514
|
}
|
|
524
515
|
}
|
|
525
516
|
},
|
|
526
517
|
sortSingle(value) {
|
|
518
|
+
this.clearEditingMetaData();
|
|
519
|
+
|
|
520
|
+
if (this.groupRowsBy && this.groupRowsBy === this.sortField) {
|
|
521
|
+
this.d_multiSortMeta = [
|
|
522
|
+
{field: this.sortField, order: this.sortOrder || this.defaultSortOrder},
|
|
523
|
+
{field: this.d_sortField, order: this.d_sortOrder}
|
|
524
|
+
];
|
|
525
|
+
|
|
526
|
+
return this.sortMultiple(value);
|
|
527
|
+
}
|
|
528
|
+
|
|
527
529
|
let data = [...value];
|
|
528
530
|
|
|
529
531
|
data.sort((data1, data2) => {
|
|
@@ -549,6 +551,17 @@ export default {
|
|
|
549
551
|
return data;
|
|
550
552
|
},
|
|
551
553
|
sortMultiple(value) {
|
|
554
|
+
this.clearEditingMetaData();
|
|
555
|
+
|
|
556
|
+
if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {
|
|
557
|
+
const firstSortMeta = this.d_multiSortMeta[0];
|
|
558
|
+
!this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);
|
|
559
|
+
|
|
560
|
+
if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {
|
|
561
|
+
this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
552
565
|
let data = [...value];
|
|
553
566
|
|
|
554
567
|
data.sort((data1, data2) => {
|
|
@@ -593,55 +606,92 @@ export default {
|
|
|
593
606
|
this.d_multiSortMeta = [...this.d_multiSortMeta];
|
|
594
607
|
},
|
|
595
608
|
filter(data) {
|
|
609
|
+
if (!data) {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
this.clearEditingMetaData();
|
|
614
|
+
|
|
615
|
+
let globalFilterFieldsArray;
|
|
616
|
+
if (this.filters['global']) {
|
|
617
|
+
globalFilterFieldsArray = this.globalFilterFields|| this.columns.map(col => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));
|
|
618
|
+
}
|
|
619
|
+
|
|
596
620
|
let filteredValue = [];
|
|
597
621
|
|
|
598
|
-
for(let i = 0; i < data.length; i++) {
|
|
622
|
+
for (let i = 0; i < data.length; i++) {
|
|
599
623
|
let localMatch = true;
|
|
600
624
|
let globalMatch = false;
|
|
625
|
+
let localFiltered = false;
|
|
626
|
+
|
|
627
|
+
for (let prop in this.filters) {
|
|
628
|
+
if (Object.prototype.hasOwnProperty.call(this.filters, prop) && prop !== 'global') {
|
|
629
|
+
localFiltered = true;
|
|
630
|
+
let filterField = prop;
|
|
631
|
+
let filterMeta = this.filters[filterField];
|
|
601
632
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
localMatch =
|
|
633
|
+
if (filterMeta.operator) {
|
|
634
|
+
for (let filterConstraint of filterMeta.constraints) {
|
|
635
|
+
localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);
|
|
636
|
+
|
|
637
|
+
if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
else {
|
|
643
|
+
localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);
|
|
613
644
|
}
|
|
614
645
|
|
|
615
646
|
if (!localMatch) {
|
|
616
647
|
break;
|
|
617
648
|
}
|
|
618
649
|
}
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {
|
|
653
|
+
for(let j = 0; j < globalFilterFieldsArray.length; j++) {
|
|
654
|
+
let globalFilterField = globalFilterFieldsArray[j];
|
|
655
|
+
globalMatch = FilterService.filters[this.filters['global'].matchMode || FilterMatchMode.CONTAINS](ObjectUtils.resolveFieldData(data[i], globalFilterField), this.filters['global'].value, this.filterLocale);
|
|
619
656
|
|
|
620
|
-
|
|
621
|
-
|
|
657
|
+
if (globalMatch) {
|
|
658
|
+
break;
|
|
659
|
+
}
|
|
622
660
|
}
|
|
623
661
|
}
|
|
624
662
|
|
|
625
|
-
let matches
|
|
626
|
-
if(this.
|
|
627
|
-
matches = localMatch && globalMatch;
|
|
663
|
+
let matches;
|
|
664
|
+
if (this.filters['global']) {
|
|
665
|
+
matches = localFiltered ? (localFiltered && localMatch && globalMatch) : globalMatch;
|
|
666
|
+
}
|
|
667
|
+
else {
|
|
668
|
+
matches = localFiltered && localMatch;
|
|
628
669
|
}
|
|
629
670
|
|
|
630
|
-
if(matches) {
|
|
671
|
+
if (matches) {
|
|
631
672
|
filteredValue.push(data[i]);
|
|
632
673
|
}
|
|
633
674
|
}
|
|
634
675
|
|
|
635
|
-
if (filteredValue.length ===
|
|
676
|
+
if (filteredValue.length === this.value.length) {
|
|
636
677
|
filteredValue = data;
|
|
637
678
|
}
|
|
638
679
|
|
|
639
680
|
let filterEvent = this.createLazyLoadEvent();
|
|
640
681
|
filterEvent.filteredValue = filteredValue;
|
|
641
682
|
this.$emit('filter', filterEvent);
|
|
683
|
+
this.$emit('value-change', filteredValue);
|
|
642
684
|
|
|
643
685
|
return filteredValue;
|
|
644
686
|
},
|
|
687
|
+
executeLocalFilter(field, rowData, filterMeta) {
|
|
688
|
+
let filterValue = filterMeta.value;
|
|
689
|
+
let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;
|
|
690
|
+
let dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);
|
|
691
|
+
let filterConstraint = FilterService.filters[filterMatchMode];
|
|
692
|
+
|
|
693
|
+
return filterConstraint(dataFieldValue, filterValue, this.filterLocale);
|
|
694
|
+
},
|
|
645
695
|
onRowClick(e) {
|
|
646
696
|
const event = e.originalEvent;
|
|
647
697
|
if (DomHandler.isClickable(event.target)) {
|
|
@@ -652,7 +702,7 @@ export default {
|
|
|
652
702
|
|
|
653
703
|
if (this.selectionMode) {
|
|
654
704
|
const rowData = e.data;
|
|
655
|
-
const rowIndex =
|
|
705
|
+
const rowIndex = this.d_first + e.index;
|
|
656
706
|
|
|
657
707
|
if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {
|
|
658
708
|
DomHandler.clearSelection();
|
|
@@ -728,6 +778,7 @@ export default {
|
|
|
728
778
|
if (DomHandler.isClickable(event.target)) {
|
|
729
779
|
return;
|
|
730
780
|
}
|
|
781
|
+
|
|
731
782
|
this.$emit('row-dblclick', e);
|
|
732
783
|
},
|
|
733
784
|
onRowRightClick(event) {
|
|
@@ -835,7 +886,7 @@ export default {
|
|
|
835
886
|
toggleRowsWithCheckbox(event) {
|
|
836
887
|
const processedData = this.processedData;
|
|
837
888
|
const checked = this.allRowsSelected;
|
|
838
|
-
const _selection = checked ? [] : (
|
|
889
|
+
const _selection = checked ? [] : (this.frozenValue ? [...this.frozenValue, ...processedData]: processedData);
|
|
839
890
|
this.$emit('update:selection', _selection);
|
|
840
891
|
|
|
841
892
|
if (checked)
|
|
@@ -938,13 +989,11 @@ export default {
|
|
|
938
989
|
}
|
|
939
990
|
|
|
940
991
|
const value = this.processedData;
|
|
941
|
-
let _selection = [
|
|
992
|
+
let _selection = [];
|
|
942
993
|
for(let i = rangeStart; i <= rangeEnd; i++) {
|
|
943
994
|
let rangeRowData = value[i];
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
this.$emit('row-select', {originalEvent: event, data: rangeRowData, type: 'row'});
|
|
947
|
-
}
|
|
995
|
+
_selection.push(rangeRowData);
|
|
996
|
+
this.$emit('row-select', {originalEvent: event, data: rangeRowData, type: 'row'});
|
|
948
997
|
}
|
|
949
998
|
|
|
950
999
|
this.$emit('update:selection', _selection);
|
|
@@ -953,19 +1002,23 @@ export default {
|
|
|
953
1002
|
let data = this.processedData;
|
|
954
1003
|
let csv = '\ufeff';
|
|
955
1004
|
|
|
956
|
-
if (options && options.selectionOnly)
|
|
1005
|
+
if (options && options.selectionOnly)
|
|
957
1006
|
data = this.selection || [];
|
|
958
|
-
|
|
1007
|
+
else if (this.frozenValue)
|
|
1008
|
+
data = data ? [...this.frozenValue, ...data] : this.frozenValue;
|
|
959
1009
|
|
|
960
1010
|
//headers
|
|
1011
|
+
let headerInitiated = false;
|
|
961
1012
|
for (let i = 0; i < this.columns.length; i++) {
|
|
962
1013
|
let column = this.columns[i];
|
|
963
|
-
if (column.exportable !== false && column.field) {
|
|
964
|
-
csv += '"' + (column.header || column.field) + '"';
|
|
965
1014
|
|
|
966
|
-
|
|
1015
|
+
if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {
|
|
1016
|
+
if (headerInitiated)
|
|
967
1017
|
csv += this.csvSeparator;
|
|
968
|
-
|
|
1018
|
+
else
|
|
1019
|
+
headerInitiated = true;
|
|
1020
|
+
|
|
1021
|
+
csv += '"' + (this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '"';
|
|
969
1022
|
}
|
|
970
1023
|
}
|
|
971
1024
|
|
|
@@ -973,16 +1026,22 @@ export default {
|
|
|
973
1026
|
if (data) {
|
|
974
1027
|
data.forEach(record => {
|
|
975
1028
|
csv += '\n';
|
|
1029
|
+
let rowInitiated = false;
|
|
976
1030
|
for (let i = 0; i < this.columns.length; i++) {
|
|
977
1031
|
let column = this.columns[i];
|
|
978
|
-
if (column
|
|
979
|
-
|
|
1032
|
+
if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {
|
|
1033
|
+
if (rowInitiated)
|
|
1034
|
+
csv += this.csvSeparator;
|
|
1035
|
+
else
|
|
1036
|
+
rowInitiated = true;
|
|
1037
|
+
|
|
1038
|
+
let cellData = ObjectUtils.resolveFieldData(record, this.columnProp(column, 'field'));
|
|
980
1039
|
|
|
981
1040
|
if (cellData != null) {
|
|
982
1041
|
if (this.exportFunction) {
|
|
983
1042
|
cellData = this.exportFunction({
|
|
984
1043
|
data: cellData,
|
|
985
|
-
field: column
|
|
1044
|
+
field: this.columnProp(column, 'field')
|
|
986
1045
|
});
|
|
987
1046
|
}
|
|
988
1047
|
else
|
|
@@ -991,12 +1050,7 @@ export default {
|
|
|
991
1050
|
else
|
|
992
1051
|
cellData = '';
|
|
993
1052
|
|
|
994
|
-
|
|
995
1053
|
csv += '"' + cellData + '"';
|
|
996
|
-
|
|
997
|
-
if (i < (this.columns.length - 1)) {
|
|
998
|
-
csv += this.csvSeparator;
|
|
999
|
-
}
|
|
1000
1054
|
}
|
|
1001
1055
|
}
|
|
1002
1056
|
});
|
|
@@ -1058,33 +1112,26 @@ export default {
|
|
|
1058
1112
|
let nextColumnWidth = nextColumn.offsetWidth - delta;
|
|
1059
1113
|
|
|
1060
1114
|
if (newColumnWidth > 15 && nextColumnWidth > 15) {
|
|
1061
|
-
if(this.scrollable) {
|
|
1062
|
-
const scrollableView = this.findParentScrollableView(this.resizeColumnElement);
|
|
1063
|
-
const scrollableBodyTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-body-table');
|
|
1064
|
-
const scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');
|
|
1065
|
-
const scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');
|
|
1066
|
-
const resizeColumnIndex = DomHandler.index(this.resizeColumnElement);
|
|
1067
|
-
|
|
1068
|
-
this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
|
|
1069
|
-
this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
|
|
1070
|
-
this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);
|
|
1071
|
-
}
|
|
1072
|
-
else {
|
|
1115
|
+
if (!this.scrollable) {
|
|
1073
1116
|
this.resizeColumnElement.style.width = newColumnWidth + 'px';
|
|
1074
1117
|
if(nextColumn) {
|
|
1075
1118
|
nextColumn.style.width = nextColumnWidth + 'px';
|
|
1076
1119
|
}
|
|
1077
1120
|
}
|
|
1121
|
+
else {
|
|
1122
|
+
this.resizeTableCells(newColumnWidth, nextColumnWidth);
|
|
1123
|
+
}
|
|
1078
1124
|
}
|
|
1079
1125
|
}
|
|
1080
1126
|
else if (this.columnResizeMode === 'expand') {
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1127
|
+
const tableWidth = this.$refs.table.offsetWidth + delta + 'px';
|
|
1128
|
+
this.$refs.table.style.width = tableWidth;
|
|
1129
|
+
this.$refs.table.style.minWidth = tableWidth;
|
|
1130
|
+
|
|
1131
|
+
if (!this.scrollable)
|
|
1086
1132
|
this.resizeColumnElement.style.width = newColumnWidth + 'px';
|
|
1087
|
-
|
|
1133
|
+
else
|
|
1134
|
+
this.resizeTableCells(newColumnWidth);
|
|
1088
1135
|
}
|
|
1089
1136
|
|
|
1090
1137
|
this.$emit('column-resize-end', {
|
|
@@ -1103,23 +1150,29 @@ export default {
|
|
|
1103
1150
|
this.saveState();
|
|
1104
1151
|
}
|
|
1105
1152
|
},
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1153
|
+
resizeTableCells(newColumnWidth, nextColumnWidth) {
|
|
1154
|
+
let colIndex = DomHandler.index(this.resizeColumnElement);
|
|
1155
|
+
let widths = [];
|
|
1156
|
+
let headers = DomHandler.find(this.$refs.table, '.p-datatable-thead > tr > th');
|
|
1157
|
+
headers.forEach(header => widths.push(DomHandler.getOuterWidth(header)));
|
|
1109
1158
|
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
let nextCol = col.nextElementSibling;
|
|
1113
|
-
col.style.width = newColumnWidth + 'px';
|
|
1159
|
+
this.destroyStyleElement();
|
|
1160
|
+
this.createStyleElement();
|
|
1114
1161
|
|
|
1115
|
-
|
|
1116
|
-
|
|
1162
|
+
let innerHTML = '';
|
|
1163
|
+
widths.forEach((width,index) => {
|
|
1164
|
+
let colWidth = index === colIndex ? newColumnWidth : (nextColumnWidth && index === colIndex + 1) ? nextColumnWidth : width;
|
|
1165
|
+
innerHTML += `
|
|
1166
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th:nth-child(${index+1}) {
|
|
1167
|
+
flex: 0 0 ${colWidth}px !important;
|
|
1117
1168
|
}
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1169
|
+
|
|
1170
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:nth-child(${index+1}) {
|
|
1171
|
+
flex: 0 0 ${colWidth}px !important;
|
|
1172
|
+
}
|
|
1173
|
+
`
|
|
1174
|
+
});
|
|
1175
|
+
this.styleElement.innerHTML = innerHTML;
|
|
1123
1176
|
},
|
|
1124
1177
|
bindColumnResizeEvents() {
|
|
1125
1178
|
if (!this.documentColumnResizeListener) {
|
|
@@ -1148,14 +1201,14 @@ export default {
|
|
|
1148
1201
|
|
|
1149
1202
|
if (this.documentColumnResizeEndListener) {
|
|
1150
1203
|
document.removeEventListener('document', this.documentColumnResizeEndListener);
|
|
1151
|
-
|
|
1204
|
+
this.documentColumnResizeEndListener = null;
|
|
1152
1205
|
}
|
|
1153
1206
|
},
|
|
1154
1207
|
onColumnHeaderMouseDown(e) {
|
|
1155
1208
|
const event = e.originalEvent;
|
|
1156
1209
|
const column = e.column;
|
|
1157
1210
|
|
|
1158
|
-
if (this.reorderableColumns && column
|
|
1211
|
+
if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {
|
|
1159
1212
|
if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer'))
|
|
1160
1213
|
event.currentTarget.draggable = false;
|
|
1161
1214
|
else
|
|
@@ -1222,7 +1275,8 @@ export default {
|
|
|
1222
1275
|
}
|
|
1223
1276
|
|
|
1224
1277
|
if (allowDrop) {
|
|
1225
|
-
ObjectUtils.reorderArray(this.
|
|
1278
|
+
ObjectUtils.reorderArray(this.columns, dragIndex, dropIndex);
|
|
1279
|
+
this.updateReorderableColumns();
|
|
1226
1280
|
|
|
1227
1281
|
this.$emit('column-reorder', {
|
|
1228
1282
|
originalEvent: event,
|
|
@@ -1251,63 +1305,18 @@ export default {
|
|
|
1251
1305
|
return parent;
|
|
1252
1306
|
}
|
|
1253
1307
|
},
|
|
1254
|
-
findParentScrollableView(column) {
|
|
1255
|
-
if (column) {
|
|
1256
|
-
let parent = column.parentElement;
|
|
1257
|
-
while (parent && !DomHandler.hasClass(parent, 'p-datatable-scrollable-view')) {
|
|
1258
|
-
parent = parent.parentElement;
|
|
1259
|
-
}
|
|
1260
|
-
|
|
1261
|
-
return parent;
|
|
1262
|
-
}
|
|
1263
|
-
else {
|
|
1264
|
-
return null;
|
|
1265
|
-
}
|
|
1266
|
-
},
|
|
1267
1308
|
findColumnByKey(columns, key) {
|
|
1268
|
-
if(columns && columns.length) {
|
|
1269
|
-
for(let i = 0; i < columns.length; i++) {
|
|
1270
|
-
let
|
|
1271
|
-
if(
|
|
1272
|
-
return
|
|
1309
|
+
if (columns && columns.length) {
|
|
1310
|
+
for (let i = 0; i < columns.length; i++) {
|
|
1311
|
+
let column = columns[i];
|
|
1312
|
+
if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {
|
|
1313
|
+
return column;
|
|
1273
1314
|
}
|
|
1274
1315
|
}
|
|
1275
1316
|
}
|
|
1276
1317
|
|
|
1277
1318
|
return null;
|
|
1278
1319
|
},
|
|
1279
|
-
resizeScrollableTable(column, newColumnWidth, delta) {
|
|
1280
|
-
const scrollableView = column ? this.findParentScrollableView(column) : this.$el;
|
|
1281
|
-
const scrollableBody = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body');
|
|
1282
|
-
const scrollableHeader = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-header');
|
|
1283
|
-
const scrollableFooter = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-footer');
|
|
1284
|
-
const scrollableBodyTable = DomHandler.findSingle(scrollableBody, 'table.p-datatable-scrollable-body-table');
|
|
1285
|
-
const scrollableHeaderTable = DomHandler.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');
|
|
1286
|
-
const scrollableFooterTable = DomHandler.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');
|
|
1287
|
-
|
|
1288
|
-
const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;
|
|
1289
|
-
const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;
|
|
1290
|
-
const isContainerInViewport = this.$el.offsetWidth >= parseFloat(scrollableBodyTableWidth);
|
|
1291
|
-
|
|
1292
|
-
let setWidth = (container, table, width, isContainerInViewport) => {
|
|
1293
|
-
if (container && table) {
|
|
1294
|
-
container.style.width = isContainerInViewport ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto'
|
|
1295
|
-
table.style.width = width + 'px';
|
|
1296
|
-
}
|
|
1297
|
-
};
|
|
1298
|
-
|
|
1299
|
-
setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);
|
|
1300
|
-
setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);
|
|
1301
|
-
setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);
|
|
1302
|
-
|
|
1303
|
-
if (column) {
|
|
1304
|
-
let resizeColumnIndex = DomHandler.index(column);
|
|
1305
|
-
|
|
1306
|
-
this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);
|
|
1307
|
-
this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);
|
|
1308
|
-
this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);
|
|
1309
|
-
}
|
|
1310
|
-
},
|
|
1311
1320
|
onRowMouseDown(event) {
|
|
1312
1321
|
if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle'))
|
|
1313
1322
|
event.currentTarget.draggable = true;
|
|
@@ -1474,7 +1483,7 @@ export default {
|
|
|
1474
1483
|
state.multiSortMeta = this.d_multiSortMeta;
|
|
1475
1484
|
}
|
|
1476
1485
|
|
|
1477
|
-
if (this.hasFilters
|
|
1486
|
+
if (this.hasFilters) {
|
|
1478
1487
|
state.filters = this.filters;
|
|
1479
1488
|
}
|
|
1480
1489
|
|
|
@@ -1506,12 +1515,20 @@ export default {
|
|
|
1506
1515
|
|
|
1507
1516
|
this.$emit('state-save', state);
|
|
1508
1517
|
},
|
|
1509
|
-
restoreState() {
|
|
1518
|
+
restoreState() {debugger;
|
|
1510
1519
|
const storage = this.getStorage();
|
|
1511
1520
|
const stateString = storage.getItem(this.stateKey);
|
|
1521
|
+
const dateFormat = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;
|
|
1522
|
+
const reviver = function(key, value) {
|
|
1523
|
+
if (typeof value === "string" && dateFormat.test(value)) {
|
|
1524
|
+
return new Date(value);
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
return value;
|
|
1528
|
+
}
|
|
1512
1529
|
|
|
1513
1530
|
if (stateString) {
|
|
1514
|
-
let restoredState = JSON.parse(stateString);
|
|
1531
|
+
let restoredState = JSON.parse(stateString, reviver);
|
|
1515
1532
|
|
|
1516
1533
|
if (this.paginator) {
|
|
1517
1534
|
this.d_first = restoredState.first;
|
|
@@ -1564,8 +1581,7 @@ export default {
|
|
|
1564
1581
|
state.columnWidths = widths.join(',');
|
|
1565
1582
|
|
|
1566
1583
|
if (this.columnResizeMode === 'expand') {
|
|
1567
|
-
state.tableWidth =
|
|
1568
|
-
DomHandler.getOuterWidth(this.$refs.table) + 'px';
|
|
1584
|
+
state.tableWidth = DomHandler.getOuterWidth(this.$refs.table) + 'px';
|
|
1569
1585
|
}
|
|
1570
1586
|
},
|
|
1571
1587
|
restoreColumnWidths() {
|
|
@@ -1573,28 +1589,32 @@ export default {
|
|
|
1573
1589
|
let widths = this.columnWidthsState.split(',');
|
|
1574
1590
|
|
|
1575
1591
|
if (this.columnResizeMode === 'expand' && this.tableWidthState) {
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
else {
|
|
1580
|
-
this.$refs.table.style.width = this.tableWidthState;
|
|
1581
|
-
this.$el.style.width = this.tableWidthState;
|
|
1582
|
-
}
|
|
1592
|
+
this.$refs.table.style.width = this.tableWidthState;
|
|
1593
|
+
this.$refs.table.style.minWidth = this.tableWidthState;
|
|
1594
|
+
this.$el.style.width = this.tableWidthState;
|
|
1583
1595
|
}
|
|
1584
1596
|
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1597
|
+
this.createStyleElement();
|
|
1598
|
+
|
|
1599
|
+
if (this.scrollable && widths && widths.length > 0) {
|
|
1600
|
+
let innerHTML = '';
|
|
1601
|
+
widths.forEach((width,index) => {
|
|
1602
|
+
innerHTML += `
|
|
1603
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th:nth-child(${index+1}) {
|
|
1604
|
+
flex: 0 0 ${width}px;
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:nth-child(${index+1}) {
|
|
1608
|
+
flex: 0 0 ${width}px;
|
|
1609
|
+
}
|
|
1610
|
+
`
|
|
1611
|
+
});
|
|
1588
1612
|
|
|
1589
|
-
|
|
1590
|
-
bodyCols.forEach((col, index) => col.style.width = widths[index] + 'px');
|
|
1613
|
+
this.styleElement.innerHTML = innerHTML;
|
|
1591
1614
|
}
|
|
1592
1615
|
else {
|
|
1593
|
-
|
|
1594
|
-
headers.forEach((header, index) => header.style.width = widths[index] + 'px');
|
|
1616
|
+
DomHandler.find(this.$refs.table, '.p-datatable-thead > tr > th').forEach((header, index) => header.style.width = widths[index] + 'px');
|
|
1595
1617
|
}
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
1618
|
}
|
|
1599
1619
|
},
|
|
1600
1620
|
onCellEditInit(event) {
|
|
@@ -1624,29 +1644,25 @@ export default {
|
|
|
1624
1644
|
this.$emit('update:editingRows', _editingRows);
|
|
1625
1645
|
this.$emit('row-edit-cancel', event);
|
|
1626
1646
|
},
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
}
|
|
1647
|
+
onEditingMetaChange(event) {
|
|
1648
|
+
let { data, field, index, editing } = event;
|
|
1649
|
+
let meta = this.d_editingMeta[index];
|
|
1631
1650
|
|
|
1632
|
-
|
|
1633
|
-
this
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1651
|
+
if (editing) {
|
|
1652
|
+
!meta && (meta = this.d_editingMeta[index] = { data: { ...data }, fields: [] });
|
|
1653
|
+
meta['fields'].push(field);
|
|
1654
|
+
}
|
|
1655
|
+
else if (meta) {
|
|
1656
|
+
const fields = meta['fields'].filter(f => f !== field);
|
|
1657
|
+
!fields.length ? (delete this.d_editingMeta[index]) : (meta['fields'] = fields);
|
|
1658
|
+
}
|
|
1638
1659
|
},
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
filterMatchModes = {};
|
|
1643
|
-
this.columns.forEach(col => {
|
|
1644
|
-
if (col.field) {
|
|
1645
|
-
filterMatchModes[col.field] = col.filterMatchMode;
|
|
1646
|
-
}
|
|
1647
|
-
});
|
|
1660
|
+
clearEditingMetaData() {
|
|
1661
|
+
if (this.editMode) {
|
|
1662
|
+
this.d_editingMeta = {};
|
|
1648
1663
|
}
|
|
1649
|
-
|
|
1664
|
+
},
|
|
1665
|
+
createLazyLoadEvent(event) {
|
|
1650
1666
|
return {
|
|
1651
1667
|
originalEvent: event,
|
|
1652
1668
|
first: this.d_first,
|
|
@@ -1654,16 +1670,113 @@ export default {
|
|
|
1654
1670
|
sortField: this.d_sortField,
|
|
1655
1671
|
sortOrder: this.d_sortOrder,
|
|
1656
1672
|
multiSortMeta: this.d_multiSortMeta,
|
|
1657
|
-
filters: this.
|
|
1658
|
-
filterMatchModes: filterMatchModes
|
|
1673
|
+
filters: this.d_filters
|
|
1659
1674
|
};
|
|
1660
1675
|
},
|
|
1661
|
-
hasFilters() {
|
|
1662
|
-
return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;
|
|
1663
|
-
},
|
|
1664
1676
|
hasGlobalFilter() {
|
|
1665
1677
|
return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');
|
|
1666
1678
|
},
|
|
1679
|
+
getChildren() {
|
|
1680
|
+
return this.$scopedSlots.default ? this.$scopedSlots.default() : null;
|
|
1681
|
+
},
|
|
1682
|
+
onFilterChange(filters) {
|
|
1683
|
+
this.d_filters = filters;
|
|
1684
|
+
},
|
|
1685
|
+
onFilterApply() {
|
|
1686
|
+
this.d_first = 0;
|
|
1687
|
+
this.$emit('update:first', this.d_first);
|
|
1688
|
+
this.$emit('update:filters', this.d_filters);
|
|
1689
|
+
|
|
1690
|
+
if (this.lazy) {
|
|
1691
|
+
this.$emit('filter', this.createLazyLoadEvent());
|
|
1692
|
+
}
|
|
1693
|
+
},
|
|
1694
|
+
cloneFilters() {
|
|
1695
|
+
let cloned = {};
|
|
1696
|
+
if (this.filters) {
|
|
1697
|
+
Object.entries(this.filters).forEach(([prop,value]) => {
|
|
1698
|
+
cloned[prop] = value.operator ? {operator: value.operator, constraints: value.constraints.map(constraint => {return {...constraint}})} : {...value};
|
|
1699
|
+
});
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
return cloned;
|
|
1703
|
+
},
|
|
1704
|
+
updateReorderableColumns() {
|
|
1705
|
+
let columnOrder = [];
|
|
1706
|
+
this.columns.forEach(col => columnOrder.push(this.columnProp(col, 'columnKey')||this.columnProp(col, 'field')));
|
|
1707
|
+
this.d_columnOrder = columnOrder;
|
|
1708
|
+
},
|
|
1709
|
+
createStyleElement() {
|
|
1710
|
+
this.styleElement = document.createElement('style');
|
|
1711
|
+
this.styleElement.type = 'text/css';
|
|
1712
|
+
document.head.appendChild(this.styleElement);
|
|
1713
|
+
},
|
|
1714
|
+
createResponsiveStyle() {
|
|
1715
|
+
if (!this.responsiveStyleElement) {
|
|
1716
|
+
this.responsiveStyleElement = document.createElement('style');
|
|
1717
|
+
this.responsiveStyleElement.type = 'text/css';
|
|
1718
|
+
document.head.appendChild(this.responsiveStyleElement);
|
|
1719
|
+
|
|
1720
|
+
let innerHTML = `
|
|
1721
|
+
@media screen and (max-width: ${this.breakpoint}) {
|
|
1722
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-thead > tr > th,
|
|
1723
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tfoot > tr > td {
|
|
1724
|
+
display: none !important;
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td {
|
|
1728
|
+
display: flex;
|
|
1729
|
+
width: 100% !important;
|
|
1730
|
+
align-items: center;
|
|
1731
|
+
justify-content: space-between;
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td:not(:last-child) {
|
|
1735
|
+
border: 0 none;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
.p-datatable[${this.attributeSelector}].p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {
|
|
1739
|
+
border-top: 0;
|
|
1740
|
+
border-right: 0;
|
|
1741
|
+
border-left: 0;
|
|
1742
|
+
}
|
|
1743
|
+
|
|
1744
|
+
.p-datatable[${this.attributeSelector}] .p-datatable-tbody > tr > td > .p-column-title {
|
|
1745
|
+
display: block;
|
|
1746
|
+
}
|
|
1747
|
+
}
|
|
1748
|
+
`;
|
|
1749
|
+
|
|
1750
|
+
this.responsiveStyleElement.innerHTML = innerHTML;
|
|
1751
|
+
}
|
|
1752
|
+
},
|
|
1753
|
+
destroyResponsiveStyle() {
|
|
1754
|
+
if (this.responsiveStyleElement) {
|
|
1755
|
+
document.head.removeChild(this.responsiveStyleElement);
|
|
1756
|
+
this.responsiveStyleElement = null;
|
|
1757
|
+
}
|
|
1758
|
+
},
|
|
1759
|
+
destroyStyleElement() {
|
|
1760
|
+
if (this.styleElement) {
|
|
1761
|
+
document.head.removeChild(this.styleElement);
|
|
1762
|
+
this.styleElement = null;
|
|
1763
|
+
}
|
|
1764
|
+
},
|
|
1765
|
+
recursiveGetChildren(children, results) {
|
|
1766
|
+
if (!results) {
|
|
1767
|
+
results = [];
|
|
1768
|
+
}
|
|
1769
|
+
if (children && children.length) {
|
|
1770
|
+
children.forEach((child) => {
|
|
1771
|
+
if (child.children instanceof Array) {
|
|
1772
|
+
results.concat(this.recursiveGetChildren(child.children, results));
|
|
1773
|
+
} else if (child.type.name == 'Column') {
|
|
1774
|
+
results.push(child);
|
|
1775
|
+
}
|
|
1776
|
+
});
|
|
1777
|
+
}
|
|
1778
|
+
return results;
|
|
1779
|
+
},
|
|
1667
1780
|
},
|
|
1668
1781
|
computed: {
|
|
1669
1782
|
containerClass() {
|
|
@@ -1674,8 +1787,16 @@ export default {
|
|
|
1674
1787
|
'p-datatable-resizable': this.resizableColumns,
|
|
1675
1788
|
'p-datatable-resizable-fit': this.resizableColumns && this.columnResizeMode === 'fit',
|
|
1676
1789
|
'p-datatable-scrollable': this.scrollable,
|
|
1677
|
-
'p-datatable-
|
|
1678
|
-
'p-datatable-
|
|
1790
|
+
'p-datatable-scrollable-vertical': this.scrollable && this.scrollDirection === 'vertical',
|
|
1791
|
+
'p-datatable-scrollable-horizontal': this.scrollable && this.scrollDirection === 'horizontal',
|
|
1792
|
+
'p-datatable-scrollable-both': this.scrollable && this.scrollDirection === 'both',
|
|
1793
|
+
'p-datatable-flex-scrollable': (this.scrollable && this.scrollHeight === 'flex'),
|
|
1794
|
+
'p-datatable-responsive-stack': this.responsiveLayout === 'stack',
|
|
1795
|
+
'p-datatable-responsive-scroll': this.responsiveLayout === 'scroll',
|
|
1796
|
+
'p-datatable-striped': this.stripedRows,
|
|
1797
|
+
'p-datatable-gridlines': this.showGridlines,
|
|
1798
|
+
'p-datatable-grouped-header': this.headerColumnGroup != null,
|
|
1799
|
+
'p-datatable-grouped-footer': this.footerColumnGroup != null
|
|
1679
1800
|
}
|
|
1680
1801
|
];
|
|
1681
1802
|
},
|
|
@@ -1701,84 +1822,37 @@ export default {
|
|
|
1701
1822
|
}
|
|
1702
1823
|
return columns;
|
|
1703
1824
|
},
|
|
1704
|
-
frozenColumns() {
|
|
1705
|
-
let frozenColumns = [];
|
|
1706
|
-
|
|
1707
|
-
for(let col of this.columns) {
|
|
1708
|
-
if(col.frozen) {
|
|
1709
|
-
frozenColumns = frozenColumns||[];
|
|
1710
|
-
frozenColumns.push(col);
|
|
1711
|
-
}
|
|
1712
|
-
}
|
|
1713
|
-
|
|
1714
|
-
return frozenColumns;
|
|
1715
|
-
},
|
|
1716
|
-
scrollableColumns() {
|
|
1717
|
-
let scrollableColumns = [];
|
|
1718
|
-
|
|
1719
|
-
for(let col of this.columns) {
|
|
1720
|
-
if(!col.frozen) {
|
|
1721
|
-
scrollableColumns = scrollableColumns||[];
|
|
1722
|
-
scrollableColumns.push(col);
|
|
1723
|
-
}
|
|
1724
|
-
}
|
|
1725
|
-
|
|
1726
|
-
return scrollableColumns;
|
|
1727
|
-
},
|
|
1728
|
-
hasFrozenColumns() {
|
|
1729
|
-
return this.frozenColumns.length > 0;
|
|
1730
|
-
},
|
|
1731
1825
|
headerColumnGroup() {
|
|
1732
1826
|
if (this.allChildren) {
|
|
1733
1827
|
for (let child of this.allChildren) {
|
|
1734
|
-
if (child.$vnode.tag.indexOf('columngroup') !== -1 && child
|
|
1735
|
-
return child;
|
|
1736
|
-
}
|
|
1737
|
-
}
|
|
1738
|
-
}
|
|
1739
|
-
|
|
1740
|
-
return null;
|
|
1741
|
-
},
|
|
1742
|
-
frozenHeaderColumnGroup() {
|
|
1743
|
-
if (this.allChildren) {
|
|
1744
|
-
for (let child of this.allChildren) {
|
|
1745
|
-
if (child.$vnode.tag.indexOf('columngroup') !== -1 && child.type === 'frozenheader') {
|
|
1828
|
+
if (child.$vnode.tag.indexOf('columngroup') !== -1 && this.columnProp(child, 'type') === 'header') {
|
|
1746
1829
|
return child;
|
|
1747
1830
|
}
|
|
1748
1831
|
}
|
|
1749
1832
|
}
|
|
1750
|
-
|
|
1751
1833
|
return null;
|
|
1752
1834
|
},
|
|
1753
1835
|
footerColumnGroup() {
|
|
1754
1836
|
if (this.allChildren) {
|
|
1755
1837
|
for (let child of this.allChildren) {
|
|
1756
|
-
if (child.$vnode.tag.indexOf('columngroup') !== -1 && child
|
|
1838
|
+
if (child.$vnode.tag.indexOf('columngroup') !== -1 && this.columnProp(child, 'type') === 'footer') {
|
|
1757
1839
|
return child;
|
|
1758
1840
|
}
|
|
1759
1841
|
}
|
|
1760
1842
|
}
|
|
1761
|
-
|
|
1762
1843
|
return null;
|
|
1763
1844
|
},
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
for (let child of this.allChildren) {
|
|
1767
|
-
if (child.$vnode.tag.indexOf('columngroup') !== -1 && child.type === 'frozenfooter') {
|
|
1768
|
-
return child;
|
|
1769
|
-
}
|
|
1770
|
-
}
|
|
1771
|
-
}
|
|
1772
|
-
|
|
1773
|
-
return null;
|
|
1845
|
+
hasFilters() {
|
|
1846
|
+
return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;
|
|
1774
1847
|
},
|
|
1775
1848
|
processedData() {
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1849
|
+
let data = this.value || [];
|
|
1850
|
+
|
|
1851
|
+
if (!this.lazy) {
|
|
1852
|
+
if (data && data.length) {
|
|
1853
|
+
if (this.hasFilters) {
|
|
1854
|
+
data = this.filter(data);
|
|
1855
|
+
}
|
|
1782
1856
|
|
|
1783
1857
|
if (this.sorted) {
|
|
1784
1858
|
if(this.sortMode === 'single')
|
|
@@ -1786,17 +1860,10 @@ export default {
|
|
|
1786
1860
|
else if(this.sortMode === 'multiple')
|
|
1787
1861
|
data = this.sortMultiple(data);
|
|
1788
1862
|
}
|
|
1789
|
-
|
|
1790
|
-
if (this.hasFilters()) {
|
|
1791
|
-
data = this.filter(data);
|
|
1792
|
-
}
|
|
1793
|
-
|
|
1794
|
-
return data;
|
|
1795
|
-
}
|
|
1796
|
-
else {
|
|
1797
|
-
return null;
|
|
1798
1863
|
}
|
|
1799
1864
|
}
|
|
1865
|
+
|
|
1866
|
+
return data;
|
|
1800
1867
|
},
|
|
1801
1868
|
dataToRender() {
|
|
1802
1869
|
const data = this.processedData;
|
|
@@ -1835,13 +1902,19 @@ export default {
|
|
|
1835
1902
|
return ['p-datatable-loading-icon pi-spin', this.loadingIcon];
|
|
1836
1903
|
},
|
|
1837
1904
|
allRowsSelected() {
|
|
1838
|
-
const val = this.processedData;
|
|
1839
|
-
|
|
1905
|
+
const val = this.frozenValue ? [...this.frozenValue, ...this.processedData]: this.processedData;
|
|
1906
|
+
const length = this.lazy ? this.totalRecords : (val ? val.length : 0);
|
|
1907
|
+
return (val && length > 0 && this.selection && this.selection.length > 0 && this.selection.length === length);
|
|
1908
|
+
},
|
|
1909
|
+
attributeSelector() {
|
|
1910
|
+
return UniqueComponentId();
|
|
1911
|
+
},
|
|
1912
|
+
groupRowSortField() {
|
|
1913
|
+
return this.sortMode === 'single' ? this.sortField : (this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null);
|
|
1840
1914
|
}
|
|
1841
1915
|
},
|
|
1842
1916
|
components: {
|
|
1843
1917
|
'DTPaginator': Paginator,
|
|
1844
|
-
'DTScrollableView': ScrollableView,
|
|
1845
1918
|
'DTTableHeader': TableHeader,
|
|
1846
1919
|
'DTTableBody': TableBody,
|
|
1847
1920
|
'DTTableFooter': TableFooter,
|
|
@@ -1856,7 +1929,7 @@ export default {
|
|
|
1856
1929
|
|
|
1857
1930
|
.p-datatable table {
|
|
1858
1931
|
border-collapse: collapse;
|
|
1859
|
-
width: 100%;
|
|
1932
|
+
min-width: 100%;
|
|
1860
1933
|
table-layout: fixed;
|
|
1861
1934
|
}
|
|
1862
1935
|
|
|
@@ -1877,10 +1950,11 @@ export default {
|
|
|
1877
1950
|
justify-content: center;
|
|
1878
1951
|
}
|
|
1879
1952
|
|
|
1880
|
-
.p-datatable-
|
|
1953
|
+
.p-datatable-responsive-scroll > .p-datatable-wrapper {
|
|
1881
1954
|
overflow-x: auto;
|
|
1882
1955
|
}
|
|
1883
1956
|
|
|
1957
|
+
.p-datatable-responsive-scroll > .p-datatable-wrapper > table,
|
|
1884
1958
|
.p-datatable-auto-layout > .p-datatable-wrapper > table {
|
|
1885
1959
|
table-layout: auto;
|
|
1886
1960
|
}
|
|
@@ -1890,60 +1964,102 @@ export default {
|
|
|
1890
1964
|
}
|
|
1891
1965
|
|
|
1892
1966
|
/* Scrollable */
|
|
1893
|
-
.p-datatable-scrollable-wrapper {
|
|
1967
|
+
.p-datatable-scrollable .p-datatable-wrapper {
|
|
1894
1968
|
position: relative;
|
|
1969
|
+
overflow: auto;
|
|
1895
1970
|
}
|
|
1896
1971
|
|
|
1897
|
-
.p-datatable-scrollable-
|
|
1898
|
-
.p-datatable-scrollable-
|
|
1899
|
-
|
|
1972
|
+
.p-datatable-scrollable .p-datatable-thead,
|
|
1973
|
+
.p-datatable-scrollable .p-datatable-tbody,
|
|
1974
|
+
.p-datatable-scrollable .p-datatable-tfoot {
|
|
1975
|
+
display: block;
|
|
1900
1976
|
}
|
|
1901
1977
|
|
|
1902
|
-
.p-datatable-scrollable-
|
|
1903
|
-
|
|
1904
|
-
|
|
1978
|
+
.p-datatable-scrollable .p-datatable-thead > tr,
|
|
1979
|
+
.p-datatable-scrollable .p-datatable-tbody > tr,
|
|
1980
|
+
.p-datatable-scrollable .p-datatable-tfoot > tr {
|
|
1981
|
+
display: flex;
|
|
1982
|
+
flex-wrap: nowrap;
|
|
1983
|
+
width: 100%;
|
|
1984
|
+
}
|
|
1985
|
+
|
|
1986
|
+
.p-datatable-scrollable .p-datatable-thead > tr > th,
|
|
1987
|
+
.p-datatable-scrollable .p-datatable-tbody > tr > td,
|
|
1988
|
+
.p-datatable-scrollable .p-datatable-tfoot > tr > td {
|
|
1989
|
+
display: flex;
|
|
1990
|
+
flex: 1 1 0;
|
|
1991
|
+
align-items: center;
|
|
1905
1992
|
}
|
|
1906
1993
|
|
|
1907
|
-
.p-datatable-scrollable
|
|
1908
|
-
|
|
1994
|
+
.p-datatable-scrollable .p-datatable-thead {
|
|
1995
|
+
position: sticky;
|
|
1996
|
+
top: 0;
|
|
1997
|
+
z-index: 1;
|
|
1909
1998
|
}
|
|
1910
1999
|
|
|
1911
|
-
.p-datatable-
|
|
1912
|
-
position:
|
|
2000
|
+
.p-datatable-scrollable .p-datatable-frozen-tbody {
|
|
2001
|
+
position: sticky;
|
|
2002
|
+
z-index: 1;
|
|
1913
2003
|
}
|
|
1914
2004
|
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
2005
|
+
.p-datatable-scrollable .p-datatable-tfoot {
|
|
2006
|
+
position: sticky;
|
|
2007
|
+
bottom: 0;
|
|
2008
|
+
z-index: 1;
|
|
1918
2009
|
}
|
|
1919
2010
|
|
|
1920
|
-
.p-datatable-
|
|
1921
|
-
|
|
2011
|
+
.p-datatable-scrollable .p-frozen-column {
|
|
2012
|
+
position: sticky;
|
|
2013
|
+
background: inherit;
|
|
1922
2014
|
}
|
|
1923
2015
|
|
|
1924
|
-
.p-datatable-
|
|
1925
|
-
|
|
1926
|
-
|
|
2016
|
+
.p-datatable-scrollable th.p-frozen-column {
|
|
2017
|
+
z-index: 1;
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
.p-datatable-scrollable-both .p-datatable-thead > tr > th,
|
|
2021
|
+
.p-datatable-scrollable-both .p-datatable-tbody > tr > td,
|
|
2022
|
+
.p-datatable-scrollable-both .p-datatable-tfoot > tr > td,
|
|
2023
|
+
.p-datatable-scrollable-horizontal .p-datatable-thead > tr > th
|
|
2024
|
+
.p-datatable-scrollable-horizontal .p-datatable-tbody > tr > td,
|
|
2025
|
+
.p-datatable-scrollable-horizontal .p-datatable-tfoot > tr > td {
|
|
2026
|
+
flex: 0 0 auto;
|
|
1927
2027
|
}
|
|
1928
2028
|
|
|
1929
|
-
/* Flex Scrollable */
|
|
1930
2029
|
.p-datatable-flex-scrollable {
|
|
1931
2030
|
display: flex;
|
|
1932
2031
|
flex-direction: column;
|
|
1933
|
-
flex: 1;
|
|
1934
2032
|
height: 100%;
|
|
1935
2033
|
}
|
|
1936
2034
|
|
|
1937
|
-
.p-datatable-flex-scrollable .p-datatable-
|
|
1938
|
-
.p-datatable-flex-scrollable .p-datatable-scrollable-view {
|
|
2035
|
+
.p-datatable-flex-scrollable .p-datatable-wrapper {
|
|
1939
2036
|
display: flex;
|
|
1940
2037
|
flex-direction: column;
|
|
1941
2038
|
flex: 1;
|
|
1942
2039
|
height: 100%;
|
|
1943
2040
|
}
|
|
1944
2041
|
|
|
1945
|
-
.p-datatable-
|
|
1946
|
-
|
|
2042
|
+
.p-datatable-scrollable .p-rowgroup-header {
|
|
2043
|
+
position: sticky;
|
|
2044
|
+
z-index: 1;
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,
|
|
2048
|
+
.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot {
|
|
2049
|
+
display: table;
|
|
2050
|
+
border-collapse: collapse;
|
|
2051
|
+
width: 100%;
|
|
2052
|
+
table-layout: fixed;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead > tr,
|
|
2056
|
+
.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot > tr {
|
|
2057
|
+
display: table-row;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead > tr > th,
|
|
2061
|
+
.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot > tr > td {
|
|
2062
|
+
display: table-cell;
|
|
1947
2063
|
}
|
|
1948
2064
|
|
|
1949
2065
|
/* Resizable */
|
|
@@ -1980,6 +2096,11 @@ export default {
|
|
|
1980
2096
|
border: 1px solid transparent;
|
|
1981
2097
|
}
|
|
1982
2098
|
|
|
2099
|
+
.p-datatable .p-column-header-content {
|
|
2100
|
+
display: flex;
|
|
2101
|
+
align-items: center;
|
|
2102
|
+
}
|
|
2103
|
+
|
|
1983
2104
|
.p-datatable .p-column-resizer-helper {
|
|
1984
2105
|
width: 1px;
|
|
1985
2106
|
position: absolute;
|
|
@@ -2021,4 +2142,73 @@ export default {
|
|
|
2021
2142
|
justify-content: center;
|
|
2022
2143
|
z-index: 2;
|
|
2023
2144
|
}
|
|
2145
|
+
|
|
2146
|
+
/* Filter */
|
|
2147
|
+
.p-column-filter-row {
|
|
2148
|
+
display: flex;
|
|
2149
|
+
align-items: center;
|
|
2150
|
+
width: 100%;
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
.p-column-filter-menu {
|
|
2154
|
+
display: inline-flex;
|
|
2155
|
+
margin-left: auto;
|
|
2156
|
+
}
|
|
2157
|
+
|
|
2158
|
+
.p-column-filter-row .p-column-filter-element {
|
|
2159
|
+
flex: 1 1 auto;
|
|
2160
|
+
width: 1%;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
.p-column-filter-menu-button,
|
|
2164
|
+
.p-column-filter-clear-button {
|
|
2165
|
+
display: inline-flex;
|
|
2166
|
+
justify-content: center;
|
|
2167
|
+
align-items: center;
|
|
2168
|
+
cursor: pointer;
|
|
2169
|
+
text-decoration: none;
|
|
2170
|
+
overflow: hidden;
|
|
2171
|
+
position: relative;
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2174
|
+
.p-column-filter-overlay {
|
|
2175
|
+
position: absolute;
|
|
2176
|
+
top: 0;
|
|
2177
|
+
left: 0;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.p-column-filter-row-items {
|
|
2181
|
+
margin: 0;
|
|
2182
|
+
padding: 0;
|
|
2183
|
+
list-style: none;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.p-column-filter-row-item {
|
|
2187
|
+
cursor: pointer;
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
.p-column-filter-add-button,
|
|
2191
|
+
.p-column-filter-remove-button {
|
|
2192
|
+
justify-content: center;
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
.p-column-filter-add-button .p-button-label,
|
|
2196
|
+
.p-column-filter-remove-button .p-button-label {
|
|
2197
|
+
flex-grow: 0;
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
.p-column-filter-buttonbar {
|
|
2201
|
+
display: flex;
|
|
2202
|
+
align-items: center;
|
|
2203
|
+
justify-content: space-between;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
.p-column-filter-buttonbar .p-button:not(.p-button-icon-only) {
|
|
2207
|
+
width: auto;
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
/* Responsive */
|
|
2211
|
+
.p-datatable .p-datatable-tbody > tr > td > .p-column-title {
|
|
2212
|
+
display: none;
|
|
2213
|
+
}
|
|
2024
2214
|
</style>
|