@dolusoft/vue3-datatable 1.8.11 → 1.8.13
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/dist/vue3-datatable.cjs +240 -56
- package/dist/vue3-datatable.css +39 -0
- package/dist/vue3-datatable.js +240 -56
- package/package.json +1 -1
package/dist/vue3-datatable.cjs
CHANGED
|
@@ -2925,47 +2925,140 @@ function _sfc_render(_ctx, _cache) {
|
|
|
2925
2925
|
const iconFilter = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]);
|
|
2926
2926
|
const _hoisted_1$1 = { key: "hdrrow" };
|
|
2927
2927
|
const _hoisted_2$1 = { class: "bh-checkbox" };
|
|
2928
|
-
const _hoisted_3$1 =
|
|
2929
|
-
|
|
2928
|
+
const _hoisted_3$1 = {
|
|
2929
|
+
key: 0,
|
|
2930
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2931
|
+
};
|
|
2932
|
+
const _hoisted_4$1 = ["disabled"];
|
|
2933
|
+
const _hoisted_5$1 = /* @__PURE__ */ vue.createElementVNode("svg", {
|
|
2934
|
+
width: "14",
|
|
2935
|
+
height: "14",
|
|
2936
|
+
viewBox: "0 0 24 24",
|
|
2937
|
+
fill: "none",
|
|
2938
|
+
stroke: "currentColor",
|
|
2939
|
+
"stroke-width": "2",
|
|
2940
|
+
"stroke-linecap": "round",
|
|
2941
|
+
"stroke-linejoin": "round"
|
|
2942
|
+
}, [
|
|
2943
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
2944
|
+
x1: "18",
|
|
2945
|
+
y1: "6",
|
|
2946
|
+
x2: "6",
|
|
2947
|
+
y2: "18"
|
|
2948
|
+
}),
|
|
2949
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
2950
|
+
x1: "6",
|
|
2951
|
+
y1: "6",
|
|
2952
|
+
x2: "18",
|
|
2953
|
+
y2: "18"
|
|
2954
|
+
})
|
|
2955
|
+
], -1);
|
|
2956
|
+
const _hoisted_6$1 = [
|
|
2957
|
+
_hoisted_5$1
|
|
2958
|
+
];
|
|
2959
|
+
const _hoisted_7$1 = {
|
|
2960
|
+
key: 0,
|
|
2961
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2962
|
+
};
|
|
2963
|
+
const _hoisted_8$1 = ["disabled"];
|
|
2964
|
+
const _hoisted_9$1 = /* @__PURE__ */ vue.createElementVNode("svg", {
|
|
2965
|
+
width: "14",
|
|
2966
|
+
height: "14",
|
|
2967
|
+
viewBox: "0 0 24 24",
|
|
2968
|
+
fill: "none",
|
|
2969
|
+
stroke: "currentColor",
|
|
2970
|
+
"stroke-width": "2",
|
|
2971
|
+
"stroke-linecap": "round",
|
|
2972
|
+
"stroke-linejoin": "round"
|
|
2973
|
+
}, [
|
|
2974
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
2975
|
+
x1: "18",
|
|
2976
|
+
y1: "6",
|
|
2977
|
+
x2: "6",
|
|
2978
|
+
y2: "18"
|
|
2979
|
+
}),
|
|
2980
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
2981
|
+
x1: "6",
|
|
2982
|
+
y1: "6",
|
|
2983
|
+
x2: "18",
|
|
2984
|
+
y2: "18"
|
|
2985
|
+
})
|
|
2986
|
+
], -1);
|
|
2987
|
+
const _hoisted_10$1 = [
|
|
2988
|
+
_hoisted_9$1
|
|
2989
|
+
];
|
|
2990
|
+
const _hoisted_11$1 = {
|
|
2991
|
+
key: 1,
|
|
2992
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2993
|
+
};
|
|
2994
|
+
const _hoisted_12$1 = ["disabled"];
|
|
2995
|
+
const _hoisted_13$1 = /* @__PURE__ */ vue.createElementVNode("svg", {
|
|
2996
|
+
width: "14",
|
|
2997
|
+
height: "14",
|
|
2998
|
+
viewBox: "0 0 24 24",
|
|
2999
|
+
fill: "none",
|
|
3000
|
+
stroke: "currentColor",
|
|
3001
|
+
"stroke-width": "2",
|
|
3002
|
+
"stroke-linecap": "round",
|
|
3003
|
+
"stroke-linejoin": "round"
|
|
3004
|
+
}, [
|
|
3005
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
3006
|
+
x1: "18",
|
|
3007
|
+
y1: "6",
|
|
3008
|
+
x2: "6",
|
|
3009
|
+
y2: "18"
|
|
3010
|
+
}),
|
|
3011
|
+
/* @__PURE__ */ vue.createElementVNode("line", {
|
|
3012
|
+
x1: "6",
|
|
3013
|
+
y1: "6",
|
|
3014
|
+
x2: "18",
|
|
3015
|
+
y2: "18"
|
|
3016
|
+
})
|
|
3017
|
+
], -1);
|
|
3018
|
+
const _hoisted_14$1 = [
|
|
3019
|
+
_hoisted_13$1
|
|
3020
|
+
];
|
|
3021
|
+
const _hoisted_15$1 = ["onClick"];
|
|
3022
|
+
const _hoisted_16$1 = {
|
|
2930
3023
|
width: "16",
|
|
2931
3024
|
height: "16",
|
|
2932
3025
|
viewBox: "0 0 14 14",
|
|
2933
3026
|
fill: "none"
|
|
2934
3027
|
};
|
|
2935
|
-
const
|
|
3028
|
+
const _hoisted_17$1 = {
|
|
2936
3029
|
key: 0,
|
|
2937
3030
|
class: "bh-filter bh-relative"
|
|
2938
3031
|
};
|
|
2939
|
-
const
|
|
2940
|
-
const
|
|
2941
|
-
const
|
|
2942
|
-
const
|
|
2943
|
-
const
|
|
2944
|
-
const
|
|
2945
|
-
const
|
|
2946
|
-
const
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
3032
|
+
const _hoisted_18$1 = ["onUpdate:modelValue"];
|
|
3033
|
+
const _hoisted_19$1 = ["onUpdate:modelValue"];
|
|
3034
|
+
const _hoisted_20$1 = ["onUpdate:modelValue"];
|
|
3035
|
+
const _hoisted_21$1 = ["onUpdate:modelValue"];
|
|
3036
|
+
const _hoisted_22$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: void 0 }, "All", -1);
|
|
3037
|
+
const _hoisted_23$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: true }, "True", -1);
|
|
3038
|
+
const _hoisted_24$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: false }, "False", -1);
|
|
3039
|
+
const _hoisted_25$1 = [
|
|
3040
|
+
_hoisted_22$1,
|
|
3041
|
+
_hoisted_23$1,
|
|
3042
|
+
_hoisted_24$1
|
|
2950
3043
|
];
|
|
2951
|
-
const
|
|
3044
|
+
const _hoisted_26$1 = {
|
|
2952
3045
|
key: 1,
|
|
2953
3046
|
class: "bh-filter-input-wrapper"
|
|
2954
3047
|
};
|
|
2955
|
-
const
|
|
2956
|
-
const
|
|
2957
|
-
const
|
|
2958
|
-
const
|
|
2959
|
-
const
|
|
2960
|
-
const
|
|
2961
|
-
const
|
|
2962
|
-
const
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
3048
|
+
const _hoisted_27$1 = ["onUpdate:modelValue"];
|
|
3049
|
+
const _hoisted_28$1 = ["onUpdate:modelValue"];
|
|
3050
|
+
const _hoisted_29$1 = ["onUpdate:modelValue"];
|
|
3051
|
+
const _hoisted_30$1 = ["onUpdate:modelValue"];
|
|
3052
|
+
const _hoisted_31$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: void 0 }, "All", -1);
|
|
3053
|
+
const _hoisted_32$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: true }, "True", -1);
|
|
3054
|
+
const _hoisted_33$1 = /* @__PURE__ */ vue.createElementVNode("option", { value: false }, "False", -1);
|
|
3055
|
+
const _hoisted_34$1 = [
|
|
3056
|
+
_hoisted_31$1,
|
|
3057
|
+
_hoisted_32$1,
|
|
3058
|
+
_hoisted_33$1
|
|
2966
3059
|
];
|
|
2967
|
-
const
|
|
2968
|
-
const
|
|
3060
|
+
const _hoisted_35$1 = ["onClick"];
|
|
3061
|
+
const _hoisted_36$1 = ["onClick"];
|
|
2969
3062
|
const __default__$1 = {
|
|
2970
3063
|
name: "columnHeader"
|
|
2971
3064
|
};
|
|
@@ -2980,7 +3073,9 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2980
3073
|
"isFooter",
|
|
2981
3074
|
"checkAll",
|
|
2982
3075
|
"columnFilterLang",
|
|
2983
|
-
"hasFilterDatetimeSlot"
|
|
3076
|
+
"hasFilterDatetimeSlot",
|
|
3077
|
+
"showClearAllButton",
|
|
3078
|
+
"hasAnyActiveFilter"
|
|
2984
3079
|
],
|
|
2985
3080
|
emits: [
|
|
2986
3081
|
"selectAll",
|
|
@@ -2988,12 +3083,19 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2988
3083
|
"filterChange",
|
|
2989
3084
|
"toggleFilterMenu",
|
|
2990
3085
|
"clearColumnFilter",
|
|
2991
|
-
"filterDatetimeUpdate"
|
|
3086
|
+
"filterDatetimeUpdate",
|
|
3087
|
+
"clearAllFilters"
|
|
2992
3088
|
],
|
|
2993
3089
|
setup(__props, { emit: __emit }) {
|
|
2994
3090
|
const selectedAll = vue.ref(null);
|
|
2995
3091
|
const props = __props;
|
|
2996
3092
|
const emit = __emit;
|
|
3093
|
+
const clearButtonLocation = vue.computed(() => {
|
|
3094
|
+
if (props.all.hasCheckbox) return "checkbox";
|
|
3095
|
+
if (props.all.hasRightPanel) return "rightpanel";
|
|
3096
|
+
if (props.all.hasSubtable) return "subtable";
|
|
3097
|
+
return "none";
|
|
3098
|
+
});
|
|
2997
3099
|
const filterInputs = vue.ref({});
|
|
2998
3100
|
const columnConditions = vue.ref({});
|
|
2999
3101
|
const watchedFields = vue.ref(/* @__PURE__ */ new Set());
|
|
@@ -3043,6 +3145,15 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3043
3145
|
}
|
|
3044
3146
|
});
|
|
3045
3147
|
};
|
|
3148
|
+
const handleClearAllFilters = () => {
|
|
3149
|
+
Object.keys(filterInputs.value).forEach((key) => {
|
|
3150
|
+
filterInputs.value[key] = "";
|
|
3151
|
+
});
|
|
3152
|
+
Object.keys(columnConditions.value).forEach((key) => {
|
|
3153
|
+
columnConditions.value[key] = "";
|
|
3154
|
+
});
|
|
3155
|
+
emit("clearAllFilters");
|
|
3156
|
+
};
|
|
3046
3157
|
vue.watch(
|
|
3047
3158
|
() => {
|
|
3048
3159
|
var _a;
|
|
@@ -3139,7 +3250,19 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3139
3250
|
vue.createVNode(iconCheck, { class: "check" }),
|
|
3140
3251
|
vue.createVNode(iconDash, { class: "intermediate" })
|
|
3141
3252
|
])
|
|
3142
|
-
])
|
|
3253
|
+
]),
|
|
3254
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "checkbox" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, [
|
|
3255
|
+
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3256
|
+
key: 0,
|
|
3257
|
+
type: "button",
|
|
3258
|
+
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3259
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3260
|
+
}]),
|
|
3261
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3262
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"]),
|
|
3263
|
+
title: "Clear all filters"
|
|
3264
|
+
}, _hoisted_6$1, 10, _hoisted_4$1)) : vue.createCommentVNode("", true)
|
|
3265
|
+
])) : vue.createCommentVNode("", true)
|
|
3143
3266
|
], 6)) : vue.createCommentVNode("", true),
|
|
3144
3267
|
props.all.hasRightPanel ? (vue.openBlock(), vue.createElementBlock("th", {
|
|
3145
3268
|
key: 1,
|
|
@@ -3152,7 +3275,20 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3152
3275
|
"bh-top-0": props.all.stickyHeader,
|
|
3153
3276
|
"bh-left-0": props.all.stickyFirstColumn
|
|
3154
3277
|
})
|
|
3155
|
-
},
|
|
3278
|
+
}, [
|
|
3279
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "rightpanel" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$1, [
|
|
3280
|
+
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3281
|
+
key: 0,
|
|
3282
|
+
type: "button",
|
|
3283
|
+
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3284
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3285
|
+
}]),
|
|
3286
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3287
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"]),
|
|
3288
|
+
title: "Clear all filters"
|
|
3289
|
+
}, _hoisted_10$1, 10, _hoisted_8$1)) : vue.createCommentVNode("", true)
|
|
3290
|
+
])) : vue.createCommentVNode("", true)
|
|
3291
|
+
], 6)) : vue.createCommentVNode("", true),
|
|
3156
3292
|
props.all.hasSubtable ? (vue.openBlock(), vue.createElementBlock("th", {
|
|
3157
3293
|
key: 2,
|
|
3158
3294
|
style: vue.normalizeStyle({
|
|
@@ -3164,7 +3300,19 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3164
3300
|
key: 0,
|
|
3165
3301
|
expandedrows: props.expandedrows,
|
|
3166
3302
|
expandall: props.all.expandall
|
|
3167
|
-
}, null, 8, ["expandedrows", "expandall"])) : vue.createCommentVNode("", true)
|
|
3303
|
+
}, null, 8, ["expandedrows", "expandall"])) : vue.createCommentVNode("", true),
|
|
3304
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "subtable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [
|
|
3305
|
+
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3306
|
+
key: 0,
|
|
3307
|
+
type: "button",
|
|
3308
|
+
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3309
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3310
|
+
}]),
|
|
3311
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3312
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"]),
|
|
3313
|
+
title: "Clear all filters"
|
|
3314
|
+
}, _hoisted_14$1, 10, _hoisted_12$1)) : vue.createCommentVNode("", true)
|
|
3315
|
+
])) : vue.createCommentVNode("", true)
|
|
3168
3316
|
], 4)) : vue.createCommentVNode("", true),
|
|
3169
3317
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.all.columns, (col, j) => {
|
|
3170
3318
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
@@ -3190,7 +3338,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3190
3338
|
key: 0,
|
|
3191
3339
|
class: vue.normalizeClass(["bh-ml-3 bh-sort bh-flex bh-items-center", [props.currentSortColumn, props.currentSortDirection]])
|
|
3192
3340
|
}, [
|
|
3193
|
-
(vue.openBlock(), vue.createElementBlock("svg",
|
|
3341
|
+
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_16$1, [
|
|
3194
3342
|
vue.createElementVNode("polygon", {
|
|
3195
3343
|
points: "3.11,6.25 10.89,6.25 7,1.75 ",
|
|
3196
3344
|
fill: "currentColor",
|
|
@@ -3207,16 +3355,16 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3207
3355
|
}, null, 2)
|
|
3208
3356
|
]))
|
|
3209
3357
|
], 2)) : vue.createCommentVNode("", true)
|
|
3210
|
-
], 10,
|
|
3358
|
+
], 10, _hoisted_15$1),
|
|
3211
3359
|
props.all.columnFilter && !props.isFooter ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3212
|
-
col.filter ? (vue.openBlock(), vue.createElementBlock("div",
|
|
3360
|
+
col.filter ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$1, [
|
|
3213
3361
|
!props.all.showFloatingFilterLabel ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3214
3362
|
col.type === "string" || col.type === "String" ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
|
|
3215
3363
|
key: 0,
|
|
3216
3364
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3217
3365
|
type: "text",
|
|
3218
3366
|
class: "bh-form-control"
|
|
3219
|
-
}, null, 8,
|
|
3367
|
+
}, null, 8, _hoisted_18$1)), [
|
|
3220
3368
|
[vue.vModelText, filterInputs.value[col.field]]
|
|
3221
3369
|
]) : vue.createCommentVNode("", true),
|
|
3222
3370
|
col.type === "number" || col.type === "integer" || col.type === "Integer" ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
|
|
@@ -3224,7 +3372,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3224
3372
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3225
3373
|
type: "number",
|
|
3226
3374
|
class: "bh-form-control"
|
|
3227
|
-
}, null, 8,
|
|
3375
|
+
}, null, 8, _hoisted_19$1)), [
|
|
3228
3376
|
[
|
|
3229
3377
|
vue.vModelText,
|
|
3230
3378
|
filterInputs.value[col.field],
|
|
@@ -3245,7 +3393,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3245
3393
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3246
3394
|
type: "date",
|
|
3247
3395
|
class: "bh-form-control"
|
|
3248
|
-
}, null, 8,
|
|
3396
|
+
}, null, 8, _hoisted_20$1)), [
|
|
3249
3397
|
[vue.vModelText, filterInputs.value[col.field]]
|
|
3250
3398
|
])
|
|
3251
3399
|
], 64)) : col.type === "bool" ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("select", {
|
|
@@ -3254,11 +3402,11 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3254
3402
|
class: "bh-form-control",
|
|
3255
3403
|
onClick: _cache[1] || (_cache[1] = //@ts-ignore
|
|
3256
3404
|
(...args) => props.isOpenFilter && props.isOpenFilter(...args))
|
|
3257
|
-
},
|
|
3405
|
+
}, _hoisted_25$1, 8, _hoisted_21$1)), [
|
|
3258
3406
|
[vue.vModelSelect, filterInputs.value[col.field]]
|
|
3259
3407
|
]) : vue.createCommentVNode("", true)
|
|
3260
3408
|
], 64)) : vue.createCommentVNode("", true),
|
|
3261
|
-
props.all.showFloatingFilterLabel ? (vue.openBlock(), vue.createElementBlock("div",
|
|
3409
|
+
props.all.showFloatingFilterLabel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_26$1, [
|
|
3262
3410
|
hasConditionSet(col) && props.all.useNewColumnFilter ? (vue.openBlock(), vue.createElementBlock("label", {
|
|
3263
3411
|
key: 0,
|
|
3264
3412
|
class: vue.normalizeClass(["bh-floating-label", {
|
|
@@ -3272,7 +3420,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3272
3420
|
class: vue.normalizeClass(["bh-form-control", {
|
|
3273
3421
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3274
3422
|
}])
|
|
3275
|
-
}, null, 10,
|
|
3423
|
+
}, null, 10, _hoisted_27$1)), [
|
|
3276
3424
|
[vue.vModelText, filterInputs.value[col.field]]
|
|
3277
3425
|
]) : vue.createCommentVNode("", true),
|
|
3278
3426
|
col.type === "number" || col.type === "integer" || col.type === "Integer" ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
|
|
@@ -3282,7 +3430,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3282
3430
|
class: vue.normalizeClass(["bh-form-control", {
|
|
3283
3431
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3284
3432
|
}])
|
|
3285
|
-
}, null, 10,
|
|
3433
|
+
}, null, 10, _hoisted_28$1)), [
|
|
3286
3434
|
[
|
|
3287
3435
|
vue.vModelText,
|
|
3288
3436
|
filterInputs.value[col.field],
|
|
@@ -3306,7 +3454,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3306
3454
|
class: vue.normalizeClass(["bh-form-control", {
|
|
3307
3455
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3308
3456
|
}])
|
|
3309
|
-
}, null, 10,
|
|
3457
|
+
}, null, 10, _hoisted_29$1)), [
|
|
3310
3458
|
[vue.vModelText, filterInputs.value[col.field]]
|
|
3311
3459
|
])
|
|
3312
3460
|
], 64)) : col.type === "bool" ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("select", {
|
|
@@ -3315,7 +3463,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3315
3463
|
class: "bh-form-control",
|
|
3316
3464
|
onClick: _cache[2] || (_cache[2] = //@ts-ignore
|
|
3317
3465
|
(...args) => props.isOpenFilter && props.isOpenFilter(...args))
|
|
3318
|
-
},
|
|
3466
|
+
}, _hoisted_34$1, 8, _hoisted_30$1)), [
|
|
3319
3467
|
[vue.vModelSelect, filterInputs.value[col.field]]
|
|
3320
3468
|
]) : vue.createCommentVNode("", true)
|
|
3321
3469
|
])) : vue.createCommentVNode("", true),
|
|
@@ -3335,7 +3483,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3335
3483
|
"bh-text-black/70 dark:bh-text-gray-300": !hasConditionSet(col)
|
|
3336
3484
|
}])
|
|
3337
3485
|
}, null, 8, ["class"])
|
|
3338
|
-
], 10,
|
|
3486
|
+
], 10, _hoisted_35$1)) : vue.createCommentVNode("", true),
|
|
3339
3487
|
!props.all.useNewColumnFilter ? vue.withDirectives((vue.openBlock(), vue.createBlock(_sfc_main$6, {
|
|
3340
3488
|
key: 3,
|
|
3341
3489
|
column: col,
|
|
@@ -3385,7 +3533,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3385
3533
|
"bh-text-black/70 dark:bh-text-gray-300": !hasConditionSet(col)
|
|
3386
3534
|
}])
|
|
3387
3535
|
}, null, 8, ["class"])
|
|
3388
|
-
], 10,
|
|
3536
|
+
], 10, _hoisted_36$1)) : vue.createCommentVNode("", true)
|
|
3389
3537
|
]),
|
|
3390
3538
|
_: 2
|
|
3391
3539
|
}, 1032, ["shown"])) : vue.createCommentVNode("", true)
|
|
@@ -3575,6 +3723,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3575
3723
|
stickyFirstColumn: { type: Boolean, default: false },
|
|
3576
3724
|
cloneHeaderInFooter: { type: Boolean, default: false },
|
|
3577
3725
|
selectRowOnClick: { type: Boolean, default: false },
|
|
3726
|
+
showClearAllButton: { type: Boolean, default: false },
|
|
3578
3727
|
enableleftmenu: { type: Boolean },
|
|
3579
3728
|
enabletopmenu: { type: Boolean },
|
|
3580
3729
|
enableHeaderArea: { type: Boolean, default: false },
|
|
@@ -3606,7 +3755,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3606
3755
|
"rowDBClick",
|
|
3607
3756
|
"currentTopMenuSize",
|
|
3608
3757
|
"currentLeftMenuSize",
|
|
3609
|
-
"rowRightPanelClick"
|
|
3758
|
+
"rowRightPanelClick",
|
|
3759
|
+
"clearAllFilters"
|
|
3610
3760
|
],
|
|
3611
3761
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
3612
3762
|
var _a, _b;
|
|
@@ -3670,6 +3820,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3670
3820
|
const col = props.columns.find((d) => d.isUnique);
|
|
3671
3821
|
return (col == null ? void 0 : col.field) || null;
|
|
3672
3822
|
});
|
|
3823
|
+
const hasAnyActiveFilter = vue.ref(false);
|
|
3824
|
+
const updateHasAnyActiveFilter = () => {
|
|
3825
|
+
hasAnyActiveFilter.value = props.columns.some((col) => {
|
|
3826
|
+
return col.value !== void 0 && col.value !== null && col.value !== "";
|
|
3827
|
+
});
|
|
3828
|
+
};
|
|
3673
3829
|
const rowKeys = vue.computed(() => {
|
|
3674
3830
|
if (!uniqueKey.value) return null;
|
|
3675
3831
|
return new Map(
|
|
@@ -3934,6 +4090,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3934
4090
|
isLeftMenuMinimized.value = minimized;
|
|
3935
4091
|
currentLeftMenuWidth.value = minimized ? props.leftmenuMinWidth : props.leftmenuDefaultWidth;
|
|
3936
4092
|
updateLeftMenuStyle();
|
|
4093
|
+
},
|
|
4094
|
+
clearAllFilters() {
|
|
4095
|
+
clearAllFilters();
|
|
3937
4096
|
}
|
|
3938
4097
|
});
|
|
3939
4098
|
vue.watch(
|
|
@@ -4033,6 +4192,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4033
4192
|
}
|
|
4034
4193
|
selectAll(false);
|
|
4035
4194
|
filterRows();
|
|
4195
|
+
updateHasAnyActiveFilter();
|
|
4036
4196
|
};
|
|
4037
4197
|
vue.watch(() => props.rows, changeRows);
|
|
4038
4198
|
const setPageSize = (pagesize) => {
|
|
@@ -4098,6 +4258,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4098
4258
|
};
|
|
4099
4259
|
const filterChange = () => {
|
|
4100
4260
|
selectAll(false);
|
|
4261
|
+
updateHasAnyActiveFilter();
|
|
4101
4262
|
if (props.isServerMode) {
|
|
4102
4263
|
if (currentPage.value === 1) {
|
|
4103
4264
|
changeForServer("filter", true);
|
|
@@ -4260,6 +4421,17 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4260
4421
|
expandedrows.value.set(key, false);
|
|
4261
4422
|
});
|
|
4262
4423
|
};
|
|
4424
|
+
const clearAllFilters = () => {
|
|
4425
|
+
for (const col of props.columns) {
|
|
4426
|
+
if (col.filter) {
|
|
4427
|
+
col.value = "";
|
|
4428
|
+
col.condition = "";
|
|
4429
|
+
}
|
|
4430
|
+
}
|
|
4431
|
+
updateHasAnyActiveFilter();
|
|
4432
|
+
filterChange();
|
|
4433
|
+
emit("clearAllFilters");
|
|
4434
|
+
};
|
|
4263
4435
|
let extracolumnlength = 0;
|
|
4264
4436
|
if (props.hasCheckbox) {
|
|
4265
4437
|
extracolumnlength++;
|
|
@@ -4421,11 +4593,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4421
4593
|
checkAll: selectedAll.value,
|
|
4422
4594
|
columnFilterLang: props.columnFilterLang,
|
|
4423
4595
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4596
|
+
showClearAllButton: props.showClearAllButton,
|
|
4597
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4424
4598
|
onSelectAll: selectAll,
|
|
4425
4599
|
onSortChange: sortChange,
|
|
4426
4600
|
onFilterChange: filterChange,
|
|
4427
4601
|
onToggleFilterMenu: toggleFilterMenu,
|
|
4428
|
-
onClearColumnFilter: clearColumnFilter
|
|
4602
|
+
onClearColumnFilter: clearColumnFilter,
|
|
4603
|
+
onClearAllFilters: clearAllFilters
|
|
4429
4604
|
}, vue.createSlots({ _: 2 }, [
|
|
4430
4605
|
hasFilterDatetimeSlot.value ? {
|
|
4431
4606
|
name: "filter-datetime",
|
|
@@ -4434,7 +4609,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4434
4609
|
]),
|
|
4435
4610
|
key: "0"
|
|
4436
4611
|
} : void 0
|
|
4437
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot"])
|
|
4612
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4438
4613
|
], 2),
|
|
4439
4614
|
vue.createElementVNode("tbody", null, [
|
|
4440
4615
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterItems.value, (item, i) => {
|
|
@@ -4603,10 +4778,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4603
4778
|
isFooter: true,
|
|
4604
4779
|
checkAll: selectedAll.value,
|
|
4605
4780
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4781
|
+
showClearAllButton: props.showClearAllButton,
|
|
4782
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4606
4783
|
onSelectAll: selectAll,
|
|
4607
4784
|
onSortChange: sortChange,
|
|
4608
4785
|
onFilterChange: filterChange,
|
|
4609
|
-
onToggleFilterMenu: toggleFilterMenu
|
|
4786
|
+
onToggleFilterMenu: toggleFilterMenu,
|
|
4787
|
+
onClearAllFilters: clearAllFilters
|
|
4610
4788
|
}, vue.createSlots({ _: 2 }, [
|
|
4611
4789
|
hasFilterDatetimeSlot.value ? {
|
|
4612
4790
|
name: "filter-datetime",
|
|
@@ -4615,7 +4793,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4615
4793
|
]),
|
|
4616
4794
|
key: "0"
|
|
4617
4795
|
} : void 0
|
|
4618
|
-
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot"])
|
|
4796
|
+
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4619
4797
|
], 2)) : vue.createCommentVNode("", true)
|
|
4620
4798
|
], 2),
|
|
4621
4799
|
currentLoader.value && _ctx.enableloadinganimation ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -4687,11 +4865,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4687
4865
|
checkAll: selectedAll.value,
|
|
4688
4866
|
columnFilterLang: props.columnFilterLang,
|
|
4689
4867
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4868
|
+
showClearAllButton: props.showClearAllButton,
|
|
4869
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4690
4870
|
onSelectAll: selectAll,
|
|
4691
4871
|
onSortChange: sortChange,
|
|
4692
4872
|
onFilterChange: filterChange,
|
|
4693
4873
|
onToggleFilterMenu: toggleFilterMenu,
|
|
4694
|
-
onClearColumnFilter: clearColumnFilter
|
|
4874
|
+
onClearColumnFilter: clearColumnFilter,
|
|
4875
|
+
onClearAllFilters: clearAllFilters
|
|
4695
4876
|
}, vue.createSlots({ _: 2 }, [
|
|
4696
4877
|
hasFilterDatetimeSlot.value ? {
|
|
4697
4878
|
name: "filter-datetime",
|
|
@@ -4700,7 +4881,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4700
4881
|
]),
|
|
4701
4882
|
key: "0"
|
|
4702
4883
|
} : void 0
|
|
4703
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot"])
|
|
4884
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4704
4885
|
], 2),
|
|
4705
4886
|
vue.createElementVNode("tbody", null, [
|
|
4706
4887
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterItems.value, (item, i) => {
|
|
@@ -4878,10 +5059,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4878
5059
|
isFooter: true,
|
|
4879
5060
|
checkAll: selectedAll.value,
|
|
4880
5061
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
5062
|
+
showClearAllButton: props.showClearAllButton,
|
|
5063
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4881
5064
|
onSelectAll: selectAll,
|
|
4882
5065
|
onSortChange: sortChange,
|
|
4883
5066
|
onFilterChange: filterChange,
|
|
4884
|
-
onToggleFilterMenu: toggleFilterMenu
|
|
5067
|
+
onToggleFilterMenu: toggleFilterMenu,
|
|
5068
|
+
onClearAllFilters: clearAllFilters
|
|
4885
5069
|
}, vue.createSlots({ _: 2 }, [
|
|
4886
5070
|
hasFilterDatetimeSlot.value ? {
|
|
4887
5071
|
name: "filter-datetime",
|
|
@@ -4890,7 +5074,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4890
5074
|
]),
|
|
4891
5075
|
key: "0"
|
|
4892
5076
|
} : void 0
|
|
4893
|
-
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot"])
|
|
5077
|
+
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4894
5078
|
], 2)) : vue.createCommentVNode("", true)
|
|
4895
5079
|
], 2),
|
|
4896
5080
|
currentLoader.value && _ctx.enableloadinganimation ? (vue.openBlock(), vue.createElementBlock("div", {
|
package/dist/vue3-datatable.css
CHANGED
|
@@ -50,3 +50,42 @@
|
|
|
50
50
|
.bh-datatable tbody tr:has(td[colspan]) {
|
|
51
51
|
z-index: 0;
|
|
52
52
|
}
|
|
53
|
+
/* Clear All Filters Button */
|
|
54
|
+
.bh-clear-all-button {
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
width: 28px;
|
|
59
|
+
height: 28px;
|
|
60
|
+
padding: 0;
|
|
61
|
+
border: 1px solid #e0e6ed;
|
|
62
|
+
border-radius: 4px;
|
|
63
|
+
background: #e0e6ed;
|
|
64
|
+
color: rgba(0, 0, 0, 0.4);
|
|
65
|
+
cursor: not-allowed;
|
|
66
|
+
transition: all 0.2s ease;
|
|
67
|
+
}
|
|
68
|
+
.bh-clear-all-button:disabled {
|
|
69
|
+
opacity: 0.5;
|
|
70
|
+
}
|
|
71
|
+
.bh-clear-all-button--active {
|
|
72
|
+
background: rgba(var(--primary-rgb, 59, 130, 246), 0.1);
|
|
73
|
+
border-color: var(--primary, #3b82f6);
|
|
74
|
+
color: var(--primary, #3b82f6);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
}
|
|
77
|
+
.bh-clear-all-button--active:hover {
|
|
78
|
+
background: rgba(var(--primary-rgb, 59, 130, 246), 0.2);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Dark mode */
|
|
82
|
+
.dark .bh-clear-all-button {
|
|
83
|
+
background: #374151;
|
|
84
|
+
border-color: #4b5563;
|
|
85
|
+
color: rgba(255, 255, 255, 0.4);
|
|
86
|
+
}
|
|
87
|
+
.dark .bh-clear-all-button--active {
|
|
88
|
+
background: rgba(var(--primary-rgb, 59, 130, 246), 0.2);
|
|
89
|
+
border-color: var(--primary, #3b82f6);
|
|
90
|
+
color: var(--primary, #3b82f6);
|
|
91
|
+
}
|
package/dist/vue3-datatable.js
CHANGED
|
@@ -2924,47 +2924,140 @@ function _sfc_render(_ctx, _cache) {
|
|
|
2924
2924
|
const iconFilter = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]);
|
|
2925
2925
|
const _hoisted_1$1 = { key: "hdrrow" };
|
|
2926
2926
|
const _hoisted_2$1 = { class: "bh-checkbox" };
|
|
2927
|
-
const _hoisted_3$1 =
|
|
2928
|
-
|
|
2927
|
+
const _hoisted_3$1 = {
|
|
2928
|
+
key: 0,
|
|
2929
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2930
|
+
};
|
|
2931
|
+
const _hoisted_4$1 = ["disabled"];
|
|
2932
|
+
const _hoisted_5$1 = /* @__PURE__ */ createElementVNode("svg", {
|
|
2933
|
+
width: "14",
|
|
2934
|
+
height: "14",
|
|
2935
|
+
viewBox: "0 0 24 24",
|
|
2936
|
+
fill: "none",
|
|
2937
|
+
stroke: "currentColor",
|
|
2938
|
+
"stroke-width": "2",
|
|
2939
|
+
"stroke-linecap": "round",
|
|
2940
|
+
"stroke-linejoin": "round"
|
|
2941
|
+
}, [
|
|
2942
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
2943
|
+
x1: "18",
|
|
2944
|
+
y1: "6",
|
|
2945
|
+
x2: "6",
|
|
2946
|
+
y2: "18"
|
|
2947
|
+
}),
|
|
2948
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
2949
|
+
x1: "6",
|
|
2950
|
+
y1: "6",
|
|
2951
|
+
x2: "18",
|
|
2952
|
+
y2: "18"
|
|
2953
|
+
})
|
|
2954
|
+
], -1);
|
|
2955
|
+
const _hoisted_6$1 = [
|
|
2956
|
+
_hoisted_5$1
|
|
2957
|
+
];
|
|
2958
|
+
const _hoisted_7$1 = {
|
|
2959
|
+
key: 0,
|
|
2960
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2961
|
+
};
|
|
2962
|
+
const _hoisted_8$1 = ["disabled"];
|
|
2963
|
+
const _hoisted_9$1 = /* @__PURE__ */ createElementVNode("svg", {
|
|
2964
|
+
width: "14",
|
|
2965
|
+
height: "14",
|
|
2966
|
+
viewBox: "0 0 24 24",
|
|
2967
|
+
fill: "none",
|
|
2968
|
+
stroke: "currentColor",
|
|
2969
|
+
"stroke-width": "2",
|
|
2970
|
+
"stroke-linecap": "round",
|
|
2971
|
+
"stroke-linejoin": "round"
|
|
2972
|
+
}, [
|
|
2973
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
2974
|
+
x1: "18",
|
|
2975
|
+
y1: "6",
|
|
2976
|
+
x2: "6",
|
|
2977
|
+
y2: "18"
|
|
2978
|
+
}),
|
|
2979
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
2980
|
+
x1: "6",
|
|
2981
|
+
y1: "6",
|
|
2982
|
+
x2: "18",
|
|
2983
|
+
y2: "18"
|
|
2984
|
+
})
|
|
2985
|
+
], -1);
|
|
2986
|
+
const _hoisted_10$1 = [
|
|
2987
|
+
_hoisted_9$1
|
|
2988
|
+
];
|
|
2989
|
+
const _hoisted_11$1 = {
|
|
2990
|
+
key: 1,
|
|
2991
|
+
class: "bh-filter bh-flex bh-justify-center"
|
|
2992
|
+
};
|
|
2993
|
+
const _hoisted_12$1 = ["disabled"];
|
|
2994
|
+
const _hoisted_13$1 = /* @__PURE__ */ createElementVNode("svg", {
|
|
2995
|
+
width: "14",
|
|
2996
|
+
height: "14",
|
|
2997
|
+
viewBox: "0 0 24 24",
|
|
2998
|
+
fill: "none",
|
|
2999
|
+
stroke: "currentColor",
|
|
3000
|
+
"stroke-width": "2",
|
|
3001
|
+
"stroke-linecap": "round",
|
|
3002
|
+
"stroke-linejoin": "round"
|
|
3003
|
+
}, [
|
|
3004
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
3005
|
+
x1: "18",
|
|
3006
|
+
y1: "6",
|
|
3007
|
+
x2: "6",
|
|
3008
|
+
y2: "18"
|
|
3009
|
+
}),
|
|
3010
|
+
/* @__PURE__ */ createElementVNode("line", {
|
|
3011
|
+
x1: "6",
|
|
3012
|
+
y1: "6",
|
|
3013
|
+
x2: "18",
|
|
3014
|
+
y2: "18"
|
|
3015
|
+
})
|
|
3016
|
+
], -1);
|
|
3017
|
+
const _hoisted_14$1 = [
|
|
3018
|
+
_hoisted_13$1
|
|
3019
|
+
];
|
|
3020
|
+
const _hoisted_15$1 = ["onClick"];
|
|
3021
|
+
const _hoisted_16$1 = {
|
|
2929
3022
|
width: "16",
|
|
2930
3023
|
height: "16",
|
|
2931
3024
|
viewBox: "0 0 14 14",
|
|
2932
3025
|
fill: "none"
|
|
2933
3026
|
};
|
|
2934
|
-
const
|
|
3027
|
+
const _hoisted_17$1 = {
|
|
2935
3028
|
key: 0,
|
|
2936
3029
|
class: "bh-filter bh-relative"
|
|
2937
3030
|
};
|
|
2938
|
-
const
|
|
2939
|
-
const
|
|
2940
|
-
const
|
|
2941
|
-
const
|
|
2942
|
-
const
|
|
2943
|
-
const
|
|
2944
|
-
const
|
|
2945
|
-
const
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
3031
|
+
const _hoisted_18$1 = ["onUpdate:modelValue"];
|
|
3032
|
+
const _hoisted_19$1 = ["onUpdate:modelValue"];
|
|
3033
|
+
const _hoisted_20$1 = ["onUpdate:modelValue"];
|
|
3034
|
+
const _hoisted_21$1 = ["onUpdate:modelValue"];
|
|
3035
|
+
const _hoisted_22$1 = /* @__PURE__ */ createElementVNode("option", { value: void 0 }, "All", -1);
|
|
3036
|
+
const _hoisted_23$1 = /* @__PURE__ */ createElementVNode("option", { value: true }, "True", -1);
|
|
3037
|
+
const _hoisted_24$1 = /* @__PURE__ */ createElementVNode("option", { value: false }, "False", -1);
|
|
3038
|
+
const _hoisted_25$1 = [
|
|
3039
|
+
_hoisted_22$1,
|
|
3040
|
+
_hoisted_23$1,
|
|
3041
|
+
_hoisted_24$1
|
|
2949
3042
|
];
|
|
2950
|
-
const
|
|
3043
|
+
const _hoisted_26$1 = {
|
|
2951
3044
|
key: 1,
|
|
2952
3045
|
class: "bh-filter-input-wrapper"
|
|
2953
3046
|
};
|
|
2954
|
-
const
|
|
2955
|
-
const
|
|
2956
|
-
const
|
|
2957
|
-
const
|
|
2958
|
-
const
|
|
2959
|
-
const
|
|
2960
|
-
const
|
|
2961
|
-
const
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
3047
|
+
const _hoisted_27$1 = ["onUpdate:modelValue"];
|
|
3048
|
+
const _hoisted_28$1 = ["onUpdate:modelValue"];
|
|
3049
|
+
const _hoisted_29$1 = ["onUpdate:modelValue"];
|
|
3050
|
+
const _hoisted_30$1 = ["onUpdate:modelValue"];
|
|
3051
|
+
const _hoisted_31$1 = /* @__PURE__ */ createElementVNode("option", { value: void 0 }, "All", -1);
|
|
3052
|
+
const _hoisted_32$1 = /* @__PURE__ */ createElementVNode("option", { value: true }, "True", -1);
|
|
3053
|
+
const _hoisted_33$1 = /* @__PURE__ */ createElementVNode("option", { value: false }, "False", -1);
|
|
3054
|
+
const _hoisted_34$1 = [
|
|
3055
|
+
_hoisted_31$1,
|
|
3056
|
+
_hoisted_32$1,
|
|
3057
|
+
_hoisted_33$1
|
|
2965
3058
|
];
|
|
2966
|
-
const
|
|
2967
|
-
const
|
|
3059
|
+
const _hoisted_35$1 = ["onClick"];
|
|
3060
|
+
const _hoisted_36$1 = ["onClick"];
|
|
2968
3061
|
const __default__$1 = {
|
|
2969
3062
|
name: "columnHeader"
|
|
2970
3063
|
};
|
|
@@ -2979,7 +3072,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2979
3072
|
"isFooter",
|
|
2980
3073
|
"checkAll",
|
|
2981
3074
|
"columnFilterLang",
|
|
2982
|
-
"hasFilterDatetimeSlot"
|
|
3075
|
+
"hasFilterDatetimeSlot",
|
|
3076
|
+
"showClearAllButton",
|
|
3077
|
+
"hasAnyActiveFilter"
|
|
2983
3078
|
],
|
|
2984
3079
|
emits: [
|
|
2985
3080
|
"selectAll",
|
|
@@ -2987,12 +3082,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2987
3082
|
"filterChange",
|
|
2988
3083
|
"toggleFilterMenu",
|
|
2989
3084
|
"clearColumnFilter",
|
|
2990
|
-
"filterDatetimeUpdate"
|
|
3085
|
+
"filterDatetimeUpdate",
|
|
3086
|
+
"clearAllFilters"
|
|
2991
3087
|
],
|
|
2992
3088
|
setup(__props, { emit: __emit }) {
|
|
2993
3089
|
const selectedAll = ref(null);
|
|
2994
3090
|
const props = __props;
|
|
2995
3091
|
const emit = __emit;
|
|
3092
|
+
const clearButtonLocation = computed(() => {
|
|
3093
|
+
if (props.all.hasCheckbox) return "checkbox";
|
|
3094
|
+
if (props.all.hasRightPanel) return "rightpanel";
|
|
3095
|
+
if (props.all.hasSubtable) return "subtable";
|
|
3096
|
+
return "none";
|
|
3097
|
+
});
|
|
2996
3098
|
const filterInputs = ref({});
|
|
2997
3099
|
const columnConditions = ref({});
|
|
2998
3100
|
const watchedFields = ref(/* @__PURE__ */ new Set());
|
|
@@ -3042,6 +3144,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3042
3144
|
}
|
|
3043
3145
|
});
|
|
3044
3146
|
};
|
|
3147
|
+
const handleClearAllFilters = () => {
|
|
3148
|
+
Object.keys(filterInputs.value).forEach((key) => {
|
|
3149
|
+
filterInputs.value[key] = "";
|
|
3150
|
+
});
|
|
3151
|
+
Object.keys(columnConditions.value).forEach((key) => {
|
|
3152
|
+
columnConditions.value[key] = "";
|
|
3153
|
+
});
|
|
3154
|
+
emit("clearAllFilters");
|
|
3155
|
+
};
|
|
3045
3156
|
watch(
|
|
3046
3157
|
() => {
|
|
3047
3158
|
var _a;
|
|
@@ -3138,7 +3249,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3138
3249
|
createVNode(iconCheck, { class: "check" }),
|
|
3139
3250
|
createVNode(iconDash, { class: "intermediate" })
|
|
3140
3251
|
])
|
|
3141
|
-
])
|
|
3252
|
+
]),
|
|
3253
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "checkbox" ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
|
|
3254
|
+
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3255
|
+
key: 0,
|
|
3256
|
+
type: "button",
|
|
3257
|
+
class: normalizeClass(["bh-clear-all-button", {
|
|
3258
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3259
|
+
}]),
|
|
3260
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3261
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"]),
|
|
3262
|
+
title: "Clear all filters"
|
|
3263
|
+
}, _hoisted_6$1, 10, _hoisted_4$1)) : createCommentVNode("", true)
|
|
3264
|
+
])) : createCommentVNode("", true)
|
|
3142
3265
|
], 6)) : createCommentVNode("", true),
|
|
3143
3266
|
props.all.hasRightPanel ? (openBlock(), createElementBlock("th", {
|
|
3144
3267
|
key: 1,
|
|
@@ -3151,7 +3274,20 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3151
3274
|
"bh-top-0": props.all.stickyHeader,
|
|
3152
3275
|
"bh-left-0": props.all.stickyFirstColumn
|
|
3153
3276
|
})
|
|
3154
|
-
},
|
|
3277
|
+
}, [
|
|
3278
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "rightpanel" ? (openBlock(), createElementBlock("div", _hoisted_7$1, [
|
|
3279
|
+
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3280
|
+
key: 0,
|
|
3281
|
+
type: "button",
|
|
3282
|
+
class: normalizeClass(["bh-clear-all-button", {
|
|
3283
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3284
|
+
}]),
|
|
3285
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3286
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"]),
|
|
3287
|
+
title: "Clear all filters"
|
|
3288
|
+
}, _hoisted_10$1, 10, _hoisted_8$1)) : createCommentVNode("", true)
|
|
3289
|
+
])) : createCommentVNode("", true)
|
|
3290
|
+
], 6)) : createCommentVNode("", true),
|
|
3155
3291
|
props.all.hasSubtable ? (openBlock(), createElementBlock("th", {
|
|
3156
3292
|
key: 2,
|
|
3157
3293
|
style: normalizeStyle({
|
|
@@ -3163,7 +3299,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3163
3299
|
key: 0,
|
|
3164
3300
|
expandedrows: props.expandedrows,
|
|
3165
3301
|
expandall: props.all.expandall
|
|
3166
|
-
}, null, 8, ["expandedrows", "expandall"])) : createCommentVNode("", true)
|
|
3302
|
+
}, null, 8, ["expandedrows", "expandall"])) : createCommentVNode("", true),
|
|
3303
|
+
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "subtable" ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
|
|
3304
|
+
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3305
|
+
key: 0,
|
|
3306
|
+
type: "button",
|
|
3307
|
+
class: normalizeClass(["bh-clear-all-button", {
|
|
3308
|
+
"bh-clear-all-button--active": props.hasAnyActiveFilter
|
|
3309
|
+
}]),
|
|
3310
|
+
disabled: !props.hasAnyActiveFilter,
|
|
3311
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"]),
|
|
3312
|
+
title: "Clear all filters"
|
|
3313
|
+
}, _hoisted_14$1, 10, _hoisted_12$1)) : createCommentVNode("", true)
|
|
3314
|
+
])) : createCommentVNode("", true)
|
|
3167
3315
|
], 4)) : createCommentVNode("", true),
|
|
3168
3316
|
(openBlock(true), createElementBlock(Fragment, null, renderList(props.all.columns, (col, j) => {
|
|
3169
3317
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
@@ -3189,7 +3337,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3189
3337
|
key: 0,
|
|
3190
3338
|
class: normalizeClass(["bh-ml-3 bh-sort bh-flex bh-items-center", [props.currentSortColumn, props.currentSortDirection]])
|
|
3191
3339
|
}, [
|
|
3192
|
-
(openBlock(), createElementBlock("svg",
|
|
3340
|
+
(openBlock(), createElementBlock("svg", _hoisted_16$1, [
|
|
3193
3341
|
createElementVNode("polygon", {
|
|
3194
3342
|
points: "3.11,6.25 10.89,6.25 7,1.75 ",
|
|
3195
3343
|
fill: "currentColor",
|
|
@@ -3206,16 +3354,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3206
3354
|
}, null, 2)
|
|
3207
3355
|
]))
|
|
3208
3356
|
], 2)) : createCommentVNode("", true)
|
|
3209
|
-
], 10,
|
|
3357
|
+
], 10, _hoisted_15$1),
|
|
3210
3358
|
props.all.columnFilter && !props.isFooter ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3211
|
-
col.filter ? (openBlock(), createElementBlock("div",
|
|
3359
|
+
col.filter ? (openBlock(), createElementBlock("div", _hoisted_17$1, [
|
|
3212
3360
|
!props.all.showFloatingFilterLabel ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3213
3361
|
col.type === "string" || col.type === "String" ? withDirectives((openBlock(), createElementBlock("input", {
|
|
3214
3362
|
key: 0,
|
|
3215
3363
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3216
3364
|
type: "text",
|
|
3217
3365
|
class: "bh-form-control"
|
|
3218
|
-
}, null, 8,
|
|
3366
|
+
}, null, 8, _hoisted_18$1)), [
|
|
3219
3367
|
[vModelText, filterInputs.value[col.field]]
|
|
3220
3368
|
]) : createCommentVNode("", true),
|
|
3221
3369
|
col.type === "number" || col.type === "integer" || col.type === "Integer" ? withDirectives((openBlock(), createElementBlock("input", {
|
|
@@ -3223,7 +3371,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3223
3371
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3224
3372
|
type: "number",
|
|
3225
3373
|
class: "bh-form-control"
|
|
3226
|
-
}, null, 8,
|
|
3374
|
+
}, null, 8, _hoisted_19$1)), [
|
|
3227
3375
|
[
|
|
3228
3376
|
vModelText,
|
|
3229
3377
|
filterInputs.value[col.field],
|
|
@@ -3244,7 +3392,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3244
3392
|
"onUpdate:modelValue": ($event) => filterInputs.value[col.field] = $event,
|
|
3245
3393
|
type: "date",
|
|
3246
3394
|
class: "bh-form-control"
|
|
3247
|
-
}, null, 8,
|
|
3395
|
+
}, null, 8, _hoisted_20$1)), [
|
|
3248
3396
|
[vModelText, filterInputs.value[col.field]]
|
|
3249
3397
|
])
|
|
3250
3398
|
], 64)) : col.type === "bool" ? withDirectives((openBlock(), createElementBlock("select", {
|
|
@@ -3253,11 +3401,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3253
3401
|
class: "bh-form-control",
|
|
3254
3402
|
onClick: _cache[1] || (_cache[1] = //@ts-ignore
|
|
3255
3403
|
(...args) => props.isOpenFilter && props.isOpenFilter(...args))
|
|
3256
|
-
},
|
|
3404
|
+
}, _hoisted_25$1, 8, _hoisted_21$1)), [
|
|
3257
3405
|
[vModelSelect, filterInputs.value[col.field]]
|
|
3258
3406
|
]) : createCommentVNode("", true)
|
|
3259
3407
|
], 64)) : createCommentVNode("", true),
|
|
3260
|
-
props.all.showFloatingFilterLabel ? (openBlock(), createElementBlock("div",
|
|
3408
|
+
props.all.showFloatingFilterLabel ? (openBlock(), createElementBlock("div", _hoisted_26$1, [
|
|
3261
3409
|
hasConditionSet(col) && props.all.useNewColumnFilter ? (openBlock(), createElementBlock("label", {
|
|
3262
3410
|
key: 0,
|
|
3263
3411
|
class: normalizeClass(["bh-floating-label", {
|
|
@@ -3271,7 +3419,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3271
3419
|
class: normalizeClass(["bh-form-control", {
|
|
3272
3420
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3273
3421
|
}])
|
|
3274
|
-
}, null, 10,
|
|
3422
|
+
}, null, 10, _hoisted_27$1)), [
|
|
3275
3423
|
[vModelText, filterInputs.value[col.field]]
|
|
3276
3424
|
]) : createCommentVNode("", true),
|
|
3277
3425
|
col.type === "number" || col.type === "integer" || col.type === "Integer" ? withDirectives((openBlock(), createElementBlock("input", {
|
|
@@ -3281,7 +3429,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3281
3429
|
class: normalizeClass(["bh-form-control", {
|
|
3282
3430
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3283
3431
|
}])
|
|
3284
|
-
}, null, 10,
|
|
3432
|
+
}, null, 10, _hoisted_28$1)), [
|
|
3285
3433
|
[
|
|
3286
3434
|
vModelText,
|
|
3287
3435
|
filterInputs.value[col.field],
|
|
@@ -3305,7 +3453,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3305
3453
|
class: normalizeClass(["bh-form-control", {
|
|
3306
3454
|
"bh-form-control--with-label": hasConditionSet(col) && props.all.useNewColumnFilter
|
|
3307
3455
|
}])
|
|
3308
|
-
}, null, 10,
|
|
3456
|
+
}, null, 10, _hoisted_29$1)), [
|
|
3309
3457
|
[vModelText, filterInputs.value[col.field]]
|
|
3310
3458
|
])
|
|
3311
3459
|
], 64)) : col.type === "bool" ? withDirectives((openBlock(), createElementBlock("select", {
|
|
@@ -3314,7 +3462,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3314
3462
|
class: "bh-form-control",
|
|
3315
3463
|
onClick: _cache[2] || (_cache[2] = //@ts-ignore
|
|
3316
3464
|
(...args) => props.isOpenFilter && props.isOpenFilter(...args))
|
|
3317
|
-
},
|
|
3465
|
+
}, _hoisted_34$1, 8, _hoisted_30$1)), [
|
|
3318
3466
|
[vModelSelect, filterInputs.value[col.field]]
|
|
3319
3467
|
]) : createCommentVNode("", true)
|
|
3320
3468
|
])) : createCommentVNode("", true),
|
|
@@ -3334,7 +3482,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3334
3482
|
"bh-text-black/70 dark:bh-text-gray-300": !hasConditionSet(col)
|
|
3335
3483
|
}])
|
|
3336
3484
|
}, null, 8, ["class"])
|
|
3337
|
-
], 10,
|
|
3485
|
+
], 10, _hoisted_35$1)) : createCommentVNode("", true),
|
|
3338
3486
|
!props.all.useNewColumnFilter ? withDirectives((openBlock(), createBlock(_sfc_main$6, {
|
|
3339
3487
|
key: 3,
|
|
3340
3488
|
column: col,
|
|
@@ -3384,7 +3532,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3384
3532
|
"bh-text-black/70 dark:bh-text-gray-300": !hasConditionSet(col)
|
|
3385
3533
|
}])
|
|
3386
3534
|
}, null, 8, ["class"])
|
|
3387
|
-
], 10,
|
|
3535
|
+
], 10, _hoisted_36$1)) : createCommentVNode("", true)
|
|
3388
3536
|
]),
|
|
3389
3537
|
_: 2
|
|
3390
3538
|
}, 1032, ["shown"])) : createCommentVNode("", true)
|
|
@@ -3574,6 +3722,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3574
3722
|
stickyFirstColumn: { type: Boolean, default: false },
|
|
3575
3723
|
cloneHeaderInFooter: { type: Boolean, default: false },
|
|
3576
3724
|
selectRowOnClick: { type: Boolean, default: false },
|
|
3725
|
+
showClearAllButton: { type: Boolean, default: false },
|
|
3577
3726
|
enableleftmenu: { type: Boolean },
|
|
3578
3727
|
enabletopmenu: { type: Boolean },
|
|
3579
3728
|
enableHeaderArea: { type: Boolean, default: false },
|
|
@@ -3605,7 +3754,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3605
3754
|
"rowDBClick",
|
|
3606
3755
|
"currentTopMenuSize",
|
|
3607
3756
|
"currentLeftMenuSize",
|
|
3608
|
-
"rowRightPanelClick"
|
|
3757
|
+
"rowRightPanelClick",
|
|
3758
|
+
"clearAllFilters"
|
|
3609
3759
|
],
|
|
3610
3760
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
3611
3761
|
var _a, _b;
|
|
@@ -3669,6 +3819,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3669
3819
|
const col = props.columns.find((d) => d.isUnique);
|
|
3670
3820
|
return (col == null ? void 0 : col.field) || null;
|
|
3671
3821
|
});
|
|
3822
|
+
const hasAnyActiveFilter = ref(false);
|
|
3823
|
+
const updateHasAnyActiveFilter = () => {
|
|
3824
|
+
hasAnyActiveFilter.value = props.columns.some((col) => {
|
|
3825
|
+
return col.value !== void 0 && col.value !== null && col.value !== "";
|
|
3826
|
+
});
|
|
3827
|
+
};
|
|
3672
3828
|
const rowKeys = computed(() => {
|
|
3673
3829
|
if (!uniqueKey.value) return null;
|
|
3674
3830
|
return new Map(
|
|
@@ -3933,6 +4089,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3933
4089
|
isLeftMenuMinimized.value = minimized;
|
|
3934
4090
|
currentLeftMenuWidth.value = minimized ? props.leftmenuMinWidth : props.leftmenuDefaultWidth;
|
|
3935
4091
|
updateLeftMenuStyle();
|
|
4092
|
+
},
|
|
4093
|
+
clearAllFilters() {
|
|
4094
|
+
clearAllFilters();
|
|
3936
4095
|
}
|
|
3937
4096
|
});
|
|
3938
4097
|
watch(
|
|
@@ -4032,6 +4191,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4032
4191
|
}
|
|
4033
4192
|
selectAll(false);
|
|
4034
4193
|
filterRows();
|
|
4194
|
+
updateHasAnyActiveFilter();
|
|
4035
4195
|
};
|
|
4036
4196
|
watch(() => props.rows, changeRows);
|
|
4037
4197
|
const setPageSize = (pagesize) => {
|
|
@@ -4097,6 +4257,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4097
4257
|
};
|
|
4098
4258
|
const filterChange = () => {
|
|
4099
4259
|
selectAll(false);
|
|
4260
|
+
updateHasAnyActiveFilter();
|
|
4100
4261
|
if (props.isServerMode) {
|
|
4101
4262
|
if (currentPage.value === 1) {
|
|
4102
4263
|
changeForServer("filter", true);
|
|
@@ -4259,6 +4420,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4259
4420
|
expandedrows.value.set(key, false);
|
|
4260
4421
|
});
|
|
4261
4422
|
};
|
|
4423
|
+
const clearAllFilters = () => {
|
|
4424
|
+
for (const col of props.columns) {
|
|
4425
|
+
if (col.filter) {
|
|
4426
|
+
col.value = "";
|
|
4427
|
+
col.condition = "";
|
|
4428
|
+
}
|
|
4429
|
+
}
|
|
4430
|
+
updateHasAnyActiveFilter();
|
|
4431
|
+
filterChange();
|
|
4432
|
+
emit("clearAllFilters");
|
|
4433
|
+
};
|
|
4262
4434
|
let extracolumnlength = 0;
|
|
4263
4435
|
if (props.hasCheckbox) {
|
|
4264
4436
|
extracolumnlength++;
|
|
@@ -4420,11 +4592,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4420
4592
|
checkAll: selectedAll.value,
|
|
4421
4593
|
columnFilterLang: props.columnFilterLang,
|
|
4422
4594
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4595
|
+
showClearAllButton: props.showClearAllButton,
|
|
4596
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4423
4597
|
onSelectAll: selectAll,
|
|
4424
4598
|
onSortChange: sortChange,
|
|
4425
4599
|
onFilterChange: filterChange,
|
|
4426
4600
|
onToggleFilterMenu: toggleFilterMenu,
|
|
4427
|
-
onClearColumnFilter: clearColumnFilter
|
|
4601
|
+
onClearColumnFilter: clearColumnFilter,
|
|
4602
|
+
onClearAllFilters: clearAllFilters
|
|
4428
4603
|
}, createSlots({ _: 2 }, [
|
|
4429
4604
|
hasFilterDatetimeSlot.value ? {
|
|
4430
4605
|
name: "filter-datetime",
|
|
@@ -4433,7 +4608,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4433
4608
|
]),
|
|
4434
4609
|
key: "0"
|
|
4435
4610
|
} : void 0
|
|
4436
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot"])
|
|
4611
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4437
4612
|
], 2),
|
|
4438
4613
|
createElementVNode("tbody", null, [
|
|
4439
4614
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filterItems.value, (item, i) => {
|
|
@@ -4602,10 +4777,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4602
4777
|
isFooter: true,
|
|
4603
4778
|
checkAll: selectedAll.value,
|
|
4604
4779
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4780
|
+
showClearAllButton: props.showClearAllButton,
|
|
4781
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4605
4782
|
onSelectAll: selectAll,
|
|
4606
4783
|
onSortChange: sortChange,
|
|
4607
4784
|
onFilterChange: filterChange,
|
|
4608
|
-
onToggleFilterMenu: toggleFilterMenu
|
|
4785
|
+
onToggleFilterMenu: toggleFilterMenu,
|
|
4786
|
+
onClearAllFilters: clearAllFilters
|
|
4609
4787
|
}, createSlots({ _: 2 }, [
|
|
4610
4788
|
hasFilterDatetimeSlot.value ? {
|
|
4611
4789
|
name: "filter-datetime",
|
|
@@ -4614,7 +4792,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4614
4792
|
]),
|
|
4615
4793
|
key: "0"
|
|
4616
4794
|
} : void 0
|
|
4617
|
-
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot"])
|
|
4795
|
+
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4618
4796
|
], 2)) : createCommentVNode("", true)
|
|
4619
4797
|
], 2),
|
|
4620
4798
|
currentLoader.value && _ctx.enableloadinganimation ? (openBlock(), createElementBlock("div", {
|
|
@@ -4686,11 +4864,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4686
4864
|
checkAll: selectedAll.value,
|
|
4687
4865
|
columnFilterLang: props.columnFilterLang,
|
|
4688
4866
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4867
|
+
showClearAllButton: props.showClearAllButton,
|
|
4868
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4689
4869
|
onSelectAll: selectAll,
|
|
4690
4870
|
onSortChange: sortChange,
|
|
4691
4871
|
onFilterChange: filterChange,
|
|
4692
4872
|
onToggleFilterMenu: toggleFilterMenu,
|
|
4693
|
-
onClearColumnFilter: clearColumnFilter
|
|
4873
|
+
onClearColumnFilter: clearColumnFilter,
|
|
4874
|
+
onClearAllFilters: clearAllFilters
|
|
4694
4875
|
}, createSlots({ _: 2 }, [
|
|
4695
4876
|
hasFilterDatetimeSlot.value ? {
|
|
4696
4877
|
name: "filter-datetime",
|
|
@@ -4699,7 +4880,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4699
4880
|
]),
|
|
4700
4881
|
key: "0"
|
|
4701
4882
|
} : void 0
|
|
4702
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot"])
|
|
4883
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4703
4884
|
], 2),
|
|
4704
4885
|
createElementVNode("tbody", null, [
|
|
4705
4886
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filterItems.value, (item, i) => {
|
|
@@ -4877,10 +5058,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4877
5058
|
isFooter: true,
|
|
4878
5059
|
checkAll: selectedAll.value,
|
|
4879
5060
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
5061
|
+
showClearAllButton: props.showClearAllButton,
|
|
5062
|
+
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4880
5063
|
onSelectAll: selectAll,
|
|
4881
5064
|
onSortChange: sortChange,
|
|
4882
5065
|
onFilterChange: filterChange,
|
|
4883
|
-
onToggleFilterMenu: toggleFilterMenu
|
|
5066
|
+
onToggleFilterMenu: toggleFilterMenu,
|
|
5067
|
+
onClearAllFilters: clearAllFilters
|
|
4884
5068
|
}, createSlots({ _: 2 }, [
|
|
4885
5069
|
hasFilterDatetimeSlot.value ? {
|
|
4886
5070
|
name: "filter-datetime",
|
|
@@ -4889,7 +5073,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4889
5073
|
]),
|
|
4890
5074
|
key: "0"
|
|
4891
5075
|
} : void 0
|
|
4892
|
-
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot"])
|
|
5076
|
+
]), 1032, ["currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4893
5077
|
], 2)) : createCommentVNode("", true)
|
|
4894
5078
|
], 2),
|
|
4895
5079
|
currentLoader.value && _ctx.enableloadinganimation ? (openBlock(), createElementBlock("div", {
|