@forestadmin/agent-testing 0.1.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/LICENSE +674 -0
- package/README.md +52 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +20 -0
- package/dist/integrations/benchmark.d.ts +13 -0
- package/dist/integrations/benchmark.js +36 -0
- package/dist/integrations/forest-admin-client-mock.d.ts +28 -0
- package/dist/integrations/forest-admin-client-mock.js +76 -0
- package/dist/integrations/forest-server-sandbox.d.ts +14 -0
- package/dist/integrations/forest-server-sandbox.js +153 -0
- package/dist/integrations/http-requester-mock.d.ts +8 -0
- package/dist/integrations/http-requester-mock.js +15 -0
- package/dist/integrations/index.d.ts +43 -0
- package/dist/integrations/index.js +119 -0
- package/dist/integrations/schema-converter.d.ts +6 -0
- package/dist/integrations/schema-converter.js +16 -0
- package/dist/integrations/schema-path-manager.d.ts +6 -0
- package/dist/integrations/schema-path-manager.js +25 -0
- package/dist/integrations/testable-agent-base.d.ts +7 -0
- package/dist/integrations/testable-agent-base.js +14 -0
- package/dist/integrations/testable-agent.d.ts +15 -0
- package/dist/integrations/testable-agent.js +33 -0
- package/dist/integrations/types.d.ts +5 -0
- package/dist/integrations/types.js +3 -0
- package/dist/remote-agent-client/action-fields/action-field-checkbox-group.d.ts +8 -0
- package/dist/remote-agent-client/action-fields/action-field-checkbox-group.js +23 -0
- package/dist/remote-agent-client/action-fields/action-field-checkbox.d.ts +6 -0
- package/dist/remote-agent-client/action-fields/action-field-checkbox.js +16 -0
- package/dist/remote-agent-client/action-fields/action-field-color-picker.d.ts +7 -0
- package/dist/remote-agent-client/action-fields/action-field-color-picker.js +19 -0
- package/dist/remote-agent-client/action-fields/action-field-date.d.ts +5 -0
- package/dist/remote-agent-client/action-fields/action-field-date.js +13 -0
- package/dist/remote-agent-client/action-fields/action-field-dropdown.d.ts +7 -0
- package/dist/remote-agent-client/action-fields/action-field-dropdown.js +16 -0
- package/dist/remote-agent-client/action-fields/action-field-enum.d.ts +6 -0
- package/dist/remote-agent-client/action-fields/action-field-enum.js +19 -0
- package/dist/remote-agent-client/action-fields/action-field-json.d.ts +5 -0
- package/dist/remote-agent-client/action-fields/action-field-json.js +13 -0
- package/dist/remote-agent-client/action-fields/action-field-multiple-choice.d.ts +7 -0
- package/dist/remote-agent-client/action-fields/action-field-multiple-choice.js +19 -0
- package/dist/remote-agent-client/action-fields/action-field-number-list.d.ts +6 -0
- package/dist/remote-agent-client/action-fields/action-field-number-list.js +20 -0
- package/dist/remote-agent-client/action-fields/action-field-number.d.ts +5 -0
- package/dist/remote-agent-client/action-fields/action-field-number.js +13 -0
- package/dist/remote-agent-client/action-fields/action-field-radio-group.d.ts +7 -0
- package/dist/remote-agent-client/action-fields/action-field-radio-group.js +16 -0
- package/dist/remote-agent-client/action-fields/action-field-string-list.d.ts +6 -0
- package/dist/remote-agent-client/action-fields/action-field-string-list.js +20 -0
- package/dist/remote-agent-client/action-fields/action-field-string.d.ts +5 -0
- package/dist/remote-agent-client/action-fields/action-field-string.js +13 -0
- package/dist/remote-agent-client/action-fields/action-field.d.ts +15 -0
- package/dist/remote-agent-client/action-fields/action-field.js +34 -0
- package/dist/remote-agent-client/action-fields/field-form-states.d.ts +25 -0
- package/dist/remote-agent-client/action-fields/field-form-states.js +94 -0
- package/dist/remote-agent-client/action-fields/field-getter.d.ts +10 -0
- package/dist/remote-agent-client/action-fields/field-getter.js +21 -0
- package/dist/remote-agent-client/action-fields/types.d.ts +28 -0
- package/dist/remote-agent-client/action-fields/types.js +3 -0
- package/dist/remote-agent-client/action-layout/action-layout-container.d.ts +9 -0
- package/dist/remote-agent-client/action-layout/action-layout-container.js +24 -0
- package/dist/remote-agent-client/action-layout/action-layout-element.d.ts +14 -0
- package/dist/remote-agent-client/action-layout/action-layout-element.js +47 -0
- package/dist/remote-agent-client/action-layout/action-layout-input.d.ts +7 -0
- package/dist/remote-agent-client/action-layout/action-layout-input.js +12 -0
- package/dist/remote-agent-client/action-layout/action-layout-page.d.ts +8 -0
- package/dist/remote-agent-client/action-layout/action-layout-page.js +18 -0
- package/dist/remote-agent-client/action-layout/action-layout-root.d.ts +6 -0
- package/dist/remote-agent-client/action-layout/action-layout-root.js +19 -0
- package/dist/remote-agent-client/action-layout/errors.d.ts +8 -0
- package/dist/remote-agent-client/action-layout/errors.js +16 -0
- package/dist/remote-agent-client/domains/action.d.ts +59 -0
- package/dist/remote-agent-client/domains/action.js +139 -0
- package/dist/remote-agent-client/domains/chart.d.ts +21 -0
- package/dist/remote-agent-client/domains/chart.js +39 -0
- package/dist/remote-agent-client/domains/collection-chart.d.ts +19 -0
- package/dist/remote-agent-client/domains/collection-chart.js +40 -0
- package/dist/remote-agent-client/domains/collection.d.ts +26 -0
- package/dist/remote-agent-client/domains/collection.js +109 -0
- package/dist/remote-agent-client/domains/relation.d.ts +11 -0
- package/dist/remote-agent-client/domains/relation.js +23 -0
- package/dist/remote-agent-client/domains/remote-agent-client.d.ts +41 -0
- package/dist/remote-agent-client/domains/remote-agent-client.js +43 -0
- package/dist/remote-agent-client/domains/segment.d.ts +14 -0
- package/dist/remote-agent-client/domains/segment.js +46 -0
- package/dist/remote-agent-client/http-requester.d.ts +30 -0
- package/dist/remote-agent-client/http-requester.js +67 -0
- package/dist/remote-agent-client/index.d.ts +10 -0
- package/dist/remote-agent-client/index.js +18 -0
- package/dist/remote-agent-client/query-serializer.d.ts +7 -0
- package/dist/remote-agent-client/query-serializer.js +34 -0
- package/dist/remote-agent-client/types.d.ts +25 -0
- package/dist/remote-agent-client/types.js +3 -0
- package/dist/units/add-action.d.ts +16 -0
- package/dist/units/add-action.js +70 -0
- package/dist/units/add-field.d.ts +3 -0
- package/dist/units/add-field.js +18 -0
- package/dist/units/add-hook.d.ts +3 -0
- package/dist/units/add-hook.js +18 -0
- package/dist/units/import-field.d.ts +3 -0
- package/dist/units/import-field.js +18 -0
- package/dist/units/index.d.ts +9 -0
- package/dist/units/index.js +25 -0
- package/dist/units/many-to-one-relation.d.ts +3 -0
- package/dist/units/many-to-one-relation.js +18 -0
- package/dist/units/replace-search.d.ts +3 -0
- package/dist/units/replace-search.js +18 -0
- package/dist/units/types.d.ts +34 -0
- package/dist/units/types.js +3 -0
- package/dist/units/use-plugin.d.ts +3 -0
- package/dist/units/use-plugin.js +18 -0
- package/package.json +55 -0
|
@@ -0,0 +1,94 @@
|
|
|
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 action_field_multiple_choice_1 = __importDefault(require("./action-field-multiple-choice"));
|
|
7
|
+
const field_getter_1 = __importDefault(require("./field-getter"));
|
|
8
|
+
class FieldFormStates {
|
|
9
|
+
constructor(actionName, actionPath, collectionName, httpRequester, ids) {
|
|
10
|
+
this.fields = [];
|
|
11
|
+
this.actionName = actionName;
|
|
12
|
+
this.actionPath = actionPath;
|
|
13
|
+
this.collectionName = collectionName;
|
|
14
|
+
this.httpRequester = httpRequester;
|
|
15
|
+
this.ids = ids;
|
|
16
|
+
this.layout = [];
|
|
17
|
+
}
|
|
18
|
+
getFieldValues() {
|
|
19
|
+
return this.fields.reduce((acc, f) => {
|
|
20
|
+
if (f.getValue() !== undefined)
|
|
21
|
+
acc[f.getName()] = f.getValue();
|
|
22
|
+
return acc;
|
|
23
|
+
}, {});
|
|
24
|
+
}
|
|
25
|
+
getMultipleChoiceField(name) {
|
|
26
|
+
return new action_field_multiple_choice_1.default(this.getField(name)?.getPlainField());
|
|
27
|
+
}
|
|
28
|
+
getField(name) {
|
|
29
|
+
return this.fields.find(f => f.getName() === name);
|
|
30
|
+
}
|
|
31
|
+
getFields() {
|
|
32
|
+
return this.fields;
|
|
33
|
+
}
|
|
34
|
+
getLayout() {
|
|
35
|
+
return this.layout;
|
|
36
|
+
}
|
|
37
|
+
async setFieldValue(name, value) {
|
|
38
|
+
const field = this.getField(name);
|
|
39
|
+
if (!field)
|
|
40
|
+
throw new Error(`Field "${name}" not found in action "${this.actionName}"`);
|
|
41
|
+
field.getPlainField().value = value;
|
|
42
|
+
await this.loadChanges(name);
|
|
43
|
+
}
|
|
44
|
+
async loadInitialState() {
|
|
45
|
+
const requestBody = {
|
|
46
|
+
data: {
|
|
47
|
+
attributes: {
|
|
48
|
+
collection_name: this.collectionName,
|
|
49
|
+
ids: this.ids,
|
|
50
|
+
values: {},
|
|
51
|
+
},
|
|
52
|
+
type: 'action-requests',
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
const queryResults = await this.httpRequester.query({
|
|
56
|
+
method: 'post',
|
|
57
|
+
path: `${this.actionPath}/hooks/load`,
|
|
58
|
+
body: requestBody,
|
|
59
|
+
});
|
|
60
|
+
this.clearFieldsAndLayout();
|
|
61
|
+
this.layout.push(...queryResults.layout);
|
|
62
|
+
this.addFields(queryResults.fields);
|
|
63
|
+
}
|
|
64
|
+
addFields(plainFields) {
|
|
65
|
+
plainFields.forEach(f => this.fields.push(new field_getter_1.default(f)));
|
|
66
|
+
}
|
|
67
|
+
clearFieldsAndLayout() {
|
|
68
|
+
this.layout.splice(0, this.layout.length);
|
|
69
|
+
this.fields.splice(0, this.fields.length);
|
|
70
|
+
}
|
|
71
|
+
async loadChanges(fieldName) {
|
|
72
|
+
const requestBody = {
|
|
73
|
+
data: {
|
|
74
|
+
attributes: {
|
|
75
|
+
collection_name: this.collectionName,
|
|
76
|
+
changed_field: fieldName,
|
|
77
|
+
ids: this.ids,
|
|
78
|
+
fields: this.fields.map(f => f.getPlainField()),
|
|
79
|
+
},
|
|
80
|
+
type: 'custom-action-hook-requests',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
const queryResults = await this.httpRequester.query({
|
|
84
|
+
method: 'post',
|
|
85
|
+
path: `${this.actionPath}/hooks/change`,
|
|
86
|
+
body: requestBody,
|
|
87
|
+
});
|
|
88
|
+
this.clearFieldsAndLayout();
|
|
89
|
+
this.addFields(queryResults.fields);
|
|
90
|
+
this.layout.push(...queryResults.layout);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.default = FieldFormStates;
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZm9ybS1zdGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVtb3RlLWFnZW50LWNsaWVudC9hY3Rpb24tZmllbGRzL2ZpZWxkLWZvcm0tc3RhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsa0dBQXVFO0FBQ3ZFLGtFQUF5QztBQUl6QyxNQUFxQixlQUFlO0lBU2xDLFlBQ0UsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsY0FBbUMsRUFDbkMsYUFBNEIsRUFDNUIsR0FBYTtRQUViLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVM7Z0JBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVoRSxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sSUFBSSxzQ0FBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDN0Us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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PlainField } from './types';
|
|
2
|
+
export default class FieldGetter {
|
|
3
|
+
private readonly plainField;
|
|
4
|
+
constructor(plainField: PlainField);
|
|
5
|
+
getPlainField(): PlainField;
|
|
6
|
+
getValue(): unknown;
|
|
7
|
+
getName(): string;
|
|
8
|
+
getType(): string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=field-getter.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class FieldGetter {
|
|
4
|
+
constructor(plainField) {
|
|
5
|
+
this.plainField = plainField;
|
|
6
|
+
}
|
|
7
|
+
getPlainField() {
|
|
8
|
+
return this.plainField;
|
|
9
|
+
}
|
|
10
|
+
getValue() {
|
|
11
|
+
return this.plainField.value;
|
|
12
|
+
}
|
|
13
|
+
getName() {
|
|
14
|
+
return this.plainField.field;
|
|
15
|
+
}
|
|
16
|
+
getType() {
|
|
17
|
+
return this.plainField.type;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = FieldGetter;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ2V0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvYWN0aW9uLWZpZWxkcy9maWVsZC1nZXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFxQixXQUFXO0lBRzlCLFlBQVksVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBdEJELDhCQXNCQyJ9
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client';
|
|
2
|
+
export type ResponseBody = {
|
|
3
|
+
fields: PlainField[];
|
|
4
|
+
layout: ForestServerActionFormLayoutElement[];
|
|
5
|
+
};
|
|
6
|
+
export type PlainFieldOption = {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
};
|
|
10
|
+
export type PlainField = {
|
|
11
|
+
field: string;
|
|
12
|
+
type: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
value?: unknown;
|
|
15
|
+
isRequired: boolean;
|
|
16
|
+
isReadOnly: boolean;
|
|
17
|
+
widgetEdit?: {
|
|
18
|
+
parameters: {
|
|
19
|
+
static: {
|
|
20
|
+
options?: PlainFieldOption[];
|
|
21
|
+
enableOpacity?: boolean;
|
|
22
|
+
quickPalette?: string[];
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
enums?: string[];
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVtb3RlLWFnZW50LWNsaWVudC9hY3Rpb24tZmllbGRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client';
|
|
2
|
+
import ActionLayoutElement from './action-layout-element';
|
|
3
|
+
export default abstract class ActionLayoutElementsContainer {
|
|
4
|
+
protected readonly layout: ForestServerActionFormLayoutElement[];
|
|
5
|
+
constructor(layout: ForestServerActionFormLayoutElement[]);
|
|
6
|
+
element(n: number): ActionLayoutElement;
|
|
7
|
+
isPage(n: number): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=action-layout-container.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 action_layout_element_1 = __importDefault(require("./action-layout-element"));
|
|
7
|
+
const errors_1 = require("./errors");
|
|
8
|
+
class ActionLayoutElementsContainer {
|
|
9
|
+
constructor(layout) {
|
|
10
|
+
this.layout = layout;
|
|
11
|
+
}
|
|
12
|
+
element(n) {
|
|
13
|
+
if (n < 0 || n >= this.layout.length)
|
|
14
|
+
throw new errors_1.NotFoundElementError(n);
|
|
15
|
+
if (this.isPage(n))
|
|
16
|
+
throw new errors_1.NotRightElementError('an element', this.layout[n]);
|
|
17
|
+
return new action_layout_element_1.default(this.layout[n]);
|
|
18
|
+
}
|
|
19
|
+
isPage(n) {
|
|
20
|
+
return this.layout[n]?.component === 'page';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = ActionLayoutElementsContainer;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxheW91dC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVtb3RlLWFnZW50LWNsaWVudC9hY3Rpb24tbGF5b3V0L2FjdGlvbi1sYXlvdXQtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsb0ZBQTBEO0FBQzFELHFDQUFzRTtBQUV0RSxNQUE4Qiw2QkFBNkI7SUFHekQsWUFBWSxNQUE2QztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxDQUFDLENBQVM7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQUUsTUFBTSxJQUFJLDZCQUFvQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakYsT0FBTyxJQUFJLCtCQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLENBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxLQUFLLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFqQkQsZ0RBaUJDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client';
|
|
2
|
+
import ActionLayoutInput from './action-layout-input';
|
|
3
|
+
export default class ActionLayoutElement {
|
|
4
|
+
protected readonly layoutItem: ForestServerActionFormLayoutElement;
|
|
5
|
+
constructor(layoutItem: ForestServerActionFormLayoutElement);
|
|
6
|
+
getHtmlBlockContent(): string;
|
|
7
|
+
getInputId(): string;
|
|
8
|
+
rowElement(n: number): ActionLayoutInput;
|
|
9
|
+
isRow(): boolean;
|
|
10
|
+
isInput(): boolean;
|
|
11
|
+
isHTMLBlock(): boolean;
|
|
12
|
+
isSeparator(): boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=action-layout-element.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
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 action_layout_input_1 = __importDefault(require("./action-layout-input"));
|
|
7
|
+
const errors_1 = require("./errors");
|
|
8
|
+
class ActionLayoutElement {
|
|
9
|
+
constructor(layoutItem) {
|
|
10
|
+
this.layoutItem = layoutItem;
|
|
11
|
+
}
|
|
12
|
+
getHtmlBlockContent() {
|
|
13
|
+
if (!this.isHTMLBlock()) {
|
|
14
|
+
throw new errors_1.NotRightElementError('an htmlBlock', this.layoutItem);
|
|
15
|
+
}
|
|
16
|
+
return this.layoutItem.content;
|
|
17
|
+
}
|
|
18
|
+
getInputId() {
|
|
19
|
+
if (!this.isInput()) {
|
|
20
|
+
throw new errors_1.NotRightElementError('an input', this.layoutItem);
|
|
21
|
+
}
|
|
22
|
+
return new action_layout_input_1.default(this.layoutItem).getInputId();
|
|
23
|
+
}
|
|
24
|
+
rowElement(n) {
|
|
25
|
+
if (!this.isRow) {
|
|
26
|
+
throw new errors_1.NotRightElementError('a row', this.layoutItem);
|
|
27
|
+
}
|
|
28
|
+
const { fields } = this.layoutItem;
|
|
29
|
+
if (n < 0 || n >= fields.length)
|
|
30
|
+
throw new errors_1.NotFoundElementError(0);
|
|
31
|
+
return new action_layout_input_1.default(fields[n]);
|
|
32
|
+
}
|
|
33
|
+
isRow() {
|
|
34
|
+
return this.layoutItem?.component === 'row';
|
|
35
|
+
}
|
|
36
|
+
isInput() {
|
|
37
|
+
return this.layoutItem?.component === 'input';
|
|
38
|
+
}
|
|
39
|
+
isHTMLBlock() {
|
|
40
|
+
return this.layoutItem?.component === 'htmlBlock';
|
|
41
|
+
}
|
|
42
|
+
isSeparator() {
|
|
43
|
+
return this.layoutItem?.component === 'separator';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.default = ActionLayoutElement;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxheW91dC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvYWN0aW9uLWxheW91dC9hY3Rpb24tbGF5b3V0LWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxnRkFBc0Q7QUFDdEQscUNBQXNFO0FBRXRFLE1BQXFCLG1CQUFtQjtJQUd0QyxZQUFZLFVBQStDO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxPQUFRLElBQUksQ0FBQyxVQUFrQyxDQUFDLE9BQU8sQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksNkJBQW9CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsT0FBTyxJQUFJLDZCQUFpQixDQUMxQixJQUFJLENBQUMsVUFBeUQsQ0FDL0QsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVSxDQUFDLENBQVM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksNkJBQW9CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUF1RSxDQUFDO1FBQ2hHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksNkJBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkUsT0FBTyxJQUFJLDZCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxLQUFLLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEtBQUssV0FBVyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsS0FBSyxXQUFXLENBQUM7SUFDcEQsQ0FBQztDQUNGO0FBbkRELHNDQW1EQyJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ForestServerActionFormElementFieldReference } from '@forestadmin/forestadmin-client';
|
|
2
|
+
export default class ActionLayoutInput {
|
|
3
|
+
protected readonly layoutItem: ForestServerActionFormElementFieldReference;
|
|
4
|
+
constructor(layoutItem: ForestServerActionFormElementFieldReference);
|
|
5
|
+
getInputId(): string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=action-layout-input.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class ActionLayoutInput {
|
|
4
|
+
constructor(layoutItem) {
|
|
5
|
+
this.layoutItem = layoutItem;
|
|
6
|
+
}
|
|
7
|
+
getInputId() {
|
|
8
|
+
return this.layoutItem.fieldId;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.default = ActionLayoutInput;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxheW91dC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW1vdGUtYWdlbnQtY2xpZW50L2FjdGlvbi1sYXlvdXQvYWN0aW9uLWxheW91dC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQXFCLGlCQUFpQjtJQUdwQyxZQUFZLFVBQXVEO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFWRCxvQ0FVQyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client';
|
|
2
|
+
import ActionLayoutElementsContainer from './action-layout-container';
|
|
3
|
+
export default class ActionLayoutPage extends ActionLayoutElementsContainer {
|
|
4
|
+
readonly nextButtonLabel: string;
|
|
5
|
+
readonly previousButtonLabel: string;
|
|
6
|
+
constructor(layout: ForestServerActionFormLayoutElement);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=action-layout-page.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
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 action_layout_container_1 = __importDefault(require("./action-layout-container"));
|
|
7
|
+
const errors_1 = require("./errors");
|
|
8
|
+
class ActionLayoutPage extends action_layout_container_1.default {
|
|
9
|
+
constructor(layout) {
|
|
10
|
+
if (layout.component !== 'page')
|
|
11
|
+
throw new errors_1.NotRightElementError('a page', layout);
|
|
12
|
+
super(layout.elements);
|
|
13
|
+
this.nextButtonLabel = layout.nextButtonLabel;
|
|
14
|
+
this.previousButtonLabel = layout.previousButtonLabel;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = ActionLayoutPage;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxheW91dC1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvYWN0aW9uLWxheW91dC9hY3Rpb24tbGF5b3V0LXBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx3RkFBc0U7QUFDdEUscUNBQWdEO0FBRWhELE1BQXFCLGdCQUFpQixTQUFRLGlDQUE2QjtJQUl6RSxZQUFZLE1BQTJDO1FBQ3JELElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxNQUFNO1lBQUUsTUFBTSxJQUFJLDZCQUFvQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQVhELG1DQVdDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import ActionLayoutElementsContainer from './action-layout-container';
|
|
2
|
+
import ActionLayoutPage from './action-layout-page';
|
|
3
|
+
export default class ActionLayoutRoot extends ActionLayoutElementsContainer {
|
|
4
|
+
page(n: number): ActionLayoutPage;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=action-layout-root.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
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 action_layout_container_1 = __importDefault(require("./action-layout-container"));
|
|
7
|
+
const action_layout_page_1 = __importDefault(require("./action-layout-page"));
|
|
8
|
+
const errors_1 = require("./errors");
|
|
9
|
+
class ActionLayoutRoot extends action_layout_container_1.default {
|
|
10
|
+
page(n) {
|
|
11
|
+
if (n < 0 || n >= this.layout.length)
|
|
12
|
+
throw new errors_1.NotFoundElementError(n);
|
|
13
|
+
if (!this.isPage(n))
|
|
14
|
+
throw new errors_1.NotRightElementError('a page', this.layout[n]);
|
|
15
|
+
return new action_layout_page_1.default(this.layout[n]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = ActionLayoutRoot;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxheW91dC1yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvYWN0aW9uLWxheW91dC9hY3Rpb24tbGF5b3V0LXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RkFBc0U7QUFDdEUsOEVBQW9EO0FBQ3BELHFDQUFzRTtBQUV0RSxNQUFxQixnQkFBaUIsU0FBUSxpQ0FBNkI7SUFDekUsSUFBSSxDQUFDLENBQVM7UUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFBRSxNQUFNLElBQUksNkJBQW9CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxPQUFPLElBQUksNEJBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQVBELG1DQU9DIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client';
|
|
2
|
+
export declare class NotRightElementError extends Error {
|
|
3
|
+
constructor(elementName: string, element: ForestServerActionFormLayoutElement);
|
|
4
|
+
}
|
|
5
|
+
export declare class NotFoundElementError extends Error {
|
|
6
|
+
constructor(n: number);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotFoundElementError = exports.NotRightElementError = void 0;
|
|
4
|
+
class NotRightElementError extends Error {
|
|
5
|
+
constructor(elementName, element) {
|
|
6
|
+
super(`This is not ${elementName}, it's a ${element.component} element`);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.NotRightElementError = NotRightElementError;
|
|
10
|
+
class NotFoundElementError extends Error {
|
|
11
|
+
constructor(n) {
|
|
12
|
+
super(`Element ${n} not found`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.NotFoundElementError = NotFoundElementError;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvYWN0aW9uLWxheW91dC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBQzdDLFlBQVksV0FBbUIsRUFBRSxPQUE0QztRQUMzRSxLQUFLLENBQUMsZUFBZSxXQUFXLFlBQVksT0FBTyxDQUFDLFNBQVMsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNGO0FBSkQsb0RBSUM7QUFFRCxNQUFhLG9CQUFxQixTQUFRLEtBQUs7SUFDN0MsWUFBWSxDQUFTO1FBQ25CLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBSkQsb0RBSUMifQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type HttpRequester from '../http-requester';
|
|
2
|
+
import ActionField from '../action-fields/action-field';
|
|
3
|
+
import ActionFieldCheckbox from '../action-fields/action-field-checkbox';
|
|
4
|
+
import ActionFieldCheckboxGroup from '../action-fields/action-field-checkbox-group';
|
|
5
|
+
import ActionFieldColorPicker from '../action-fields/action-field-color-picker';
|
|
6
|
+
import ActionFieldDate from '../action-fields/action-field-date';
|
|
7
|
+
import ActionFieldDropdown from '../action-fields/action-field-dropdown';
|
|
8
|
+
import ActionFieldEnum from '../action-fields/action-field-enum';
|
|
9
|
+
import ActionFieldJson from '../action-fields/action-field-json';
|
|
10
|
+
import ActionFieldNumber from '../action-fields/action-field-number';
|
|
11
|
+
import ActionFieldNumberList from '../action-fields/action-field-number-list';
|
|
12
|
+
import ActionFieldRadioGroup from '../action-fields/action-field-radio-group';
|
|
13
|
+
import ActionFieldString from '../action-fields/action-field-string';
|
|
14
|
+
import ActionFieldStringList from '../action-fields/action-field-string-list';
|
|
15
|
+
import FieldFormStates from '../action-fields/field-form-states';
|
|
16
|
+
import ActionLayoutRoot from '../action-layout/action-layout-root';
|
|
17
|
+
export type BaseActionContext = {
|
|
18
|
+
recordId?: string | number;
|
|
19
|
+
recordIds?: string[] | number[];
|
|
20
|
+
};
|
|
21
|
+
export type ActionEndpointsByCollection = {
|
|
22
|
+
[collectionName: string]: {
|
|
23
|
+
[actionName: string]: {
|
|
24
|
+
name: string;
|
|
25
|
+
endpoint: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export default class Action<TypingsSchema> {
|
|
30
|
+
private readonly collectionName;
|
|
31
|
+
private readonly httpRequester;
|
|
32
|
+
protected readonly fieldsFormStates: FieldFormStates<TypingsSchema>;
|
|
33
|
+
private readonly ids;
|
|
34
|
+
private actionPath;
|
|
35
|
+
constructor(collectionName: keyof TypingsSchema, httpRequester: HttpRequester, actionPath: string, fieldsFormStates: FieldFormStates<TypingsSchema>, ids?: (string | number)[]);
|
|
36
|
+
execute(validateApproval?: boolean): Promise<{
|
|
37
|
+
success: string;
|
|
38
|
+
html?: string;
|
|
39
|
+
}>;
|
|
40
|
+
private getSignedApprovalRequest;
|
|
41
|
+
setFields(fields: Record<string, unknown>): Promise<void>;
|
|
42
|
+
getFields(): ActionField<TypingsSchema>[];
|
|
43
|
+
getField(fieldName: string): ActionField<TypingsSchema>;
|
|
44
|
+
getFieldNumber(fieldName: string): ActionFieldNumber<TypingsSchema>;
|
|
45
|
+
getFieldJson(fieldName: string): ActionFieldJson<TypingsSchema>;
|
|
46
|
+
getFieldNumberList(fieldName: string): ActionFieldNumberList<TypingsSchema>;
|
|
47
|
+
getFieldString(fieldName: string): ActionFieldString<TypingsSchema>;
|
|
48
|
+
getFieldStringList(fieldName: string): ActionFieldStringList<TypingsSchema>;
|
|
49
|
+
getDropdownField(fieldName: string): ActionFieldDropdown<TypingsSchema>;
|
|
50
|
+
getCheckboxField(fieldName: string): ActionFieldCheckbox<TypingsSchema>;
|
|
51
|
+
getCheckboxGroupField(fieldName: string): ActionFieldCheckboxGroup<TypingsSchema>;
|
|
52
|
+
getColorPickerField(fieldName: string): ActionFieldColorPicker<TypingsSchema>;
|
|
53
|
+
getDateField(fieldName: string): ActionFieldDate<TypingsSchema>;
|
|
54
|
+
getEnumField(fieldName: string): ActionFieldEnum<TypingsSchema>;
|
|
55
|
+
getRadioGroupField(fieldName: string): ActionFieldRadioGroup<TypingsSchema>;
|
|
56
|
+
getLayout(): ActionLayoutRoot;
|
|
57
|
+
doesFieldExist(fieldName: string): boolean;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=action.d.ts.map
|
|
@@ -0,0 +1,139 @@
|
|
|
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 jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
7
|
+
const action_field_checkbox_1 = __importDefault(require("../action-fields/action-field-checkbox"));
|
|
8
|
+
const action_field_checkbox_group_1 = __importDefault(require("../action-fields/action-field-checkbox-group"));
|
|
9
|
+
const action_field_color_picker_1 = __importDefault(require("../action-fields/action-field-color-picker"));
|
|
10
|
+
const action_field_date_1 = __importDefault(require("../action-fields/action-field-date"));
|
|
11
|
+
const action_field_dropdown_1 = __importDefault(require("../action-fields/action-field-dropdown"));
|
|
12
|
+
const action_field_enum_1 = __importDefault(require("../action-fields/action-field-enum"));
|
|
13
|
+
const action_field_json_1 = __importDefault(require("../action-fields/action-field-json"));
|
|
14
|
+
const action_field_number_1 = __importDefault(require("../action-fields/action-field-number"));
|
|
15
|
+
const action_field_number_list_1 = __importDefault(require("../action-fields/action-field-number-list"));
|
|
16
|
+
const action_field_radio_group_1 = __importDefault(require("../action-fields/action-field-radio-group"));
|
|
17
|
+
const action_field_string_1 = __importDefault(require("../action-fields/action-field-string"));
|
|
18
|
+
const action_field_string_list_1 = __importDefault(require("../action-fields/action-field-string-list"));
|
|
19
|
+
const action_layout_root_1 = __importDefault(require("../action-layout/action-layout-root"));
|
|
20
|
+
class Action {
|
|
21
|
+
constructor(collectionName, httpRequester, actionPath, fieldsFormStates, ids) {
|
|
22
|
+
this.collectionName = collectionName;
|
|
23
|
+
this.httpRequester = httpRequester;
|
|
24
|
+
this.ids = ids ?? undefined;
|
|
25
|
+
this.actionPath = actionPath;
|
|
26
|
+
this.fieldsFormStates = fieldsFormStates;
|
|
27
|
+
}
|
|
28
|
+
async execute(validateApproval) {
|
|
29
|
+
const requestBody = {
|
|
30
|
+
data: {
|
|
31
|
+
attributes: {
|
|
32
|
+
collection_name: this.collectionName,
|
|
33
|
+
ids: this.ids,
|
|
34
|
+
values: this.fieldsFormStates.getFieldValues(),
|
|
35
|
+
signed_approval_request: validateApproval ? this.getSignedApprovalRequest() : undefined,
|
|
36
|
+
},
|
|
37
|
+
type: 'custom-action-requests',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
return this.httpRequester.query({
|
|
41
|
+
method: 'post',
|
|
42
|
+
path: this.actionPath,
|
|
43
|
+
body: requestBody,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
getSignedApprovalRequest() {
|
|
47
|
+
return jsonwebtoken_1.default.sign({
|
|
48
|
+
data: {
|
|
49
|
+
attributes: {
|
|
50
|
+
status: 'in-progress',
|
|
51
|
+
closed_at: null,
|
|
52
|
+
updated_at: new Date().toISOString(),
|
|
53
|
+
error_message: null,
|
|
54
|
+
requester_id: 1,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
}, this.httpRequester.agentOptions.envSecret, { expiresIn: '1 hours' });
|
|
58
|
+
}
|
|
59
|
+
async setFields(fields) {
|
|
60
|
+
for (const [fieldName, value] of Object.entries(fields)) {
|
|
61
|
+
// eslint-disable-next-line no-await-in-loop
|
|
62
|
+
await this.fieldsFormStates.setFieldValue(fieldName, value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getFields() {
|
|
66
|
+
return this.fieldsFormStates.getFields().map(f => {
|
|
67
|
+
return this.getField(f.getName());
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
getField(fieldName) {
|
|
71
|
+
const field = this.fieldsFormStates.getField(fieldName);
|
|
72
|
+
const type = typeof field.getType() === 'string' ? field.getType() : JSON.stringify(field.getType());
|
|
73
|
+
switch (type) {
|
|
74
|
+
case 'Number':
|
|
75
|
+
return this.getFieldNumber(fieldName);
|
|
76
|
+
case 'Json':
|
|
77
|
+
return this.getFieldJson(fieldName);
|
|
78
|
+
case 'NumberList':
|
|
79
|
+
case '["Number"]':
|
|
80
|
+
return this.getFieldNumberList(fieldName);
|
|
81
|
+
case 'StringList':
|
|
82
|
+
case '["String"]':
|
|
83
|
+
return this.getFieldStringList(fieldName);
|
|
84
|
+
case 'Boolean':
|
|
85
|
+
return this.getCheckboxField(fieldName);
|
|
86
|
+
case 'Date':
|
|
87
|
+
return this.getDateField(fieldName);
|
|
88
|
+
case 'Enum':
|
|
89
|
+
return this.getEnumField(fieldName);
|
|
90
|
+
case 'String':
|
|
91
|
+
default:
|
|
92
|
+
return this.getFieldString(fieldName);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
getFieldNumber(fieldName) {
|
|
96
|
+
return new action_field_number_1.default(fieldName, this.fieldsFormStates);
|
|
97
|
+
}
|
|
98
|
+
getFieldJson(fieldName) {
|
|
99
|
+
return new action_field_json_1.default(fieldName, this.fieldsFormStates);
|
|
100
|
+
}
|
|
101
|
+
getFieldNumberList(fieldName) {
|
|
102
|
+
return new action_field_number_list_1.default(fieldName, this.fieldsFormStates);
|
|
103
|
+
}
|
|
104
|
+
getFieldString(fieldName) {
|
|
105
|
+
return new action_field_string_1.default(fieldName, this.fieldsFormStates);
|
|
106
|
+
}
|
|
107
|
+
getFieldStringList(fieldName) {
|
|
108
|
+
return new action_field_string_list_1.default(fieldName, this.fieldsFormStates);
|
|
109
|
+
}
|
|
110
|
+
getDropdownField(fieldName) {
|
|
111
|
+
return new action_field_dropdown_1.default(fieldName, this.fieldsFormStates);
|
|
112
|
+
}
|
|
113
|
+
getCheckboxField(fieldName) {
|
|
114
|
+
return new action_field_checkbox_1.default(fieldName, this.fieldsFormStates);
|
|
115
|
+
}
|
|
116
|
+
getCheckboxGroupField(fieldName) {
|
|
117
|
+
return new action_field_checkbox_group_1.default(fieldName, this.fieldsFormStates);
|
|
118
|
+
}
|
|
119
|
+
getColorPickerField(fieldName) {
|
|
120
|
+
return new action_field_color_picker_1.default(fieldName, this.fieldsFormStates);
|
|
121
|
+
}
|
|
122
|
+
getDateField(fieldName) {
|
|
123
|
+
return new action_field_date_1.default(fieldName, this.fieldsFormStates);
|
|
124
|
+
}
|
|
125
|
+
getEnumField(fieldName) {
|
|
126
|
+
return new action_field_enum_1.default(fieldName, this.fieldsFormStates);
|
|
127
|
+
}
|
|
128
|
+
getRadioGroupField(fieldName) {
|
|
129
|
+
return new action_field_radio_group_1.default(fieldName, this.fieldsFormStates);
|
|
130
|
+
}
|
|
131
|
+
getLayout() {
|
|
132
|
+
return new action_layout_root_1.default(this.fieldsFormStates.getLayout());
|
|
133
|
+
}
|
|
134
|
+
doesFieldExist(fieldName) {
|
|
135
|
+
return Boolean(this.fieldsFormStates.getField(fieldName));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.default = Action;
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlbW90ZS1hZ2VudC1jbGllbnQvZG9tYWlucy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxnRUFBd0M7QUFHeEMsbUdBQXlFO0FBQ3pFLCtHQUFvRjtBQUNwRiwyR0FBZ0Y7QUFDaEYsMkZBQWlFO0FBQ2pFLG1HQUF5RTtBQUN6RSwyRkFBaUU7QUFDakUsMkZBQWlFO0FBQ2pFLCtGQUFxRTtBQUNyRSx5R0FBOEU7QUFDOUUseUdBQThFO0FBQzlFLCtGQUFxRTtBQUNyRSx5R0FBOEU7QUFFOUUsNkZBQW1FO0FBWW5FLE1BQXFCLE1BQU07SUFRekIsWUFDRSxjQUFtQyxFQUNuQyxhQUE0QixFQUM1QixVQUFrQixFQUNsQixnQkFBZ0QsRUFDaEQsR0FBeUI7UUFFekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBMEI7UUFDdEMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLFVBQVUsRUFBRTtvQkFDVixlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtvQkFDOUMsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN4RjtnQkFD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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DistributionChart, LeaderboardChart, ObjectiveChart, PercentageChart, TimeBasedChart, ValueChart } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import HttpRequester from '../http-requester';
|
|
3
|
+
export interface ChartInterface {
|
|
4
|
+
valueChart(...args: unknown[]): Promise<ValueChart>;
|
|
5
|
+
distributionChart(...args: unknown[]): Promise<DistributionChart>;
|
|
6
|
+
percentageChart(...args: unknown[]): Promise<PercentageChart>;
|
|
7
|
+
objectiveChart(...args: unknown[]): Promise<ObjectiveChart>;
|
|
8
|
+
leaderboardChart(...args: unknown[]): Promise<LeaderboardChart>;
|
|
9
|
+
timeBasedChart(...args: unknown[]): Promise<TimeBasedChart>;
|
|
10
|
+
}
|
|
11
|
+
export default abstract class Chart implements ChartInterface {
|
|
12
|
+
protected httpRequester: HttpRequester;
|
|
13
|
+
valueChart(chartName: string): Promise<ValueChart>;
|
|
14
|
+
distributionChart(chartName: string): Promise<DistributionChart>;
|
|
15
|
+
percentageChart(chartName: string): Promise<PercentageChart>;
|
|
16
|
+
objectiveChart(chartName: string): Promise<ObjectiveChart>;
|
|
17
|
+
leaderboardChart(chartName: string): Promise<LeaderboardChart>;
|
|
18
|
+
timeBasedChart(chartName: string): Promise<TimeBasedChart>;
|
|
19
|
+
protected loadChart<Type>(chartName: string, body?: Record<string, unknown>): Promise<Type>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=chart.d.ts.map
|