impact-nova 1.7.2 → 1.7.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.
Files changed (38) hide show
  1. package/dist/components/ui/accordion.d.ts +5 -0
  2. package/dist/components/ui/accordion.js +51 -39
  3. package/dist/components/ui/ag-grid-react/headers/header-search-input.js +207 -209
  4. package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.js +58 -47
  5. package/dist/components/ui/ag-grid-react/index.js +86 -84
  6. package/dist/components/ui/ag-grid-react/theme.js +3 -0
  7. package/dist/components/ui/data-table/data-table-column-list.js +84 -78
  8. package/dist/components/ui/expandable-sku/expandable-sku.d.ts +38 -0
  9. package/dist/components/ui/expandable-sku/expandable-sku.js +244 -0
  10. package/dist/components/ui/expandable-sku/expandable-sku.types.d.ts +35 -0
  11. package/dist/components/ui/expandable-sku/index.d.ts +2 -0
  12. package/dist/components/ui/expandable-sku/index.js +4 -0
  13. package/dist/components/ui/filter-strip/filter-tag-list.d.ts +8 -1
  14. package/dist/components/ui/filter-strip/filter-tag-list.js +1 -0
  15. package/dist/components/ui/select/select.js +221 -210
  16. package/dist/impact-nova.css +1 -1
  17. package/dist/index.d.ts +57 -0
  18. package/dist/index.js +318 -300
  19. package/dist/lib/virtualized/index.d.ts +9 -0
  20. package/dist/lib/virtualized/sectioned.d.ts +37 -0
  21. package/dist/lib/virtualized/sectioned.js +38 -0
  22. package/dist/lib/virtualized/selection-counts.d.ts +14 -0
  23. package/dist/lib/virtualized/selection-counts.js +12 -0
  24. package/dist/lib/virtualized/types.d.ts +131 -0
  25. package/dist/lib/virtualized/useDataGrid.d.ts +15 -0
  26. package/dist/lib/virtualized/useDataGrid.js +12 -0
  27. package/dist/lib/virtualized/useDataSource.d.ts +8 -0
  28. package/dist/lib/virtualized/useDataSource.js +34 -0
  29. package/dist/lib/virtualized/useDebouncedValue.d.ts +4 -0
  30. package/dist/lib/virtualized/useDebouncedValue.js +11 -0
  31. package/dist/lib/virtualized/useRowState.d.ts +15 -0
  32. package/dist/lib/virtualized/useRowState.js +127 -0
  33. package/dist/lib/virtualized/useVirtualizedList.d.ts +72 -0
  34. package/dist/lib/virtualized/useVirtualizedList.js +155 -0
  35. package/dist/lib/virtualized/useVirtualizedRows.d.ts +22 -0
  36. package/dist/lib/virtualized/useVirtualizedRows.js +27 -0
  37. package/package.json +23 -1
  38. package/tailwind.config.js +2 -0
@@ -1,17 +1,17 @@
1
- import { jsxs as F, jsx as s } from "react/jsx-runtime";
2
- import { useRef as ce, useState as q, useEffect as ue, useCallback as ze } from "react";
1
+ import { jsxs as F, jsx as i } from "react/jsx-runtime";
2
+ import { useRef as de, useState as q, useEffect as ce, useCallback as He } from "react";
3
3
  import { Filter as Se } from "lucide-react";
4
4
  import { cn as qe } from "../../../../lib/utils.js";
5
5
  import { DatePicker as fe } from "../../date-picker/date-picker.js";
