@forestadmin/datasource-customizer 1.40.4 → 1.41.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 (51) hide show
  1. package/dist/decorators/search/collection-search-context.d.ts +26 -0
  2. package/dist/decorators/search/collection-search-context.js +14 -0
  3. package/dist/decorators/search/collection.d.ts +5 -5
  4. package/dist/decorators/search/collection.js +50 -47
  5. package/dist/decorators/search/custom-parser/condition-tree-query-walker.d.ts +27 -0
  6. package/dist/decorators/search/custom-parser/condition-tree-query-walker.js +125 -0
  7. package/dist/decorators/search/custom-parser/custom-error-strategy.d.ts +5 -0
  8. package/dist/decorators/search/custom-parser/custom-error-strategy.js +11 -0
  9. package/dist/decorators/search/custom-parser/custom-query-parser.d.ts +6 -0
  10. package/dist/decorators/search/custom-parser/custom-query-parser.js +15 -0
  11. package/dist/decorators/search/custom-parser/fields-query-walker.d.ts +7 -0
  12. package/dist/decorators/search/custom-parser/fields-query-walker.js +17 -0
  13. package/dist/decorators/search/filter-builder/build-basic-array-field-filter.d.ts +3 -0
  14. package/dist/decorators/search/filter-builder/build-basic-array-field-filter.js +25 -0
  15. package/dist/decorators/search/filter-builder/build-boolean-field-filter.d.ts +3 -0
  16. package/dist/decorators/search/filter-builder/build-boolean-field-filter.js +27 -0
  17. package/dist/decorators/search/filter-builder/build-date-field-filter.d.ts +10 -0
  18. package/dist/decorators/search/filter-builder/build-date-field-filter.js +164 -0
  19. package/dist/decorators/search/filter-builder/build-enum-array-field-filter.d.ts +3 -0
  20. package/dist/decorators/search/filter-builder/build-enum-array-field-filter.js +16 -0
  21. package/dist/decorators/search/filter-builder/build-enum-field-filter.d.ts +3 -0
  22. package/dist/decorators/search/filter-builder/build-enum-field-filter.js +27 -0
  23. package/dist/decorators/search/filter-builder/build-number-array-field-filter.d.ts +3 -0
  24. package/dist/decorators/search/filter-builder/build-number-array-field-filter.js +14 -0
  25. package/dist/decorators/search/filter-builder/build-number-field-filter.d.ts +3 -0
  26. package/dist/decorators/search/filter-builder/build-number-field-filter.js +39 -0
  27. package/dist/decorators/search/filter-builder/build-string-array-field-filter.d.ts +3 -0
  28. package/dist/decorators/search/filter-builder/build-string-array-field-filter.js +11 -0
  29. package/dist/decorators/search/filter-builder/build-string-field-filter.d.ts +3 -0
  30. package/dist/decorators/search/filter-builder/build-string-field-filter.js +37 -0
  31. package/dist/decorators/search/filter-builder/build-uuid-field-filter.d.ts +3 -0
  32. package/dist/decorators/search/filter-builder/build-uuid-field-filter.js +24 -0
  33. package/dist/decorators/search/filter-builder/index.d.ts +3 -0
  34. package/dist/decorators/search/filter-builder/index.js +65 -0
  35. package/dist/decorators/search/filter-builder/utils/build-default-condition.d.ts +3 -0
  36. package/dist/decorators/search/filter-builder/utils/build-default-condition.js +8 -0
  37. package/dist/decorators/search/filter-builder/utils/find-enum-value.d.ts +3 -0
  38. package/dist/decorators/search/filter-builder/utils/find-enum-value.js +12 -0
  39. package/dist/decorators/search/generated-parser/QueryLexer.d.ts +33 -0
  40. package/dist/decorators/search/generated-parser/QueryLexer.js +98 -0
  41. package/dist/decorators/search/generated-parser/QueryListener.d.ts +129 -0
  42. package/dist/decorators/search/generated-parser/QueryListener.js +12 -0
  43. package/dist/decorators/search/generated-parser/QueryParser.d.ts +162 -0
  44. package/dist/decorators/search/generated-parser/QueryParser.js +1025 -0
  45. package/dist/decorators/search/normalize-name.d.ts +2 -0
  46. package/dist/decorators/search/normalize-name.js +7 -0
  47. package/dist/decorators/search/parse-query.d.ts +6 -0
  48. package/dist/decorators/search/parse-query.js +47 -0
  49. package/dist/typing-generator.d.ts +1 -0
  50. package/dist/typing-generator.js +10 -3
  51. package/package.json +4 -2
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable no-continue */
7
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
8
+ const luxon_1 = require("luxon");
9
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
10
+ function isYear(str) {
11
+ return (/^\d{4}$/.test(str) && Number(str) >= 1800 && Number(str) <= new Date().getFullYear() + 100);
12
+ }
13
+ function isYearMonth(str) {
14
+ return /^(\d{4})-(\d{1,2})$/.test(str) && !Number.isNaN(Date.parse(`${str}-01`));
15
+ }
16
+ function isPlainDate(str) {
17
+ return /^\d{4}-\d{2}-\d{2}$/.test(str) && !Number.isNaN(Date.parse(str));
18
+ }
19
+ function isValidDate(str) {
20
+ return isYear(str) || isYearMonth(str) || isPlainDate(str);
21
+ }
22
+ function getPeriodStart(string) {
23
+ if (isYear(string))
24
+ return `${string}-01-01`;
25
+ if (isYearMonth(string))
26
+ return `${string}-01`;
27
+ return string;
28
+ }
29
+ function pad(month) {
30
+ if (month < 10) {
31
+ return `0${month}`;
32
+ }
33
+ return `${month}`;
34
+ }
35
+ function getAfterPeriodEnd(string) {
36
+ if (isYear(string))
37
+ return `${Number(string) + 1}-01-01`;
38
+ if (isYearMonth(string)) {
39
+ const [year, month] = string.split('-').map(Number);
40
+ const endDate = new Date(year, month, 1);
41
+ return `${endDate.getFullYear()}-${pad(endDate.getMonth() + 1)}-01`;
42
+ }
43
+ const date = new Date(string);
44
+ date.setDate(date.getDate() + 1);
45
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
46
+ }
47
+ function getTranslatedDateInTimezone(value, opts) {
48
+ if (opts.columnType !== 'Date')
49
+ return value;
50
+ return luxon_1.DateTime.fromISO(value, { zone: opts.timezone }).toISO();
51
+ }
52
+ const supportedOperators = [
53
+ [
54
+ '>',
55
+ [
56
+ ['After', getAfterPeriodEnd],
57
+ ['Equal', getAfterPeriodEnd],
58
+ ],
59
+ [
60
+ ['Before', getPeriodStart],
61
+ ['Equal', getPeriodStart],
62
+ ['Missing', () => undefined],
63
+ ],
64
+ ],
65
+ [
66
+ '>=',
67
+ [
68
+ ['After', getPeriodStart],
69
+ ['Equal', getPeriodStart],
70
+ ],
71
+ [
72
+ ['Before', getPeriodStart],
73
+ ['Missing', () => undefined],
74
+ ],
75
+ ],
76
+ [
77
+ '≥',
78
+ [
79
+ ['After', getPeriodStart],
80
+ ['Equal', getPeriodStart],
81
+ ],
82
+ [
83
+ ['Before', getPeriodStart],
84
+ ['Missing', () => undefined],
85
+ ],
86
+ ],
87
+ [
88
+ '<',
89
+ [['Before', getPeriodStart]],
90
+ [
91
+ ['After', getPeriodStart],
92
+ ['Equal', getPeriodStart],
93
+ ['Missing', () => undefined],
94
+ ],
95
+ ],
96
+ [
97
+ '<=',
98
+ [['Before', getAfterPeriodEnd]],
99
+ [
100
+ ['After', getAfterPeriodEnd],
101
+ ['Equal', getAfterPeriodEnd],
102
+ ['Missing', () => undefined],
103
+ ],
104
+ ],
105
+ [
106
+ '≤',
107
+ [['Before', getAfterPeriodEnd]],
108
+ [
109
+ ['After', getAfterPeriodEnd],
110
+ ['Equal', getAfterPeriodEnd],
111
+ ['Missing', () => undefined],
112
+ ],
113
+ ],
114
+ ];
115
+ function buildDateFieldFilter({ field, filterOperators, searchString, isNegated, columnType, timezone, }) {
116
+ if (isValidDate(searchString)) {
117
+ const start = getTranslatedDateInTimezone(getPeriodStart(searchString), {
118
+ columnType,
119
+ timezone,
120
+ });
121
+ const afterEnd = getTranslatedDateInTimezone(getAfterPeriodEnd(searchString), {
122
+ columnType,
123
+ timezone,
124
+ });
125
+ if (!isNegated &&
126
+ filterOperators.has('Equal') &&
127
+ filterOperators.has('Before') &&
128
+ filterOperators.has('After')) {
129
+ return datasource_toolkit_1.ConditionTreeFactory.intersect(datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', start), new datasource_toolkit_1.ConditionTreeLeaf(field, 'After', start)), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Before', afterEnd));
130
+ }
131
+ if (isNegated &&
132
+ filterOperators.has('Before') &&
133
+ filterOperators.has('After') &&
134
+ filterOperators.has('Equal')) {
135
+ if (filterOperators.has('Missing')) {
136
+ return datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'Before', start), new datasource_toolkit_1.ConditionTreeLeaf(field, 'After', afterEnd), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', afterEnd), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Missing'));
137
+ }
138
+ return datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'Before', start), new datasource_toolkit_1.ConditionTreeLeaf(field, 'After', afterEnd), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', afterEnd));
139
+ }
140
+ return (0, build_default_condition_1.default)(isNegated);
141
+ }
142
+ for (const [operatorPrefix, positiveOperations, negativeOperations] of supportedOperators) {
143
+ if (!searchString.startsWith(operatorPrefix))
144
+ continue;
145
+ if (!isValidDate(searchString.slice(operatorPrefix.length)))
146
+ continue;
147
+ const value = searchString.slice(operatorPrefix.length);
148
+ if (!isValidDate(value))
149
+ continue;
150
+ const operations = isNegated ? negativeOperations : positiveOperations;
151
+ // If Missing is not supported, we try to build a condition tree anyway
152
+ if (!operations
153
+ .filter(op => op[0] !== 'Missing')
154
+ .every(operation => filterOperators.has(operation[0]))) {
155
+ continue;
156
+ }
157
+ return datasource_toolkit_1.ConditionTreeFactory.union(...operations
158
+ .filter(op => filterOperators.has(op[0]))
159
+ .map(([operator, getDate]) => new datasource_toolkit_1.ConditionTreeLeaf(field, operator, getTranslatedDateInTimezone(getDate(value), { timezone, columnType }))));
160
+ }
161
+ return (0, build_default_condition_1.default)(isNegated);
162
+ }
163
+ exports.default = buildDateFieldFilter;
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGF0ZS1maWVsZC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvYnVpbGQtZGF0ZS1maWVsZC1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnQ0FBZ0M7QUFDaEMsd0VBTXlDO0FBQ3pDLGlDQUFpQztBQUVqQyw4RkFBb0U7QUFFcEUsU0FBUyxNQUFNLENBQUMsR0FBVztJQUN6QixPQUFPLENBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVc7SUFDOUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsTUFBYztJQUNwQyxJQUFJLE1B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
@@ -0,0 +1,3 @@
1
+ import { ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit';
2
+ export default function buildEnumArrayFieldFilter(field: string, schema: ColumnSchema, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-enum-array-field-filter.d.ts.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const build_basic_array_field_filter_1 = __importDefault(require("./build-basic-array-field-filter"));
7
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
8
+ const find_enum_value_1 = __importDefault(require("./utils/find-enum-value"));
9
+ function buildEnumArrayFieldFilter(field, schema, searchString, isNegated) {
10
+ const enumValue = (0, find_enum_value_1.default)(searchString, schema);
11
+ if (!enumValue)
12
+ return (0, build_default_condition_1.default)(isNegated);
13
+ return (0, build_basic_array_field_filter_1.default)(field, schema.filterOperators, enumValue, isNegated);
14
+ }
15
+ exports.default = buildEnumArrayFieldFilter;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZW51bS1hcnJheS1maWVsZC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvYnVpbGQtZW51bS1hcnJheS1maWVsZC1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxzR0FBMEU7QUFDMUUsOEZBQW9FO0FBQ3BFLDhFQUFvRDtBQUVwRCxTQUF3Qix5QkFBeUIsQ0FDL0MsS0FBYSxFQUNiLE1BQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLE1BQU0sU0FBUyxHQUFHLElBQUEseUJBQWEsRUFBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEQsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLElBQUEsaUNBQXFCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEQsT0FBTyxJQUFBLHdDQUEwQixFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN6RixDQUFDO0FBWEQsNENBV0MifQ==
@@ -0,0 +1,3 @@
1
+ import { ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit';
2
+ export default function buildEnumFieldFilter(field: string, schema: ColumnSchema, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-enum-field-filter.d.ts.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
8
+ const find_enum_value_1 = __importDefault(require("./utils/find-enum-value"));
9
+ function buildEnumFieldFilter(field, schema, searchString, isNegated) {
10
+ const { filterOperators } = schema;
11
+ const searchValue = (0, find_enum_value_1.default)(searchString, schema);
12
+ if (!searchValue)
13
+ return (0, build_default_condition_1.default)(isNegated);
14
+ if (filterOperators?.has('Equal') && !isNegated) {
15
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', searchValue);
16
+ }
17
+ if (filterOperators?.has('NotEqual') && filterOperators?.has('Missing') && isNegated) {
18
+ // In DBs, NULL values are not equal to anything, including NULL.
19
+ return datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', searchValue), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Missing'));
20
+ }
21
+ if (filterOperators?.has('NotEqual') && isNegated) {
22
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', searchValue);
23
+ }
24
+ return (0, build_default_condition_1.default)(isNegated);
25
+ }
26
+ exports.default = buildEnumFieldFilter;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZW51bS1maWVsZC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvYnVpbGQtZW51bS1maWVsZC1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFLeUM7QUFFekMsOEZBQW9FO0FBQ3BFLDhFQUFvRDtBQUVwRCxTQUF3QixvQkFBb0IsQ0FDMUMsS0FBYSxFQUNiLE1BQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBQSx5QkFBYSxFQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV4RCxJQUFJLENBQUMsV0FBVztRQUFFLE9BQU8sSUFBQSxpQ0FBcUIsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUUxRCxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDL0MsT0FBTyxJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDM0Q7SUFFRCxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksZUFBZSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLEVBQUU7UUFDcEYsaUVBQWlFO1FBQ2pFLE9BQU8seUNBQW9CLENBQUMsS0FBSyxDQUMvQixJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQ3JELElBQUksc0NBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUN4QyxDQUFDO0tBQ0g7SUFFRCxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxFQUFFO1FBQ2pELE9BQU8sSUFBSSxzQ0FBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsT0FBTyxJQUFBLGlDQUFxQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUE1QkQsdUNBNEJDIn0=
@@ -0,0 +1,3 @@
1
+ import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit';
2
+ export default function buildNumberArrayFieldFilter(field: string, filterOperators: Set<Operator> | undefined, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-number-array-field-filter.d.ts.map
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const build_basic_array_field_filter_1 = __importDefault(require("./build-basic-array-field-filter"));
7
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
8
+ function buildNumberArrayFieldFilter(field, filterOperators, searchString, isNegated) {
9
+ if (Number.isNaN(Number(searchString)))
10
+ return (0, build_default_condition_1.default)(isNegated);
11
+ return (0, build_basic_array_field_filter_1.default)(field, filterOperators, Number(searchString), isNegated);
12
+ }
13
+ exports.default = buildNumberArrayFieldFilter;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtbnVtYmVyLWFycmF5LWZpZWxkLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL3NlYXJjaC9maWx0ZXItYnVpbGRlci9idWlsZC1udW1iZXItYXJyYXktZmllbGQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsc0dBQTBFO0FBQzFFLDhGQUFvRTtBQUVwRSxTQUF3QiwyQkFBMkIsQ0FDakQsS0FBYSxFQUNiLGVBQTBDLEVBQzFDLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFBRSxPQUFPLElBQUEsaUNBQXFCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEYsT0FBTyxJQUFBLHdDQUEwQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFURCw4Q0FTQyJ9
@@ -0,0 +1,3 @@
1
+ import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit';
2
+ export default function buildNumberFieldFilter(field: string, filterOperators: Set<Operator>, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-number-field-filter.d.ts.map
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable no-continue */
7
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
8
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
9
+ const supportedOperators = [
10
+ ['', ['Equal'], ['NotEqual', 'Missing']],
11
+ ['=', ['Equal'], ['NotEqual', 'Missing']],
12
+ ['!=', ['NotEqual'], ['Equal', 'Missing']],
13
+ ['<>', ['NotEqual'], ['Equal', 'Missing']],
14
+ ['>', ['GreaterThan'], ['LessThan', 'Equal', 'Missing']],
15
+ ['>=', ['GreaterThan', 'Equal'], ['LessThan', 'Missing']],
16
+ ['≥', ['GreaterThan', 'Equal'], ['LessThan', 'Missing']],
17
+ ['<', ['LessThan'], ['GreaterThan', 'Equal', 'Missing']],
18
+ ['<=', ['LessThan', 'Equal'], ['GreaterThan', 'Missing']],
19
+ ['≤', ['LessThan', 'Equal'], ['GreaterThan', 'Missing']],
20
+ ];
21
+ function buildNumberFieldFilter(field, filterOperators, searchString, isNegated) {
22
+ for (const [operatorPrefix, positiveOperators, negativeOperators] of supportedOperators) {
23
+ if (operatorPrefix && !searchString.startsWith(operatorPrefix))
24
+ continue;
25
+ if (Number.isNaN(Number(searchString.slice(operatorPrefix.length))))
26
+ continue;
27
+ const value = Number(searchString.slice(operatorPrefix.length));
28
+ const operators = isNegated ? negativeOperators : positiveOperators;
29
+ // If Missing is not supported, we try to build a condition tree anyway
30
+ if (!operators.filter(op => op !== 'Missing').every(operator => filterOperators.has(operator)))
31
+ continue;
32
+ return datasource_toolkit_1.ConditionTreeFactory.union(...operators
33
+ .filter(operator => filterOperators.has(operator))
34
+ .map(operator => new datasource_toolkit_1.ConditionTreeLeaf(field, operator, operator !== 'Missing' ? value : undefined)));
35
+ }
36
+ return (0, build_default_condition_1.default)(isNegated);
37
+ }
38
+ exports.default = buildNumberFieldFilter;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtbnVtYmVyLWZpZWxkLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL3NlYXJjaC9maWx0ZXItYnVpbGRlci9idWlsZC1udW1iZXItZmllbGQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLHdFQUt5QztBQUV6Qyw4RkFBb0U7QUFFcEUsTUFBTSxrQkFBa0IsR0FBdUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztDQUN6RCxDQUFDO0FBRUYsU0FBd0Isc0JBQXNCLENBQzVDLEtBQWEsRUFDYixlQUE4QixFQUM5QixZQUFvQixFQUNwQixTQUFrQjtJQUVsQixLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtRQUN2RixJQUFJLGNBQWMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1lBQUUsU0FBUztRQUN6RSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFBRSxTQUFTO1FBRTlFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBRXBFLHVFQUF1RTtRQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVGLFNBQVM7UUFFWCxPQUFPLHlDQUFvQixDQUFDLEtBQUssQ0FDL0IsR0FBRyxTQUFTO2FBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRCxHQUFHLENBQ0YsUUFBUSxDQUFDLEVBQUUsQ0FDVCxJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDckYsQ0FDSixDQUFDO0tBQ0g7SUFFRCxPQUFPLElBQUEsaUNBQXFCLEVBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQTVCRCx5Q0E0QkMifQ==
@@ -0,0 +1,3 @@
1
+ import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit';
2
+ export default function buildStringArrayFieldFilter(field: string, filterOperators: Set<Operator> | undefined, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-string-array-field-filter.d.ts.map
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const build_basic_array_field_filter_1 = __importDefault(require("./build-basic-array-field-filter"));
7
+ function buildStringArrayFieldFilter(field, filterOperators, searchString, isNegated) {
8
+ return (0, build_basic_array_field_filter_1.default)(field, filterOperators, searchString, isNegated);
9
+ }
10
+ exports.default = buildStringArrayFieldFilter;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc3RyaW5nLWFycmF5LWZpZWxkLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL3NlYXJjaC9maWx0ZXItYnVpbGRlci9idWlsZC1zdHJpbmctYXJyYXktZmllbGQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsc0dBQTBFO0FBRTFFLFNBQXdCLDJCQUEyQixDQUNqRCxLQUFhLEVBQ2IsZUFBMEMsRUFDMUMsWUFBb0IsRUFDcEIsU0FBa0I7SUFFbEIsT0FBTyxJQUFBLHdDQUEwQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFQRCw4Q0FPQyJ9
@@ -0,0 +1,3 @@
1
+ import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit';
2
+ export default function buildStringFieldFilter(field: string, filterOperators: Set<Operator>, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-string-field-filter.d.ts.map
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /* eslint-disable no-continue */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
8
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
9
+ const operatorsStack = [
10
+ [['IContains'], ['NotIContains', 'Missing']],
11
+ [['Contains'], ['NotContains', 'Missing']],
12
+ [['Equal'], ['NotEqual', 'Missing']],
13
+ ];
14
+ function buildStringFieldFilter(field, filterOperators, searchString, isNegated) {
15
+ if (!searchString) {
16
+ if (filterOperators.has('Equal') && !isNegated) {
17
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', '');
18
+ }
19
+ if (filterOperators.has('NotEqual') && isNegated) {
20
+ if (filterOperators.has('Missing')) {
21
+ return datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', ''), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Missing'));
22
+ }
23
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', '');
24
+ }
25
+ return (0, build_default_condition_1.default)(isNegated);
26
+ }
27
+ for (const [positiveOperators, negativeOperators] of operatorsStack) {
28
+ const operators = isNegated ? negativeOperators : positiveOperators;
29
+ const neededOperators = operators.filter(operator => operator !== 'Missing' || filterOperators.has(operator));
30
+ if (!neededOperators.every(operator => filterOperators.has(operator)))
31
+ continue;
32
+ return datasource_toolkit_1.ConditionTreeFactory.union(...neededOperators.map(operator => new datasource_toolkit_1.ConditionTreeLeaf(field, operator, operator !== 'Missing' ? searchString : undefined)));
33
+ }
34
+ return (0, build_default_condition_1.default)(isNegated);
35
+ }
36
+ exports.default = buildStringFieldFilter;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc3RyaW5nLWZpZWxkLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL3NlYXJjaC9maWx0ZXItYnVpbGRlci9idWlsZC1zdHJpbmctZmllbGQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnQ0FBZ0M7Ozs7O0FBRWhDLHdFQUt5QztBQUV6Qyw4RkFBb0U7QUFFcEUsTUFBTSxjQUFjLEdBQStCO0lBQ2pELENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0NBQ3JDLENBQUM7QUFFRixTQUF3QixzQkFBc0IsQ0FDNUMsS0FBYSxFQUNiLGVBQThCLEVBQzlCLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDakIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzlDLE9BQU8sSUFBSSxzQ0FBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtZQUNoRCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8seUNBQW9CLENBQUMsS0FBSyxDQUMvQixJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQzVDLElBQUksc0NBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUN4QyxDQUFDO2FBQ0g7WUFFRCxPQUFPLElBQUksc0NBQWlCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNyRDtRQUVELE9BQU8sSUFBQSxpQ0FBcUIsRUFBQyxTQUFTLENBQUMsQ0FBQztLQUN6QztJQUVELEtBQUssTUFBTSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLElBQUksY0FBYyxFQUFFO1FBQ25FLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBRXBFLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQ3RDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUNwRSxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUVoRixPQUFPLHlDQUFvQixDQUFDLEtBQUssQ0FDL0IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUNwQixRQUFRLENBQUMsRUFBRSxDQUNULElBQUksc0NBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUM1RixDQUNGLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBQSxpQ0FBcUIsRUFBQyxTQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBM0NELHlDQTJDQyJ9
@@ -0,0 +1,3 @@
1
+ import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit';
2
+ export default function buildUuidFieldFilter(field: string, filterOperators: Set<Operator>, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-uuid-field-filter.d.ts.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
+ const uuid_1 = require("uuid");
8
+ const build_default_condition_1 = __importDefault(require("./utils/build-default-condition"));
9
+ function buildUuidFieldFilter(field, filterOperators, searchString, isNegated) {
10
+ if (!(0, uuid_1.validate)(searchString))
11
+ return (0, build_default_condition_1.default)(isNegated);
12
+ if (!isNegated && filterOperators?.has('Equal')) {
13
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'Equal', searchString);
14
+ }
15
+ if (isNegated && filterOperators?.has('NotEqual') && filterOperators?.has('Missing')) {
16
+ return datasource_toolkit_1.ConditionTreeFactory.union(new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', searchString), new datasource_toolkit_1.ConditionTreeLeaf(field, 'Missing'));
17
+ }
18
+ if (isNegated && filterOperators?.has('NotEqual')) {
19
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'NotEqual', searchString);
20
+ }
21
+ return (0, build_default_condition_1.default)(isNegated);
22
+ }
23
+ exports.default = buildUuidFieldFilter;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXVpZC1maWVsZC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvYnVpbGQtdXVpZC1maWVsZC1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFLeUM7QUFDekMsK0JBQWdEO0FBRWhELDhGQUFvRTtBQUVwRSxTQUF3QixvQkFBb0IsQ0FDMUMsS0FBYSxFQUNiLGVBQThCLEVBQzlCLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLElBQUksQ0FBQyxJQUFBLGVBQVksRUFBQyxZQUFZLENBQUM7UUFBRSxPQUFPLElBQUEsaUNBQXFCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFekUsSUFBSSxDQUFDLFNBQVMsSUFBSSxlQUFlLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sSUFBSSxzQ0FBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQzVEO0lBRUQsSUFBSSxTQUFTLElBQUksZUFBZSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxlQUFlLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3BGLE9BQU8seUNBQW9CLENBQUMsS0FBSyxDQUMvQixJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLEVBQ3RELElBQUksc0NBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUN4QyxDQUFDO0tBQ0g7SUFFRCxJQUFJLFNBQVMsSUFBSSxlQUFlLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2pELE9BQU8sSUFBSSxzQ0FBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQy9EO0lBRUQsT0FBTyxJQUFBLGlDQUFxQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUF4QkQsdUNBd0JDIn0=
@@ -0,0 +1,3 @@
1
+ import { Caller, ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit';
2
+ export default function buildFieldFilter(caller: Caller, field: string, schema: ColumnSchema, searchString: string, isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
+ const build_boolean_field_filter_1 = __importDefault(require("./build-boolean-field-filter"));
8
+ const build_date_field_filter_1 = __importDefault(require("./build-date-field-filter"));
9
+ const build_enum_array_field_filter_1 = __importDefault(require("./build-enum-array-field-filter"));
10
+ const build_enum_field_filter_1 = __importDefault(require("./build-enum-field-filter"));
11
+ const build_number_array_field_filter_1 = __importDefault(require("./build-number-array-field-filter"));
12
+ const build_number_field_filter_1 = __importDefault(require("./build-number-field-filter"));
13
+ const build_string_array_field_filter_1 = __importDefault(require("./build-string-array-field-filter"));
14
+ const build_string_field_filter_1 = __importDefault(require("./build-string-field-filter"));
15
+ const build_uuid_field_filter_1 = __importDefault(require("./build-uuid-field-filter"));
16
+ function generateDefaultCondition(isNegated) {
17
+ return isNegated ? datasource_toolkit_1.ConditionTreeFactory.MatchAll : datasource_toolkit_1.ConditionTreeFactory.MatchNone;
18
+ }
19
+ function isArrayOf(columnType, testedType) {
20
+ return Array.isArray(columnType) && columnType[0] === testedType;
21
+ }
22
+ function buildFieldFilter(caller, field, schema, searchString, isNegated) {
23
+ const { columnType, filterOperators } = schema;
24
+ if (searchString === 'NULL') {
25
+ if (!isNegated && filterOperators?.has('Missing')) {
26
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'Missing');
27
+ }
28
+ if (isNegated && filterOperators?.has('Present')) {
29
+ return new datasource_toolkit_1.ConditionTreeLeaf(field, 'Present');
30
+ }
31
+ return generateDefaultCondition(isNegated);
32
+ }
33
+ switch (true) {
34
+ case columnType === 'Number':
35
+ return (0, build_number_field_filter_1.default)(field, filterOperators, searchString, isNegated);
36
+ case isArrayOf(columnType, 'Number'):
37
+ return (0, build_number_array_field_filter_1.default)(field, filterOperators, searchString, isNegated);
38
+ case columnType === 'Enum':
39
+ return (0, build_enum_field_filter_1.default)(field, schema, searchString, isNegated);
40
+ case isArrayOf(columnType, 'Enum'):
41
+ return (0, build_enum_array_field_filter_1.default)(field, schema, searchString, isNegated);
42
+ case columnType === 'String':
43
+ return (0, build_string_field_filter_1.default)(field, filterOperators, searchString, isNegated);
44
+ case isArrayOf(columnType, 'String'):
45
+ return (0, build_string_array_field_filter_1.default)(field, filterOperators, searchString, isNegated);
46
+ case columnType === 'Boolean':
47
+ return (0, build_boolean_field_filter_1.default)(field, filterOperators, searchString, isNegated);
48
+ case columnType === 'Uuid':
49
+ return (0, build_uuid_field_filter_1.default)(field, filterOperators, searchString, isNegated);
50
+ case columnType === 'Date':
51
+ case columnType === 'Dateonly':
52
+ return (0, build_date_field_filter_1.default)({
53
+ field,
54
+ filterOperators,
55
+ searchString,
56
+ isNegated,
57
+ columnType,
58
+ timezone: caller.timezone,
59
+ });
60
+ default:
61
+ return generateDefaultCondition(isNegated);
62
+ }
63
+ }
64
+ exports.default = buildFieldFilter;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFReUM7QUFFekMsOEZBQW1FO0FBQ25FLHdGQUE2RDtBQUM3RCxvR0FBd0U7QUFDeEUsd0ZBQTZEO0FBQzdELHdHQUE0RTtBQUM1RSw0RkFBaUU7QUFDakUsd0dBQTRFO0FBQzVFLDRGQUFpRTtBQUNqRSx3RkFBNkQ7QUFFN0QsU0FBUyx3QkFBd0IsQ0FBQyxTQUFrQjtJQUNsRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMseUNBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx5Q0FBb0IsQ0FBQyxTQUFTLENBQUM7QUFDcEYsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFVBQXNCLEVBQUUsVUFBMEI7SUFDbkUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQXdCLGdCQUFnQixDQUN0QyxNQUFjLEVBQ2QsS0FBYSxFQUNiLE1BQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLFNBQWtCO0lBRWxCLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRS9DLElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRTtRQUMzQixJQUFJLENBQUMsU0FBUyxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDakQsT0FBTyxJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksU0FBUyxJQUFJLGVBQWUsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLHNDQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDNUM7SUFFRCxRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssVUFBVSxLQUFLLFFBQVE7WUFDMUIsT0FBTyxJQUFBLG1DQUFzQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLEtBQUssU0FBUyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDbEMsT0FBTyxJQUFBLHlDQUEyQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssVUFBVSxLQUFLLE1BQU07WUFDeEIsT0FBTyxJQUFBLGlDQUFvQixFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLEtBQUssU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7WUFDaEMsT0FBTyxJQUFBLHVDQUF5QixFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNFLEtBQUssVUFBVSxLQUFLLFFBQVE7WUFDMUIsT0FBTyxJQUFBLG1DQUFzQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLEtBQUssU0FBUyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDbEMsT0FBTyxJQUFBLHlDQUEyQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssVUFBVSxLQUFLLFNBQVM7WUFDM0IsT0FBTyxJQUFBLG9DQUF1QixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xGLEtBQUssVUFBVSxLQUFLLE1BQU07WUFDeEIsT0FBTyxJQUFBLGlDQUFvQixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLEtBQUssVUFBVSxLQUFLLE1BQU0sQ0FBQztRQUMzQixLQUFLLFVBQVUsS0FBSyxVQUFVO1lBQzVCLE9BQU8sSUFBQSxpQ0FBb0IsRUFBQztnQkFDMUIsS0FBSztnQkFDTCxlQUFlO2dCQUNmLFlBQVk7Z0JBQ1osU0FBUztnQkFDVCxVQUFVO2dCQUNWLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTthQUMxQixDQUFDLENBQUM7UUFDTDtZQUNFLE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDOUM7QUFDSCxDQUFDO0FBbkRELG1DQW1EQyJ9
@@ -0,0 +1,3 @@
1
+ import { ConditionTree } from '@forestadmin/datasource-toolkit';
2
+ export default function buildDefaultCondition(isNegated: boolean): ConditionTree;
3
+ //# sourceMappingURL=build-default-condition.d.ts.map
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
4
+ function buildDefaultCondition(isNegated) {
5
+ return isNegated ? datasource_toolkit_1.ConditionTreeFactory.MatchAll : datasource_toolkit_1.ConditionTreeFactory.MatchNone;
6
+ }
7
+ exports.default = buildDefaultCondition;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGVmYXVsdC1jb25kaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZmlsdGVyLWJ1aWxkZXIvdXRpbHMvYnVpbGQtZGVmYXVsdC1jb25kaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3RUFBc0Y7QUFFdEYsU0FBd0IscUJBQXFCLENBQUMsU0FBa0I7SUFDOUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLHlDQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMseUNBQW9CLENBQUMsU0FBUyxDQUFDO0FBQ3BGLENBQUM7QUFGRCx3Q0FFQyJ9
@@ -0,0 +1,3 @@
1
+ import { ColumnSchema } from '@forestadmin/datasource-toolkit';
2
+ export default function findEnumValue(value: string, schema: ColumnSchema): string | null;
3
+ //# sourceMappingURL=find-enum-value.d.ts.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function normalize(value) {
4
+ return value.trim().toLocaleLowerCase();
5
+ }
6
+ function findEnumValue(value, schema) {
7
+ const haystack = schema.enumValues || [];
8
+ const needle = normalize(value || '');
9
+ return haystack?.find(v => normalize(v) === needle) || null;
10
+ }
11
+ exports.default = findEnumValue;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1lbnVtLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RlY29yYXRvcnMvc2VhcmNoL2ZpbHRlci1idWlsZGVyL3V0aWxzL2ZpbmQtZW51bS12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLFNBQVMsU0FBUyxDQUFDLEtBQWE7SUFDOUIsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBd0IsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFvQjtJQUN2RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDOUQsQ0FBQztBQUxELGdDQUtDIn0=
@@ -0,0 +1,33 @@
1
+ import { ATN, CharStream, DFA, Lexer } from "antlr4";
2
+ export default class QueryLexer extends Lexer {
3
+ static readonly T__0 = 1;
4
+ static readonly PARENS_OPEN = 2;
5
+ static readonly PARENS_CLOSE = 3;
6
+ static readonly OR = 4;
7
+ static readonly AND = 5;
8
+ static readonly SINGLE_QUOTED = 6;
9
+ static readonly DOUBLE_QUOTED = 7;
10
+ static readonly NEGATION = 8;
11
+ static readonly TOKEN = 9;
12
+ static readonly SEPARATOR = 10;
13
+ static readonly SPACING = 11;
14
+ static readonly EOF: number;
15
+ static readonly channelNames: string[];
16
+ static readonly literalNames: (string | null)[];
17
+ static readonly symbolicNames: (string | null)[];
18
+ static readonly modeNames: string[];
19
+ static readonly ruleNames: string[];
20
+ constructor(input: CharStream);
21
+ get grammarFileName(): string;
22
+ get literalNames(): (string | null)[];
23
+ get symbolicNames(): (string | null)[];
24
+ get ruleNames(): string[];
25
+ get serializedATN(): number[];
26
+ get channelNames(): string[];
27
+ get modeNames(): string[];
28
+ static readonly _serializedATN: number[];
29
+ private static __ATN;
30
+ static get _ATN(): ATN;
31
+ static DecisionsToDFA: DFA[];
32
+ }
33
+ //# sourceMappingURL=QueryLexer.d.ts.map