@genesislcap/foundation-forms 14.488.1-FUI-2571.1 → 14.488.2-FUI-2571.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/custom-elements.json +1429 -1397
- package/dist/dts/form.d.ts.map +1 -1
- package/dist/dts/utils/review-utils.d.ts +21 -3
- package/dist/dts/utils/review-utils.d.ts.map +1 -1
- package/dist/esm/form.js +1 -1
- package/dist/esm/utils/review-utils.js +122 -58
- package/dist/foundation-forms.api.json +90 -6
- package/dist/foundation-forms.d.ts +22 -3
- package/package.json +15 -15
package/dist/dts/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAyB1C,OAAO,EACL,aAAa,EAOb,yBAAyB,EACzB,aAAa,EAOb,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAWL,aAAa,EACd,MAAM,SAAS,CAAC;AAiBjB;;;GAGG;AACH,eAAO,MAAM,SAAS,OAwBrB,CAAC;;;;;;;kBAjEa,CAAC;;;;;;;;8BA2Dc,CAAC,cACzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAkBN,CAAD;4IACuE,CAAC;wFAC6B,CAAC;+IAET,CAAC;2FAEpE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAgCe,CAAC;;;;;;;;;;;;;;;;;;;;;;;mBAkEhC,CAAC;;;;;;;;;;;;;6BA2B0B,CAAC;8BACC,CAAC;kBAGrC,CAAC;;oBAGF,CAAH;;sBAGa,CAAC;oBAAkE,CAAC;;;;;;;;gDAmBzC,CAAC;;;;;;;;;;;;;;;;;;uBA+BvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAkH0B,CAAC;yBAIzC,CAAA;UAGY,GAAG;WAAgD,GAAG;;gBAI7D,GAAG;;;;;;;WAcJ,GAAG;YAGoB,GAAG;;;;;;;;;;;oBA4CzB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,21 @@ export type ReviewSection = {
|
|
|
10
10
|
* Flattens `buildReviewSections` output into a single ordered list.
|
|
11
11
|
* Section titles are prepended to field labels as "Title — Field".
|
|
12
12
|
*/
|
|
13
|
-
export declare function buildReviewFields(data: Record<string, any>, uiSchema: any, schema: any): ReviewField[]
|
|
13
|
+
export declare function buildReviewFields(data: Record<string, any>, uiSchema: any, schema: any): Promise<ReviewField[]>;
|
|
14
14
|
/**
|
|
15
15
|
* Builds the review panel's fields grouped into sections by their nearest `Group` layout.
|
|
16
16
|
* Ungrouped fields are collected into a single section with a `null` title (rendered with
|
|
17
17
|
* a placeholder heading). Falls back to a flat, single ungrouped section when no UI schema
|
|
18
18
|
* is available.
|
|
19
|
+
*
|
|
20
|
+
* Async because connected-select fields backed by `options.allOptionsResourceName` (rather
|
|
21
|
+
* than a static `options.data`) resolve their display label with a criteria-filtered fetch
|
|
22
|
+
* — see `resolveResourceOptionLabel`. The UI schema is walked synchronously to collect one
|
|
23
|
+
* value-resolution promise per field (preserving encounter order), then all promises settle
|
|
24
|
+
* in parallel via `Promise.all` before fields are added to their sections — so a slow fetch
|
|
25
|
+
* for one field can't reorder fields that resolved faster.
|
|
19
26
|
*/
|
|
20
|
-
export declare function buildReviewSections(data: Record<string, any>, uiSchema: any, schema: any): ReviewSection[]
|
|
27
|
+
export declare function buildReviewSections(data: Record<string, any>, uiSchema: any, schema: any): Promise<ReviewSection[]>;
|
|
21
28
|
/**
|
|
22
29
|
* Filters review sections down to fields whose label or value contains `query`
|
|
23
30
|
* (case-insensitive). Sections left with no matching fields are dropped entirely.
|
|
@@ -31,9 +38,20 @@ export declare function filterReviewSections(sections: ReviewSection[], query: s
|
|
|
31
38
|
export declare function collectReviewFields(element: any, data: any, out: ReviewField[], groupLabel: string | undefined, schema: any): void;
|
|
32
39
|
/**
|
|
33
40
|
* Looks up the display label for a raw value from `options.data` (used by segmented,
|
|
34
|
-
* radio group, and enum-with-explicit-data renderers).
|
|
41
|
+
* radio group, connected-select, and enum-with-explicit-data renderers). Honors
|
|
42
|
+
* `options.valueField`/`options.labelField` when set, defaulting to `value`/`label`.
|
|
43
|
+
* Returns `null` when no match found.
|
|
35
44
|
*/
|
|
36
45
|
export declare function resolveOptionLabel(raw: any, options: any): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves the display label for a connected-select field backed by
|
|
48
|
+
* `options.allOptionsResourceName` (a Data Server/Request Server resource) rather than a
|
|
49
|
+
* static `options.data` array — e.g. `ConnectedSelectControlRenderer` in async/remote mode.
|
|
50
|
+
* Fetches a single row via a criteria-filtered snapshot matching `valueField === raw`,
|
|
51
|
+
* then reads `labelField` off the returned row. Returns `null` when there's no resource
|
|
52
|
+
* to query, the resource can't be reached, or no row matches.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveResourceOptionLabel(raw: any, options: any): Promise<string | null>;
|
|
37
55
|
/**
|
|
38
56
|
* For plain enum combobox fields (no options.data), applies the same `capitalCase`
|
|
39
57
|
* transform the renderer uses — e.g. `SEMI_ANNUAL` → `Semi Annual`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/review-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/review-utils.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE5E;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,WAAW,EAAE,CAAC,CAQxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,aAAa,EAAE,CAAC,CAyE1B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAc9F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,WAAW,EAAE,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,GAAG,GACV,IAAI,CA6BN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAMxE;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8B/F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAiBxF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAEpE;AAYD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAuBvD"}
|
package/dist/esm/form.js
CHANGED
|
@@ -347,7 +347,7 @@ let Form = class Form extends LifecycleMixin(FoundationElement) {
|
|
|
347
347
|
((_h = (_g = (_f = (_e = jfEl.jsonforms) === null || _e === void 0 ? void 0 : _e.core) === null || _f === void 0 ? void 0 : _f.additionalErrors) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) > 0
|
|
348
348
|
: this.errors.length > 0;
|
|
349
349
|
if (this.showSubmitReview && !hasErrors) {
|
|
350
|
-
this.reviewSections = buildReviewSections(this.data || {}, this.userProvidedUiSchema || this.uischema, this.originalDetailsSchema || this.jsonSchema);
|
|
350
|
+
this.reviewSections = yield buildReviewSections(this.data || {}, this.userProvidedUiSchema || this.uischema, this.originalDetailsSchema || this.jsonSchema);
|
|
351
351
|
this.reviewMode = true;
|
|
352
352
|
return;
|
|
353
353
|
}
|
|
@@ -1,74 +1,98 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { getDatasource } from '@genesislcap/foundation-comms';
|
|
3
|
+
import { CriteriaBuilder, ExpressionBuilder } from '@genesislcap/foundation-criteria';
|
|
1
4
|
import { capitalCase } from 'change-case';
|
|
2
5
|
/**
|
|
3
6
|
* Flattens `buildReviewSections` output into a single ordered list.
|
|
4
7
|
* Section titles are prepended to field labels as "Title — Field".
|
|
5
8
|
*/
|
|
6
9
|
export function buildReviewFields(data, uiSchema, schema) {
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const sections = yield buildReviewSections(data, uiSchema, schema);
|
|
12
|
+
return sections.flatMap((section) => section.fields.map((field) => ({
|
|
13
|
+
label: section.title ? `${section.title} — ${field.label}` : field.label,
|
|
14
|
+
value: field.value,
|
|
15
|
+
})));
|
|
16
|
+
});
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
19
|
* Builds the review panel's fields grouped into sections by their nearest `Group` layout.
|
|
14
20
|
* Ungrouped fields are collected into a single section with a `null` title (rendered with
|
|
15
21
|
* a placeholder heading). Falls back to a flat, single ungrouped section when no UI schema
|
|
16
22
|
* is available.
|
|
23
|
+
*
|
|
24
|
+
* Async because connected-select fields backed by `options.allOptionsResourceName` (rather
|
|
25
|
+
* than a static `options.data`) resolve their display label with a criteria-filtered fetch
|
|
26
|
+
* — see `resolveResourceOptionLabel`. The UI schema is walked synchronously to collect one
|
|
27
|
+
* value-resolution promise per field (preserving encounter order), then all promises settle
|
|
28
|
+
* in parallel via `Promise.all` before fields are added to their sections — so a slow fetch
|
|
29
|
+
* for one field can't reorder fields that resolved faster.
|
|
17
30
|
*/
|
|
18
31
|
export function buildReviewSections(data, uiSchema, schema) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
section
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
section.fields.push(field);
|
|
29
|
-
};
|
|
30
|
-
const walk = (element, groupTitle) => {
|
|
31
|
-
var _a, _b, _c, _d, _e;
|
|
32
|
-
if (!element)
|
|
33
|
-
return;
|
|
34
|
-
if (element.type === 'Control' && element.scope) {
|
|
35
|
-
if ((_a = element.options) === null || _a === void 0 ? void 0 : _a.hidden)
|
|
36
|
-
return;
|
|
37
|
-
const match = element.scope.match(/^#\/properties\/(.+)$/);
|
|
38
|
-
if (!match)
|
|
39
|
-
return;
|
|
40
|
-
const fieldName = match[1];
|
|
41
|
-
const raw = getDataValueAtPath(data, fieldName);
|
|
42
|
-
if (raw === undefined ||
|
|
43
|
-
raw === null ||
|
|
44
|
-
raw === '' ||
|
|
45
|
-
(Array.isArray(raw) && raw.length === 0))
|
|
46
|
-
return;
|
|
47
|
-
const shortName = fieldName.split('/properties/').pop();
|
|
48
|
-
const fieldLabel = element.label || capitalCase(shortName);
|
|
49
|
-
const displayValue = (_c = (_b = resolveOptionLabel(raw, element.options)) !== null && _b !== void 0 ? _b : resolveEnumLabel(raw, fieldName, schema)) !== null && _c !== void 0 ? _c : raw;
|
|
50
|
-
addField(groupTitle, { label: fieldLabel, value: formatValueForReview(displayValue) });
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const nextGroup = element.type === 'Group' && element.label ? element.label : groupTitle;
|
|
54
|
-
const children = (_d = element.elements) !== null && _d !== void 0 ? _d : (_e = element.options) === null || _e === void 0 ? void 0 : _e.childElements;
|
|
55
|
-
if (children) {
|
|
56
|
-
for (const child of children) {
|
|
57
|
-
walk(child, nextGroup);
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const sections = [];
|
|
34
|
+
const sectionsByTitle = new Map();
|
|
35
|
+
const addField = (title, field) => {
|
|
36
|
+
let section = sectionsByTitle.get(title);
|
|
37
|
+
if (!section) {
|
|
38
|
+
section = { title, fields: [] };
|
|
39
|
+
sectionsByTitle.set(title, section);
|
|
40
|
+
sections.push(section);
|
|
58
41
|
}
|
|
42
|
+
section.fields.push(field);
|
|
43
|
+
};
|
|
44
|
+
const resolveDisplayValue = (raw, fieldName, options) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
var _a, _b, _c;
|
|
46
|
+
const displayValue = (_c = (_b = (_a = resolveOptionLabel(raw, options)) !== null && _a !== void 0 ? _a : (yield resolveResourceOptionLabel(raw, options))) !== null && _b !== void 0 ? _b : resolveEnumLabel(raw, fieldName, schema)) !== null && _c !== void 0 ? _c : raw;
|
|
47
|
+
return formatValueForReview(displayValue);
|
|
48
|
+
});
|
|
49
|
+
const collect = (element, groupTitle) => {
|
|
50
|
+
var _a, _b, _c;
|
|
51
|
+
if (!element)
|
|
52
|
+
return [];
|
|
53
|
+
if (element.type === 'Control' && element.scope) {
|
|
54
|
+
if ((_a = element.options) === null || _a === void 0 ? void 0 : _a.hidden)
|
|
55
|
+
return [];
|
|
56
|
+
const match = element.scope.match(/^#\/properties\/(.+)$/);
|
|
57
|
+
if (!match)
|
|
58
|
+
return [];
|
|
59
|
+
const fieldName = match[1];
|
|
60
|
+
const raw = getDataValueAtPath(data, fieldName);
|
|
61
|
+
if (raw === undefined ||
|
|
62
|
+
raw === null ||
|
|
63
|
+
raw === '' ||
|
|
64
|
+
(Array.isArray(raw) && raw.length === 0))
|
|
65
|
+
return [];
|
|
66
|
+
const shortName = fieldName.split('/properties/').pop();
|
|
67
|
+
const fieldLabel = element.label || capitalCase(shortName);
|
|
68
|
+
return [
|
|
69
|
+
{
|
|
70
|
+
groupTitle,
|
|
71
|
+
label: fieldLabel,
|
|
72
|
+
valuePromise: resolveDisplayValue(raw, fieldName, element.options),
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
const nextGroup = element.type === 'Group' && element.label ? element.label : groupTitle;
|
|
77
|
+
const children = (_b = element.elements) !== null && _b !== void 0 ? _b : (_c = element.options) === null || _c === void 0 ? void 0 : _c.childElements;
|
|
78
|
+
return children ? children.flatMap((child) => collect(child, nextGroup)) : [];
|
|
79
|
+
};
|
|
80
|
+
if (uiSchema) {
|
|
81
|
+
const pending = collect(uiSchema, null);
|
|
82
|
+
const values = yield Promise.all(pending.map((field) => field.valuePromise));
|
|
83
|
+
pending.forEach((field, index) => {
|
|
84
|
+
addField(field.groupTitle, { label: field.label, value: values[index] });
|
|
85
|
+
});
|
|
59
86
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (raw === undefined || raw === null || raw === '')
|
|
67
|
-
continue;
|
|
68
|
-
addField(null, { label: capitalCase(key), value: formatValueForReview(raw) });
|
|
87
|
+
else {
|
|
88
|
+
for (const [key, raw] of Object.entries(data !== null && data !== void 0 ? data : {})) {
|
|
89
|
+
if (raw === undefined || raw === null || raw === '')
|
|
90
|
+
continue;
|
|
91
|
+
addField(null, { label: capitalCase(key), value: formatValueForReview(raw) });
|
|
92
|
+
}
|
|
69
93
|
}
|
|
70
|
-
|
|
71
|
-
|
|
94
|
+
return sections;
|
|
95
|
+
});
|
|
72
96
|
}
|
|
73
97
|
/**
|
|
74
98
|
* Filters review sections down to fields whose label or value contains `query`
|
|
@@ -122,14 +146,54 @@ export function collectReviewFields(element, data, out, groupLabel, schema) {
|
|
|
122
146
|
}
|
|
123
147
|
/**
|
|
124
148
|
* Looks up the display label for a raw value from `options.data` (used by segmented,
|
|
125
|
-
* radio group, and enum-with-explicit-data renderers).
|
|
149
|
+
* radio group, connected-select, and enum-with-explicit-data renderers). Honors
|
|
150
|
+
* `options.valueField`/`options.labelField` when set, defaulting to `value`/`label`.
|
|
151
|
+
* Returns `null` when no match found.
|
|
126
152
|
*/
|
|
127
153
|
export function resolveOptionLabel(raw, options) {
|
|
128
|
-
var _a;
|
|
154
|
+
var _a, _b, _c;
|
|
129
155
|
if (!Array.isArray(options === null || options === void 0 ? void 0 : options.data))
|
|
130
156
|
return null;
|
|
131
|
-
const
|
|
132
|
-
|
|
157
|
+
const valueKey = (_a = options.valueField) !== null && _a !== void 0 ? _a : 'value';
|
|
158
|
+
const labelKey = (_b = options.labelField) !== null && _b !== void 0 ? _b : 'label';
|
|
159
|
+
const entry = options.data.find((item) => item[valueKey] === raw);
|
|
160
|
+
return (_c = entry === null || entry === void 0 ? void 0 : entry[labelKey]) !== null && _c !== void 0 ? _c : null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Resolves the display label for a connected-select field backed by
|
|
164
|
+
* `options.allOptionsResourceName` (a Data Server/Request Server resource) rather than a
|
|
165
|
+
* static `options.data` array — e.g. `ConnectedSelectControlRenderer` in async/remote mode.
|
|
166
|
+
* Fetches a single row via a criteria-filtered snapshot matching `valueField === raw`,
|
|
167
|
+
* then reads `labelField` off the returned row. Returns `null` when there's no resource
|
|
168
|
+
* to query, the resource can't be reached, or no row matches.
|
|
169
|
+
*/
|
|
170
|
+
export function resolveResourceOptionLabel(raw, options) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
var _a, _b, _c, _d;
|
|
173
|
+
const resourceName = options === null || options === void 0 ? void 0 : options.allOptionsResourceName;
|
|
174
|
+
if (!resourceName || raw === undefined || raw === null || raw === '')
|
|
175
|
+
return null;
|
|
176
|
+
const valueField = (_a = options.valueField) !== null && _a !== void 0 ? _a : 'value';
|
|
177
|
+
const labelField = (_b = options.labelField) !== null && _b !== void 0 ? _b : 'label';
|
|
178
|
+
const datasource = getDatasource();
|
|
179
|
+
try {
|
|
180
|
+
const criteria = new CriteriaBuilder()
|
|
181
|
+
.withExpression(new ExpressionBuilder().withField(valueField).withValue(raw).build())
|
|
182
|
+
.build();
|
|
183
|
+
const initialized = yield datasource.init(Object.assign(Object.assign({}, options.datasourceConfig), { resourceName,
|
|
184
|
+
criteria, isSnapshot: true, maxRows: 1, fields: valueField === labelField ? valueField : `${valueField} ${labelField}` }));
|
|
185
|
+
if (!initialized)
|
|
186
|
+
return null;
|
|
187
|
+
const rows = yield datasource.snapshotFiltered();
|
|
188
|
+
return (_d = (_c = rows === null || rows === void 0 ? void 0 : rows[0]) === null || _c === void 0 ? void 0 : _c[labelField]) !== null && _d !== void 0 ? _d : null;
|
|
189
|
+
}
|
|
190
|
+
catch (_e) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
datasource.destroy();
|
|
195
|
+
}
|
|
196
|
+
});
|
|
133
197
|
}
|
|
134
198
|
/**
|
|
135
199
|
* For plain enum combobox fields (no options.data), applies the same `capitalCase`
|
|
@@ -254,6 +254,15 @@
|
|
|
254
254
|
"kind": "Content",
|
|
255
255
|
"text": "): "
|
|
256
256
|
},
|
|
257
|
+
{
|
|
258
|
+
"kind": "Reference",
|
|
259
|
+
"text": "Promise",
|
|
260
|
+
"canonicalReference": "!Promise:interface"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"kind": "Content",
|
|
264
|
+
"text": "<"
|
|
265
|
+
},
|
|
257
266
|
{
|
|
258
267
|
"kind": "Reference",
|
|
259
268
|
"text": "ReviewField",
|
|
@@ -261,7 +270,7 @@
|
|
|
261
270
|
},
|
|
262
271
|
{
|
|
263
272
|
"kind": "Content",
|
|
264
|
-
"text": "[]"
|
|
273
|
+
"text": "[]>"
|
|
265
274
|
},
|
|
266
275
|
{
|
|
267
276
|
"kind": "Content",
|
|
@@ -271,7 +280,7 @@
|
|
|
271
280
|
"fileUrlPath": "src/utils/review-utils.ts",
|
|
272
281
|
"returnTypeTokenRange": {
|
|
273
282
|
"startIndex": 8,
|
|
274
|
-
"endIndex":
|
|
283
|
+
"endIndex": 12
|
|
275
284
|
},
|
|
276
285
|
"releaseTag": "Public",
|
|
277
286
|
"overloadIndex": 1,
|
|
@@ -306,7 +315,7 @@
|
|
|
306
315
|
{
|
|
307
316
|
"kind": "Function",
|
|
308
317
|
"canonicalReference": "@genesislcap/foundation-forms!buildReviewSections:function(1)",
|
|
309
|
-
"docComment": "/**\n * Builds the review panel's fields grouped into sections by their nearest `Group` layout. Ungrouped fields are collected into a single section with a `null` title (rendered with a placeholder heading). Falls back to a flat, single ungrouped section when no UI schema is available.\n */\n",
|
|
318
|
+
"docComment": "/**\n * Builds the review panel's fields grouped into sections by their nearest `Group` layout. Ungrouped fields are collected into a single section with a `null` title (rendered with a placeholder heading). Falls back to a flat, single ungrouped section when no UI schema is available.\n *\n * Async because connected-select fields backed by `options.allOptionsResourceName` (rather than a static `options.data`) resolve their display label with a criteria-filtered fetch — see `resolveResourceOptionLabel`. The UI schema is walked synchronously to collect one value-resolution promise per field (preserving encounter order), then all promises settle in parallel via `Promise.all` before fields are added to their sections — so a slow fetch for one field can't reorder fields that resolved faster.\n */\n",
|
|
310
319
|
"excerptTokens": [
|
|
311
320
|
{
|
|
312
321
|
"kind": "Content",
|
|
@@ -341,6 +350,15 @@
|
|
|
341
350
|
"kind": "Content",
|
|
342
351
|
"text": "): "
|
|
343
352
|
},
|
|
353
|
+
{
|
|
354
|
+
"kind": "Reference",
|
|
355
|
+
"text": "Promise",
|
|
356
|
+
"canonicalReference": "!Promise:interface"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"kind": "Content",
|
|
360
|
+
"text": "<"
|
|
361
|
+
},
|
|
344
362
|
{
|
|
345
363
|
"kind": "Reference",
|
|
346
364
|
"text": "ReviewSection",
|
|
@@ -348,7 +366,7 @@
|
|
|
348
366
|
},
|
|
349
367
|
{
|
|
350
368
|
"kind": "Content",
|
|
351
|
-
"text": "[]"
|
|
369
|
+
"text": "[]>"
|
|
352
370
|
},
|
|
353
371
|
{
|
|
354
372
|
"kind": "Content",
|
|
@@ -358,7 +376,7 @@
|
|
|
358
376
|
"fileUrlPath": "src/utils/review-utils.ts",
|
|
359
377
|
"returnTypeTokenRange": {
|
|
360
378
|
"startIndex": 8,
|
|
361
|
-
"endIndex":
|
|
379
|
+
"endIndex": 12
|
|
362
380
|
},
|
|
363
381
|
"releaseTag": "Public",
|
|
364
382
|
"overloadIndex": 1,
|
|
@@ -5111,7 +5129,7 @@
|
|
|
5111
5129
|
{
|
|
5112
5130
|
"kind": "Function",
|
|
5113
5131
|
"canonicalReference": "@genesislcap/foundation-forms!resolveOptionLabel:function(1)",
|
|
5114
|
-
"docComment": "/**\n * Looks up the display label for a raw value from `options.data` (used by segmented, radio group, and enum-with-explicit-data renderers). Returns `null` when no match found.\n */\n",
|
|
5132
|
+
"docComment": "/**\n * Looks up the display label for a raw value from `options.data` (used by segmented, radio group, connected-select, and enum-with-explicit-data renderers). Honors `options.valueField`/`options.labelField` when set, defaulting to `value`/`label`. Returns `null` when no match found.\n */\n",
|
|
5115
5133
|
"excerptTokens": [
|
|
5116
5134
|
{
|
|
5117
5135
|
"kind": "Content",
|
|
@@ -5169,6 +5187,72 @@
|
|
|
5169
5187
|
],
|
|
5170
5188
|
"name": "resolveOptionLabel"
|
|
5171
5189
|
},
|
|
5190
|
+
{
|
|
5191
|
+
"kind": "Function",
|
|
5192
|
+
"canonicalReference": "@genesislcap/foundation-forms!resolveResourceOptionLabel:function(1)",
|
|
5193
|
+
"docComment": "/**\n * Resolves the display label for a connected-select field backed by `options.allOptionsResourceName` (a Data Server/Request Server resource) rather than a static `options.data` array — e.g. `ConnectedSelectControlRenderer` in async/remote mode. Fetches a single row via a criteria-filtered snapshot matching `valueField === raw`, then reads `labelField` off the returned row. Returns `null` when there's no resource to query, the resource can't be reached, or no row matches.\n */\n",
|
|
5194
|
+
"excerptTokens": [
|
|
5195
|
+
{
|
|
5196
|
+
"kind": "Content",
|
|
5197
|
+
"text": "export declare function resolveResourceOptionLabel(raw: "
|
|
5198
|
+
},
|
|
5199
|
+
{
|
|
5200
|
+
"kind": "Content",
|
|
5201
|
+
"text": "any"
|
|
5202
|
+
},
|
|
5203
|
+
{
|
|
5204
|
+
"kind": "Content",
|
|
5205
|
+
"text": ", options: "
|
|
5206
|
+
},
|
|
5207
|
+
{
|
|
5208
|
+
"kind": "Content",
|
|
5209
|
+
"text": "any"
|
|
5210
|
+
},
|
|
5211
|
+
{
|
|
5212
|
+
"kind": "Content",
|
|
5213
|
+
"text": "): "
|
|
5214
|
+
},
|
|
5215
|
+
{
|
|
5216
|
+
"kind": "Reference",
|
|
5217
|
+
"text": "Promise",
|
|
5218
|
+
"canonicalReference": "!Promise:interface"
|
|
5219
|
+
},
|
|
5220
|
+
{
|
|
5221
|
+
"kind": "Content",
|
|
5222
|
+
"text": "<string | null>"
|
|
5223
|
+
},
|
|
5224
|
+
{
|
|
5225
|
+
"kind": "Content",
|
|
5226
|
+
"text": ";"
|
|
5227
|
+
}
|
|
5228
|
+
],
|
|
5229
|
+
"fileUrlPath": "src/utils/review-utils.ts",
|
|
5230
|
+
"returnTypeTokenRange": {
|
|
5231
|
+
"startIndex": 5,
|
|
5232
|
+
"endIndex": 7
|
|
5233
|
+
},
|
|
5234
|
+
"releaseTag": "Public",
|
|
5235
|
+
"overloadIndex": 1,
|
|
5236
|
+
"parameters": [
|
|
5237
|
+
{
|
|
5238
|
+
"parameterName": "raw",
|
|
5239
|
+
"parameterTypeTokenRange": {
|
|
5240
|
+
"startIndex": 1,
|
|
5241
|
+
"endIndex": 2
|
|
5242
|
+
},
|
|
5243
|
+
"isOptional": false
|
|
5244
|
+
},
|
|
5245
|
+
{
|
|
5246
|
+
"parameterName": "options",
|
|
5247
|
+
"parameterTypeTokenRange": {
|
|
5248
|
+
"startIndex": 3,
|
|
5249
|
+
"endIndex": 4
|
|
5250
|
+
},
|
|
5251
|
+
"isOptional": false
|
|
5252
|
+
}
|
|
5253
|
+
],
|
|
5254
|
+
"name": "resolveResourceOptionLabel"
|
|
5255
|
+
},
|
|
5172
5256
|
{
|
|
5173
5257
|
"kind": "Class",
|
|
5174
5258
|
"canonicalReference": "@genesislcap/foundation-forms!Review:class",
|
|
@@ -183,15 +183,22 @@ export declare type ArrayRendererOptions = {
|
|
|
183
183
|
* Flattens `buildReviewSections` output into a single ordered list.
|
|
184
184
|
* Section titles are prepended to field labels as "Title — Field".
|
|
185
185
|
*/
|
|
186
|
-
export declare function buildReviewFields(data: Record<string, any>, uiSchema: any, schema: any): ReviewField[]
|
|
186
|
+
export declare function buildReviewFields(data: Record<string, any>, uiSchema: any, schema: any): Promise<ReviewField[]>;
|
|
187
187
|
|
|
188
188
|
/**
|
|
189
189
|
* Builds the review panel's fields grouped into sections by their nearest `Group` layout.
|
|
190
190
|
* Ungrouped fields are collected into a single section with a `null` title (rendered with
|
|
191
191
|
* a placeholder heading). Falls back to a flat, single ungrouped section when no UI schema
|
|
192
192
|
* is available.
|
|
193
|
+
*
|
|
194
|
+
* Async because connected-select fields backed by `options.allOptionsResourceName` (rather
|
|
195
|
+
* than a static `options.data`) resolve their display label with a criteria-filtered fetch
|
|
196
|
+
* — see `resolveResourceOptionLabel`. The UI schema is walked synchronously to collect one
|
|
197
|
+
* value-resolution promise per field (preserving encounter order), then all promises settle
|
|
198
|
+
* in parallel via `Promise.all` before fields are added to their sections — so a slow fetch
|
|
199
|
+
* for one field can't reorder fields that resolved faster.
|
|
193
200
|
*/
|
|
194
|
-
export declare function buildReviewSections(data: Record<string, any>, uiSchema: any, schema: any): ReviewSection[]
|
|
201
|
+
export declare function buildReviewSections(data: Record<string, any>, uiSchema: any, schema: any): Promise<ReviewSection[]>;
|
|
195
202
|
|
|
196
203
|
/**
|
|
197
204
|
* Tracks the submission status and result for a single row in bulk insert mode.
|
|
@@ -2433,10 +2440,22 @@ export declare function resolveEnumLabel(raw: any, fieldName: string, schema: an
|
|
|
2433
2440
|
|
|
2434
2441
|
/**
|
|
2435
2442
|
* Looks up the display label for a raw value from `options.data` (used by segmented,
|
|
2436
|
-
* radio group, and enum-with-explicit-data renderers).
|
|
2443
|
+
* radio group, connected-select, and enum-with-explicit-data renderers). Honors
|
|
2444
|
+
* `options.valueField`/`options.labelField` when set, defaulting to `value`/`label`.
|
|
2445
|
+
* Returns `null` when no match found.
|
|
2437
2446
|
*/
|
|
2438
2447
|
export declare function resolveOptionLabel(raw: any, options: any): string | null;
|
|
2439
2448
|
|
|
2449
|
+
/**
|
|
2450
|
+
* Resolves the display label for a connected-select field backed by
|
|
2451
|
+
* `options.allOptionsResourceName` (a Data Server/Request Server resource) rather than a
|
|
2452
|
+
* static `options.data` array — e.g. `ConnectedSelectControlRenderer` in async/remote mode.
|
|
2453
|
+
* Fetches a single row via a criteria-filtered snapshot matching `valueField === raw`,
|
|
2454
|
+
* then reads `labelField` off the returned row. Returns `null` when there's no resource
|
|
2455
|
+
* to query, the resource can't be reached, or no row matches.
|
|
2456
|
+
*/
|
|
2457
|
+
export declare function resolveResourceOptionLabel(raw: any, options: any): Promise<string | null>;
|
|
2458
|
+
|
|
2440
2459
|
/**
|
|
2441
2460
|
* Read-only preview panel shown by `<foundation-form>` when `show-submit-review` is enabled.
|
|
2442
2461
|
* Renders the reviewed data grouped into sections with a header and a filter field.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/foundation-forms",
|
|
3
3
|
"description": "Genesis Foundation Forms",
|
|
4
|
-
"version": "14.488.
|
|
4
|
+
"version": "14.488.2-FUI-2571.3",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "SEE LICENSE IN license.txt",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@genesislcap/foundation-testing": "14.488.
|
|
63
|
-
"@genesislcap/genx": "14.488.
|
|
64
|
-
"@genesislcap/rollup-builder": "14.488.
|
|
65
|
-
"@genesislcap/ts-builder": "14.488.
|
|
66
|
-
"@genesislcap/uvu-playwright-builder": "14.488.
|
|
67
|
-
"@genesislcap/vite-builder": "14.488.
|
|
68
|
-
"@genesislcap/webpack-builder": "14.488.
|
|
62
|
+
"@genesislcap/foundation-testing": "14.488.2-FUI-2571.3",
|
|
63
|
+
"@genesislcap/genx": "14.488.2-FUI-2571.3",
|
|
64
|
+
"@genesislcap/rollup-builder": "14.488.2-FUI-2571.3",
|
|
65
|
+
"@genesislcap/ts-builder": "14.488.2-FUI-2571.3",
|
|
66
|
+
"@genesislcap/uvu-playwright-builder": "14.488.2-FUI-2571.3",
|
|
67
|
+
"@genesislcap/vite-builder": "14.488.2-FUI-2571.3",
|
|
68
|
+
"@genesislcap/webpack-builder": "14.488.2-FUI-2571.3",
|
|
69
69
|
"@types/json-schema": "^7.0.11",
|
|
70
70
|
"@types/papaparse": "^5.3.14"
|
|
71
71
|
},
|
|
@@ -82,12 +82,12 @@
|
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@genesislcap/foundation-comms": "14.488.
|
|
86
|
-
"@genesislcap/foundation-criteria": "14.488.
|
|
87
|
-
"@genesislcap/foundation-logger": "14.488.
|
|
88
|
-
"@genesislcap/foundation-notifications": "14.488.
|
|
89
|
-
"@genesislcap/foundation-ui": "14.488.
|
|
90
|
-
"@genesislcap/foundation-utils": "14.488.
|
|
85
|
+
"@genesislcap/foundation-comms": "14.488.2-FUI-2571.3",
|
|
86
|
+
"@genesislcap/foundation-criteria": "14.488.2-FUI-2571.3",
|
|
87
|
+
"@genesislcap/foundation-logger": "14.488.2-FUI-2571.3",
|
|
88
|
+
"@genesislcap/foundation-notifications": "14.488.2-FUI-2571.3",
|
|
89
|
+
"@genesislcap/foundation-ui": "14.488.2-FUI-2571.3",
|
|
90
|
+
"@genesislcap/foundation-utils": "14.488.2-FUI-2571.3",
|
|
91
91
|
"@json-schema-tools/dereferencer": "^1.6.1",
|
|
92
92
|
"@jsonforms/core": "^3.2.1",
|
|
93
93
|
"@microsoft/fast-components": "2.30.6",
|
|
@@ -109,5 +109,5 @@
|
|
|
109
109
|
"access": "public"
|
|
110
110
|
},
|
|
111
111
|
"customElements": "dist/custom-elements.json",
|
|
112
|
-
"gitHead": "
|
|
112
|
+
"gitHead": "faafa39ff0c79190190672db8d6f26b6e51bd642"
|
|
113
113
|
}
|