ag-grid-url-sync 0.4.1 → 0.5.1

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 (58) hide show
  1. package/README.md +143 -50
  2. package/dist/core/ag-grid-url-sync.d.ts +19 -5
  3. package/dist/core/ag-grid-url-sync.js +28 -17
  4. package/dist/core/ag-grid-url-sync.js.map +1 -1
  5. package/dist/core/grid-integration.d.ts +27 -1
  6. package/dist/core/grid-integration.js +161 -129
  7. package/dist/core/grid-integration.js.map +1 -1
  8. package/dist/core/index.d.ts +2 -1
  9. package/dist/core/index.js +2 -1
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/individual-params.d.ts +26 -0
  12. package/dist/core/individual-params.js +236 -0
  13. package/dist/core/individual-params.js.map +1 -0
  14. package/dist/core/issue-columns.d.ts +2 -0
  15. package/dist/core/issue-columns.js +11 -0
  16. package/dist/core/issue-columns.js.map +1 -0
  17. package/dist/core/issues.d.ts +34 -0
  18. package/dist/core/issues.js +58 -0
  19. package/dist/core/issues.js.map +1 -0
  20. package/dist/core/operators.d.ts +189 -0
  21. package/dist/core/operators.js +60 -0
  22. package/dist/core/operators.js.map +1 -0
  23. package/dist/core/options.d.ts +21 -0
  24. package/dist/core/options.js +21 -0
  25. package/dist/core/options.js.map +1 -0
  26. package/dist/core/schemas.d.ts +51 -0
  27. package/dist/core/schemas.js +59 -0
  28. package/dist/core/schemas.js.map +1 -0
  29. package/dist/core/serialization/formats.d.ts +8 -9
  30. package/dist/core/serialization/formats.js +70 -47
  31. package/dist/core/serialization/formats.js.map +1 -1
  32. package/dist/core/serialization/grouped.d.ts +13 -11
  33. package/dist/core/serialization/grouped.js +24 -17
  34. package/dist/core/serialization/grouped.js.map +1 -1
  35. package/dist/core/to-error.d.ts +5 -0
  36. package/dist/core/to-error.js +4 -0
  37. package/dist/core/to-error.js.map +1 -0
  38. package/dist/core/types.d.ts +172 -33
  39. package/dist/core/types.js +35 -108
  40. package/dist/core/types.js.map +1 -1
  41. package/dist/core/url-generator.d.ts +10 -7
  42. package/dist/core/url-generator.js +29 -121
  43. package/dist/core/url-generator.js.map +1 -1
  44. package/dist/core/url-parser.d.ts +19 -7
  45. package/dist/core/url-parser.js +31 -239
  46. package/dist/core/url-parser.js.map +1 -1
  47. package/dist/core/validation.d.ts +21 -14
  48. package/dist/core/validation.js +58 -54
  49. package/dist/core/validation.js.map +1 -1
  50. package/dist/core/view-storage.js +21 -19
  51. package/dist/core/view-storage.js.map +1 -1
  52. package/dist/index.d.ts +2 -1
  53. package/dist/index.js +2 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/react/types.d.ts +36 -11
  56. package/dist/react/use-ag-grid-url-sync.js +151 -97
  57. package/dist/react/use-ag-grid-url-sync.js.map +1 -1
  58. package/package.json +35 -16
