@forestadmin/datasource-customizer 1.4.2 → 1.4.3
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/decorators-stack.d.ts +0 -5
- package/dist/decorators/decorators-stack.js +6 -5
- package/dist/decorators/operators-emulate/collection.d.ts +2 -2
- package/dist/decorators/operators-emulate/collection.js +3 -3
- package/dist/decorators/operators-equivalence/collection.d.ts +13 -0
- package/dist/decorators/operators-equivalence/collection.js +38 -0
- package/package.json +2 -3
- package/dist/decorators/operators-replace/collection.d.ts +0 -10
- package/dist/decorators/operators-replace/collection.js +0 -35
|
@@ -3,10 +3,8 @@ import ActionCollectionDecorator from './actions/collection';
|
|
|
3
3
|
import ChartDataSourceDecorator from './chart/datasource';
|
|
4
4
|
import ComputedCollectionDecorator from './computed/collection';
|
|
5
5
|
import DataSourceDecorator from './datasource-decorator';
|
|
6
|
-
import EmptyCollectionDecorator from './empty/collection';
|
|
7
6
|
import HookCollectionDecorator from './hook/collection';
|
|
8
7
|
import OperatorsEmulateCollectionDecorator from './operators-emulate/collection';
|
|
9
|
-
import OperatorsReplaceCollectionDecorator from './operators-replace/collection';
|
|
10
8
|
import PublicationFieldCollectionDecorator from './publication-field/collection';
|
|
11
9
|
import RelationCollectionDecorator from './relation/collection';
|
|
12
10
|
import RenameFieldCollectionDecorator from './rename-field/collection';
|
|
@@ -21,12 +19,9 @@ export default class DecoratorsStack {
|
|
|
21
19
|
chart: ChartDataSourceDecorator;
|
|
22
20
|
earlyComputed: DataSourceDecorator<ComputedCollectionDecorator>;
|
|
23
21
|
earlyOpEmulate: DataSourceDecorator<OperatorsEmulateCollectionDecorator>;
|
|
24
|
-
earlyOpReplace: DataSourceDecorator<OperatorsReplaceCollectionDecorator>;
|
|
25
|
-
empty: DataSourceDecorator<EmptyCollectionDecorator>;
|
|
26
22
|
relation: DataSourceDecorator<RelationCollectionDecorator>;
|
|
27
23
|
lateComputed: DataSourceDecorator<ComputedCollectionDecorator>;
|
|
28
24
|
lateOpEmulate: DataSourceDecorator<OperatorsEmulateCollectionDecorator>;
|
|
29
|
-
lateOpReplace: DataSourceDecorator<OperatorsReplaceCollectionDecorator>;
|
|
30
25
|
publication: DataSourceDecorator<PublicationFieldCollectionDecorator>;
|
|
31
26
|
renameField: DataSourceDecorator<RenameFieldCollectionDecorator>;
|
|
32
27
|
schema: DataSourceDecorator<SchemaCollectionDecorator>;
|
|
@@ -10,7 +10,7 @@ const datasource_decorator_1 = __importDefault(require("./datasource-decorator")
|
|
|
10
10
|
const collection_3 = __importDefault(require("./empty/collection"));
|
|
11
11
|
const collection_4 = __importDefault(require("./hook/collection"));
|
|
12
12
|
const collection_5 = __importDefault(require("./operators-emulate/collection"));
|
|
13
|
-
const collection_6 = __importDefault(require("./operators-
|
|
13
|
+
const collection_6 = __importDefault(require("./operators-equivalence/collection"));
|
|
14
14
|
const collection_7 = __importDefault(require("./publication-field/collection"));
|
|
15
15
|
const collection_8 = __importDefault(require("./relation/collection"));
|
|
16
16
|
const collection_9 = __importDefault(require("./rename-field/collection"));
|
|
@@ -26,17 +26,18 @@ class DecoratorsStack {
|
|
|
26
26
|
let last = dataSource;
|
|
27
27
|
/* eslint-disable no-multi-assign */
|
|
28
28
|
// Step 0: Do not query datasource when we know the result with yield an empty set.
|
|
29
|
-
last =
|
|
29
|
+
last = new datasource_decorator_1.default(last, collection_3.default);
|
|
30
|
+
last = new datasource_decorator_1.default(last, collection_6.default);
|
|
30
31
|
// Step 1: Computed-Relation-Computed sandwich (needed because some emulated relations depend
|
|
31
32
|
// on computed fields, and some computed fields depend on relation...)
|
|
32
33
|
// Note that replacement goes before emulation, as replacements may use emulated operators.
|
|
33
34
|
last = this.earlyComputed = new datasource_decorator_1.default(last, collection_2.default);
|
|
34
35
|
last = this.earlyOpEmulate = new datasource_decorator_1.default(last, collection_5.default);
|
|
35
|
-
last =
|
|
36
|
+
last = new datasource_decorator_1.default(last, collection_6.default);
|
|
36
37
|
last = this.relation = new datasource_decorator_1.default(last, collection_8.default);
|
|
37
38
|
last = this.lateComputed = new datasource_decorator_1.default(last, collection_2.default);
|
|
38
39
|
last = this.lateOpEmulate = new datasource_decorator_1.default(last, collection_5.default);
|
|
39
|
-
last =
|
|
40
|
+
last = new datasource_decorator_1.default(last, collection_6.default);
|
|
40
41
|
// Step 2: Those need access to all fields. They can be loaded in any order.
|
|
41
42
|
last = this.search = new datasource_decorator_1.default(last, collection_11.default);
|
|
42
43
|
last = this.segment = new datasource_decorator_1.default(last, collection_12.default);
|
|
@@ -75,4 +76,4 @@ class DecoratorsStack {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
exports.default = DecoratorsStack;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2RlY29yYXRvcnMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxzRUFBNkQ7QUFDN0Qsb0VBQTBEO0FBQzFELHVFQUFnRTtBQUNoRSxrRkFBeUQ7QUFDekQsb0VBQTBEO0FBQzFELG1FQUF3RDtBQUN4RCxnRkFBaUY7QUFDakYsb0ZBQXlGO0FBQ3pGLGdGQUFpRjtBQUNqRix1RUFBZ0U7QUFDaEUsMkVBQXVFO0FBQ3ZFLHNFQUE0RDtBQUM1RCxzRUFBNEQ7QUFDNUQsdUVBQThEO0FBQzlELDRFQUF1RTtBQUN2RSwwRUFBb0U7QUFDcEUscUVBQTBEO0FBRTFELE1BQXFCLGVBQWU7SUFxQmxDLFlBQVksVUFBc0I7UUFGMUIsbUJBQWMsR0FBNkMsRUFBRSxDQUFDO1FBR3BFLElBQUksSUFBSSxHQUFlLFVBQVUsQ0FBQztRQUVsQyxvQ0FBb0M7UUFDcEMsbUZBQW1GO1FBQ25GLElBQUksR0FBRyxJQUFJLDhCQUFtQixDQUFDLElBQUksRUFBRSxvQkFBd0IsQ0FBQyxDQUFDO1FBQy9ELElBQUksR0FBRyxJQUFJLDhCQUFtQixDQUFDLElBQUksRUFBRSxvQkFBdUMsQ0FBQyxDQUFDO1FBRTlFLDZGQUE2RjtRQUM3RixzRUFBc0U7UUFDdEUsMkZBQTJGO1FBQzNGLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksOEJBQW1CLENBQUMsSUFBSSxFQUFFLG9CQUEyQixDQUFDLENBQUM7UUFDdkYsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSw4QkFBbUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW1DLENBQUMsQ0FBQztRQUNoRyxJQUFJLEdBQUcsSUFBSSw4QkFBbUIsQ0FBQyxJQUFJLEVBQUUsb0JBQXVDLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJ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
|
|
@@ -2,8 +2,8 @@ import { Caller, CollectionSchema, Operator, PaginatedFilter } from '@forestadmi
|
|
|
2
2
|
import CollectionDecorator from '../collection-decorator';
|
|
3
3
|
import DataSourceDecorator from '../datasource-decorator';
|
|
4
4
|
import { OperatorDefinition } from './types';
|
|
5
|
-
export default class
|
|
6
|
-
readonly dataSource: DataSourceDecorator<
|
|
5
|
+
export default class OperatorsEmulateCollectionDecorator extends CollectionDecorator {
|
|
6
|
+
readonly dataSource: DataSourceDecorator<OperatorsEmulateCollectionDecorator>;
|
|
7
7
|
private readonly fields;
|
|
8
8
|
emulateFieldOperator(name: string, operator: Operator): void;
|
|
9
9
|
replaceFieldOperator(name: string, operator: Operator, replaceBy: OperatorDefinition): void;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
7
7
|
const collection_context_1 = __importDefault(require("../../context/collection-context"));
|
|
8
8
|
const collection_decorator_1 = __importDefault(require("../collection-decorator"));
|
|
9
|
-
class
|
|
9
|
+
class OperatorsEmulateCollectionDecorator extends collection_decorator_1.default {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
12
12
|
this.fields = new Map();
|
|
@@ -95,5 +95,5 @@ class OperatorsEmulate extends collection_decorator_1.default {
|
|
|
95
95
|
return datasource_toolkit_1.ConditionTreeFactory.matchRecords(this.schema, leaf.apply(await this.list(caller, new datasource_toolkit_1.PaginatedFilter({}), leaf.projection.withPks(this)), this, caller.timezone));
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
exports.default =
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
exports.default = OperatorsEmulateCollectionDecorator;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL29wZXJhdG9ycy1lbXVsYXRlL2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFjeUM7QUFFekMsMEZBQThFO0FBQzlFLG1GQUEwRDtBQUkxRCxNQUFxQixtQ0FBb0MsU0FBUSw4QkFBbUI7SUFBcEY7O1FBRW1CLFdBQU0sR0FBbUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQStIdEYsQ0FBQztJQTdIQyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsUUFBa0I7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVksRUFBRSxRQUFrQixFQUFFLFNBQTZCO1FBQ2xGLCtEQUErRDtRQUMvRCxNQUFNLEdBQUcsR0FBRyxnQ0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFpQixDQUFDO1lBQ3RFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7WUFFekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUNiLDRDQUE0QyxJQUFJLENBQUMsSUFBSSxLQUFLO29CQUN4RCxpRUFBaUUsQ0FDcEUsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxxQ0FBcUM7UUFDckMsTUFBTSxLQUFLLEdB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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Caller, CollectionSchema, PaginatedFilter } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import CollectionDecorator from '../collection-decorator';
|
|
3
|
+
/**
|
|
4
|
+
* Replace unsupported operators in conditions trees by an equivalent subtree which is supported.
|
|
5
|
+
*
|
|
6
|
+
* For example, the "IContains" operator is not supported by most driver, so it is replaced by a
|
|
7
|
+
* "ILike" operator.
|
|
8
|
+
*/
|
|
9
|
+
export default class OperatorsEquivalenceCollectionDecorator extends CollectionDecorator {
|
|
10
|
+
protected refineSchema(childSchema: CollectionSchema): CollectionSchema;
|
|
11
|
+
protected refineFilter(caller: Caller, filter?: PaginatedFilter): Promise<PaginatedFilter>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
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 collection_decorator_1 = __importDefault(require("../collection-decorator"));
|
|
8
|
+
/**
|
|
9
|
+
* Replace unsupported operators in conditions trees by an equivalent subtree which is supported.
|
|
10
|
+
*
|
|
11
|
+
* For example, the "IContains" operator is not supported by most driver, so it is replaced by a
|
|
12
|
+
* "ILike" operator.
|
|
13
|
+
*/
|
|
14
|
+
class OperatorsEquivalenceCollectionDecorator extends collection_decorator_1.default {
|
|
15
|
+
refineSchema(childSchema) {
|
|
16
|
+
const fields = {};
|
|
17
|
+
for (const [name, schema] of Object.entries(childSchema.fields)) {
|
|
18
|
+
if (schema.type === 'Column') {
|
|
19
|
+
const newOperators = datasource_toolkit_1.allOperators.filter(operator => datasource_toolkit_1.ConditionTreeEquivalent.hasEquivalentTree(operator, schema.filterOperators, schema.columnType));
|
|
20
|
+
fields[name] = { ...schema, filterOperators: new Set(newOperators) };
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
fields[name] = schema;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return { ...childSchema, fields };
|
|
27
|
+
}
|
|
28
|
+
async refineFilter(caller, filter) {
|
|
29
|
+
return filter?.override({
|
|
30
|
+
conditionTree: filter.conditionTree?.replaceLeafs(leaf => {
|
|
31
|
+
const schema = datasource_toolkit_1.CollectionUtils.getFieldSchema(this.childCollection, leaf.field);
|
|
32
|
+
return datasource_toolkit_1.ConditionTreeEquivalent.getEquivalentTree(leaf, schema.filterOperators, schema.columnType, caller.timezone);
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = OperatorsEquivalenceCollectionDecorator;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL29wZXJhdG9ycy1lcXVpdmFsZW5jZS9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBU3lDO0FBRXpDLG1GQUEwRDtBQUUxRDs7Ozs7R0FLRztBQUNILE1BQXFCLHVDQUF3QyxTQUFRLDhCQUFtQjtJQUNuRSxZQUFZLENBQUMsV0FBNkI7UUFDM0QsTUFBTSxNQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0QsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsTUFBTSxZQUFZLEdBQUcsaUNBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDbEQsNENBQXVCLENBQUMsaUJBQWlCLENBQ3ZDLFFBQVEsRUFDUixNQUFNLENBQUMsZUFBZSxFQUN0QixNQUFNLENBQUMsVUFBVSxDQUNsQixDQUNGLENBQUM7Z0JBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsZUFBZSxFQUFFLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUN2QjtTQUNGO1FBRUQsT0FBTyxFQUFFLEdBQUcsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFa0IsS0FBSyxDQUFDLFlBQVksQ0FDbkMsTUFBYyxFQUNkLE1BQXdCO1FBRXhCLE9BQU8sTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZELE1BQU0sTUFBTSxHQUFHLG9DQUFlLENBQUMsY0FBYyxDQUMzQyxJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsS0FBSyxDQUNLLENBQUM7Z0JBRWxCLE9BQU8sNENBQXVCLENBQUMsaUJBQWlCLENBQzlDLElBQUksRUFDSixNQUFNLENBQUMsZUFBZSxFQUN0QixNQUFNLENBQUMsVUFBVSxFQUNqQixNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDO1lBQ0osQ0FBQyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0NELDBEQTJDQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-customizer",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -25,8 +25,7 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/luxon": "^2.0.9",
|
|
27
27
|
"@types/object-hash": "^2.2.1",
|
|
28
|
-
"@types/uuid": "^8.3.4"
|
|
29
|
-
"fishery": "^2.1.0"
|
|
28
|
+
"@types/uuid": "^8.3.4"
|
|
30
29
|
},
|
|
31
30
|
"dependencies": {
|
|
32
31
|
"@forestadmin/datasource-toolkit": "1.1.1",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Caller, CollectionSchema, PaginatedFilter } from '@forestadmin/datasource-toolkit';
|
|
2
|
-
import CollectionDecorator from '../collection-decorator';
|
|
3
|
-
/**
|
|
4
|
-
* Decorator which emulates filter operators from others.
|
|
5
|
-
*/
|
|
6
|
-
export default class OperatorsDecorator extends CollectionDecorator {
|
|
7
|
-
protected refineSchema(childSchema: CollectionSchema): CollectionSchema;
|
|
8
|
-
protected refineFilter(caller: Caller, filter?: PaginatedFilter): Promise<PaginatedFilter>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -1,35 +0,0 @@
|
|
|
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 collection_decorator_1 = __importDefault(require("../collection-decorator"));
|
|
8
|
-
/**
|
|
9
|
-
* Decorator which emulates filter operators from others.
|
|
10
|
-
*/
|
|
11
|
-
class OperatorsDecorator extends collection_decorator_1.default {
|
|
12
|
-
refineSchema(childSchema) {
|
|
13
|
-
const fields = {};
|
|
14
|
-
for (const [name, schema] of Object.entries(childSchema.fields)) {
|
|
15
|
-
if (schema.type === 'Column') {
|
|
16
|
-
const newOperators = datasource_toolkit_1.allOperators.filter(operator => datasource_toolkit_1.ConditionTreeEquivalent.hasEquivalentTree(operator, schema.filterOperators, schema.columnType));
|
|
17
|
-
fields[name] = { ...schema, filterOperators: new Set(newOperators) };
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
fields[name] = schema;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return { ...childSchema, fields };
|
|
24
|
-
}
|
|
25
|
-
async refineFilter(caller, filter) {
|
|
26
|
-
return filter?.override({
|
|
27
|
-
conditionTree: filter.conditionTree?.replaceLeafs(leaf => {
|
|
28
|
-
const schema = datasource_toolkit_1.CollectionUtils.getFieldSchema(this.childCollection, leaf.field);
|
|
29
|
-
return datasource_toolkit_1.ConditionTreeEquivalent.getEquivalentTree(leaf, schema.filterOperators, schema.columnType, caller.timezone);
|
|
30
|
-
}),
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.default = OperatorsDecorator;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL29wZXJhdG9ycy1yZXBsYWNlL2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFTeUM7QUFFekMsbUZBQTBEO0FBRTFEOztHQUVHO0FBQ0gsTUFBcUIsa0JBQW1CLFNBQVEsOEJBQW1CO0lBQzlDLFlBQVksQ0FBQyxXQUE2QjtRQUMzRCxNQUFNLE1BQU0sR0FBZ0MsRUFBRSxDQUFDO1FBRS9DLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixNQUFNLFlBQVksR0FBRyxpQ0FBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNsRCw0Q0FBdUIsQ0FBQyxpQkFBaUIsQ0FDdkMsUUFBUSxFQUNSLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLE1BQU0sQ0FBQyxVQUFVLENBQ2xCLENBQ0YsQ0FBQztnQkFFRixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzthQUN0RTtpQkFBTTtnQkFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO2FBQ3ZCO1NBQ0Y7UUFFRCxPQUFPLEVBQUUsR0FBRyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVrQixLQUFLLENBQUMsWUFBWSxDQUNuQyxNQUFjLEVBQ2QsTUFBd0I7UUFFeEIsT0FBTyxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQ3RCLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkQsTUFBTSxNQUFNLEdBQUcsb0NBQWUsQ0FBQyxjQUFjLENBQzNDLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxLQUFLLENBQ0ssQ0FBQztnQkFFbEIsT0FBTyw0Q0FBdUIsQ0FBQyxpQkFBaUIsQ0FDOUMsSUFBSSxFQUNKLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLE1BQU0sQ0FBQyxVQUFVLEVBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQ2hCLENBQUM7WUFDSixDQUFDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQ0QscUNBMkNDIn0=
|