@dolusoft/vue3-datatable 1.8.31 → 1.8.35
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 +62 -15
- package/dist/vue3-datatable.css +42 -0
- package/dist/vue3-datatable.js +62 -15
- package/package.json +1 -1
package/dist/vue3-datatable.cjs
CHANGED
|
@@ -2891,6 +2891,28 @@ function _sfc_render(_ctx, _cache) {
|
|
|
2891
2891
|
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$2, _hoisted_3$2);
|
|
2892
2892
|
}
|
|
2893
2893
|
const iconFilter = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]);
|
|
2894
|
+
const tooltipDirective = {
|
|
2895
|
+
mounted(el, binding) {
|
|
2896
|
+
const text = binding.value || "";
|
|
2897
|
+
if (!text) return;
|
|
2898
|
+
el.setAttribute("data-tooltip", text);
|
|
2899
|
+
el.classList.add("has-tooltip");
|
|
2900
|
+
},
|
|
2901
|
+
updated(el, binding) {
|
|
2902
|
+
const text = binding.value || "";
|
|
2903
|
+
if (text) {
|
|
2904
|
+
el.setAttribute("data-tooltip", text);
|
|
2905
|
+
el.classList.add("has-tooltip");
|
|
2906
|
+
} else {
|
|
2907
|
+
el.removeAttribute("data-tooltip");
|
|
2908
|
+
el.classList.remove("has-tooltip");
|
|
2909
|
+
}
|
|
2910
|
+
},
|
|
2911
|
+
unmounted(el) {
|
|
2912
|
+
el.removeAttribute("data-tooltip");
|
|
2913
|
+
el.classList.remove("has-tooltip");
|
|
2914
|
+
}
|
|
2915
|
+
};
|
|
2894
2916
|
const _hoisted_1$1 = { key: "hdrrow" };
|
|
2895
2917
|
const _hoisted_2$1 = { class: "bh-checkbox" };
|
|
2896
2918
|
const _hoisted_3$1 = {
|
|
@@ -3043,7 +3065,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3043
3065
|
"columnFilterLang",
|
|
3044
3066
|
"hasFilterDatetimeSlot",
|
|
3045
3067
|
"showClearAllButton",
|
|
3046
|
-
"hasAnyActiveFilter"
|
|
3068
|
+
"hasAnyActiveFilter",
|
|
3069
|
+
"filterUpdateTrigger"
|
|
3047
3070
|
],
|
|
3048
3071
|
emits: [
|
|
3049
3072
|
"selectAll",
|
|
@@ -3193,6 +3216,23 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3193
3216
|
},
|
|
3194
3217
|
{ deep: true, immediate: true }
|
|
3195
3218
|
);
|
|
3219
|
+
vue.watch(
|
|
3220
|
+
() => props.filterUpdateTrigger,
|
|
3221
|
+
() => {
|
|
3222
|
+
var _a;
|
|
3223
|
+
if (!((_a = props.all) == null ? void 0 : _a.columns)) return;
|
|
3224
|
+
props.all.columns.forEach((col) => {
|
|
3225
|
+
if (col.field) {
|
|
3226
|
+
const colValue = col.value ?? "";
|
|
3227
|
+
const hasValue = colValue !== "" && colValue !== null && colValue !== void 0;
|
|
3228
|
+
filterInputs.value[col.field] = colValue;
|
|
3229
|
+
if (hasValue && col.condition) {
|
|
3230
|
+
columnConditions.value[col.field] = col.condition;
|
|
3231
|
+
}
|
|
3232
|
+
}
|
|
3233
|
+
});
|
|
3234
|
+
}
|
|
3235
|
+
);
|
|
3196
3236
|
vue.onMounted(() => {
|
|
3197
3237
|
setupColumnWatches();
|
|
3198
3238
|
});
|
|
@@ -3279,16 +3319,17 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3279
3319
|
])
|
|
3280
3320
|
]),
|
|
3281
3321
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "checkbox" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, [
|
|
3282
|
-
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3322
|
+
props.showClearAllButton ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
|
|
3283
3323
|
key: 0,
|
|
3284
3324
|
type: "button",
|
|
3285
3325
|
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3286
3326
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3287
3327
|
}]),
|
|
3288
3328
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3289
|
-
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3290
|
-
|
|
3291
|
-
|
|
3329
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3330
|
+
}, _hoisted_6$1, 10, _hoisted_4$1)), [
|
|
3331
|
+
[vue.unref(tooltipDirective), "Clear all filters"]
|
|
3332
|
+
]) : vue.createCommentVNode("", true)
|
|
3292
3333
|
])) : vue.createCommentVNode("", true)
|
|
3293
3334
|
], 6)) : vue.createCommentVNode("", true),
|
|
3294
3335
|
props.all.hasRightPanel ? (vue.openBlock(), vue.createElementBlock("th", {
|
|
@@ -3304,16 +3345,17 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3304
3345
|
})
|
|
3305
3346
|
}, [
|
|
3306
3347
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "rightpanel" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$1, [
|
|
3307
|
-
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3348
|
+
props.showClearAllButton ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
|
|
3308
3349
|
key: 0,
|
|
3309
3350
|
type: "button",
|
|
3310
3351
|
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3311
3352
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3312
3353
|
}]),
|
|
3313
3354
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3314
|
-
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3315
|
-
|
|
3316
|
-
|
|
3355
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3356
|
+
}, _hoisted_10$1, 10, _hoisted_8$1)), [
|
|
3357
|
+
[vue.unref(tooltipDirective), "Clear all filters"]
|
|
3358
|
+
]) : vue.createCommentVNode("", true)
|
|
3317
3359
|
])) : vue.createCommentVNode("", true)
|
|
3318
3360
|
], 6)) : vue.createCommentVNode("", true),
|
|
3319
3361
|
props.all.hasSubtable ? (vue.openBlock(), vue.createElementBlock("th", {
|
|
@@ -3329,16 +3371,17 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3329
3371
|
expandall: props.all.expandall
|
|
3330
3372
|
}, null, 8, ["expandedrows", "expandall"])) : vue.createCommentVNode("", true),
|
|
3331
3373
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "subtable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [
|
|
3332
|
-
props.showClearAllButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3374
|
+
props.showClearAllButton ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
|
|
3333
3375
|
key: 0,
|
|
3334
3376
|
type: "button",
|
|
3335
3377
|
class: vue.normalizeClass(["bh-clear-all-button", {
|
|
3336
3378
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3337
3379
|
}]),
|
|
3338
3380
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3339
|
-
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3340
|
-
|
|
3341
|
-
|
|
3381
|
+
onClick: vue.withModifiers(handleClearAllFilters, ["stop"])
|
|
3382
|
+
}, _hoisted_14$1, 10, _hoisted_12$1)), [
|
|
3383
|
+
[vue.unref(tooltipDirective), "Clear all filters"]
|
|
3384
|
+
]) : vue.createCommentVNode("", true)
|
|
3342
3385
|
])) : vue.createCommentVNode("", true)
|
|
3343
3386
|
], 4)) : vue.createCommentVNode("", true),
|
|
3344
3387
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.all.columns, (col, j) => {
|
|
@@ -3826,6 +3869,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3826
3869
|
const currentSearch = vue.ref(props.search);
|
|
3827
3870
|
JSON.parse(JSON.stringify(props.columns));
|
|
3828
3871
|
const isOpenFilter = vue.ref(null);
|
|
3872
|
+
const filterUpdateTrigger = vue.ref(0);
|
|
3829
3873
|
const timer = vue.ref(null);
|
|
3830
3874
|
let clickCount = vue.ref(0);
|
|
3831
3875
|
const delay = vue.ref(230);
|
|
@@ -4151,6 +4195,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4151
4195
|
if (column) {
|
|
4152
4196
|
column.value = value;
|
|
4153
4197
|
column.condition = condition || "Equal";
|
|
4198
|
+
filterUpdateTrigger.value++;
|
|
4154
4199
|
updateHasAnyActiveFilter();
|
|
4155
4200
|
if (triggerFilter) {
|
|
4156
4201
|
filterChange();
|
|
@@ -4660,6 +4705,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4660
4705
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4661
4706
|
showClearAllButton: props.showClearAllButton,
|
|
4662
4707
|
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4708
|
+
filterUpdateTrigger: filterUpdateTrigger.value,
|
|
4663
4709
|
onSelectAll: selectAll,
|
|
4664
4710
|
onSortChange: sortChange,
|
|
4665
4711
|
onFilterChange: filterChange,
|
|
@@ -4674,7 +4720,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4674
4720
|
]),
|
|
4675
4721
|
key: "0"
|
|
4676
4722
|
} : void 0
|
|
4677
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4723
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter", "filterUpdateTrigger"])
|
|
4678
4724
|
], 2),
|
|
4679
4725
|
vue.createElementVNode("tbody", null, [
|
|
4680
4726
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterItems.value, (item, i) => {
|
|
@@ -4933,6 +4979,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4933
4979
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4934
4980
|
showClearAllButton: props.showClearAllButton,
|
|
4935
4981
|
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4982
|
+
filterUpdateTrigger: filterUpdateTrigger.value,
|
|
4936
4983
|
onSelectAll: selectAll,
|
|
4937
4984
|
onSortChange: sortChange,
|
|
4938
4985
|
onFilterChange: filterChange,
|
|
@@ -4947,7 +4994,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
4947
4994
|
]),
|
|
4948
4995
|
key: "0"
|
|
4949
4996
|
} : void 0
|
|
4950
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4997
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter", "filterUpdateTrigger"])
|
|
4951
4998
|
], 2),
|
|
4952
4999
|
vue.createElementVNode("tbody", null, [
|
|
4953
5000
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterItems.value, (item, i) => {
|
package/dist/vue3-datatable.css
CHANGED
|
@@ -89,3 +89,45 @@
|
|
|
89
89
|
border-color: var(--primary, #3b82f6);
|
|
90
90
|
color: var(--primary, #3b82f6);
|
|
91
91
|
}
|
|
92
|
+
|
|
93
|
+
/* Tooltip styles */
|
|
94
|
+
.has-tooltip {
|
|
95
|
+
position: relative;
|
|
96
|
+
}
|
|
97
|
+
.has-tooltip::before,
|
|
98
|
+
.has-tooltip::after {
|
|
99
|
+
visibility: hidden;
|
|
100
|
+
opacity: 0;
|
|
101
|
+
pointer-events: none;
|
|
102
|
+
transition: opacity 0.2s ease, visibility 0.2s ease;
|
|
103
|
+
z-index: 9999;
|
|
104
|
+
}
|
|
105
|
+
.has-tooltip::before {
|
|
106
|
+
content: attr(data-tooltip);
|
|
107
|
+
position: absolute;
|
|
108
|
+
bottom: calc(100% + 6px);
|
|
109
|
+
left: 50%;
|
|
110
|
+
transform: translateX(-50%);
|
|
111
|
+
padding: 4px 8px;
|
|
112
|
+
background: #1f2937;
|
|
113
|
+
color: #fff;
|
|
114
|
+
font-size: 12px;
|
|
115
|
+
font-weight: 500;
|
|
116
|
+
white-space: nowrap;
|
|
117
|
+
border-radius: 4px;
|
|
118
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
119
|
+
}
|
|
120
|
+
.has-tooltip::after {
|
|
121
|
+
content: '';
|
|
122
|
+
position: absolute;
|
|
123
|
+
bottom: calc(100% + 2px);
|
|
124
|
+
left: 50%;
|
|
125
|
+
transform: translateX(-50%);
|
|
126
|
+
border: 4px solid transparent;
|
|
127
|
+
border-top-color: #1f2937;
|
|
128
|
+
}
|
|
129
|
+
.has-tooltip:hover::before,
|
|
130
|
+
.has-tooltip:hover::after {
|
|
131
|
+
visibility: visible;
|
|
132
|
+
opacity: 1;
|
|
133
|
+
}
|
package/dist/vue3-datatable.js
CHANGED
|
@@ -2890,6 +2890,28 @@ function _sfc_render(_ctx, _cache) {
|
|
|
2890
2890
|
return openBlock(), createElementBlock("svg", _hoisted_1$2, _hoisted_3$2);
|
|
2891
2891
|
}
|
|
2892
2892
|
const iconFilter = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]);
|
|
2893
|
+
const tooltipDirective = {
|
|
2894
|
+
mounted(el, binding) {
|
|
2895
|
+
const text = binding.value || "";
|
|
2896
|
+
if (!text) return;
|
|
2897
|
+
el.setAttribute("data-tooltip", text);
|
|
2898
|
+
el.classList.add("has-tooltip");
|
|
2899
|
+
},
|
|
2900
|
+
updated(el, binding) {
|
|
2901
|
+
const text = binding.value || "";
|
|
2902
|
+
if (text) {
|
|
2903
|
+
el.setAttribute("data-tooltip", text);
|
|
2904
|
+
el.classList.add("has-tooltip");
|
|
2905
|
+
} else {
|
|
2906
|
+
el.removeAttribute("data-tooltip");
|
|
2907
|
+
el.classList.remove("has-tooltip");
|
|
2908
|
+
}
|
|
2909
|
+
},
|
|
2910
|
+
unmounted(el) {
|
|
2911
|
+
el.removeAttribute("data-tooltip");
|
|
2912
|
+
el.classList.remove("has-tooltip");
|
|
2913
|
+
}
|
|
2914
|
+
};
|
|
2893
2915
|
const _hoisted_1$1 = { key: "hdrrow" };
|
|
2894
2916
|
const _hoisted_2$1 = { class: "bh-checkbox" };
|
|
2895
2917
|
const _hoisted_3$1 = {
|
|
@@ -3042,7 +3064,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3042
3064
|
"columnFilterLang",
|
|
3043
3065
|
"hasFilterDatetimeSlot",
|
|
3044
3066
|
"showClearAllButton",
|
|
3045
|
-
"hasAnyActiveFilter"
|
|
3067
|
+
"hasAnyActiveFilter",
|
|
3068
|
+
"filterUpdateTrigger"
|
|
3046
3069
|
],
|
|
3047
3070
|
emits: [
|
|
3048
3071
|
"selectAll",
|
|
@@ -3192,6 +3215,23 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3192
3215
|
},
|
|
3193
3216
|
{ deep: true, immediate: true }
|
|
3194
3217
|
);
|
|
3218
|
+
watch(
|
|
3219
|
+
() => props.filterUpdateTrigger,
|
|
3220
|
+
() => {
|
|
3221
|
+
var _a;
|
|
3222
|
+
if (!((_a = props.all) == null ? void 0 : _a.columns)) return;
|
|
3223
|
+
props.all.columns.forEach((col) => {
|
|
3224
|
+
if (col.field) {
|
|
3225
|
+
const colValue = col.value ?? "";
|
|
3226
|
+
const hasValue = colValue !== "" && colValue !== null && colValue !== void 0;
|
|
3227
|
+
filterInputs.value[col.field] = colValue;
|
|
3228
|
+
if (hasValue && col.condition) {
|
|
3229
|
+
columnConditions.value[col.field] = col.condition;
|
|
3230
|
+
}
|
|
3231
|
+
}
|
|
3232
|
+
});
|
|
3233
|
+
}
|
|
3234
|
+
);
|
|
3195
3235
|
onMounted(() => {
|
|
3196
3236
|
setupColumnWatches();
|
|
3197
3237
|
});
|
|
@@ -3278,16 +3318,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3278
3318
|
])
|
|
3279
3319
|
]),
|
|
3280
3320
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "checkbox" ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
|
|
3281
|
-
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3321
|
+
props.showClearAllButton ? withDirectives((openBlock(), createElementBlock("button", {
|
|
3282
3322
|
key: 0,
|
|
3283
3323
|
type: "button",
|
|
3284
3324
|
class: normalizeClass(["bh-clear-all-button", {
|
|
3285
3325
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3286
3326
|
}]),
|
|
3287
3327
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3288
|
-
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3289
|
-
|
|
3290
|
-
|
|
3328
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3329
|
+
}, _hoisted_6$1, 10, _hoisted_4$1)), [
|
|
3330
|
+
[unref(tooltipDirective), "Clear all filters"]
|
|
3331
|
+
]) : createCommentVNode("", true)
|
|
3291
3332
|
])) : createCommentVNode("", true)
|
|
3292
3333
|
], 6)) : createCommentVNode("", true),
|
|
3293
3334
|
props.all.hasRightPanel ? (openBlock(), createElementBlock("th", {
|
|
@@ -3303,16 +3344,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3303
3344
|
})
|
|
3304
3345
|
}, [
|
|
3305
3346
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "rightpanel" ? (openBlock(), createElementBlock("div", _hoisted_7$1, [
|
|
3306
|
-
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3347
|
+
props.showClearAllButton ? withDirectives((openBlock(), createElementBlock("button", {
|
|
3307
3348
|
key: 0,
|
|
3308
3349
|
type: "button",
|
|
3309
3350
|
class: normalizeClass(["bh-clear-all-button", {
|
|
3310
3351
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3311
3352
|
}]),
|
|
3312
3353
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3313
|
-
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3314
|
-
|
|
3315
|
-
|
|
3354
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3355
|
+
}, _hoisted_10$1, 10, _hoisted_8$1)), [
|
|
3356
|
+
[unref(tooltipDirective), "Clear all filters"]
|
|
3357
|
+
]) : createCommentVNode("", true)
|
|
3316
3358
|
])) : createCommentVNode("", true)
|
|
3317
3359
|
], 6)) : createCommentVNode("", true),
|
|
3318
3360
|
props.all.hasSubtable ? (openBlock(), createElementBlock("th", {
|
|
@@ -3328,16 +3370,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3328
3370
|
expandall: props.all.expandall
|
|
3329
3371
|
}, null, 8, ["expandedrows", "expandall"])) : createCommentVNode("", true),
|
|
3330
3372
|
props.all.columnFilter && !props.isFooter && clearButtonLocation.value === "subtable" ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
|
|
3331
|
-
props.showClearAllButton ? (openBlock(), createElementBlock("button", {
|
|
3373
|
+
props.showClearAllButton ? withDirectives((openBlock(), createElementBlock("button", {
|
|
3332
3374
|
key: 0,
|
|
3333
3375
|
type: "button",
|
|
3334
3376
|
class: normalizeClass(["bh-clear-all-button", {
|
|
3335
3377
|
"bh-clear-all-button--active": hasAnyActiveFilterLocal.value
|
|
3336
3378
|
}]),
|
|
3337
3379
|
disabled: !hasAnyActiveFilterLocal.value,
|
|
3338
|
-
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3339
|
-
|
|
3340
|
-
|
|
3380
|
+
onClick: withModifiers(handleClearAllFilters, ["stop"])
|
|
3381
|
+
}, _hoisted_14$1, 10, _hoisted_12$1)), [
|
|
3382
|
+
[unref(tooltipDirective), "Clear all filters"]
|
|
3383
|
+
]) : createCommentVNode("", true)
|
|
3341
3384
|
])) : createCommentVNode("", true)
|
|
3342
3385
|
], 4)) : createCommentVNode("", true),
|
|
3343
3386
|
(openBlock(true), createElementBlock(Fragment, null, renderList(props.all.columns, (col, j) => {
|
|
@@ -3825,6 +3868,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3825
3868
|
const currentSearch = ref(props.search);
|
|
3826
3869
|
JSON.parse(JSON.stringify(props.columns));
|
|
3827
3870
|
const isOpenFilter = ref(null);
|
|
3871
|
+
const filterUpdateTrigger = ref(0);
|
|
3828
3872
|
const timer = ref(null);
|
|
3829
3873
|
let clickCount = ref(0);
|
|
3830
3874
|
const delay = ref(230);
|
|
@@ -4150,6 +4194,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4150
4194
|
if (column) {
|
|
4151
4195
|
column.value = value;
|
|
4152
4196
|
column.condition = condition || "Equal";
|
|
4197
|
+
filterUpdateTrigger.value++;
|
|
4153
4198
|
updateHasAnyActiveFilter();
|
|
4154
4199
|
if (triggerFilter) {
|
|
4155
4200
|
filterChange();
|
|
@@ -4659,6 +4704,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4659
4704
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4660
4705
|
showClearAllButton: props.showClearAllButton,
|
|
4661
4706
|
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4707
|
+
filterUpdateTrigger: filterUpdateTrigger.value,
|
|
4662
4708
|
onSelectAll: selectAll,
|
|
4663
4709
|
onSortChange: sortChange,
|
|
4664
4710
|
onFilterChange: filterChange,
|
|
@@ -4673,7 +4719,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4673
4719
|
]),
|
|
4674
4720
|
key: "0"
|
|
4675
4721
|
} : void 0
|
|
4676
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4722
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter", "filterUpdateTrigger"])
|
|
4677
4723
|
], 2),
|
|
4678
4724
|
createElementVNode("tbody", null, [
|
|
4679
4725
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filterItems.value, (item, i) => {
|
|
@@ -4932,6 +4978,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4932
4978
|
hasFilterDatetimeSlot: hasFilterDatetimeSlot.value,
|
|
4933
4979
|
showClearAllButton: props.showClearAllButton,
|
|
4934
4980
|
hasAnyActiveFilter: hasAnyActiveFilter.value,
|
|
4981
|
+
filterUpdateTrigger: filterUpdateTrigger.value,
|
|
4935
4982
|
onSelectAll: selectAll,
|
|
4936
4983
|
onSortChange: sortChange,
|
|
4937
4984
|
onFilterChange: filterChange,
|
|
@@ -4946,7 +4993,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4946
4993
|
]),
|
|
4947
4994
|
key: "0"
|
|
4948
4995
|
} : void 0
|
|
4949
|
-
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter"])
|
|
4996
|
+
]), 1032, ["expandedrows", "currentSortColumn", "currentSortDirection", "isOpenFilter", "checkAll", "columnFilterLang", "hasFilterDatetimeSlot", "showClearAllButton", "hasAnyActiveFilter", "filterUpdateTrigger"])
|
|
4950
4997
|
], 2),
|
|
4951
4998
|
createElementVNode("tbody", null, [
|
|
4952
4999
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filterItems.value, (item, i) => {
|