@forestadmin/datasource-customizer 1.3.0 → 1.4.0
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/collection-customizer.d.ts +14 -0
- package/dist/collection-customizer.js +18 -1
- package/dist/datasource-customizer.d.ts +2 -2
- package/dist/datasource-customizer.js +1 -1
- package/dist/decorators/chart/collection.d.ts +10 -0
- package/dist/decorators/chart/collection.js +37 -0
- package/dist/decorators/chart/context.d.ts +10 -0
- package/dist/decorators/chart/context.js +28 -0
- package/dist/decorators/chart/datasource.d.ts +4 -3
- package/dist/decorators/chart/datasource.js +3 -3
- package/dist/decorators/chart/types.d.ts +4 -2
- package/dist/decorators/collection-decorator.d.ts +2 -1
- package/dist/decorators/collection-decorator.js +4 -1
- package/dist/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CollectionSchema, Operator } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
import { ActionDefinition } from './decorators/actions/types/actions';
|
|
3
|
+
import { CollectionChartDefinition } from './decorators/chart/types';
|
|
3
4
|
import { ComputedDefinition } from './decorators/computed/types';
|
|
4
5
|
import { HookHandler, HookPosition, HookType, HooksContext } from './decorators/hook/types';
|
|
5
6
|
import { OneToManyEmbeddedDefinition, Plugin } from './types';
|
|
@@ -73,6 +74,19 @@ export default class CollectionCustomizer<S extends TSchema = TSchema, N extends
|
|
|
73
74
|
* })
|
|
74
75
|
*/
|
|
75
76
|
addAction(name: string, definition: ActionDefinition<S, N>): this;
|
|
77
|
+
/**
|
|
78
|
+
* Create a new API chart
|
|
79
|
+
* @param name name of the chart
|
|
80
|
+
* @param definition definition of the chart
|
|
81
|
+
* @example
|
|
82
|
+
* .addChart('numCustomers', {
|
|
83
|
+
* type: 'Value',
|
|
84
|
+
* render: (context, resultBuilder) => {
|
|
85
|
+
* return resultBuilder.value(123);
|
|
86
|
+
* }
|
|
87
|
+
* })
|
|
88
|
+
*/
|
|
89
|
+
addChart(name: string, definition: CollectionChartDefinition<S, N>): this;
|
|
76
90
|
/**
|
|
77
91
|
* Add a new field on the collection.
|
|
78
92
|
* @param name the name of the field
|
|
@@ -96,6 +96,23 @@ class CollectionCustomizer {
|
|
|
96
96
|
.addAction(name, definition);
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a new API chart
|
|
101
|
+
* @param name name of the chart
|
|
102
|
+
* @param definition definition of the chart
|
|
103
|
+
* @example
|
|
104
|
+
* .addChart('numCustomers', {
|
|
105
|
+
* type: 'Value',
|
|
106
|
+
* render: (context, resultBuilder) => {
|
|
107
|
+
* return resultBuilder.value(123);
|
|
108
|
+
* }
|
|
109
|
+
* })
|
|
110
|
+
*/
|
|
111
|
+
addChart(name, definition) {
|
|
112
|
+
return this.pushCustomization(async () => {
|
|
113
|
+
this.stack.chart.getCollection(this.name).addChart(name, definition);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
99
116
|
/**
|
|
100
117
|
* Add a new field on the collection.
|
|
101
118
|
* @param name the name of the field
|
|
@@ -392,4 +409,4 @@ class CollectionCustomizer {
|
|
|
392
409
|
}
|
|
393
410
|
}
|
|
394
411
|
exports.default = CollectionCustomizer;
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
412
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1jdXN0b21pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbGxlY3Rpb24tY3VzdG9taXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdFQU15QztBQWV6Qyw0RkFBa0U7QUFDbEUsMEVBQWlEO0FBRWpELE1BQXFCLG9CQUFvQjtJQVl2QyxZQUFZLG9CQUE2QyxFQUFFLEtBQXNCLEVBQUUsSUFBWTtRQUM3RixJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQVJELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekQsQ0FBQztJQVFEOzs7Ozs7OztPQVFHO0lBQ0gsR0FBRyxDQUFVLE1BQXVCLEVBQUUsT0FBaUI7UUFDckQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataSource, DataSourceFactory, DataSourceSchema, Logger } from '@forestadmin/datasource-toolkit';
|
|
2
|
-
import {
|
|
2
|
+
import { DataSourceChartDefinition } from './decorators/chart/types';
|
|
3
3
|
import { DataSourceOptions, Plugin } from './types';
|
|
4
4
|
import { TCollectionName, TSchema } from './templates';
|
|
5
5
|
import CollectionCustomizer from './collection-customizer';
|
|
@@ -43,7 +43,7 @@ export default class DataSourceCustomizer<S extends TSchema = TSchema> {
|
|
|
43
43
|
* }
|
|
44
44
|
* })
|
|
45
45
|
*/
|
|
46
|
-
addChart(name: string, definition:
|
|
46
|
+
addChart(name: string, definition: DataSourceChartDefinition<S>): this;
|
|
47
47
|
/**
|
|
48
48
|
* Allow to interact with a decorated collection
|
|
49
49
|
* @param name the name of the collection to manipulate
|
|
@@ -122,4 +122,4 @@ class DataSourceCustomizer {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
exports.default = DataSourceCustomizer;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1jdXN0b21pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzb3VyY2UtY3VzdG9taXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVdBLG9GQUEyRDtBQUMzRCw2RkFBb0U7QUFDcEUscUZBQTREO0FBQzVELGdHQUFzRztBQUN0RywyRkFBNEY7QUFDNUYsMEVBQWlEO0FBRWpEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQXFCLG9CQUFvQjtJQWtCdkM7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSw4QkFBbUIsRUFBYyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSwwQkFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFqQkQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUEwQixDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUEwQixFQUFFLE9BQTJCO1FBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxFQUFFO1lBQzNDLElBQUksVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXZDLElBQUksT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsT0FBTyxFQUFFO2dCQUN4QyxNQUFNLG9CQUFvQixHQUFHLElBQUksb0JBQXdDLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RGLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvRSxVQUFVLEdBQUcsb0JBQW9CLENBQUM7YUFDbkM7WUFFRCxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxvQkFBbUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0UsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRCxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7YUFDL0I7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxRQUFRLENBQUMsSUFBWSxFQUFFLFVBQXdDO1FBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxtQkFBbUIsQ0FDakIsSUFBTyxFQUNQLE1BQTJEO1FBRTNELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUErQixJQUFPO1FBQ2pELE9BQU8sSUFBSSwrQkFBb0IsQ0FBTyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQVUsTUFBdUIsRUFBRSxPQUFpQjtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQWM7UUFDaEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLEtBQUssRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxXQUFtQixFQUFFLGVBQXVCO1FBQ3hFLE9BQU8sMEJBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGO0FBN0hELHVDQTZIQyJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Caller, Chart, CollectionSchema, CompositeId } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { CollectionChartDefinition } from './types';
|
|
3
|
+
import CollectionDecorator from '../collection-decorator';
|
|
4
|
+
export default class ChartCollectionDecorator extends CollectionDecorator {
|
|
5
|
+
private charts;
|
|
6
|
+
addChart(name: string, definition: CollectionChartDefinition): void;
|
|
7
|
+
renderChart(caller: Caller, name: string, recordId: CompositeId): Promise<Chart>;
|
|
8
|
+
protected refineSchema(subSchema: CollectionSchema): CollectionSchema;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
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 context_1 = __importDefault(require("./context"));
|
|
7
|
+
const collection_decorator_1 = __importDefault(require("../collection-decorator"));
|
|
8
|
+
const result_builder_1 = __importDefault(require("./result-builder"));
|
|
9
|
+
class ChartCollectionDecorator extends collection_decorator_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.charts = {};
|
|
13
|
+
}
|
|
14
|
+
addChart(name, definition) {
|
|
15
|
+
if (this.schema.charts.includes(name)) {
|
|
16
|
+
throw new Error(`Chart '${name}' already exists.`);
|
|
17
|
+
}
|
|
18
|
+
this.charts[name] = definition;
|
|
19
|
+
this.markSchemaAsDirty();
|
|
20
|
+
}
|
|
21
|
+
async renderChart(caller, name, recordId) {
|
|
22
|
+
if (this.charts[name]) {
|
|
23
|
+
const context = new context_1.default(this, caller, recordId);
|
|
24
|
+
const resultBuilder = new result_builder_1.default();
|
|
25
|
+
return this.charts[name](context, resultBuilder);
|
|
26
|
+
}
|
|
27
|
+
return this.childCollection.renderChart(caller, name, recordId);
|
|
28
|
+
}
|
|
29
|
+
refineSchema(subSchema) {
|
|
30
|
+
return {
|
|
31
|
+
...subSchema,
|
|
32
|
+
charts: [...subSchema.charts, ...Object.keys(this.charts)],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = ChartCollectionDecorator;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2NoYXJ0L2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx3REFBK0M7QUFDL0MsbUZBQTBEO0FBQzFELHNFQUE2QztBQUU3QyxNQUFxQix3QkFBeUIsU0FBUSw4QkFBbUI7SUFBekU7O1FBQ1UsV0FBTSxHQUE4QyxFQUFFLENBQUM7SUE0QmpFLENBQUM7SUExQkMsUUFBUSxDQUFDLElBQVksRUFBRSxVQUFxQztRQUMxRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVRLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFxQjtRQUM1RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sYUFBYSxHQUFHLElBQUksd0JBQWEsRUFBRSxDQUFDO1lBRTFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVrQixZQUFZLENBQUMsU0FBMkI7UUFDekQsT0FBTztZQUNMLEdBQUcsU0FBUztZQUNaLE1BQU0sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3QkQsMkNBNkJDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Caller, Collection, CompositeId } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { TCollectionName, TFieldName, TRow, TSchema } from '../../templates';
|
|
3
|
+
import CollectionCustomizationContext from '../../context/collection-context';
|
|
4
|
+
export default class CollectionChartContext<S extends TSchema = TSchema, N extends TCollectionName<S> = TCollectionName<S>> extends CollectionCustomizationContext<S, N> {
|
|
5
|
+
readonly compositeRecordId: CompositeId;
|
|
6
|
+
get recordId(): string | number;
|
|
7
|
+
constructor(collection: Collection, caller: Caller, recordId: CompositeId);
|
|
8
|
+
getRecord(fields: TFieldName<S, N>[]): Promise<TRow<S, N>>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
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_context_1 = __importDefault(require("../../context/collection-context"));
|
|
8
|
+
class CollectionChartContext extends collection_context_1.default {
|
|
9
|
+
constructor(collection, caller, recordId) {
|
|
10
|
+
super(collection, caller);
|
|
11
|
+
this.compositeRecordId = recordId;
|
|
12
|
+
}
|
|
13
|
+
get recordId() {
|
|
14
|
+
if (this.compositeRecordId.length > 1) {
|
|
15
|
+
throw new Error(`Collection is using a composite pk: use \`context.compositeRecordId\`.`);
|
|
16
|
+
}
|
|
17
|
+
return this.compositeRecordId[0];
|
|
18
|
+
}
|
|
19
|
+
async getRecord(fields) {
|
|
20
|
+
const conditionTree = datasource_toolkit_1.ConditionTreeFactory.matchIds(this.realCollection.schema, [
|
|
21
|
+
this.compositeRecordId,
|
|
22
|
+
]);
|
|
23
|
+
const [record] = await this.collection.list({ conditionTree }, fields);
|
|
24
|
+
return record;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = CollectionChartContext;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2NoYXJ0L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFLeUM7QUFFekMsMEZBQThFO0FBRTlFLE1BQXFCLHNCQUduQixTQUFRLDRCQUFvQztJQVc1QyxZQUFZLFVBQXNCLEVBQUUsTUFBYyxFQUFFLFFBQXFCO1FBQ3ZFLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBWkQsSUFBSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7U0FDM0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBUUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEwQjtRQUN4QyxNQUFNLGFBQWEsR0FBRyx5Q0FBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDOUUsSUFBSSxDQUFDLGlCQUFpQjtTQUN2QixDQUFvQyxDQUFDO1FBRXRDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBN0JELHlDQTZCQyJ9
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Caller, Chart, DataSource, DataSourceSchema } from '@forestadmin/datasource-toolkit';
|
|
2
|
-
import {
|
|
2
|
+
import { DataSourceChartDefinition } from './types';
|
|
3
|
+
import ChartCollectionDecorator from './collection';
|
|
3
4
|
import DataSourceDecorator from '../datasource-decorator';
|
|
4
|
-
export default class ChartDataSourceDecorator extends DataSourceDecorator {
|
|
5
|
+
export default class ChartDataSourceDecorator extends DataSourceDecorator<ChartCollectionDecorator> {
|
|
5
6
|
private charts;
|
|
6
7
|
get schema(): DataSourceSchema;
|
|
7
8
|
constructor(childDataSource: DataSource);
|
|
8
|
-
addChart(name: string, definition:
|
|
9
|
+
addChart(name: string, definition: DataSourceChartDefinition): void;
|
|
9
10
|
renderChart(caller: Caller, name: string): Promise<Chart>;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=datasource.d.ts.map
|
|
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const agent_context_1 = __importDefault(require("../../context/agent-context"));
|
|
7
|
-
const
|
|
7
|
+
const collection_1 = __importDefault(require("./collection"));
|
|
8
8
|
const datasource_decorator_1 = __importDefault(require("../datasource-decorator"));
|
|
9
9
|
const result_builder_1 = __importDefault(require("./result-builder"));
|
|
10
10
|
class ChartDataSourceDecorator extends datasource_decorator_1.default {
|
|
11
11
|
constructor(childDataSource) {
|
|
12
|
-
super(childDataSource,
|
|
12
|
+
super(childDataSource, collection_1.default);
|
|
13
13
|
this.charts = {};
|
|
14
14
|
}
|
|
15
15
|
get schema() {
|
|
@@ -35,4 +35,4 @@ class ChartDataSourceDecorator extends datasource_decorator_1.default {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
exports.default = ChartDataSourceDecorator;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2NoYXJ0L2RhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxnRkFBb0U7QUFDcEUsOERBQW9EO0FBQ3BELG1GQUEwRDtBQUMxRCxzRUFBNkM7QUFFN0MsTUFBcUIsd0JBQXlCLFNBQVEsOEJBQTZDO0lBYWpHLFlBQVksZUFBMkI7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxvQkFBd0IsQ0FBQyxDQUFDO1FBYjNDLFdBQU0sR0FBOEMsRUFBRSxDQUFDO0lBYy9ELENBQUM7SUFaRCxJQUFhLE1BQU07UUFDakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRXZELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxTQUFTO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLFNBQVMscUJBQXFCLENBQUMsQ0FBQztRQUV6RSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQU1ELFFBQVEsQ0FBQyxJQUFZLEVBQUUsVUFBcUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksbUJBQW1CLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFUSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ3JELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsT0FBTyxlQUFlLENBQUMsSUFBSSx1QkFBeUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSx3QkFBYSxFQUFFLENBQUMsQ0FBQztTQUMxRjtRQUVELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBbENELDJDQWtDQyJ9
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Chart } from '@forestadmin/datasource-toolkit';
|
|
2
|
-
import { TSchema } from '../../templates';
|
|
2
|
+
import { TCollectionName, TSchema } from '../../templates';
|
|
3
3
|
import AgentCustomizationContext from '../../context/agent-context';
|
|
4
|
+
import CollectionChartContext from './context';
|
|
4
5
|
import ResultBuilder from './result-builder';
|
|
5
|
-
export declare type
|
|
6
|
+
export declare type DataSourceChartDefinition<S extends TSchema = TSchema> = (context: AgentCustomizationContext<S>, resultBuilder: ResultBuilder) => Promise<Chart> | Chart;
|
|
7
|
+
export declare type CollectionChartDefinition<S extends TSchema = TSchema, N extends TCollectionName<S> = TCollectionName<S>> = (context: CollectionChartContext<S, N>, resultBuilder: ResultBuilder) => Promise<Chart> | Chart;
|
|
6
8
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionField, ActionResult, AggregateResult, Aggregation, Caller, Collection, CollectionSchema, DataSource, Filter, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
|
|
1
|
+
import { ActionField, ActionResult, AggregateResult, Aggregation, Caller, Chart, Collection, CollectionSchema, CompositeId, DataSource, Filter, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
export default class CollectionDecorator implements Collection {
|
|
3
3
|
readonly dataSource: DataSource;
|
|
4
4
|
protected childCollection: Collection;
|
|
@@ -14,6 +14,7 @@ export default class CollectionDecorator implements Collection {
|
|
|
14
14
|
update(caller: Caller, filter: Filter, patch: RecordData): Promise<void>;
|
|
15
15
|
delete(caller: Caller, filter: Filter): Promise<void>;
|
|
16
16
|
aggregate(caller: Caller, filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
|
|
17
|
+
renderChart(caller: Caller, name: string, recordId: CompositeId): Promise<Chart>;
|
|
17
18
|
protected markSchemaAsDirty(): void;
|
|
18
19
|
protected refineFilter(caller: Caller, filter?: PaginatedFilter): Promise<PaginatedFilter>;
|
|
19
20
|
protected refineSchema(subSchema: CollectionSchema): CollectionSchema;
|
|
@@ -43,6 +43,9 @@ class CollectionDecorator {
|
|
|
43
43
|
const refinedFilter = await this.refineFilter(caller, filter);
|
|
44
44
|
return this.childCollection.aggregate(caller, refinedFilter, aggregation, limit);
|
|
45
45
|
}
|
|
46
|
+
async renderChart(caller, name, recordId) {
|
|
47
|
+
return this.childCollection.renderChart(caller, name, recordId);
|
|
48
|
+
}
|
|
46
49
|
markSchemaAsDirty() {
|
|
47
50
|
this.lastSchema = null;
|
|
48
51
|
}
|
|
@@ -54,4 +57,4 @@ class CollectionDecorator {
|
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
exports.default = CollectionDecorator;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9ycy9jb2xsZWN0aW9uLWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxNQUFxQixtQkFBbUI7SUFzQnRDLFlBQVksZUFBMkIsRUFBRSxVQUFzQjtRQUM3RCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBbEJELElBQUksTUFBTTtRQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBRTlDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO1lBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztTQUNoQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBT0QsS0FBSyxDQUFDLE9BQU8sQ0FDWCxNQUFjLEVBQ2QsSUFBWSxFQUNaLElBQWdCLEVBQ2hCLE1BQWU7UUFFZixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixJQUFpQixFQUNqQixNQUFlO1FBRWYsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixNQUFjLEVBQ2QsTUFBdUIsRUFDdkIsVUFBc0I7UUFFdEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxLQUFpQjtRQUM1RCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN6QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLE1BQWMsRUFDZCxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsS0FBYztRQUVkLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLFFBQXFCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxNQUF3QjtRQUNuRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRVMsWUFBWSxDQUFDLFNBQTJCO1FBQ2hELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQXJHRCxzQ0FxR0MifQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { default as DataSourceCustomizer } from './datasource-customizer';
|
|
|
3
3
|
export * from './templates';
|
|
4
4
|
export * from './types';
|
|
5
5
|
export * from './decorators/actions/types/actions';
|
|
6
|
-
export {
|
|
6
|
+
export { DataSourceChartDefinition } from './decorators/chart/types';
|
|
7
7
|
export { ComputedDefinition } from './decorators/computed/types';
|
|
8
8
|
export { OperatorDefinition } from './decorators/operators-emulate/types';
|
|
9
9
|
export { RelationDefinition } from './decorators/relation/types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-customizer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"fishery": "^2.1.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@forestadmin/datasource-toolkit": "1.0
|
|
32
|
+
"@forestadmin/datasource-toolkit": "1.1.0",
|
|
33
33
|
"luxon": "^2.3.0",
|
|
34
34
|
"object-hash": "^3.0.0",
|
|
35
35
|
"uuid": "^8.3.2"
|