6
- import { Input as me } from "../../input.js";
7
- import he from "../../select/select.js";
8
- import { Popover as Ee, PopoverTrigger as we, PopoverContent as Be, PopoverHeader as Re, PopoverTitle as ke, PopoverBody as Oe } from "../../popover.js";
9
- import { Cross as pe } from "../../../../icons/index.js";
10
- import { useGridHeader as We } from "./context/grid-header-context.js";
11
- import { getMultiFilterIndices as D, getDisplayStringFromFilterModel as E, parseInputPattern as je } from "./utils/filter-utils.js";
12
- import { deserializeDate as M, serializeDate as ge } from "./utils/date-utils.js";
13
- import { useImpactNovaI18n as Ge } from "../../../../i18n/ImpactNovaI18nContext.js";
14
- const Le = {
6
+ import { Input as ue } from "../../input.js";
7
+ import me from "../../select/select.js";
8
+ import { Popover as ze, PopoverTrigger as Ee, PopoverContent as we, PopoverHeader as Be, PopoverTitle as Re, PopoverBody as ke } from "../../popover.js";
9
+ import { Cross as he } from "../../../../icons/index.js";
10
+ import { useGridHeader as Oe } from "./context/grid-header-context.js";
11
+ import { getMultiFilterIndices as C, getDisplayStringFromFilterModel as z, parseInputPattern as We } from "./utils/filter-utils.js";
12
+ import { deserializeDate as M, serializeDate as pe } from "./utils/date-utils.js";
13
+ import { useImpactNovaI18n as je } from "../../../../i18n/ImpactNovaI18nContext.js";
14
+ const Ge = {
15
15
  contains: "contains",
16
16
  notContains: "notContains",
17
17
  equals: "equals",
@@ -25,183 +25,182 @@ const Le = {
25
25
  inRange: "inRange",
26
26
  empty: "blank",
27
27
  notEmpty: "notBlank"
28
- }, nt = ({
29
- column: I,
30
- api: d,
31
- onClose: L,
32
- handleInlineSearch: _,
33
- handleClearSearchInline: V,
34
- onAdvanceSearchClick: J,
35
- toggleAdvanceSearch: K,
36
- advanceSearchEnabled: ve = !1,
37
- selectOptions: w,
28
+ }, lt = ({
29
+ column: A,
30
+ api: c,
31
+ onClose: G,
32
+ handleInlineSearch: L,
33
+ handleClearSearchInline: _,
34
+ onAdvanceSearchClick: V,
35
+ toggleAdvanceSearch: J,
36
+ advanceSearchEnabled: ge = !1,
37
+ selectOptions: E,
38
38
  isMultiSelect: T,
39
- onSelectScrollToBottom: xe,
40
- onSelectSearchChange: ye,
41
- onSelectOpen: Q,
42
- isLoadingSelect: U,
43
- enableSpaceSplitting: Fe = !1,
44
- enableBooleanParsing: be = !1,
45
- enableDateParsing: Me = !1
39
+ onSelectScrollToBottom: ye,
40
+ onSelectSearchChange: ve,
41
+ onSelectOpen: K,
42
+ isLoadingSelect: Q,
43
+ enableSpaceSplitting: xe = !1,
44
+ enableBooleanParsing: Fe = !1,
45
+ enableDateParsing: be = !1
46
46
  }) => {
47
- const { t: p } = Ge(), a = I.getColDef(), o = I.getColId(), B = a?.filter || "agTextColumnFilter", v = B === "agDateColumnFilter", R = B === "agSetColumnFilter" || w && w.length > 0 || a?.cellDataType === "boolean", X = We(), k = ce(null), Y = ce(!1), [O, W] = q(() => {
48
- const t = d.getFilterModel()[o];
47
+ const { t: m } = je(), d = A.getColDef(), o = A.getColId(), w = d?.filter || "agTextColumnFilter", y = w === "agDateColumnFilter", B = w === "agSetColumnFilter" || E && E.length > 0 || d?.cellDataType === "boolean", U = Oe(), R = de(null), X = de(!1), [k, O] = q(() => {
48
+ const t = c.getFilterModel()[o];
49
49
  if (!t) return "";
50
50
  if (t.filterType === "multi" && t.filterModels) {
51
- const l = D(a), r = l.text !== -1 ? l.text : l.number;
52
- if (r !== -1) {
53
- const m = t.filterModels[r];
54
- if (m) return E(o, m);
51
+ const r = C(d), l = r.text !== -1 ? r.text : r.number;
52
+ if (l !== -1) {
53
+ const h = t.filterModels[l];
54
+ if (h) return z(o, h);
55
55
  }
56
56
  return "";
57
57
  }
58
- return v ? "" : E(o, t);
59
- }), [Z, f] = q(!1);
60
- ue(() => {
61
- Y.current = Z;
62
- }, [Z]);
63
- const [$, j] = q(() => {
64
- const t = d.getFilterModel()[o];
58
+ return y ? "" : z(o, t);
59
+ }), [Y, f] = q(!1);
60
+ ce(() => {
61
+ X.current = Y;
62
+ }, [Y]);
63
+ const [Z, W] = q(() => {
64
+ const t = c.getFilterModel()[o];
65
65
  if (t) {
66
66
  if (t.filterType === "multi" && t.filterModels) {
67
- const { date: l } = D(a);
68
- if (l !== -1) {
69
- const r = t.filterModels[l];
70
- if (r) {
71
- if (r.dateFrom) return M(r.dateFrom);
72
- if (r.filter) return M(r.filter);
67
+ const { date: r } = C(d);
68
+ if (r !== -1) {
69
+ const l = t.filterModels[r];
70
+ if (l) {
71
+ if (l.dateFrom) return M(l.dateFrom);
72
+ if (l.filter) return M(l.filter);
73
73
  }
74
74
  }
75
75
  }
76
- if (v) {
76
+ if (y) {
77
77
  if (t.dateFrom) return M(t.dateFrom);
78
78
  if (t.filter) return M(t.filter);
79
79
  }
80
80
  }
81
81
  return null;
82
82
  });
83
- ue(() => {
83
+ ce(() => {
84
84
  const e = () => {
85
- const l = d.getFilterModel()[o];
86
- let r = "";
87
- if (l)
88
- if (l.filterType === "multi" && l.filterModels) {
89
- const i = D(a), n = i.text !== -1 ? i.text : i.number;
85
+ const r = c.getFilterModel()[o];
86
+ let l = "";
87
+ if (r)
88
+ if (r.filterType === "multi" && r.filterModels) {
89
+ const a = C(d), n = a.text !== -1 ? a.text : a.number;
90
90
  if (n !== -1) {
91
- const c = l.filterModels[n];
92
- r = c ? E(o, c) : "";
91
+ const u = r.filterModels[n];
92
+ l = u ? z(o, u) : "";
93
93
  }
94
- } else v || (r = E(o, l));
95
- Y.current || W((i) => i !== r ? r : i);
96
- let m = null;
97
- if (l)
98
- if (l.filterType === "multi" && l.filterModels) {
99
- const { date: i } = D(a);
100
- if (i !== -1) {
101
- const n = l.filterModels[i];
102
- n && (m = n.dateFrom ? M(n.dateFrom) : n.filter ? M(n.filter) : null);
94
+ } else y || (l = z(o, r));
95
+ X.current || O((a) => a !== l ? l : a);
96
+ let h = null;
97
+ if (r)
98
+ if (r.filterType === "multi" && r.filterModels) {
99
+ const { date: a } = C(d);
100
+ if (a !== -1) {
101
+ const n = r.filterModels[a];
102
+ n && (h = n.dateFrom ? M(n.dateFrom) : n.filter ? M(n.filter) : null);
103
103
  }
104
- } else v && (m = l.dateFrom ? M(l.dateFrom) : l.filter ? M(l.filter) : null);
105
- j((i) => i?.getTime() !== m?.getTime() ? m : i);
104
+ } else y && (h = r.dateFrom ? M(r.dateFrom) : r.filter ? M(r.filter) : null);
105
+ W((a) => a?.getTime() !== h?.getTime() ? h : a);
106
106
  };
107
- return d.addEventListener("filterChanged", e), () => {
108
- d.removeEventListener("filterChanged", e);
107
+ return c.addEventListener("filterChanged", e), () => {
108
+ c.removeEventListener("filterChanged", e);
109
109
  };
110
- }, [d, o, v]);
111
- const ee = (e, t) => {
112
- const r = { ...d.getFilterModel() }, m = (n) => n.replace(/[^0-9.\-+eE]/g, ""), i = (n, c) => {
113
- const A = c === "number" ? m(n) : n, g = je(A, Fe, be, Me);
110
+ }, [c, o, y]);
111
+ const $ = (e, t) => {
112
+ const l = { ...c.getFilterModel() }, h = (n) => n.replace(/[^0-9.\-+eE]/g, ""), a = (n, u) => {
113
+ const g = We(n, xe, Fe, be);
114
114
  if (console.log("[HeaderSearchInput] Pattern Debug:", {
115
115
  input: n,
116
- sanitizedInput: A,
117
- filterType: c,
116
+ filterType: u,
118
117
  parsed: g
119
118
  }), g.conditions.length === 0) return null;
120
- const C = (h) => {
121
- let b = Le[h.operator] || "contains";
122
- if (c === "number") {
123
- const de = parseFloat(m(h.value));
124
- return ["contains", "notContains", "startsWith", "endsWith"].includes(b) && (b = b === "notContains" ? "notEqual" : "equals"), h.operator === "inRange" ? {
119
+ const N = (s) => {
120
+ let b = Ge[s.operator] || "contains";
121
+ if (u === "number") {
122
+ const ae = parseFloat(h(s.value));
123
+ return ["contains", "notContains", "startsWith", "endsWith"].includes(b) && (b = b === "notContains" ? "notEqual" : "equals"), s.operator === "inRange" ? {
125
124
  type: b,
126
- filter: parseFloat(m(h.value)) || 0,
127
- filterTo: parseFloat(m(h.valueTo || "")) || 0,
125
+ filter: parseFloat(h(s.value)) || 0,
126
+ filterTo: parseFloat(h(s.valueTo || "")) || 0,
128
127
  filterType: "number"
129
- } : isNaN(de) ? null : { type: b, filter: de, filterType: "number" };
128
+ } : isNaN(ae) ? null : { type: b, filter: ae, filterType: "number" };
130
129
  }
131
130
  return {
132
131
  type: b,
133
- filter: h.value,
134
- filterTo: h.valueTo,
132
+ filter: s.value,
133
+ filterTo: s.valueTo,
135
134
  filterType: "text"
136
135
  };
137
136
  };
138
- let u = null;
137
+ let p = null;
139
138
  if (g.conditions.length === 1)
140
- u = C(g.conditions[0]);
139
+ p = N(g.conditions[0]);
141
140
  else {
142
- const h = g.conditions.map(C).filter((b) => b !== null);
143
- h.length === 0 ? u = null : h.length === 1 ? u = h[0] : u = {
144
- filterType: c,
141
+ const s = g.conditions.map(N).filter((b) => b !== null);
142
+ s.length === 0 ? p = null : s.length === 1 ? p = s[0] : p = {
143
+ filterType: u,
145
144
  operator: g.logic,
146
- conditions: h
145
+ conditions: s
147
146
  };
148
147
  }
149
- return console.log("[HeaderSearchInput] Resulting Model:", u), u;
148
+ return console.log("[HeaderSearchInput] Resulting Model:", p), p;
150
149
  };
151
- if (a.filter === "agMultiColumnFilter") {
152
- const n = D(a), c = t === "text" ? n.text !== -1 ? n.text : n.number : t === "set" ? n.set : n.date;
153
- if (c === -1) return;
154
- const A = d.getFilterModel()[o], g = A && A.filterType === "multi" ? [...A.filterModels || []] : Array(a.filterParams?.filters?.length || 1).fill(null);
155
- let C = null;
150
+ if (d.filter === "agMultiColumnFilter") {
151
+ const n = C(d), u = t === "text" ? n.text !== -1 ? n.text : n.number : t === "set" ? n.set : n.date;
152
+ if (u === -1) return;
153
+ const g = c.getFilterModel()[o], N = g && g.filterType === "multi" ? [...g.filterModels || []] : Array(d.filterParams?.filters?.length || 1).fill(null);
154
+ let p = null;
156
155
  if (e !== null && e !== "" && (!Array.isArray(e) || e.length > 0))
157
156
  if (t === "set")
158
- C = { values: Array.isArray(e) ? e : [String(e)], filterType: "set" };
157
+ p = { values: Array.isArray(e) ? e : [String(e)], filterType: "set" };
159
158
  else if (t === "date") {
160
- const u = e instanceof Date ? ge(e) : null;
161
- C = u ? { type: "equals", dateFrom: u, filterType: "date" } : null;
159
+ const s = e instanceof Date ? pe(e) : null;
160
+ p = s ? { type: "equals", dateFrom: s, filterType: "date" } : null;
162
161
  } else {
163
- const u = n.text !== -1 ? "text" : "number";
164
- C = i(String(e), u);
162
+ const s = n.text !== -1 ? "text" : "number";
163
+ p = a(String(e), s);
165
164
  }
166
- g[c] = C, g.every((u) => u === null) ? delete r[o] : r[o] = { filterType: "multi", filterModels: g };
165
+ N[u] = p, N.every((s) => s === null) ? delete l[o] : l[o] = { filterType: "multi", filterModels: N };
167
166
  } else if (e === null || e === "" || Array.isArray(e) && e.length === 0)
168
- delete r[o];
167
+ delete l[o];
169
168
  else if (t === "date") {
170
- const n = e instanceof Date ? ge(e) : null;
171
- r[o] = n ? { type: "equals", dateFrom: n, filterType: "date" } : null;
169
+ const n = e instanceof Date ? pe(e) : null;
170
+ l[o] = n ? { type: "equals", dateFrom: n, filterType: "date" } : null;
172
171
  } else if (t === "set")
173
- r[o] = { filterType: "set", values: Array.isArray(e) ? e : [String(e)] };
172
+ l[o] = { filterType: "set", values: Array.isArray(e) ? e : [String(e)] };
174
173
  else {
175
- const n = B === "agNumberColumnFilter" ? "number" : "text", c = i(String(e), n);
176
- c ? r[o] = c : delete r[o];
174
+ const n = w === "agNumberColumnFilter" ? "number" : "text", u = a(String(e), n);
175
+ u ? l[o] = u : delete l[o];
177
176
  }
178
177
  console.log("[HeaderSearchInput] Final Model Applied:", {
179
178
  column: o,
180
- model: r[o]
181
- }), d.setFilterModel(r), d.onFilterChanged();
182
- }, G = (e) => {
183
- if (_) {
184
- _(Array.isArray(e) ? e.join(",") : e);
179
+ model: l[o]
180
+ }), c.setFilterModel(l), c.onFilterChanged();
181
+ }, j = (e) => {
182
+ if (L) {
183
+ L(Array.isArray(e) ? e.join(",") : e);
185
184
  return;
186
185
  }
187
- ee(e, v ? "date" : "text");
188
- }, te = (e) => {
186
+ $(e, y ? "date" : "text");
187
+ }, ee = (e) => {
189
188
  const t = e.target.value;
190
- W(t), G(t);
191
- }, le = (e) => {
192
- j(e), G(e);
193
- }, Te = () => {
194
- W(""), j(null), G(""), V && V();
195
- }, H = (e) => {
196
- ee(e, "set");
197
- }, z = w || (a?.cellDataType === "boolean" ? [{ label: p("gridHeader.true"), value: "true" }, { label: p("gridHeader.false"), value: "false" }] : []), re = ze(() => {
198
- const e = d.getFilterModel()[o];
189
+ O(t), j(t);
190
+ }, te = (e) => {
191
+ W(e), j(e);
192
+ }, Me = () => {
193
+ O(""), W(null), j(""), _ && _();
194
+ }, P = (e) => {
195
+ $(e, "set");
196
+ }, H = E || (d?.cellDataType === "boolean" ? [{ label: m("gridHeader.true"), value: "true" }, { label: m("gridHeader.false"), value: "false" }] : []), re = He(() => {
197
+ const e = c.getFilterModel()[o];
199
198
  if (!e) return [];
200
199
  if ("filterType" in e && e.filterType === "multi" && e.filterModels) {
201
- const l = D(I.getColDef()).set;
202
- if (l !== -1) {
203
- const r = e.filterModels[l];
204
- if (r?.filterType === "set" && r.values) return r.values;
200
+ const r = C(A.getColDef()).set;
201
+ if (r !== -1) {
202
+ const l = e.filterModels[r];
203
+ if (l?.filterType === "set" && l.values) return l.values;
205
204
  }
206
205
  } else {
207
206
  if (e.filterType === "set" && "values" in e)
@@ -210,67 +209,67 @@ const Le = {
210
209
  return [String(e.filter)];
211
210
  }
212
211
  return [];
213
- }, [d, o, I]), [S, P] = q(null), ne = () => {
212
+ }, [c, o, A]), [S, I] = q(null), le = () => {
214
213
  const e = S !== null ? S : re();
215
- return T ? z.filter((t) => e.includes(t.value)) : z.find((t) => e.includes(t.value)) || null;
216
- }, oe = (e) => {
214
+ return T ? H.filter((t) => e.includes(t.value)) : H.find((t) => e.includes(t.value)) || null;
215
+ }, ne = (e) => {
217
216
  let t = [];
218
- if (Array.isArray(e) ? t = e.map((l) => l.value) : e && typeof e == "object" && "value" in e && (t = [e.value]), !T) {
219
- H(t), e && L();
217
+ if (Array.isArray(e) ? t = e.map((r) => r.value) : e && typeof e == "object" && "value" in e && (t = [e.value]), !T) {
218
+ P(t), e && G();
220
219
  return;
221
220
  }
222
- P(t);
223
- }, Ce = () => {
224
- H([]), P([]);
225
- }, De = (e) => {
221
+ I(t);
222
+ }, Te = () => {
223
+ P([]), I([]);
224
+ }, Ce = (e) => {
226
225
  if (T) {
227
226
  if (e !== void 0) {
228
227
  let t = [];
229
- Array.isArray(e) ? t = e.map((l) => l.value) : e && typeof e == "object" && "value" in e ? t = [e.value] : e === null && (t = []), H(t), P(null);
228
+ Array.isArray(e) ? t = e.map((r) => r.value) : e && typeof e == "object" && "value" in e ? t = [e.value] : e === null && (t = []), P(t), I(null);
230
229
  return;
231
230
  }
232
- S !== null && (H(S), P(null));
231
+ S !== null && (P(S), I(null));
233
232
  }
234
- }, Ne = () => {
235
- P(re()), Q && Q();
236
- }, Ae = () => ve ? /* @__PURE__ */ s("svg", { className: "cursor-pointer text-navigation-muted hover:text-brand-variant-hover shrink-0", fill: "currentColor", focusable: "false", "aria-hidden": "true", viewBox: "0 0 24 24", width: "18", height: "18", onClick: (e) => {
237
- e.stopPropagation(), k.current && k.current.blur(), J ? J(I) : K ? K(o) : X && X.openAdvancedFilter(o);
238
- }, children: /* @__PURE__ */ s("path", { d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z" }) }) : null, Ie = () => /* @__PURE__ */ s("button", { onClick: L, className: "cursor-pointer shrink-0 text-brand hover:text-brand-strong", children: /* @__PURE__ */ s(pe, { size: "xs" }) }), N = a.filter === "agMultiColumnFilter", x = D(a);
239
- let y = "text";
240
- N ? y = x.set !== -1 ? "set" : x.date !== -1 ? "date" : "text" : R ? y = "set" : v && (y = "date");
241
- const Pe = N ? x.text !== -1 || x.number !== -1 : !v && !R, se = N ? x.set !== -1 : R, ie = N ? x.date !== -1 : v, He = d.getFilterModel()[o], ae = N && He?.filterModels?.some((e, t) => {
242
- const l = t === x.text || t === x.number ? "text" : t === x.set ? "set" : "date";
243
- return e !== null && l !== y;
233
+ }, De = () => {
234
+ I(re()), K && K();
235
+ }, Ne = () => ge ? /* @__PURE__ */ i("svg", { className: "cursor-pointer text-navigation-muted hover:text-brand-variant-hover shrink-0", fill: "currentColor", focusable: "false", "aria-hidden": "true", viewBox: "0 0 24 24", width: "18", height: "18", onClick: (e) => {
236
+ e.stopPropagation(), R.current && R.current.blur(), V ? V(A) : J ? J(o) : U && U.openAdvancedFilter(o);
237
+ }, children: /* @__PURE__ */ i("path", { d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z" }) }) : null, Ae = () => /* @__PURE__ */ i("button", { onClick: G, className: "cursor-pointer shrink-0 text-brand hover:text-brand-strong", children: /* @__PURE__ */ i(he, { size: "xs" }) }), D = d.filter === "agMultiColumnFilter", v = C(d);
238
+ let x = "text";
239
+ D ? x = v.set !== -1 ? "set" : v.date !== -1 ? "date" : "text" : B ? x = "set" : y && (x = "date");
240
+ const Ie = D ? v.text !== -1 || v.number !== -1 : !y && !B, oe = D ? v.set !== -1 : B, ie = D ? v.date !== -1 : y, Pe = c.getFilterModel()[o], se = D && Pe?.filterModels?.some((e, t) => {
241
+ const r = t === v.text || t === v.number ? "text" : t === v.set ? "set" : "date";
242
+ return e !== null && r !== x;
244
243
  });
245
244
  return /* @__PURE__ */ F("div", { className: "ag-header-cell-label flex items-center gap-1 w-full bg-brand-tint px-1 py-2 ag-header-cell-search-active h-full", children: [
246
- y === "set" && se ? /* @__PURE__ */ s(
247
- he,
245
+ x === "set" && oe ? /* @__PURE__ */ i(
246
+ me,
248
247
  {
249
- options: z,
250
- value: ne(),
251
- onChange: oe,
252
- isMulti: T !== void 0 ? T : a?.cellDataType !== "boolean",
253
- placeholder: p("filter.select"),
248
+ options: H,
249
+ value: le(),
250
+ onChange: ne,
251
+ isMulti: T !== void 0 ? T : d?.cellDataType !== "boolean",
252
+ placeholder: m("filter.select"),
254
253
  className: "w-full bg-canvas-elevated",
255
254
  parentClassName: "flex-1 min-w-0",
256
255
  menuWidth: "200px",
257
256
  menuPortalTarget: document.body,
258
257
  autoFocus: !0,
259
- onMenuOpen: Ne,
260
- onMenuClose: De,
261
- onMenuScrollToBottom: xe,
262
- onInputChange: ye,
263
- onClearAll: Ce,
264
- isLoading: U,
258
+ onMenuOpen: De,
259
+ onMenuClose: Ce,
260
+ onMenuScrollToBottom: ye,
261
+ onInputChange: ve,
262
+ onClearAll: Te,
263
+ isLoading: Q,
265
264
  onFocus: () => f(!0),
266
265
  onBlur: () => f(!1)
267
266
  }
268
- ) : y === "date" && ie ? /* @__PURE__ */ s(
267
+ ) : x === "date" && ie ? /* @__PURE__ */ i(
269
268
  fe,
270
269
  {
271
- value: $ || void 0,
272
- onChange: (e) => le(e || null),
273
- placeholder: p("filter.selectDate"),
270
+ value: Z || void 0,
271
+ onChange: (e) => te(e || null),
272
+ placeholder: m("filter.selectDate"),
274
273
  format: "MM-dd-yyyy",
275
274
  minDate: /* @__PURE__ */ new Date("2000-01-01"),
276
275
  maxDate: /* @__PURE__ */ new Date("2100-12-31"),
@@ -278,70 +277,69 @@ const Le = {
278
277
  onFocus: () => f(!0),
279
278
  onBlur: () => f(!1)
280
279
  }
281
- ) : /* @__PURE__ */ s(
282
- me,
280
+ ) : /* @__PURE__ */ i(
281
+ ue,
283
282
  {
284
- value: O,
285
- onChange: te,
286
- placeholder: p("filter.search"),
283
+ value: k,
284
+ onChange: ee,
285
+ placeholder: m("filter.search"),
287
286
  type: "text",
288
- className: "flex-1 bg-canvas-elevated",
289
287
  autoFocus: !0,
290
- ref: k,
288
+ ref: R,
291
289
  onFocus: () => f(!0),
292
290
  onBlur: () => f(!1),
293
- suffix: O && /* @__PURE__ */ s("button", { onClick: (e) => {
294
- e.stopPropagation(), Te();
295
- }, className: "cursor-pointer text-navigation-muted hover:text-brand-variant-hover", children: /* @__PURE__ */ s(pe, { size: "xs" }) })
291
+ suffix: k && /* @__PURE__ */ i("button", { onClick: (e) => {
292
+ e.stopPropagation(), Me();
293
+ }, className: "cursor-pointer text-navigation-muted hover:text-brand-variant-hover", children: /* @__PURE__ */ i(he, { size: "xs" }) })
296
294
  }
297
295
  ),
298
296
  /* @__PURE__ */ F("div", { className: "flex items-center gap-1.5 shrink-0", children: [
299
- N && /* @__PURE__ */ F(Ee, { children: [
300
- /* @__PURE__ */ s(we, { asChild: !0, children: /* @__PURE__ */ F("div", { className: "relative group p-1 hover:bg-brand-tint rounded-md transition-colors cursor-pointer", children: [
301
- /* @__PURE__ */ s(Se, { size: "md", className: qe("text-content-tertiary group-hover:text-brand-variant-hover", ae && "text-brand-variant-hover") }),
302
- ae && /* @__PURE__ */ s("span", { className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-brand border border-white shadow-sm" })
297
+ D && /* @__PURE__ */ F(ze, { children: [
298
+ /* @__PURE__ */ i(Ee, { asChild: !0, children: /* @__PURE__ */ F("div", { className: "relative group p-1 hover:bg-brand-tint rounded-md transition-colors cursor-pointer", children: [
299
+ /* @__PURE__ */ i(Se, { size: "md", className: qe("text-content-tertiary group-hover:text-brand-variant-hover", se && "text-brand-variant-hover") }),
300
+ se && /* @__PURE__ */ i("span", { className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-brand border border-white shadow-sm" })
303
301
  ] }) }),
304
- /* @__PURE__ */ F(Be, { align: "end", className: "w-[300px]", children: [
305
- /* @__PURE__ */ s(Re, { children: /* @__PURE__ */ s(ke, { children: p("gridHeader.activeFilters") }) }),
306
- /* @__PURE__ */ F(Oe, { className: "flex flex-col gap-4", children: [
307
- y !== "text" && Pe && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
308
- /* @__PURE__ */ s("span", { className: "text-xs font-semibold text-content-tertiary", children: p("gridHeader.textSearch") }),
309
- /* @__PURE__ */ s(
310
- me,
302
+ /* @__PURE__ */ F(we, { align: "end", className: "w-[300px]", children: [
303
+ /* @__PURE__ */ i(Be, { children: /* @__PURE__ */ i(Re, { children: m("gridHeader.activeFilters") }) }),
304
+ /* @__PURE__ */ F(ke, { className: "flex flex-col gap-4", children: [
305
+ x !== "text" && Ie && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
306
+ /* @__PURE__ */ i("span", { className: "text-xs font-semibold text-content-tertiary", children: m("gridHeader.textSearch") }),
307
+ /* @__PURE__ */ i(
308
+ ue,
311
309
  {
312
- value: O,
313
- onChange: te,
314
- placeholder: p("filter.searchPlaceholder"),
310
+ value: k,
311
+ onChange: ee,
312
+ placeholder: m("filter.searchPlaceholder"),
315
313
  className: "bg-canvas-elevated",
316
314
  onFocus: () => f(!0),
317
315
  onBlur: () => f(!1)
318
316
  }
319
317
  )
320
318
  ] }),
321
- y !== "set" && se && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
322
- /* @__PURE__ */ s("span", { className: "text-xs font-semibold text-content-tertiary", children: p("gridHeader.selectionFilter") }),
323
- /* @__PURE__ */ s(
324
- he,
319
+ x !== "set" && oe && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
320
+ /* @__PURE__ */ i("span", { className: "text-xs font-semibold text-content-tertiary", children: m("gridHeader.selectionFilter") }),
321
+ /* @__PURE__ */ i(
322
+ me,
325
323
  {
326
- options: z,
327
- value: ne(),
328
- onChange: oe,
329
- isMulti: T !== void 0 ? T : a?.cellDataType !== "boolean",
330
- placeholder: p("filter.select"),
324
+ options: H,
325
+ value: le(),
326
+ onChange: ne,
327
+ isMulti: T !== void 0 ? T : d?.cellDataType !== "boolean",
328
+ placeholder: m("filter.select"),
331
329
  className: "w-full bg-canvas-elevated",
332
- isLoading: U,
330
+ isLoading: Q,
333
331
  onFocus: () => f(!0),
334
332
  onBlur: () => f(!1)
335
333
  }
336
334
  )
337
335
  ] }),
338
- y !== "date" && ie && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
339
- /* @__PURE__ */ s("span", { className: "text-xs font-semibold text-content-tertiary", children: p("gridHeader.dateFilter") }),
340
- /* @__PURE__ */ s(
336
+ x !== "date" && ie && /* @__PURE__ */ F("div", { className: "flex flex-col gap-1.5", children: [
337
+ /* @__PURE__ */ i("span", { className: "text-xs font-semibold text-content-tertiary", children: m("gridHeader.dateFilter") }),
338
+ /* @__PURE__ */ i(
341
339
  fe,
342
340
  {
343
- value: $ || void 0,
344
- onChange: (e) => le(e || null),
341
+ value: Z || void 0,
342
+ onChange: (e) => te(e || null),
345
343
  className: "w-full bg-canvas-elevated",
346
344
  onFocus: () => f(!0),
347
345
  onBlur: () => f(!1)
@@ -351,11 +349,11 @@ const Le = {
351
349
  ] })
352
350
  ] })
353
351
  ] }),
354
- Ae(),
355
- Ie()
352
+ Ne(),
353
+ Ae()
356
354
  ] })
357
355
  ] });
358
356
  };
359
357
  export {
360
- nt as HeaderSearchInput
358
+ lt as HeaderSearchInput
361
359
  };