@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.
Files changed (72) hide show
  1. package/all.js.map +1 -1
  2. package/index.js +1 -1
  3. package/index.js.map +1 -1
  4. package/lib/core/grid.d.ts +7 -0
  5. package/lib/core/grid.d.ts.map +1 -1
  6. package/lib/core/plugin/base-plugin.d.ts +6 -0
  7. package/lib/core/plugin/base-plugin.d.ts.map +1 -1
  8. package/lib/core/plugin/types.d.ts +1 -0
  9. package/lib/core/plugin/types.d.ts.map +1 -1
  10. package/lib/core/types.d.ts +9 -2
  11. package/lib/core/types.d.ts.map +1 -1
  12. package/lib/plugins/clipboard/ClipboardPlugin.d.ts +3 -3
  13. package/lib/plugins/clipboard/index.js.map +1 -1
  14. package/lib/plugins/clipboard/types.d.ts +1 -1
  15. package/lib/plugins/column-virtualization/index.js.map +1 -1
  16. package/lib/plugins/column-virtualization/types.d.ts +24 -2
  17. package/lib/plugins/column-virtualization/types.d.ts.map +1 -1
  18. package/lib/plugins/context-menu/index.js.map +1 -1
  19. package/lib/plugins/editing/index.js.map +1 -1
  20. package/lib/plugins/editing/types.d.ts +1 -1
  21. package/lib/plugins/export/ExportPlugin.d.ts +1 -1
  22. package/lib/plugins/export/index.js.map +1 -1
  23. package/lib/plugins/export/types.d.ts +9 -1
  24. package/lib/plugins/export/types.d.ts.map +1 -1
  25. package/lib/plugins/filtering/index.js.map +1 -1
  26. package/lib/plugins/filtering/types.d.ts +158 -2
  27. package/lib/plugins/filtering/types.d.ts.map +1 -1
  28. package/lib/plugins/grouping-columns/index.js.map +1 -1
  29. package/lib/plugins/grouping-rows/index.js.map +1 -1
  30. package/lib/plugins/grouping-rows/types.d.ts +48 -3
  31. package/lib/plugins/grouping-rows/types.d.ts.map +1 -1
  32. package/lib/plugins/master-detail/index.js.map +1 -1
  33. package/lib/plugins/multi-sort/index.js.map +1 -1
  34. package/lib/plugins/multi-sort/types.d.ts +40 -6
  35. package/lib/plugins/multi-sort/types.d.ts.map +1 -1
  36. package/lib/plugins/pinned-columns/index.js.map +1 -1
  37. package/lib/plugins/pinned-rows/index.js.map +1 -1
  38. package/lib/plugins/pinned-rows/types.d.ts +42 -4
  39. package/lib/plugins/pinned-rows/types.d.ts.map +1 -1
  40. package/lib/plugins/pivot/index.js.map +1 -1
  41. package/lib/plugins/pivot/types.d.ts +66 -1
  42. package/lib/plugins/pivot/types.d.ts.map +1 -1
  43. package/lib/plugins/print/PrintPlugin.d.ts +1 -1
  44. package/lib/plugins/print/index.js.map +1 -1
  45. package/lib/plugins/print/types.d.ts +9 -1
  46. package/lib/plugins/print/types.d.ts.map +1 -1
  47. package/lib/plugins/reorder/index.js.map +1 -1
  48. package/lib/plugins/reorder/types.d.ts +12 -1
  49. package/lib/plugins/reorder/types.d.ts.map +1 -1
  50. package/lib/plugins/responsive/index.js.map +1 -1
  51. package/lib/plugins/row-reorder/index.js.map +1 -1
  52. package/lib/plugins/selection/SelectionPlugin.d.ts +5 -5
  53. package/lib/plugins/selection/index.js.map +1 -1
  54. package/lib/plugins/server-side/index.js.map +1 -1
  55. package/lib/plugins/server-side/types.d.ts +82 -0
  56. package/lib/plugins/server-side/types.d.ts.map +1 -1
  57. package/lib/plugins/tree/index.js.map +1 -1
  58. package/lib/plugins/undo-redo/index.js.map +1 -1
  59. package/lib/plugins/visibility/VisibilityPlugin.d.ts +1 -1
  60. package/lib/plugins/visibility/index.js.map +1 -1
  61. package/lib/plugins/visibility/types.d.ts +16 -2
  62. package/lib/plugins/visibility/types.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/public.d.ts +1 -1
  65. package/public.d.ts.map +1 -1
  66. package/umd/grid.all.umd.js.map +1 -1
  67. package/umd/grid.umd.js.map +1 -1
  68. package/umd/plugins/clipboard.umd.js.map +1 -1
  69. package/umd/plugins/export.umd.js.map +1 -1
  70. package/umd/plugins/print.umd.js.map +1 -1
  71. package/umd/plugins/selection.umd.js.map +1 -1
  72. 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
- /** Supported filter types */
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
- /** Filter operators for different filter types */
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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/filtering/types.ts"],"names":[],"mappings":"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"}