@toolbox-web/grid-vue 0.10.2 → 0.10.3
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/features/filtering.d.ts +13 -1
- package/features/filtering.d.ts.map +1 -1
- package/features/filtering.js +43 -28
- package/features/filtering.js.map +1 -1
- package/lib/TbwGridColumn.vue.d.ts +2 -6
- package/lib/TbwGridColumn.vue.d.ts.map +1 -1
- package/lib/TbwGridToolPanel.vue.d.ts +2 -6
- package/lib/TbwGridToolPanel.vue.d.ts.map +1 -1
- package/package.json +1 -1
package/features/filtering.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FilterModel } from '@toolbox-web/grid/plugins/filtering';
|
|
1
|
+
import { BlankMode, FilterModel } from '@toolbox-web/grid/plugins/filtering';
|
|
2
2
|
/**
|
|
3
3
|
* Filtering methods returned from useGridFiltering.
|
|
4
4
|
*/
|
|
@@ -41,6 +41,18 @@ export interface FilteringMethods {
|
|
|
41
41
|
* Get unique values for a field (for building filter dropdowns).
|
|
42
42
|
*/
|
|
43
43
|
getUniqueValues: (field: string) => unknown[];
|
|
44
|
+
/**
|
|
45
|
+
* Get set filters whose values no longer match any rows in the current data.
|
|
46
|
+
*/
|
|
47
|
+
getStaleFilters: () => FilterModel[];
|
|
48
|
+
/**
|
|
49
|
+
* Get the current blank mode for a field.
|
|
50
|
+
*/
|
|
51
|
+
getBlankMode: (field: string) => BlankMode;
|
|
52
|
+
/**
|
|
53
|
+
* Toggle blank filter mode for a field.
|
|
54
|
+
*/
|
|
55
|
+
toggleBlankFilter: (field: string, mode: BlankMode) => void;
|
|
44
56
|
}
|
|
45
57
|
/**
|
|
46
58
|
* Composable for programmatic filter control.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/features/filtering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/features/filtering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,WAAW,EAEjB,MAAM,qCAAqC,CAAC;AAqC7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAE9E;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAEtD;;OAEG;IACH,UAAU,EAAE,MAAM,WAAW,EAAE,CAAC;IAEhC;;OAEG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAE5C;;OAEG;IACH,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAElC;;OAEG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;IAE9C;;OAEG;IACH,eAAe,EAAE,MAAM,WAAW,EAAE,CAAC;IAErC;;OAEG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAwFnD"}
|
package/features/filtering.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { FilteringPlugin as
|
|
2
|
-
import { inject as
|
|
1
|
+
import { FilteringPlugin as g } from "@toolbox-web/grid/plugins/filtering";
|
|
2
|
+
import { inject as d, ref as u, createApp as f } from "vue";
|
|
3
3
|
import { registerFeature as s } from "@toolbox-web/grid/features/registry";
|
|
4
4
|
import { G as a } from "../chunks/use-grid-B59B6XdD.js";
|
|
5
5
|
s("filtering", (r) => {
|
|
6
6
|
if (r === !0)
|
|
7
|
-
return new
|
|
7
|
+
return new g();
|
|
8
8
|
if (!r)
|
|
9
|
-
return new
|
|
10
|
-
const
|
|
11
|
-
if (typeof
|
|
12
|
-
const
|
|
13
|
-
e.filterPanelRenderer = (n,
|
|
9
|
+
return new g();
|
|
10
|
+
const t = r, e = { ...t };
|
|
11
|
+
if (typeof t.filterPanelRenderer == "function" && t.filterPanelRenderer.length <= 1) {
|
|
12
|
+
const i = t.filterPanelRenderer;
|
|
13
|
+
e.filterPanelRenderer = (n, o) => {
|
|
14
14
|
const l = document.createElement("div");
|
|
15
15
|
l.style.display = "contents", f({
|
|
16
16
|
render() {
|
|
17
|
-
return
|
|
17
|
+
return i(o);
|
|
18
18
|
}
|
|
19
19
|
}).mount(l), n.appendChild(l);
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
return new
|
|
22
|
+
return new g(e);
|
|
23
23
|
});
|
|
24
|
-
function
|
|
25
|
-
const r =
|
|
24
|
+
function m() {
|
|
25
|
+
const r = d(a, u(null)), t = () => r.value?.getPluginByName("filtering");
|
|
26
26
|
return {
|
|
27
|
-
setFilter: (e,
|
|
28
|
-
const n =
|
|
27
|
+
setFilter: (e, i) => {
|
|
28
|
+
const n = t();
|
|
29
29
|
if (!n) {
|
|
30
30
|
console.warn(
|
|
31
31
|
`[tbw-grid:filtering] FilteringPlugin not found.
|
|
@@ -35,13 +35,13 @@ function b() {
|
|
|
35
35
|
);
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
|
-
n.setFilter(e,
|
|
38
|
+
n.setFilter(e, i);
|
|
39
39
|
},
|
|
40
|
-
getFilter: (e) =>
|
|
41
|
-
getFilters: () =>
|
|
40
|
+
getFilter: (e) => t()?.getFilter(e),
|
|
41
|
+
getFilters: () => t()?.getFilters() ?? [],
|
|
42
42
|
setFilterModel: (e) => {
|
|
43
|
-
const
|
|
44
|
-
if (!
|
|
43
|
+
const i = t();
|
|
44
|
+
if (!i) {
|
|
45
45
|
console.warn(
|
|
46
46
|
`[tbw-grid:filtering] FilteringPlugin not found.
|
|
47
47
|
|
|
@@ -50,10 +50,10 @@ function b() {
|
|
|
50
50
|
);
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
i.setFilterModel(e);
|
|
54
54
|
},
|
|
55
55
|
clearAllFilters: () => {
|
|
56
|
-
const e =
|
|
56
|
+
const e = t();
|
|
57
57
|
if (!e) {
|
|
58
58
|
console.warn(
|
|
59
59
|
`[tbw-grid:filtering] FilteringPlugin not found.
|
|
@@ -66,8 +66,8 @@ function b() {
|
|
|
66
66
|
e.clearAllFilters();
|
|
67
67
|
},
|
|
68
68
|
clearFieldFilter: (e) => {
|
|
69
|
-
const
|
|
70
|
-
if (!
|
|
69
|
+
const i = t();
|
|
70
|
+
if (!i) {
|
|
71
71
|
console.warn(
|
|
72
72
|
`[tbw-grid:filtering] FilteringPlugin not found.
|
|
73
73
|
|
|
@@ -76,14 +76,29 @@ function b() {
|
|
|
76
76
|
);
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
i.clearFieldFilter(e);
|
|
80
80
|
},
|
|
81
|
-
isFieldFiltered: (e) =>
|
|
82
|
-
getFilteredRowCount: () =>
|
|
83
|
-
getUniqueValues: (e) =>
|
|
81
|
+
isFieldFiltered: (e) => t()?.isFieldFiltered(e) ?? !1,
|
|
82
|
+
getFilteredRowCount: () => t()?.getFilteredRowCount() ?? 0,
|
|
83
|
+
getUniqueValues: (e) => t()?.getUniqueValues(e) ?? [],
|
|
84
|
+
getStaleFilters: () => t()?.getStaleFilters() ?? [],
|
|
85
|
+
getBlankMode: (e) => t()?.getBlankMode(e) ?? "all",
|
|
86
|
+
toggleBlankFilter: (e, i) => {
|
|
87
|
+
const n = t();
|
|
88
|
+
if (!n) {
|
|
89
|
+
console.warn(
|
|
90
|
+
`[tbw-grid:filtering] FilteringPlugin not found.
|
|
91
|
+
|
|
92
|
+
→ Enable filtering on the grid:
|
|
93
|
+
<TbwGrid filtering />`
|
|
94
|
+
);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
n.toggleBlankFilter(e, i);
|
|
98
|
+
}
|
|
84
99
|
};
|
|
85
100
|
}
|
|
86
101
|
export {
|
|
87
|
-
|
|
102
|
+
m as useGridFiltering
|
|
88
103
|
};
|
|
89
104
|
//# sourceMappingURL=filtering.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtering.js","sources":["../../../../libs/grid-vue/src/features/filtering.ts"],"sourcesContent":["/**\n * Filtering feature for @toolbox-web/grid-vue\n *\n * Import this module to enable the `filtering` prop on TbwGrid.\n * Also exports `useGridFiltering()` composable for programmatic filter control.\n *\n * @example\n * ```vue\n * <script setup>\n * import '@toolbox-web/grid-vue/features/filtering';\n * </script>\n *\n * <template>\n * <TbwGrid filtering />\n * </template>\n * ```\n *\n * @example Using the composable\n * ```vue\n * <script setup>\n * import { useGridFiltering } from '@toolbox-web/grid-vue/features/filtering';\n *\n * const { setFilter, clearAllFilters, getFilteredRowCount } = useGridFiltering();\n *\n * function filterByStatus(status: string) {\n * setFilter('status', { operator: 'equals', value: status });\n * }\n * </script>\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { DataGridElement } from '@toolbox-web/grid';\nimport {\n FilteringPlugin,\n type FilterConfig,\n type FilterModel,\n type FilterPanelParams,\n} from '@toolbox-web/grid/plugins/filtering';\nimport { createApp, inject, ref, type VNode } from 'vue';\nimport { registerFeature } from '../lib/feature-registry';\nimport { GRID_ELEMENT_KEY } from '../lib/use-grid';\n\nregisterFeature('filtering', (rawConfig) => {\n if (rawConfig === true) {\n return new FilteringPlugin();\n }\n if (!rawConfig) {\n return new FilteringPlugin();\n }\n\n const config = rawConfig as FilterConfig & { filterPanelRenderer?: unknown };\n const options = { ...config } as FilterConfig;\n\n // Bridge Vue filterPanelRenderer (1 arg: params → VNode) to vanilla (2 args: container, params)\n if (typeof config.filterPanelRenderer === 'function' && config.filterPanelRenderer.length <= 1) {\n const vueFn = config.filterPanelRenderer as unknown as (params: FilterPanelParams) => VNode;\n options.filterPanelRenderer = (container: HTMLElement, params: FilterPanelParams) => {\n const wrapper = document.createElement('div');\n wrapper.style.display = 'contents';\n\n const app = createApp({\n render() {\n return vueFn(params);\n },\n });\n\n app.mount(wrapper);\n container.appendChild(wrapper);\n };\n }\n\n return new FilteringPlugin(options);\n});\n\n/**\n * Filtering methods returned from useGridFiltering.\n */\nexport interface FilteringMethods {\n /**\n * Set a filter on a specific field.\n * @param field - The field name to filter\n * @param filter - Filter configuration, or null to remove\n */\n setFilter: (field: string, filter: Omit<FilterModel, 'field'> | null) => void;\n\n /**\n * Get the current filter for a field.\n */\n getFilter: (field: string) => FilterModel | undefined;\n\n /**\n * Get all active filters.\n */\n getFilters: () => FilterModel[];\n\n /**\n * Set all filters at once (replaces existing).\n */\n setFilterModel: (filters: FilterModel[]) => void;\n\n /**\n * Clear all active filters.\n */\n clearAllFilters: () => void;\n\n /**\n * Clear filter for a specific field.\n */\n clearFieldFilter: (field: string) => void;\n\n /**\n * Check if a field has an active filter.\n */\n isFieldFiltered: (field: string) => boolean;\n\n /**\n * Get the count of rows after filtering.\n */\n getFilteredRowCount: () => number;\n\n /**\n * Get unique values for a field (for building filter dropdowns).\n */\n getUniqueValues: (field: string) => unknown[];\n}\n\n/**\n * Composable for programmatic filter control.\n *\n * Must be used within a component that contains a TbwGrid with filtering enabled.\n *\n * @example\n * ```vue\n * <script setup>\n * import { useGridFiltering } from '@toolbox-web/grid-vue/features/filtering';\n *\n * const { setFilter, clearAllFilters, getFilteredRowCount, isFieldFiltered } = useGridFiltering();\n *\n * function applyQuickFilter(field: string, value: string) {\n * setFilter(field, { operator: 'contains', value });\n * }\n * </script>\n *\n * <template>\n * <input @input=\"applyQuickFilter('name', $event.target.value)\" placeholder=\"Filter by name...\" />\n * <span>{{ getFilteredRowCount() }} results</span>\n * <button @click=\"clearAllFilters\">Clear Filters</button>\n * </template>\n * ```\n */\nexport function useGridFiltering(): FilteringMethods {\n const gridElement = inject(GRID_ELEMENT_KEY, ref(null));\n\n const getPlugin = (): FilteringPlugin | undefined => {\n const grid = gridElement.value as DataGridElement | null;\n return grid?.getPluginByName('filtering');\n };\n\n return {\n setFilter: (field: string, filter: Omit<FilterModel, 'field'> | null) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.setFilter(field, filter);\n },\n\n getFilter: (field: string) => getPlugin()?.getFilter(field),\n\n getFilters: () => getPlugin()?.getFilters() ?? [],\n\n setFilterModel: (filters: FilterModel[]) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.setFilterModel(filters);\n },\n\n clearAllFilters: () => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.clearAllFilters();\n },\n\n clearFieldFilter: (field: string) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.clearFieldFilter(field);\n },\n\n isFieldFiltered: (field: string) => getPlugin()?.isFieldFiltered(field) ?? false,\n\n getFilteredRowCount: () => getPlugin()?.getFilteredRowCount() ?? 0,\n\n getUniqueValues: (field: string) => getPlugin()?.getUniqueValues(field) ?? [],\n };\n}\n"],"names":["registerFeature","rawConfig","FilteringPlugin","config","options","vueFn","container","params","wrapper","createApp","useGridFiltering","gridElement","inject","GRID_ELEMENT_KEY","ref","getPlugin","field","filter","plugin","filters"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"filtering.js","sources":["../../../../libs/grid-vue/src/features/filtering.ts"],"sourcesContent":["/**\n * Filtering feature for @toolbox-web/grid-vue\n *\n * Import this module to enable the `filtering` prop on TbwGrid.\n * Also exports `useGridFiltering()` composable for programmatic filter control.\n *\n * @example\n * ```vue\n * <script setup>\n * import '@toolbox-web/grid-vue/features/filtering';\n * </script>\n *\n * <template>\n * <TbwGrid filtering />\n * </template>\n * ```\n *\n * @example Using the composable\n * ```vue\n * <script setup>\n * import { useGridFiltering } from '@toolbox-web/grid-vue/features/filtering';\n *\n * const { setFilter, clearAllFilters, getFilteredRowCount } = useGridFiltering();\n *\n * function filterByStatus(status: string) {\n * setFilter('status', { operator: 'equals', value: status });\n * }\n * </script>\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { DataGridElement } from '@toolbox-web/grid';\nimport {\n FilteringPlugin,\n type BlankMode,\n type FilterConfig,\n type FilterModel,\n type FilterPanelParams,\n} from '@toolbox-web/grid/plugins/filtering';\nimport { createApp, inject, ref, type VNode } from 'vue';\nimport { registerFeature } from '../lib/feature-registry';\nimport { GRID_ELEMENT_KEY } from '../lib/use-grid';\n\nregisterFeature('filtering', (rawConfig) => {\n if (rawConfig === true) {\n return new FilteringPlugin();\n }\n if (!rawConfig) {\n return new FilteringPlugin();\n }\n\n const config = rawConfig as FilterConfig & { filterPanelRenderer?: unknown };\n const options = { ...config } as FilterConfig;\n\n // Bridge Vue filterPanelRenderer (1 arg: params → VNode) to vanilla (2 args: container, params)\n if (typeof config.filterPanelRenderer === 'function' && config.filterPanelRenderer.length <= 1) {\n const vueFn = config.filterPanelRenderer as unknown as (params: FilterPanelParams) => VNode;\n options.filterPanelRenderer = (container: HTMLElement, params: FilterPanelParams) => {\n const wrapper = document.createElement('div');\n wrapper.style.display = 'contents';\n\n const app = createApp({\n render() {\n return vueFn(params);\n },\n });\n\n app.mount(wrapper);\n container.appendChild(wrapper);\n };\n }\n\n return new FilteringPlugin(options);\n});\n\n/**\n * Filtering methods returned from useGridFiltering.\n */\nexport interface FilteringMethods {\n /**\n * Set a filter on a specific field.\n * @param field - The field name to filter\n * @param filter - Filter configuration, or null to remove\n */\n setFilter: (field: string, filter: Omit<FilterModel, 'field'> | null) => void;\n\n /**\n * Get the current filter for a field.\n */\n getFilter: (field: string) => FilterModel | undefined;\n\n /**\n * Get all active filters.\n */\n getFilters: () => FilterModel[];\n\n /**\n * Set all filters at once (replaces existing).\n */\n setFilterModel: (filters: FilterModel[]) => void;\n\n /**\n * Clear all active filters.\n */\n clearAllFilters: () => void;\n\n /**\n * Clear filter for a specific field.\n */\n clearFieldFilter: (field: string) => void;\n\n /**\n * Check if a field has an active filter.\n */\n isFieldFiltered: (field: string) => boolean;\n\n /**\n * Get the count of rows after filtering.\n */\n getFilteredRowCount: () => number;\n\n /**\n * Get unique values for a field (for building filter dropdowns).\n */\n getUniqueValues: (field: string) => unknown[];\n\n /**\n * Get set filters whose values no longer match any rows in the current data.\n */\n getStaleFilters: () => FilterModel[];\n\n /**\n * Get the current blank mode for a field.\n */\n getBlankMode: (field: string) => BlankMode;\n\n /**\n * Toggle blank filter mode for a field.\n */\n toggleBlankFilter: (field: string, mode: BlankMode) => void;\n}\n\n/**\n * Composable for programmatic filter control.\n *\n * Must be used within a component that contains a TbwGrid with filtering enabled.\n *\n * @example\n * ```vue\n * <script setup>\n * import { useGridFiltering } from '@toolbox-web/grid-vue/features/filtering';\n *\n * const { setFilter, clearAllFilters, getFilteredRowCount, isFieldFiltered } = useGridFiltering();\n *\n * function applyQuickFilter(field: string, value: string) {\n * setFilter(field, { operator: 'contains', value });\n * }\n * </script>\n *\n * <template>\n * <input @input=\"applyQuickFilter('name', $event.target.value)\" placeholder=\"Filter by name...\" />\n * <span>{{ getFilteredRowCount() }} results</span>\n * <button @click=\"clearAllFilters\">Clear Filters</button>\n * </template>\n * ```\n */\nexport function useGridFiltering(): FilteringMethods {\n const gridElement = inject(GRID_ELEMENT_KEY, ref(null));\n\n const getPlugin = (): FilteringPlugin | undefined => {\n const grid = gridElement.value as DataGridElement | null;\n return grid?.getPluginByName('filtering');\n };\n\n return {\n setFilter: (field: string, filter: Omit<FilterModel, 'field'> | null) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.setFilter(field, filter);\n },\n\n getFilter: (field: string) => getPlugin()?.getFilter(field),\n\n getFilters: () => getPlugin()?.getFilters() ?? [],\n\n setFilterModel: (filters: FilterModel[]) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.setFilterModel(filters);\n },\n\n clearAllFilters: () => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.clearAllFilters();\n },\n\n clearFieldFilter: (field: string) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.clearFieldFilter(field);\n },\n\n isFieldFiltered: (field: string) => getPlugin()?.isFieldFiltered(field) ?? false,\n\n getFilteredRowCount: () => getPlugin()?.getFilteredRowCount() ?? 0,\n\n getUniqueValues: (field: string) => getPlugin()?.getUniqueValues(field) ?? [],\n\n getStaleFilters: () => getPlugin()?.getStaleFilters() ?? [],\n\n getBlankMode: (field: string): BlankMode => getPlugin()?.getBlankMode(field) ?? 'all',\n\n toggleBlankFilter: (field: string, mode: BlankMode) => {\n const plugin = getPlugin();\n if (!plugin) {\n console.warn(\n `[tbw-grid:filtering] FilteringPlugin not found.\\n\\n` +\n ` → Enable filtering on the grid:\\n` +\n ` <TbwGrid filtering />`,\n );\n return;\n }\n plugin.toggleBlankFilter(field, mode);\n },\n };\n}\n"],"names":["registerFeature","rawConfig","FilteringPlugin","config","options","vueFn","container","params","wrapper","createApp","useGridFiltering","gridElement","inject","GRID_ELEMENT_KEY","ref","getPlugin","field","filter","plugin","filters","mode"],"mappings":";;;;AA6CAA,EAAgB,aAAa,CAACC,MAAc;AAC1C,MAAIA,MAAc;AAChB,WAAO,IAAIC,EAAA;AAEb,MAAI,CAACD;AACH,WAAO,IAAIC,EAAA;AAGb,QAAMC,IAASF,GACTG,IAAU,EAAE,GAAGD,EAAA;AAGrB,MAAI,OAAOA,EAAO,uBAAwB,cAAcA,EAAO,oBAAoB,UAAU,GAAG;AAC9F,UAAME,IAAQF,EAAO;AACrB,IAAAC,EAAQ,sBAAsB,CAACE,GAAwBC,MAA8B;AACnF,YAAMC,IAAU,SAAS,cAAc,KAAK;AAC5C,MAAAA,EAAQ,MAAM,UAAU,YAEZC,EAAU;AAAA,QACpB,SAAS;AACP,iBAAOJ,EAAME,CAAM;AAAA,QACrB;AAAA,MAAA,CACD,EAEG,MAAMC,CAAO,GACjBF,EAAU,YAAYE,CAAO;AAAA,IAC/B;AAAA,EACF;AAEA,SAAO,IAAIN,EAAgBE,CAAO;AACpC,CAAC;AA6FM,SAASM,IAAqC;AACnD,QAAMC,IAAcC,EAAOC,GAAkBC,EAAI,IAAI,CAAC,GAEhDC,IAAY,MACHJ,EAAY,OACZ,gBAAgB,WAAW;AAG1C,SAAO;AAAA,IACL,WAAW,CAACK,GAAeC,MAA8C;AACvE,YAAMC,IAASH,EAAA;AACf,UAAI,CAACG,GAAQ;AACX,gBAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA,QAAA;AAIF;AAAA,MACF;AACA,MAAAA,EAAO,UAAUF,GAAOC,CAAM;AAAA,IAChC;AAAA,IAEA,WAAW,CAACD,MAAkBD,EAAA,GAAa,UAAUC,CAAK;AAAA,IAE1D,YAAY,MAAMD,KAAa,WAAA,KAAgB,CAAA;AAAA,IAE/C,gBAAgB,CAACI,MAA2B;AAC1C,YAAMD,IAASH,EAAA;AACf,UAAI,CAACG,GAAQ;AACX,gBAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA,QAAA;AAIF;AAAA,MACF;AACA,MAAAA,EAAO,eAAeC,CAAO;AAAA,IAC/B;AAAA,IAEA,iBAAiB,MAAM;AACrB,YAAMD,IAASH,EAAA;AACf,UAAI,CAACG,GAAQ;AACX,gBAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA,QAAA;AAIF;AAAA,MACF;AACA,MAAAA,EAAO,gBAAA;AAAA,IACT;AAAA,IAEA,kBAAkB,CAACF,MAAkB;AACnC,YAAME,IAASH,EAAA;AACf,UAAI,CAACG,GAAQ;AACX,gBAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA,QAAA;AAIF;AAAA,MACF;AACA,MAAAA,EAAO,iBAAiBF,CAAK;AAAA,IAC/B;AAAA,IAEA,iBAAiB,CAACA,MAAkBD,KAAa,gBAAgBC,CAAK,KAAK;AAAA,IAE3E,qBAAqB,MAAMD,KAAa,yBAAyB;AAAA,IAEjE,iBAAiB,CAACC,MAAkBD,EAAA,GAAa,gBAAgBC,CAAK,KAAK,CAAA;AAAA,IAE3E,iBAAiB,MAAMD,KAAa,gBAAA,KAAqB,CAAA;AAAA,IAEzD,cAAc,CAACC,MAA6BD,KAAa,aAAaC,CAAK,KAAK;AAAA,IAEhF,mBAAmB,CAACA,GAAeI,MAAoB;AACrD,YAAMF,IAASH,EAAA;AACf,UAAI,CAACG,GAAQ;AACX,gBAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA,QAAA;AAIF;AAAA,MACF;AACA,MAAAA,EAAO,kBAAkBF,GAAOI,CAAI;AAAA,IACtC;AAAA,EAAA;AAEJ;"}
|
|
@@ -69,9 +69,7 @@ declare function __VLS_template(): {
|
|
|
69
69
|
readonly align?: "left" | "center" | "right" | undefined;
|
|
70
70
|
readonly hidden?: boolean | undefined;
|
|
71
71
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
|
|
72
|
-
$attrs:
|
|
73
|
-
[x: string]: unknown;
|
|
74
|
-
};
|
|
72
|
+
$attrs: import('vue').Attrs;
|
|
75
73
|
$refs: {
|
|
76
74
|
[x: string]: unknown;
|
|
77
75
|
};
|
|
@@ -131,9 +129,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
131
129
|
readonly align?: "left" | "center" | "right" | undefined;
|
|
132
130
|
readonly hidden?: boolean | undefined;
|
|
133
131
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
|
|
134
|
-
$attrs:
|
|
135
|
-
[x: string]: unknown;
|
|
136
|
-
};
|
|
132
|
+
$attrs: import('vue').Attrs;
|
|
137
133
|
$refs: {
|
|
138
134
|
[x: string]: unknown;
|
|
139
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TbwGridColumn.vue.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/lib/TbwGridColumn.vue"],"names":[],"mappings":"AA+GA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGnE;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAIF,QAAA,MAAM,KAAK;IACT,gCAAgC;WACzB,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,EAAE;IACxC,8BAA8B;aACrB,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,EAAE;;IAH5C,gCAAgC;WACzB,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,EAAE;IACxC,8BAA8B;aACrB,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,EAAE;CAC1C,CAAC;AAGL,QAAA,MAAM,SAAS,2DAAgC,CAAC;AAgDhD,iBAAS,cAAc;WAoDT,OAAO,IAA6B;;QA3GhD,gCAAgC;eACzB,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,EAAE;QACxC,8BAA8B;iBACrB,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,EAAE;;QAH5C,gCAAgC;eACzB,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,EAAE;QACxC,8BAA8B;iBACrB,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,EAAE;;;;;;;gCA7BrC,MAAM;kCAEJ,MAAM;iCAEP,MAAM,GAAG,MAAM;oCAEZ,MAAM,GAAG,MAAM;oCAEf,MAAM,GAAG,MAAM;oCAEf,OAAO;qCAEN,OAAO;oCAER,OAAO;gCAEX,MAAM;iCAEL,MAAM,GAAG,QAAQ,GAAG,OAAO;kCAE1B,OAAO
|
|
1
|
+
{"version":3,"file":"TbwGridColumn.vue.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/lib/TbwGridColumn.vue"],"names":[],"mappings":"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"}
|
|
@@ -55,9 +55,7 @@ declare function __VLS_template(): {
|
|
|
55
55
|
readonly position?: "left" | "right" | undefined;
|
|
56
56
|
readonly width?: string | undefined;
|
|
57
57
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
|
|
58
|
-
$attrs:
|
|
59
|
-
[x: string]: unknown;
|
|
60
|
-
};
|
|
58
|
+
$attrs: import('vue').Attrs;
|
|
61
59
|
$refs: {
|
|
62
60
|
[x: string]: unknown;
|
|
63
61
|
};
|
|
@@ -120,9 +118,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
120
118
|
readonly position?: "left" | "right" | undefined;
|
|
121
119
|
readonly width?: string | undefined;
|
|
122
120
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
|
|
123
|
-
$attrs:
|
|
124
|
-
[x: string]: unknown;
|
|
125
|
-
};
|
|
121
|
+
$attrs: import('vue').Attrs;
|
|
126
122
|
$refs: {
|
|
127
123
|
[x: string]: unknown;
|
|
128
124
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TbwGridToolPanel.vue.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/lib/TbwGridToolPanel.vue"],"names":[],"mappings":"AAoEA,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;GAEG;AACH,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUJ,QAAA,MAAM,WAAW;IACf,8BAA8B;cACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;IAD9C,8BAA8B;cACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;CAC5C,CAAC;AAGL,QAAA,MAAM,QAAQ,2DAAgC,CAAC;AAmB/C,iBAAS,cAAc;WAuCT,OAAO,IAA6B;;QA/DhD,8BAA8B;kBACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;QAD9C,8BAA8B;kBACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;;;;;;6BAnCxC,MAAM;gCAKH,MAAM;gCAKN,MAAM;oCAMF,MAAM,GAAG,OAAO;iCAMnB,MAAM
|
|
1
|
+
{"version":3,"file":"TbwGridToolPanel.vue.d.ts","sourceRoot":"","sources":["../../../../libs/grid-vue/src/lib/TbwGridToolPanel.vue"],"names":[],"mappings":"AAoEA,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;GAEG;AACH,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUJ,QAAA,MAAM,WAAW;IACf,8BAA8B;cACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;IAD9C,8BAA8B;cACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;CAC5C,CAAC;AAGL,QAAA,MAAM,QAAQ,2DAAgC,CAAC;AAmB/C,iBAAS,cAAc;WAuCT,OAAO,IAA6B;;QA/DhD,8BAA8B;kBACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;QAD9C,8BAA8B;kBACpB,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,EAAE;;;;;;;6BAnCxC,MAAM;gCAKH,MAAM;gCAKN,MAAM;oCAMF,MAAM,GAAG,OAAO;iCAMnB,MAAM;;;;;;;;;;;;;;;0BAoFI,OAAO,QAAQ;;uBApFzB,MAAM;0BANH,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;wCA+HuznB,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;mBAzHh8nB,MAAM;sBANH,MAAM,GAAG,OAAO;;sBA0FT,OAAO,QAAQ;;oBA9CgE,OAAO,WAAW;;;;EA0CtH;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;WA3FT,MAAM;cANH,MAAM,GAAG,OAAO;;;;;;yBAhBvB,MAAM;4BAKH,MAAM;4BAKN,MAAM;gCAMF,MAAM,GAAG,OAAO;6BAMnB,MAAM;;;;;;;;;;;;;;;sBAoFI,OAAO,QAAQ;;mBApFzB,MAAM;sBANH,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;oCA+HuznB,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;eAzHh8nB,MAAM;kBANH,MAAM,GAAG,OAAO;;kBA0FT,OAAO,QAAQ;;gBA9CgE,OAAO,WAAW;;OA8DrH,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|