@forestadmin/datasource-customizer 1.49.0 → 1.51.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.
@@ -8,10 +8,15 @@ export default class ActionCollectionDecorator extends CollectionDecorator {
8
8
  getForm(caller: Caller, name: string, data?: RecordData, filter?: Filter, metas?: GetFormMetas): Promise<ActionFormElement[]>;
9
9
  protected refineSchema(subSchema: CollectionSchema): CollectionSchema;
10
10
  private getContext;
11
- private dropDefaults;
11
+ private getSubElementsAttributeKey;
12
+ private executeOnSubFields;
13
+ private copyFields;
14
+ private dropDefaultsAndSetId;
12
15
  private dropDefault;
13
16
  private dropIfs;
14
17
  private dropDeferred;
18
+ private setWatchChangesOnFields;
19
+ private setWatchChangesOnField;
15
20
  private evaluate;
16
21
  private isHandler;
17
22
  private isSearchOptionsHandler;
@@ -42,27 +42,21 @@ class ActionCollectionDecorator extends datasource_toolkit_1.CollectionDecorator
42
42
  // Convert DynamicField to ActionField in successive steps.
43
43
  let dynamicFields = this.isHandler(action.form)
44
44
  ? await action.form(context)
45
- : action.form.map(c => ({ ...c }));
45
+ : // copy fields to keep original object unchanged
46
+ await this.copyFields(action.form);
46
47
  if (metas?.searchField) {
47
48
  // in the case of a search hook,
48
49
  // we don't want to rebuild all the fields. only the one searched
49
50
  dynamicFields = [
50
- dynamicFields.find(field => field.type !== 'Layout' && field.label === metas.searchField),
51
+ dynamicFields.find(field => field.type === 'Layout' || field.label === metas.searchField),
51
52
  ];
52
53
  }
53
- dynamicFields = await this.dropDefaults(context, dynamicFields, formValues);
54
- if (!metas?.includeHiddenFields)
55
- dynamicFields = await this.dropIfs(context, dynamicFields);
56
- const fields = await this.dropDeferred(context, metas?.searchValues, dynamicFields);
57
- for (const field of fields) {
58
- if (field.type !== 'Layout') {
59
- // customer did not define a handler to rewrite the previous value => reuse current one.
60
- if (field.value === undefined)
61
- field.value = formValues[field.label];
62
- // fields that were accessed through the context.formValues.X getter should be watched.
63
- field.watchChanges = used.has(field.label);
64
- }
54
+ let dynamicFieldsWithId = await this.dropDefaultsAndSetId(context, dynamicFields, formValues);
55
+ if (!metas?.includeHiddenFields) {
56
+ dynamicFieldsWithId = await this.dropIfs(context, dynamicFieldsWithId);
65
57
  }
58
+ const fields = await this.dropDeferred(context, metas?.searchValues, dynamicFieldsWithId);
59
+ this.setWatchChangesOnFields(formValues, used, fields);
66
60
  return fields;
67
61
  }
68
62
  refineSchema(subSchema) {
@@ -86,40 +80,95 @@ class ActionCollectionDecorator extends datasource_toolkit_1.CollectionDecorator
86
80
  Single: single_1.default,
87
81
  }[action.scope](this, caller, formValues, filter, used, changedField);
88
82
  }
