@dragonmastery/zinia-forms-core 0.5.3 → 0.5.4
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/index.d.ts +1 -0
- package/dist/index.js +24 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2864,6 +2864,7 @@ interface UrlSyncOptions {
|
|
|
2864
2864
|
}
|
|
2865
2865
|
interface DataTable {
|
|
2866
2866
|
setFilter: (field: any, filter: any) => Promise<void>;
|
|
2867
|
+
clearFilter: (field: any) => Promise<void>;
|
|
2867
2868
|
clearAllFilters: () => Promise<void>;
|
|
2868
2869
|
setFiltersFromQueryParams: (params: Record<string, string | string[]>) => Promise<void>;
|
|
2869
2870
|
load: () => Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -8218,6 +8218,14 @@ function getFilterOptions(field, column, fieldsMetadata, filterOptionsState) {
|
|
|
8218
8218
|
}
|
|
8219
8219
|
return [];
|
|
8220
8220
|
}
|
|
8221
|
+
function isBooleanOperator(operator) {
|
|
8222
|
+
if (!operator) return true;
|
|
8223
|
+
return OPERATORS_BY_TYPE.boolean.includes(operator);
|
|
8224
|
+
}
|
|
8225
|
+
function isEnumOperator(operator) {
|
|
8226
|
+
if (!operator) return true;
|
|
8227
|
+
return OPERATORS_BY_TYPE.enum.includes(operator);
|
|
8228
|
+
}
|
|
8221
8229
|
function getSortLabels(field, column, fieldsMetadata) {
|
|
8222
8230
|
if (column?.sortLabels) {
|
|
8223
8231
|
return column.sortLabels;
|
|
@@ -8916,7 +8924,7 @@ var EnumMultiSelectFilter = (props) => {
|
|
|
8916
8924
|
}
|
|
8917
8925
|
) })
|
|
8918
8926
|
] }),
|
|
8919
|
-
/* @__PURE__ */ jsx("div", { class: "text-xs text-base-content/60", children: props.operator ===
|
|
8927
|
+
/* @__PURE__ */ jsx("div", { class: "text-xs text-base-content/60", children: props.operator === OPERATORS.IS_ONE_OF ? "Select one or more values" : "Show rows that do not match these values" })
|
|
8920
8928
|
] });
|
|
8921
8929
|
};
|
|
8922
8930
|
var SelectFilter = (props) => {
|
|
@@ -10180,7 +10188,7 @@ var FilterDrawer = (props) => {
|
|
|
10180
10188
|
isOptionsLoading: filterOptionsLoading?.value?.[field] ?? false,
|
|
10181
10189
|
allOptionText: column.filterAllOptionText,
|
|
10182
10190
|
showAllOption: column.filterShowAllOption,
|
|
10183
|
-
operator: currentFilter?.operator,
|
|
10191
|
+
operator: isEnumOperator(currentFilter?.operator) ? currentFilter?.operator : void 0,
|
|
10184
10192
|
fieldType: convertToDataType(props.fieldsMetadata[field]?.type || "enum"),
|
|
10185
10193
|
onFilterChange: props.onFilterChange,
|
|
10186
10194
|
onClearFilter: props.onClearFilter
|
|
@@ -10220,7 +10228,7 @@ var FilterDrawer = (props) => {
|
|
|
10220
10228
|
isLoading: props.isLoading,
|
|
10221
10229
|
allOptionText: column.filterAllOptionText,
|
|
10222
10230
|
showAllOption: column.filterShowAllOption,
|
|
10223
|
-
operator: currentFilter?.operator,
|
|
10231
|
+
operator: isBooleanOperator(currentFilter?.operator) ? currentFilter?.operator : void 0,
|
|
10224
10232
|
fieldType: convertToDataType(props.fieldsMetadata[field]?.type || "boolean"),
|
|
10225
10233
|
options: getFilterOptions(
|
|
10226
10234
|
field,
|
|
@@ -11933,6 +11941,7 @@ function useDataTableUrlSync(table, router, options = {}) {
|
|
|
11933
11941
|
const { loadOnMount = true } = options;
|
|
11934
11942
|
const isUpdatingFromRoute = ref(false);
|
|
11935
11943
|
const originalSetFilter = table.setFilter.bind(table);
|
|
11944
|
+
const originalClearFilter = table.clearFilter.bind(table);
|
|
11936
11945
|
const originalClearAllFilters = table.clearAllFilters.bind(table);
|
|
11937
11946
|
const extractFilterParams = (query) => {
|
|
11938
11947
|
const filterParams = {};
|
|
@@ -11956,12 +11965,22 @@ function useDataTableUrlSync(table, router, options = {}) {
|
|
|
11956
11965
|
router.push({ query });
|
|
11957
11966
|
};
|
|
11958
11967
|
table.setFilter = async (field, filter) => {
|
|
11959
|
-
|
|
11968
|
+
const filterPromise = originalSetFilter(field, filter);
|
|
11969
|
+
await nextTick();
|
|
11970
|
+
updateUrlFromFilters();
|
|
11971
|
+
await filterPromise;
|
|
11972
|
+
};
|
|
11973
|
+
table.clearFilter = async (field) => {
|
|
11974
|
+
const filterPromise = originalClearFilter(field);
|
|
11975
|
+
await nextTick();
|
|
11960
11976
|
updateUrlFromFilters();
|
|
11977
|
+
await filterPromise;
|
|
11961
11978
|
};
|
|
11962
11979
|
table.clearAllFilters = async () => {
|
|
11963
|
-
|
|
11980
|
+
const filterPromise = originalClearAllFilters();
|
|
11981
|
+
await nextTick();
|
|
11964
11982
|
updateUrlFromFilters();
|
|
11983
|
+
await filterPromise;
|
|
11965
11984
|
};
|
|
11966
11985
|
watch(
|
|
11967
11986
|
() => router.currentRoute.value.query,
|