+
@@ -110,6 +110,14 @@ export default {
filters: {
type: Object,
default: null
+ },
+ filterMenuClass: {
+ type: String,
+ default: null
+ },
+ filterMenuStyle: {
+ type: null,
+ default: null
}
},
data() {
@@ -265,18 +273,26 @@ export default {
_filters[this.field].constraints[index].matchMode = value;
if (!this.showApplyButton) {
- this.$emit('filter-change', _filters);
+ this.$emit('filter-apply');
}
},
addConstraint() {
let _filters = {...this.filters};
_filters[this.field].constraints.push({value: null, matchMode: this.defaultMatchMode});
this.$emit('filter-change', _filters);
+
+ if (!this.showApplyButton) {
+ this.$emit('filter-apply');
+ }
},
removeConstraint(index) {
let _filters = {...this.filters};
_filters[this.field].constraints.splice(index, 1);
this.$emit('filter-change', _filters);
+
+ if (!this.showApplyButton) {
+ this.$emit('filter-apply');
+ }
},
filterCallback() {
this.$emit('filter-apply');
@@ -386,7 +402,7 @@ export default {
]
},
overlayClass() {
- return {'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': this.display === 'menu'};
+ return [this.filterMenuyClass, {'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': this.display === 'menu'}];
},
showMenuButton() {
return this.showMenu && (this.display === 'row' ? this.type !== 'boolean': true);
diff --git a/src/components/datatable/TableHeader.vue b/src/components/datatable/TableHeader.vue
index c00549e45..df575cc6f 100755
--- a/src/components/datatable/TableHeader.vue
+++ b/src/components/datatable/TableHeader.vue
@@ -17,7 +17,7 @@
@@ -30,7 +30,7 @@
:class="getFilterColumnHeaderClass(col)" :style="columnProp(col, 'filterHeaderStyle')">
diff --git a/src/views/datatable/DataTableFilterDemo.vue b/src/views/datatable/DataTableFilterDemo.vue
index bc9848242..d0f12f1cd 100755
--- a/src/views/datatable/DataTableFilterDemo.vue
+++ b/src/views/datatable/DataTableFilterDemo.vue
@@ -84,13 +84,16 @@
-
+
Status
{{data.status}}
+
+ {{slotProps.value}}
+
{{slotProps.option}}