89
- async dropDefaults(context, fields, data) {
83
+ getSubElementsAttributeKey(field) {
84
+ if (field.type === 'Layout' && field.component === 'Row')
85
+ return 'fields';
86
+ return null;
87
+ }
88
+ async executeOnSubFields(field, handler) {
89
+ const subElementsKey = this.getSubElementsAttributeKey(field);
90
+ if (!subElementsKey)
91
+ return;
92
+ field[subElementsKey] = await handler(field[subElementsKey] || []);
93
+ }
94
+ async copyFields(fields) {
95
+ return Promise.all(fields.map(async (field) => {
96
+ const fieldCopy = { ...field };
97
+ await this.executeOnSubFields(field, subFields => this.copyFields(subFields));
98
+ return fieldCopy;
99
+ }));
100
+ }
101
+ async dropDefaultsAndSetId(context, fields, data) {
90
102
  const promises = fields.map(async (field) => {
91
- if (field.type === 'Layout')
92
- return field;
93
- return this.dropDefault(context, field, data);
103
+ if (field.type !== 'Layout') {
104
+ field.id = field.id || field.label;
105
+ return this.dropDefault(context, field, data);
106
+ }
107
+ await this.executeOnSubFields(field, subfields => this.dropDefaultsAndSetId(context, subfields, data));
108
+ return field;
94
109
  });
95
110
  return Promise.all(promises);
96
111
  }
97
112
  async dropDefault(context, field, data) {
98
- if (data[field.label] === undefined) {
113
+ if (data[field.id] === undefined) {
99
114
  const defaultValue = await this.evaluate(context, null, field.defaultValue);
100
- data[field.label] = defaultValue;
115
+ data[field.id] = defaultValue;
101
116
  }
102
117
  delete field.defaultValue;
103
118
  return field;
104
119
  }
105
120
  async dropIfs(context, fields) {
106
121
  // Remove fields which have falsy if
107
- const ifValues = await Promise.all(fields.map(field => !field.if || this.evaluate(context, null, field.if)));
122
+ const ifValues = await Promise.all(fields.map(async (field) => {
123
+ if ((await this.evaluate(context, null, field.if)) === false) {
124
+ // drop element if condition returns false
125
+ return false;
126
+ }
127
+ const subElementsKey = this.getSubElementsAttributeKey(field);
128
+ if (subElementsKey) {
129
+ field[subElementsKey] = await this.dropIfs(context, field[subElementsKey] || []);
130
+ // drop element if no subElement
131
+ if (field[subElementsKey].length === 0) {
132
+ return false;
133
+ }
134
+ }
135
+ return true;
136
+ }));
108
137
  const newFields = fields.filter((_, index) => ifValues[index]);
109
138
  newFields.forEach(field => delete field.if);
110
139
  return newFields;
111
140
  }
112
141
  async dropDeferred(context, searchValues, fields) {
113
142
  const newFields = fields.map(async (field) => {
143
+ await this.executeOnSubFields(field, subfields => this.dropDeferred(context, searchValues, subfields));
114
144
  const keys = Object.keys(field);
115
145
  const values = await Promise.all(Object.values(field).map(value => {
116
- const searchValue = field.type === 'Layout' ? null : searchValues?.[field.label];
146
+ const searchValue = field.type === 'Layout' ? null : searchValues?.[field.id];
117
147
  return this.evaluate(context, searchValue, value);
118
148
  }));
119
149
  return keys.reduce((memo, key, index) => ({ ...memo, [key]: values[index] }), {});
120
150
  });
121
151
  return Promise.all(newFields);
122
152
  }
153
+ async setWatchChangesOnFields(formValues, used, fields) {
154
+ return Promise.all(fields.map(async (field) => {
155
+ if (field.type !== 'Layout') {
156
+ return this.setWatchChangesOnField(formValues, used, field);
157
+ }
158
+ await this.executeOnSubFields(field, subfields => this.setWatchChangesOnFields(formValues, used, subfields));
159
+ return field;
160
+ }));
161
+ }
162
+ setWatchChangesOnField(formValues, used, field) {
163
+ if (field.type !== 'Layout') {
164
+ // customer did not define a handler to rewrite the previous value => reuse current one.
165
+ if (field.value === undefined)
166
+ field.value = formValues[field.id];
167
+ // fields that were accessed through the context.formValues.X getter should be watched.
168
+ field.watchChanges = used.has(field.id);
169
+ }
170
+ return field;
171
+ }
123
172
  async evaluate(context, searchValue, value) {
124
173
  if (this.isHandler(value)) {
125
174
  // Only the options key of the dynamic search dropdown widget accept a searchValue
@@ -139,4 +188,4 @@ class ActionCollectionDecorator extends datasource_toolkit_1.CollectionDecorator
139
188
  }
140
189
  }
141
190
  exports.default = ActionCollectionDecorator;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2FjdGlvbnMvY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdFQVl5QztBQUV6QywwREFBMkM7QUFDM0MsOERBQW1EO0FBQ25ELHNFQUE2QztBQVc3QyxNQUFxQix5QkFBMEIsU0FBUSx3Q0FBbUI7SUFBMUU7O1FBR1UsWUFBTyxHQUFxQyxFQUFFLENBQUM7SUFpTnpELENBQUM7SUEvTUMsU0FBUyxDQUFDLElBQVksRUFBRSxNQUF3QjtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FDcEIsTUFBYyxFQUNkLElBQVksRUFDWixJQUFnQixFQUNoQixNQUFjO1FBRWQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0UsOERBQThEO1FBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFRLENBQUM7UUFDckUsTUFBTSxhQUFhLEdBQUcsSUFBSSx3QkFBYSxFQUFFLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU1RCxPQUFPLENBQ0wsTUFBTSxJQUFJO1lBQ1IsSUFBSSxFQUFFLFNBQWtCO1lBQ3hCLFdBQVcsRUFBRSxJQUFJLEdB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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL2FjdGlvbnMvY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdFQVd5QztBQUV6QywwREFBMkM7QUFDM0MsOERBQW1EO0FBQ25ELHNFQUE2QztBQWtCN0MsTUFBcUIseUJBQTBCLFNBQVEsd0NBQW1CO0lBQTFFOztRQUdVLFlBQU8sR0FBcUMsRUFBRSxDQUFDO0lBaVR6RCxDQUFDO0lBL1NDLFNBQVMsQ0FBQyxJQUFZLEVBQUUsTUFBd0I7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVRLEtBQUssQ0FBQyxPQUFPLENBQ3BCLE1BQWMsRUFDZCxJQUFZLEVBQ1osSUFBZ0IsRUFDaEIsTUFBYztRQUVkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdFLDhEQUE4RDtRQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBUSxDQUFDO1FBQ3JFLE1BQU0sYUFBYSxHQUFHLElBQUksd0JBQWEsRUFBRSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUNMLE1BQU0sSUFBSTtZQUNSLElBQUksRUFBRSxTQUFrQjtZQUN4QixXQUFXLEVBQUUsSUFBSSxH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
@@ -10,6 +10,7 @@ export type Handler<Context = unknown, Result = unknown> = ((context: Context) =
10
10
  export type ValueOrHandler<Context = unknown, Result = unknown> = Handler<Context, Result> | Promise<Result> | Result;
11
11
  type BaseDynamicField<Type, Context, Result> = {
12
12
  type: Type;
13
+ id?: string;
13
14
  label: string;
14
15
  description?: ValueOrHandler<Context, string>;
15
16
  isRequired?: ValueOrHandler<Context, boolean>;
@@ -148,7 +149,11 @@ type DynamicLayoutElementHtmlBlock<Context> = DynamicLayoutElementBase<Context>
148
149
  component: 'HtmlBlock';
149
150
  content: ValueOrHandler<Context, string>;
150
151
  };
151
- export type DynamicLayoutElement<Context = unknown> = DynamicLayoutElementSeparator<Context> | DynamicLayoutElementHtmlBlock<Context>;
152
+ type DynamicLayoutElementRow<Context> = DynamicLayoutElementBase<Context> & {
153
+ component: 'Row';
154
+ fields: DynamicField<Context>[];
155
+ };
156
+ export type DynamicLayoutElement<Context = unknown> = DynamicLayoutElementSeparator<Context> | DynamicLayoutElementRow<Context> | DynamicLayoutElementHtmlBlock<Context>;
152
157
  export type DynamicFormElement<Context = unknown> = DynamicField<Context> | DynamicLayoutElement<Context>;
153
158
  export {};
154
159
  //# sourceMappingURL=fields.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/datasource-customizer",
3
- "version": "1.49.0",
3
+ "version": "1.51.0",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -29,7 +29,7 @@
29
29
  "@types/uuid": "^9.0.0"
30
30
  },
31
31
  "dependencies": {
32
- "@forestadmin/datasource-toolkit": "1.36.0",
32
+ "@forestadmin/datasource-toolkit": "1.38.0",
33
33
  "antlr4": "^4.13.1-patch-1",
34
34
  "file-type": "^16.5.4",
35
35
  "luxon": "^3.2.1",