@toolbox-web/grid-react 0.17.4 → 0.17.5

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.
@@ -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
  * Hook for programmatic filter control.
@@ -1 +1 @@
1
- {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/features/filtering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,qCAAqC,CAAC;AAgC7C;;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;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CA0FnD"}
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/features/filtering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,WAAW,EAEjB,MAAM,qCAAqC,CAAC;AAgC7C;;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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAoHnD"}
@@ -1,31 +1,31 @@
1
1
  import { FilteringPlugin as c } from "@toolbox-web/grid/plugins/filtering";
2
- import { useContext as m, useCallback as n } from "react";
3
- import { flushSync as w } from "react-dom";
4
- import { createRoot as P } from "react-dom/client";
5
- import { G as b } from "../chunks/grid-element-context-BU3WvNtM.js";
2
+ import { useContext as P, useCallback as n } from "react";
3
+ import { flushSync as h } from "react-dom";
4
+ import { createRoot as G } from "react-dom/client";
6
5
  import { registerFeature as R } from "@toolbox-web/grid/features/registry";
6
+ import { G as E } from "../chunks/grid-element-context-BU3WvNtM.js";
7
7
  R("filtering", (r) => {
8
8
  if (typeof r == "boolean") return new c();
9
9
  if (!r) return new c();
10
- const e = r, o = { ...e };
10
+ const e = r, g = { ...e };
11
11
  if (typeof e.filterPanelRenderer == "function" && e.filterPanelRenderer.length <= 1) {
12
- const g = e.filterPanelRenderer;
13
- o.filterPanelRenderer = (s, d) => {
12
+ const s = e.filterPanelRenderer;
13
+ g.filterPanelRenderer = (a, d) => {
14
14
  const l = document.createElement("div");
15
15
  l.style.display = "contents";
16
- const f = P(l);
17
- w(() => {
18
- f.render(g(d));
19
- }), s.appendChild(l);
16
+ const f = G(l);
17
+ h(() => {
18
+ f.render(s(d));
19
+ }), a.appendChild(l);
20
20
  };
21
21
  }
22
- return new c(o);
22
+ return new c(g);
23
23
  });
24
24
  function x() {
25
- const r = m(b), e = n(() => r?.current?.getPluginByName("filtering"), [r]), o = n(
25
+ const r = P(E), e = n(() => r?.current?.getPluginByName("filtering"), [r]), g = n(
26
26
  (t, i) => {
27
- const u = e();
28
- if (!u) {
27
+ const o = e();
28
+ if (!o) {
29
29
  console.warn(
30
30
  `[tbw-grid:filtering] FilteringPlugin not found.
31
31
 
@@ -34,10 +34,10 @@ function x() {
34
34
  );
35
35
  return;
36
36
  }
37
- u.setFilter(t, i);
37
+ o.setFilter(t, i);
38
38
  },
39
39
  [e]
40
- ), g = n((t) => e()?.getFilter(t), [e]), s = n(() => e()?.getFilters() ?? [], [e]), d = n(
40
+ ), s = n((t) => e()?.getFilter(t), [e]), a = n(() => e()?.getFilters() ?? [], [e]), d = n(
41
41
  (t) => {
42
42
  const i = e();
43
43
  if (!i) {
@@ -79,17 +79,38 @@ function x() {
79
79
  i.clearFieldFilter(t);
80
80
  },
81
81
  [e]
82
- ), a = n((t) => e()?.isFieldFiltered(t) ?? !1, [e]), F = n(() => e()?.getFilteredRowCount() ?? 0, [e]), p = n((t) => e()?.getUniqueValues(t) ?? [], [e]);
82
+ ), u = n((t) => e()?.isFieldFiltered(t) ?? !1, [e]), F = n(() => e()?.getFilteredRowCount() ?? 0, [e]), p = n((t) => e()?.getUniqueValues(t) ?? [], [e]), m = n(() => e()?.getStaleFilters() ?? [], [e]), w = n(
83
+ (t) => e()?.getBlankMode(t) ?? "all",
84
+ [e]
85
+ ), b = n(
86
+ (t, i) => {
87
+ const o = e();
88
+ if (!o) {
89
+ console.warn(
90
+ `[tbw-grid:filtering] FilteringPlugin not found.
91
+
92
+ → Enable filtering on the grid:
93
+ <DataGrid filtering />`
94
+ );
95
+ return;
96
+ }
97
+ o.toggleBlankFilter(t, i);
98
+ },
99
+ [e]
100
+ );
83
101
  return {
84
- setFilter: o,
85
- getFilter: g,
86
- getFilters: s,
102
+ setFilter: g,
103
+ getFilter: s,
104
+ getFilters: a,
87
105
  setFilterModel: d,
88
106
  clearAllFilters: l,
89
107
  clearFieldFilter: f,
90
- isFieldFiltered: a,
108
+ isFieldFiltered: u,
91
109
  getFilteredRowCount: F,
92
- getUniqueValues: p
110
+ getUniqueValues: p,
111
+ getStaleFilters: m,
112
+ getBlankMode: w,
113
+ toggleBlankFilter: b
93
114
  };
94
115
  }
95
116
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolbox-web/grid-react",
3
- "version": "0.17.4",
3
+ "version": "0.17.5",
4
4
  "description": "React adapter for @toolbox-web/grid data grid component",
5
5
  "type": "module",
6
6
  "main": "./index.js",