@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.
- package/dist/decorators/search/collection-search-context.d.ts +26 -0
- package/dist/decorators/search/collection-search-context.js +14 -0
- package/dist/decorators/search/collection.d.ts +5 -5
- package/dist/decorators/search/collection.js +50 -47
- package/dist/decorators/search/custom-parser/condition-tree-query-walker.d.ts +27 -0
- package/dist/decorators/search/custom-parser/condition-tree-query-walker.js +125 -0
- package/dist/decorators/search/custom-parser/custom-error-strategy.d.ts +5 -0
- package/dist/decorators/search/custom-parser/custom-error-strategy.js +11 -0
- package/dist/decorators/search/custom-parser/custom-query-parser.d.ts +6 -0
- package/dist/decorators/search/custom-parser/custom-query-parser.js +15 -0
- package/dist/decorators/search/custom-parser/fields-query-walker.d.ts +7 -0
- package/dist/decorators/search/custom-parser/fields-query-walker.js +17 -0
- package/dist/decorators/search/filter-builder/build-basic-array-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-basic-array-field-filter.js +25 -0
- package/dist/decorators/search/filter-builder/build-boolean-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-boolean-field-filter.js +27 -0
- package/dist/decorators/search/filter-builder/build-date-field-filter.d.ts +10 -0
- package/dist/decorators/search/filter-builder/build-date-field-filter.js +164 -0
- package/dist/decorators/search/filter-builder/build-enum-array-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-enum-array-field-filter.js +16 -0
- package/dist/decorators/search/filter-builder/build-enum-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-enum-field-filter.js +27 -0
- package/dist/decorators/search/filter-builder/build-number-array-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-number-array-field-filter.js +14 -0
- package/dist/decorators/search/filter-builder/build-number-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-number-field-filter.js +39 -0
- package/dist/decorators/search/filter-builder/build-string-array-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-string-array-field-filter.js +11 -0
- package/dist/decorators/search/filter-builder/build-string-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-string-field-filter.js +37 -0
- package/dist/decorators/search/filter-builder/build-uuid-field-filter.d.ts +3 -0
- package/dist/decorators/search/filter-builder/build-uuid-field-filter.js +24 -0
- package/dist/decorators/search/filter-builder/index.d.ts +3 -0
- package/dist/decorators/search/filter-builder/index.js +65 -0
- package/dist/decorators/search/filter-builder/utils/build-default-condition.d.ts +3 -0
- package/dist/decorators/search/filter-builder/utils/build-default-condition.js +8 -0
- package/dist/decorators/search/filter-builder/utils/find-enum-value.d.ts +3 -0
- package/dist/decorators/search/filter-builder/utils/find-enum-value.js +12 -0
- package/dist/decorators/search/generated-parser/QueryLexer.d.ts +33 -0
- package/dist/decorators/search/generated-parser/QueryLexer.js +98 -0
- package/dist/decorators/search/generated-parser/QueryListener.d.ts +129 -0
- package/dist/decorators/search/generated-parser/QueryListener.js +12 -0
- package/dist/decorators/search/generated-parser/QueryParser.d.ts +162 -0
- package/dist/decorators/search/generated-parser/QueryParser.js +1025 -0
- package/dist/decorators/search/normalize-name.d.ts +2 -0
- package/dist/decorators/search/normalize-name.js +7 -0
- package/dist/decorators/search/parse-query.d.ts +6 -0
- package/dist/decorators/search/parse-query.js +47 -0
- package/dist/typing-generator.d.ts +1 -0
- package/dist/typing-generator.js +10 -3
- 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,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,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
|