@@ -1,17 +1,26 @@
1
- import { AG_GRID_OPERATION_NAMES, REVERSE_AG_GRID_OPERATION_NAMES, TEXT_FILTER_OPERATIONS, NUMBER_FILTER_OPERATIONS, DATE_FILTER_OPERATIONS } from './types.js';
2
- const AG_GRID_TO_NUMBER_OPERATION_MAP = {
3
- lessThan: 'lessThan',
4
- lessThanOrEqual: 'lessThanOrEqual',
5
- greaterThan: 'greaterThan',
6
- greaterThanOrEqual: 'greaterThanOrEqual',
7
- inRange: 'inRange',
8
- equals: 'eq',
9
- notEqual: 'notEqual',
10
- blank: 'blank',
11
- notBlank: 'notBlank'
12
- };
13
- function isValidNumberOperation(operation) {
14
- return Boolean(operation && operation in AG_GRID_TO_NUMBER_OPERATION_MAP);
1
+ import * as v from 'valibot';
2
+ import { InvalidFilterError, NUMBER_FILTER_OPERATIONS, isDateFilterOperation, isNumberFilterOperation, isTextFilterOperation } from './types.js';
3
+ import { operatorById, operatorFromAgGrid } from './operators.js';
4
+ import { AgGridFilterSchema, JsonObjectSchema } from './schemas.js';
5
+ import { reportIssue, toIssue } from './issues.js';
6
+ import { readNumber } from './validation.js';
7
+ import { resolveOptions } from './options.js';
8
+ function toAgGridOperation(operation) {
9
+ return operatorById(operation)?.agGrid ?? null;
10
+ }
11
+ function hasGridValue(value) {
12
+ return value !== undefined && value !== null && String(value).trim() !== '';
13
+ }
14
+ function gridNumber(value, column) {
15
+ if (!v.is(v.string(), value))
16
+ return Number(value);
17
+ const number = readNumber(value);
18
+ return number instanceof InvalidFilterError
19
+ ? new InvalidFilterError(`${number.message} (column '${column}')`, undefined, {
20
+ code: 'INVALID_NUMBER',
21
+ column
22
+ })
23
+ : number;
15
24
  }
16
25
  function toIsoDateString(val) {
17
26
  if (!val)
@@ -19,15 +28,6 @@ function toIsoDateString(val) {
19
28
  const match = val.match(/^(\d{4}-\d{2}-\d{2})/);
20
29
  return match?.[1] ? match[1] : val || '';
21
30
  }
22
- function isTextFilterOperation(operation) {
23
- return TEXT_FILTER_OPERATIONS.includes(operation);
24
- }
25
- function isNumberFilterOperation(operation) {
26
- return NUMBER_FILTER_OPERATIONS.includes(operation);
27
- }
28
- function isDateFilterOperation(operation) {
29
- return DATE_FILTER_OPERATIONS.includes(operation);
30
- }
31
31
  export function detectColumnFilterType(gridApi, columnId) {
32
32
  try {
33
33
  const column = gridApi.getColumn(columnId);
@@ -52,90 +52,122 @@ export function detectColumnFilterType(gridApi, columnId) {
52
52
  return 'text';
53
53
  }
54
54
  }
55
- export function getFilterModel(config) {
55
+ export function getFilterModel(source, options) {
56
+ if ('gridApi' in source) {
57
+ return readGridFilters(source.gridApi, resolveOptions(source));
58
+ }
59
+ return readGridFilters(source, resolveOptions(options));
60
+ }
61
+ function readGridFilters(gridApi, options) {
62
+ let model;
56
63
  try {
57
- const model = config.gridApi.getFilterModel();
58
- const filterState = {};
59
- if (!model || typeof model !== 'object') {
60
- return filterState;
64
+ model = gridApi.getFilterModel();
65
+ }
66
+ catch (error) {
67
+ reportIssue(options, toIssue(error, 'GRID_ERROR'));
68
+ return {};
69
+ }
70
+ const filters = new Map();
71
+ if (!v.is(JsonObjectSchema, model)) {
72
+ return {};
73
+ }
74
+ for (const [column, entry] of Object.entries(model)) {
75
+ const parsed = v.safeParse(AgGridFilterSchema, entry);
76
+ if (!parsed.success)
77
+ continue;
78
+ const filter = parsed.output;
79
+ if (filter.filterType === 'text') {
80
+ const operator = operatorFromAgGrid('text', filter.type);
81
+ if (operator && isTextFilterOperation(operator.id)) {
82
+ filters.set(column, {
83
+ filterType: 'text',
84
+ type: operator.id,
85
+ filter: String(filter.filter || '')
86
+ });
87
+ }
61
88
  }
62
- for (const [column, filter] of Object.entries(model)) {
63
- if (!filter || typeof filter !== 'object')
89
+ else if (filter.filterType === 'number') {
90
+ const operator = operatorFromAgGrid('number', filter.type);
91
+ const internalOperation = operator?.id;
92
+ if (!operator ||
93
+ !internalOperation ||
94
+ !isNumberFilterOperation(internalOperation)) {
95
+ reportIssue(options, new InvalidFilterError(`Unknown number filter operation '${filter.type}' for column '${column}'. ` +
96
+ `Supported operations: ${NUMBER_FILTER_OPERATIONS.map(toAgGridOperation).join(', ')}`, undefined, { code: 'INVALID_PARAM', column }));
64
97
  continue;
65
- const { filterType, type, filter: value, filterTo, dateFrom, dateTo } = filter;
66
- if (filterType === 'text') {
67
- const internalOperation = REVERSE_AG_GRID_OPERATION_NAMES[type];
68
- if (internalOperation && isTextFilterOperation(internalOperation)) {
69
- filterState[column] = {
70
- filterType: 'text',
71
- type: internalOperation,
72
- filter: String(value || '')
73
- };
74
- }
75
98
  }
76
- else if (filterType === 'number') {
77
- const internalOperation = isValidNumberOperation(type)
78
- ? AG_GRID_TO_NUMBER_OPERATION_MAP[type]
79
- : null;
80
- if (!internalOperation) {
81
- if (config.onParseError) {
82
- config.onParseError(new Error(`Unknown number filter operation '${type}' for column '${column}'. ` +
83
- `Supported operations: ${Object.keys(AG_GRID_TO_NUMBER_OPERATION_MAP).join(', ')}`));
84
- }
85
- continue;
99
+ if (operator.arity === 0) {
100
+ filters.set(column, {
101
+ filterType: 'number',
102
+ type: internalOperation,
103
+ filter: 0
104
+ });
105
+ continue;
106
+ }
107
+ if (!hasGridValue(filter.filter) ||
108
+ (operator.arity === 2 && !hasGridValue(filter.filterTo))) {
109
+ continue;
110
+ }
111
+ const numericValue = gridNumber(filter.filter, column);
112
+ const numericTo = operator.arity === 2 && hasGridValue(filter.filterTo)
113
+ ? gridNumber(filter.filterTo, column)
114
+ : undefined;
115
+ if (numericValue instanceof InvalidFilterError) {
116
+ reportIssue(options, numericValue);
117
+ continue;
118
+ }
119
+ if (numericTo instanceof InvalidFilterError) {
120
+ reportIssue(options, numericTo);
121
+ continue;
122
+ }
123
+ if (isNaN(numericValue)) {
124
+ continue;
125
+ }
126
+ filters.set(column, internalOperation === 'inRange' && numericTo !== undefined
127
+ ? {
128
+ filterType: 'number',
129
+ type: internalOperation,
130
+ filter: numericValue,
131
+ filterTo: numericTo
86
132
  }
87
- if (internalOperation && isNumberFilterOperation(internalOperation)) {
88
- const numericValue = typeof value === 'number' ? value : Number(value);
89
- if (isNaN(numericValue)) {
90
- continue;
91
- }
92
- const numberFilter = {
93
- filterType: 'number',
94
- type: internalOperation,
95
- filter: numericValue
96
- };
97
- if (internalOperation === 'inRange' && typeof filterTo === 'number') {
98
- ;
99
- numberFilter.filterTo = filterTo;
100
- }
101
- filterState[column] = numberFilter;
133
+ : {
134
+ filterType: 'number',
135
+ type: internalOperation,
136
+ filter: numericValue
137
+ });
138
+ }
139
+ else {
140
+ const operator = operatorFromAgGrid('date', filter.type);
141
+ const mappedOperation = operator?.id;
142
+ if (operator &&
143
+ mappedOperation &&
144
+ isDateFilterOperation(mappedOperation)) {
145
+ if (operator.arity === 0) {
146
+ filters.set(column, {
147
+ filterType: 'date',
148
+ type: mappedOperation,
149
+ filter: ''
150
+ });
151
+ continue;
102
152
  }
103
- }
104
- else if (filterType === 'date') {
105
- const internalOperation = REVERSE_AG_GRID_OPERATION_NAMES[type];
106
- let mappedOperation = internalOperation;
107
- const AG_GRID_TO_DATE_OPERATION_MAP = {
108
- lessThan: 'dateBefore',
109
- lessThanOrEqual: 'dateBeforeOrEqual',
110
- greaterThan: 'dateAfter',
111
- greaterThanOrEqual: 'dateAfterOrEqual',
112
- inRange: 'dateRange'
113
- };
114
- mappedOperation = type
115
- ? AG_GRID_TO_DATE_OPERATION_MAP[type] || internalOperation
116
- : internalOperation;
117
- if (mappedOperation && isDateFilterOperation(mappedOperation)) {
118
- const dateFilter = {
153
+ const from = toIsoDateString(filter.dateFrom || String(filter.filter || ''));
154
+ const to = operator.arity === 2
155
+ ? toIsoDateString(filter.dateTo ?? undefined)
156
+ : '';
157
+ if (!from || (operator.arity === 2 && !to))
158
+ continue;
159
+ filters.set(column, operator.arity === 2
160
+ ? {
119
161
  filterType: 'date',
120
162
  type: mappedOperation,
121
- filter: toIsoDateString(dateFrom || String(value || ''))
122
- };
123
- if (mappedOperation === 'dateRange' && dateTo) {
124
- ;
125
- dateFilter.filterTo = toIsoDateString(dateTo);
163
+ filter: from,
164
+ filterTo: to
126
165
  }
127
- filterState[column] = dateFilter;
128
- }
166
+ : { filterType: 'date', type: mappedOperation, filter: from });
129
167
  }
130
168
  }
131
- return filterState;
132
- }
133
- catch (error) {
134
- if (config.onParseError) {
135
- config.onParseError(error);
136
- }
137
- return {};
138
169
  }
170
+ return Object.fromEntries(filters);
139
171
  }
140
172
  function convertToAGGridFilter(filter) {
141
173
  if (filter.filterType === 'date') {
@@ -155,23 +187,18 @@ function convertToAGGridFilter(filter) {
155
187
  dateTo: null
156
188
  };
157
189
  }
158
- const dateOperationMapping = {
159
- dateBefore: 'lessThan',
160
- dateBeforeOrEqual: 'lessThanOrEqual',
161
- dateAfter: 'greaterThan',
162
- dateAfterOrEqual: 'greaterThanOrEqual'
163
- };
164
- const agOperation = dateOperationMapping[filter.type] ||
165
- AG_GRID_OPERATION_NAMES[filter.type];
166
190
  return {
167
191
  filterType: 'date',
168
- type: agOperation,
192
+ type: toAgGridOperation(filter.type),
169
193
  dateFrom: filter.filter,
170
194
  dateTo: null
171
195
  };
172
196
  }
173
197
  if (filter.filterType === 'number') {
174
- const agGridOperation = AG_GRID_OPERATION_NAMES[filter.type];
198
+ const agGridOperation = toAgGridOperation(filter.type);
199
+ if (filter.type === 'blank' || filter.type === 'notBlank') {
200
+ return { filterType: 'number', type: agGridOperation, filter: null };
201
+ }
175
202
  if (filter.type === 'inRange') {
176
203
  const baseFilter = {
177
204
  filterType: 'number',
@@ -188,39 +215,44 @@ function convertToAGGridFilter(filter) {
188
215
  filter: filter.filter
189
216
  };
190
217
  }
191
- const agGridOperation = AG_GRID_OPERATION_NAMES[filter.type];
218
+ const agGridOperation = toAgGridOperation(filter.type);
192
219
  return {
193
220
  filterType: 'text',
194
221
  type: agGridOperation,
195
222
  filter: filter.filter
196
223
  };
197
224
  }
198
- export function applyFilterModel(filterState, config) {
199
- try {
200
- const model = {};
201
- for (const [column, filter] of Object.entries(filterState)) {
202
- if (!filter || typeof filter !== 'object')
203
- continue;
204
- const expectedType = detectColumnFilterType(config.gridApi, column);
205
- if (filter.filterType === 'date' && expectedType !== 'date') {
206
- console.warn(`Column '${column}' expects a ${expectedType} filter but received a date filter. This may indicate a configuration mismatch in the column definition or filter application.`);
207
- continue;
208
- }
209
- if (filter.filterType === 'number' && expectedType !== 'number') {
210
- console.warn(`Column '${column}' expects a ${expectedType} filter but received a number filter. This may indicate a configuration mismatch in the column definition or filter application.`);
211
- continue;
212
- }
213
- const agGridFilter = convertToAGGridFilter(filter);
214
- if (agGridFilter) {
215
- model[column] = agGridFilter;
216
- }
225
+ export function applyFilterModel(filterState, target, options) {
226
+ if ('gridApi' in target) {
227
+ writeGridFilters(filterState, target.gridApi, resolveOptions(target));
228
+ return;
229
+ }
230
+ writeGridFilters(filterState, target, resolveOptions(options));
231
+ }
232
+ function writeGridFilters(filterState, gridApi, options) {
233
+ const model = new Map();
234
+ for (const [column, filter] of Object.entries(filterState)) {
235
+ if (!v.is(JsonObjectSchema, filter))
236
+ continue;
237
+ const expectedType = detectColumnFilterType(gridApi, column);
238
+ if (filter.filterType === 'date' && expectedType !== 'date') {
239
+ reportIssue(options, new InvalidFilterError(`Column '${column}' expects a ${expectedType} filter but received a date filter. This may indicate a configuration mismatch in the column definition or filter application.`, undefined, { code: 'TYPE_MISMATCH', column }));
240
+ continue;
241
+ }
242
+ if (filter.filterType === 'number' && expectedType !== 'number') {
243
+ reportIssue(options, new InvalidFilterError(`Column '${column}' expects a ${expectedType} filter but received a number filter. This may indicate a configuration mismatch in the column definition or filter application.`, undefined, { code: 'TYPE_MISMATCH', column }));
244
+ continue;
245
+ }
246
+ const agGridFilter = convertToAGGridFilter(filter);
247
+ if (agGridFilter) {
248
+ model.set(column, agGridFilter);
217
249
  }
218
- config.gridApi.setFilterModel(model);
250
+ }
251
+ try {
252
+ gridApi.setFilterModel(Object.fromEntries(model));
219
253
  }
220
254
  catch (error) {
221
- if (config.onParseError) {
222
- config.onParseError(error);
223
- }
255
+ reportIssue(options, toIssue(error, 'GRID_ERROR'));
224
256
  }
225
257
  }
226
258
  //# sourceMappingURL=grid-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-integration.js","sourceRoot":"","sources":["../../src/core/grid-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-integration.js","sourceRoot":"","sources":["../../src/core/grid-integration.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { AGGridUrlSync, createUrlSync } from './ag-grid-url-sync.js';
2
2
  export * from './types.js';
3
- export { validateFilterValue, DEFAULT_CONFIG } from './validation.js';
3
+ export { validateFilterValue } from './validation.js';
4
+ export { DEFAULT_CONFIG } from './options.js';
4
5
  export { parseUrlFilters, parseFilterParam } from './url-parser.js';
5
6
  export { serializeFilters, generateUrl } from './url-generator.js';
6
7
  export { getFilterModel, applyFilterModel } from './grid-integration.js';
@@ -1,6 +1,7 @@
1
1
  export { AGGridUrlSync, createUrlSync } from './ag-grid-url-sync.js';
2
2
  export * from './types.js';
3
- export { validateFilterValue, DEFAULT_CONFIG } from './validation.js';
3
+ export { validateFilterValue } from './validation.js';
4
+ export { DEFAULT_CONFIG } from './options.js';
4
5
  export { parseUrlFilters, parseFilterParam } from './url-parser.js';
5
6
  export { serializeFilters, generateUrl } from './url-generator.js';
6
7
  export { getFilterModel, applyFilterModel } from './grid-integration.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGrE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,26 @@
1
+ import type { AGGridUrlSyncConfig, FilterState, ColumnFilter, ResolvedOptions } from './types.js';
2
+ /**
3
+ * The prefix that filter param names start with. An empty prefix means the
4
+ * default (`f_`), and a prefix without a trailing `_` gets one, so 'filter'
5
+ * gives `filter_name_contains`. The writer, the parser and the URL checks all
6
+ * use this, so a URL that the library writes parses back (#228).
7
+ */
8
+ export declare function resolveParamPrefix(paramPrefix?: string): string;
9
+ /**
10
+ * Converts a filter state object into URL search parameters.
11
+ * This function does not need a grid. An option that the config leaves out
12
+ * gets its default.
13
+ * A text value over `config.maxValueLength` is reported through
14
+ * `config.onParseError` and skipped. The other filters are kept.
15
+ */
16
+ export declare function serializeFilters(filterState: FilterState, config?: AGGridUrlSyncConfig): URLSearchParams;
17
+ /**
18
+ * Parses a URL parameter into a column filter
19
+ */
20
+ export declare function parseFilterParam(param: string, value: string, expectedPrefix?: string): ColumnFilter;
21
+ /**
22
+ * Parses prefixed filter parameters into a filter state object.
23
+ * Parameters without the configured prefix are skipped. A parameter that fails
24
+ * to parse is reported through `config.onParseError` and skipped.
25
+ */
26
+ export declare function parseIndividualParams(searchParams: URLSearchParams, config: ResolvedOptions): FilterState;