@toolbox-web/grid 1.23.3 → 1.23.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/all.js.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/lib/core/grid.d.ts +7 -0
- package/lib/core/grid.d.ts.map +1 -1
- package/lib/core/plugin/base-plugin.d.ts +6 -0
- package/lib/core/plugin/base-plugin.d.ts.map +1 -1
- package/lib/core/plugin/types.d.ts +1 -0
- package/lib/core/plugin/types.d.ts.map +1 -1
- package/lib/core/types.d.ts +9 -2
- package/lib/core/types.d.ts.map +1 -1
- package/lib/plugins/clipboard/ClipboardPlugin.d.ts +3 -3
- package/lib/plugins/clipboard/index.js.map +1 -1
- package/lib/plugins/clipboard/types.d.ts +1 -1
- package/lib/plugins/column-virtualization/index.js.map +1 -1
- package/lib/plugins/column-virtualization/types.d.ts +24 -2
- package/lib/plugins/column-virtualization/types.d.ts.map +1 -1
- package/lib/plugins/context-menu/index.js.map +1 -1
- package/lib/plugins/editing/index.js.map +1 -1
- package/lib/plugins/editing/types.d.ts +1 -1
- package/lib/plugins/export/ExportPlugin.d.ts +1 -1
- package/lib/plugins/export/index.js.map +1 -1
- package/lib/plugins/export/types.d.ts +9 -1
- package/lib/plugins/export/types.d.ts.map +1 -1
- package/lib/plugins/filtering/index.js.map +1 -1
- package/lib/plugins/filtering/types.d.ts +158 -2
- package/lib/plugins/filtering/types.d.ts.map +1 -1
- package/lib/plugins/grouping-columns/index.js.map +1 -1
- package/lib/plugins/grouping-rows/index.js.map +1 -1
- package/lib/plugins/grouping-rows/types.d.ts +48 -3
- package/lib/plugins/grouping-rows/types.d.ts.map +1 -1
- package/lib/plugins/master-detail/index.js.map +1 -1
- package/lib/plugins/multi-sort/index.js.map +1 -1
- package/lib/plugins/multi-sort/types.d.ts +40 -6
- package/lib/plugins/multi-sort/types.d.ts.map +1 -1
- package/lib/plugins/pinned-columns/index.js.map +1 -1
- package/lib/plugins/pinned-rows/index.js.map +1 -1
- package/lib/plugins/pinned-rows/types.d.ts +42 -4
- package/lib/plugins/pinned-rows/types.d.ts.map +1 -1
- package/lib/plugins/pivot/index.js.map +1 -1
- package/lib/plugins/pivot/types.d.ts +66 -1
- package/lib/plugins/pivot/types.d.ts.map +1 -1
- package/lib/plugins/print/PrintPlugin.d.ts +1 -1
- package/lib/plugins/print/index.js.map +1 -1
- package/lib/plugins/print/types.d.ts +9 -1
- package/lib/plugins/print/types.d.ts.map +1 -1
- package/lib/plugins/reorder/index.js.map +1 -1
- package/lib/plugins/reorder/types.d.ts +12 -1
- package/lib/plugins/reorder/types.d.ts.map +1 -1
- package/lib/plugins/responsive/index.js.map +1 -1
- package/lib/plugins/row-reorder/index.js.map +1 -1
- package/lib/plugins/selection/SelectionPlugin.d.ts +5 -5
- package/lib/plugins/selection/index.js.map +1 -1
- package/lib/plugins/server-side/index.js.map +1 -1
- package/lib/plugins/server-side/types.d.ts +82 -0
- package/lib/plugins/server-side/types.d.ts.map +1 -1
- package/lib/plugins/tree/index.js.map +1 -1
- package/lib/plugins/undo-redo/index.js.map +1 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts +1 -1
- package/lib/plugins/visibility/index.js.map +1 -1
- package/lib/plugins/visibility/types.d.ts +16 -2
- package/lib/plugins/visibility/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/public.d.ts +1 -1
- package/public.d.ts.map +1 -1
- package/umd/grid.all.umd.js.map +1 -1
- package/umd/grid.umd.js.map +1 -1
- package/umd/plugins/clipboard.umd.js.map +1 -1
- package/umd/plugins/export.umd.js.map +1 -1
- package/umd/plugins/print.umd.js.map +1 -1
- package/umd/plugins/selection.umd.js.map +1 -1
- package/umd/plugins/visibility.umd.js.map +1 -1
|
@@ -127,9 +127,165 @@ export interface FilterParams {
|
|
|
127
127
|
/** Placeholder text for text inputs */
|
|
128
128
|
placeholder?: string;
|
|
129
129
|
}
|
|
130
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* The category of filter applied to a column, which determines the available
|
|
132
|
+
* {@link FilterOperator operators} and the filter panel UI rendered.
|
|
133
|
+
*
|
|
134
|
+
* | Type | Panel UI | Compatible operators |
|
|
135
|
+
* |------|----------|---------------------|
|
|
136
|
+
* | `'text'` | Text input with operator dropdown | `contains`, `notContains`, `equals`, `notEquals`, `startsWith`, `endsWith`, `blank`, `notBlank` |
|
|
137
|
+
* | `'number'` | Range slider with min/max inputs | `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`, `between`, `blank`, `notBlank` |
|
|
138
|
+
* | `'date'` | Date pickers (from/to) | Same as `'number'` |
|
|
139
|
+
* | `'set'` | Checkbox list of unique values | `in`, `notIn`, `blank`, `notBlank` |
|
|
140
|
+
* | `'boolean'` | Checkbox list (`true` / `false` / `(Blank)`) | `in`, `notIn`, `blank`, `notBlank` |
|
|
141
|
+
*
|
|
142
|
+
* The grid auto-detects the filter type from the column's `type` property.
|
|
143
|
+
* Override by setting `filter.type` explicitly in the {@link FilterModel}.
|
|
144
|
+
*/
|
|
131
145
|
export type FilterType = 'text' | 'number' | 'date' | 'set' | 'boolean';
|
|
132
|
-
/**
|
|
146
|
+
/**
|
|
147
|
+
* Filter operators used in {@link FilterModel} to define how a cell value is compared
|
|
148
|
+
* against the filter value. Operators are grouped by the column types they apply to.
|
|
149
|
+
*
|
|
150
|
+
* **Multiple filters** on different columns use AND logic — a row must match all active filters.
|
|
151
|
+
*
|
|
152
|
+
* ---
|
|
153
|
+
*
|
|
154
|
+
* ## Text operators (`FilterType: 'text'`)
|
|
155
|
+
*
|
|
156
|
+
* Compare cell values as strings. **Case-insensitive by default** (controlled by `FilterConfig.caseSensitive`).
|
|
157
|
+
* Non-string cell values are coerced via `String()` before comparison.
|
|
158
|
+
*
|
|
159
|
+
* | Operator | Matches when | Example: filter = `"lic"` |
|
|
160
|
+
* |--|--|--|
|
|
161
|
+
* | `contains` | Cell value includes the filter as a substring | `"Alice"` ✓, `"Bob"` ✗ |
|
|
162
|
+
* | `notContains` | Cell value does **not** include the filter substring | `"Bob"` ✓, `"Alice"` ✗ |
|
|
163
|
+
* | `equals` | Cell value exactly equals the filter (after case normalization) | `"lic"` ✓, `"Alice"` ✗ |
|
|
164
|
+
* | `notEquals` | Cell value does **not** equal the filter | `"Alice"` ✓, `"lic"` ✗ |
|
|
165
|
+
* | `startsWith` | Cell value begins with the filter | filter `"Al"` → `"Alice"` ✓ |
|
|
166
|
+
* | `endsWith` | Cell value ends with the filter | filter `"ce"` → `"Alice"` ✓ |
|
|
167
|
+
*
|
|
168
|
+
* **When to use:**
|
|
169
|
+
* - `contains` — the default for free-text search fields; most intuitive for users
|
|
170
|
+
* - `equals` — when filtering on exact known values (e.g. status codes)
|
|
171
|
+
* - `startsWith` / `endsWith` — for prefix/suffix matching (e.g. file extensions, area codes)
|
|
172
|
+
* - `notContains` / `notEquals` — exclusion filters ("show everything except...")
|
|
173
|
+
*
|
|
174
|
+
* ---
|
|
175
|
+
*
|
|
176
|
+
* ## Blank operators (`FilterType: all`)
|
|
177
|
+
*
|
|
178
|
+
* These work universally across all filter types and check for **empty** values.
|
|
179
|
+
* They are evaluated first, before any type-specific logic.
|
|
180
|
+
*
|
|
181
|
+
* | Operator | Matches when | Does NOT match |
|
|
182
|
+
* |--|--|--|
|
|
183
|
+
* | `blank` | Cell is `null`, `undefined`, or `""` (empty string) | `0`, `false`, `NaN` |
|
|
184
|
+
* | `notBlank` | Cell has any non-null, non-empty value | `null`, `undefined`, `""` |
|
|
185
|
+
*
|
|
186
|
+
* **When to use:**
|
|
187
|
+
* - `blank` — find rows with missing data (e.g. "show incomplete records")
|
|
188
|
+
* - `notBlank` — exclude rows with missing data (e.g. "show only filled records")
|
|
189
|
+
*
|
|
190
|
+
* ---
|
|
191
|
+
*
|
|
192
|
+
* ## Numeric / date operators (`FilterType: 'number' | 'date'`)
|
|
193
|
+
*
|
|
194
|
+
* Compare values numerically. An internal `toNumeric()` conversion handles:
|
|
195
|
+
* - Numbers → used directly
|
|
196
|
+
* - `Date` objects → converted via `.getTime()` (milliseconds since epoch)
|
|
197
|
+
* - ISO date strings (e.g. `"2025-03-11"`) → parsed as `Date`, then `.getTime()`
|
|
198
|
+
* - Unparseable values → `NaN`, which fails all comparisons (row excluded)
|
|
199
|
+
*
|
|
200
|
+
* | Operator | Matches when (`cell` vs `filter.value`) |
|
|
201
|
+
* |--|--|
|
|
202
|
+
* | `lessThan` | `cell < value` |
|
|
203
|
+
* | `lessThanOrEqual` | `cell <= value` |
|
|
204
|
+
* | `greaterThan` | `cell > value` |
|
|
205
|
+
* | `greaterThanOrEqual` | `cell >= value` |
|
|
206
|
+
* | `between` | `value <= cell <= valueTo` (inclusive both ends) |
|
|
207
|
+
*
|
|
208
|
+
* The `between` operator requires both `filter.value` (min) and `filter.valueTo` (max).
|
|
209
|
+
* In the built-in UI:
|
|
210
|
+
* - **Number panels** render a dual-thumb range slider with min/max inputs
|
|
211
|
+
* - **Date panels** render "From" and "To" date pickers
|
|
212
|
+
*
|
|
213
|
+
* **When to use:**
|
|
214
|
+
* - `between` — range filters (age 25–35, dates in Q1, prices $10–$50)
|
|
215
|
+
* - `greaterThan` / `lessThan` — open-ended thresholds ("salary above 100k")
|
|
216
|
+
* - `greaterThanOrEqual` / `lessThanOrEqual` — inclusive thresholds
|
|
217
|
+
*
|
|
218
|
+
* ---
|
|
219
|
+
*
|
|
220
|
+
* ## Set operators (`FilterType: 'set' | 'boolean'`)
|
|
221
|
+
*
|
|
222
|
+
* Filter by inclusion/exclusion against a set of discrete values. The built-in filter panel
|
|
223
|
+
* shows a checkbox list of unique values; unchecked items form the excluded set.
|
|
224
|
+
*
|
|
225
|
+
* `filter.value` is an `unknown[]` array containing the set of values.
|
|
226
|
+
*
|
|
227
|
+
* | Operator | Matches when | Typical use |
|
|
228
|
+
* |--|--|--|
|
|
229
|
+
* | `notIn` | Cell value is **not** in the excluded array | Default for checkbox lists — unchecked items are excluded |
|
|
230
|
+
* | `in` | Cell value **is** in the included array | Explicit inclusion ("show only these") |
|
|
231
|
+
*
|
|
232
|
+
* **Blank handling:** Blank cells (`null`, `undefined`, `""`) are represented by the
|
|
233
|
+
* sentinel `BLANK_FILTER_VALUE` (`"(Blank)"`) in the values array. The panel renders a
|
|
234
|
+
* "(Blank)" checkbox; its checked/unchecked state controls whether blank rows are shown.
|
|
235
|
+
*
|
|
236
|
+
* **With `filterValue` extractor:** When a column defines `filterValue` to extract multiple
|
|
237
|
+
* values from a complex cell (e.g. an array of objects):
|
|
238
|
+
* - `notIn` — row is hidden if **any** extracted value is in the excluded set
|
|
239
|
+
* - `in` — row passes if **any** extracted value is in the included set
|
|
240
|
+
* - Empty extraction (no values) is treated as a blank cell
|
|
241
|
+
*
|
|
242
|
+
* **When to use:**
|
|
243
|
+
* - `notIn` — the default for set/boolean filters; maps naturally to "uncheck to hide"
|
|
244
|
+
* - `in` — when programmatically setting a filter to show only specific values
|
|
245
|
+
*
|
|
246
|
+
* ---
|
|
247
|
+
*
|
|
248
|
+
* ## Operator–type compatibility quick reference
|
|
249
|
+
*
|
|
250
|
+
* | Operator | text | number | date | set | boolean |
|
|
251
|
+
* |--|:--:|:--:|:--:|:--:|:--:|
|
|
252
|
+
* | `contains` | ✓ | | | | |
|
|
253
|
+
* | `notContains` | ✓ | | | | |
|
|
254
|
+
* | `equals` | ✓ | | | | |
|
|
255
|
+
* | `notEquals` | ✓ | | | | |
|
|
256
|
+
* | `startsWith` | ✓ | | | | |
|
|
257
|
+
* | `endsWith` | ✓ | | | | |
|
|
258
|
+
* | `blank` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
259
|
+
* | `notBlank` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
260
|
+
* | `lessThan` | | ✓ | ✓ | | |
|
|
261
|
+
* | `lessThanOrEqual` | | ✓ | ✓ | | |
|
|
262
|
+
* | `greaterThan` | | ✓ | ✓ | | |
|
|
263
|
+
* | `greaterThanOrEqual` | | ✓ | ✓ | | |
|
|
264
|
+
* | `between` | | ✓ | ✓ | | |
|
|
265
|
+
* | `in` | | | | ✓ | ✓ |
|
|
266
|
+
* | `notIn` | | | | ✓ | ✓ |
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```typescript
|
|
270
|
+
* // Text: free-text search on name column
|
|
271
|
+
* { field: 'name', type: 'text', operator: 'contains', value: 'alice' }
|
|
272
|
+
*
|
|
273
|
+
* // Number: salary above 100k
|
|
274
|
+
* { field: 'salary', type: 'number', operator: 'greaterThan', value: 100000 }
|
|
275
|
+
*
|
|
276
|
+
* // Date: hired in Q1 2025
|
|
277
|
+
* { field: 'hireDate', type: 'date', operator: 'between', value: '2025-01-01', valueTo: '2025-03-31' }
|
|
278
|
+
*
|
|
279
|
+
* // Set: show only Engineering and Sales departments
|
|
280
|
+
* { field: 'department', type: 'set', operator: 'in', value: ['Engineering', 'Sales'] }
|
|
281
|
+
*
|
|
282
|
+
* // Set: hide specific statuses (checkbox-style exclusion)
|
|
283
|
+
* { field: 'status', type: 'set', operator: 'notIn', value: ['Inactive', 'Archived'] }
|
|
284
|
+
*
|
|
285
|
+
* // Blank: find rows missing an email
|
|
286
|
+
* { field: 'email', type: 'text', operator: 'blank', value: '' }
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
133
289
|
export type FilterOperator = 'contains' | 'notContains' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'blank' | 'notBlank' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'between' | 'in' | 'notIn';
|
|
134
290
|
/** Filter model representing a single filter condition */
|
|
135
291
|
export interface FilterModel {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/filtering/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,gBAAgB;QACxB;;;WAGG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB;;;;;WAKG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC;QAE5B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;KACjE;IAED,UAAU,WAAW;QACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;QACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C;IAGD,UAAU,WAAW;QACnB;;;WAGG;QACH,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;YACrD,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC;YACf,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,CAAC;KACH;IAED,UAAU,UAAU;QAClB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB;IAED,UAAU,aAAa;QACrB,SAAS,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;KACxD;CACF;AAGD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/filtering/types.ts"],"names":[],"mappings":"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"}
|