@genesislcap/foundation-forms 14.427.1 → 14.427.2-alpha-e0ffaad.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/custom-elements.json +307 -389
- package/dist/dts/filters/filters.template.d.ts.map +1 -1
- package/dist/dts/form.d.ts +4 -10
- package/dist/dts/form.d.ts.map +1 -1
- package/dist/dts/form.styles.d.ts.map +1 -1
- package/dist/dts/form.template.d.ts.map +1 -1
- package/dist/dts/index.d.ts +2 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/jsonforms/json-forms.d.ts +2 -2
- package/dist/dts/jsonforms/json-forms.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/CategorizationWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts +31 -11
- package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/EnumRadioGroupControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +21 -5
- package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/MulticolumnDropdownControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts +2 -1
- package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/SegmentedControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/StepperWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/StringArrayControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/VerticalCategorizationWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/testers/isOneOfNumber.d.ts.map +1 -1
- package/dist/dts/react.d.ts +0 -20
- package/dist/dts/types.d.ts +18 -0
- package/dist/dts/types.d.ts.map +1 -1
- package/dist/esm/filters/filters.template.js +1 -2
- package/dist/esm/form.js +2 -1
- package/dist/esm/form.styles.js +14 -40
- package/dist/esm/form.template.js +1 -2
- package/dist/esm/index.js +2 -0
- package/dist/esm/jsonforms/json-forms.js +28 -1
- package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +48 -46
- package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +19 -20
- package/dist/esm/jsonforms/renderers/CategorizationWrapperRenderer.js +9 -4
- package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +38 -40
- package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +39 -39
- package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +102 -131
- package/dist/esm/jsonforms/renderers/DateControlRenderer.js +41 -43
- package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +27 -27
- package/dist/esm/jsonforms/renderers/EnumRadioGroupControlRenderer.js +30 -32
- package/dist/esm/jsonforms/renderers/FilterDateControlRenderer.js +81 -77
- package/dist/esm/jsonforms/renderers/FilterNumberControlRenderer.js +54 -51
- package/dist/esm/jsonforms/renderers/FilterTimeControlRenderer.js +69 -69
- package/dist/esm/jsonforms/renderers/LayoutArrayRenderer.js +7 -8
- package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +27 -26
- package/dist/esm/jsonforms/renderers/LayoutGroupRenderer.js +36 -32
- package/dist/esm/jsonforms/renderers/LayoutHorizontalRenderer.js +27 -26
- package/dist/esm/jsonforms/renderers/LayoutRenderer.js +36 -44
- package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +18 -17
- package/dist/esm/jsonforms/renderers/MulticolumnDropdownControlRenderer.js +39 -41
- package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +30 -30
- package/dist/esm/jsonforms/renderers/SegmentedControlRenderer.js +25 -27
- package/dist/esm/jsonforms/renderers/StepperWrapperRenderer.js +2 -1
- package/dist/esm/jsonforms/renderers/StringArrayControlRenderer.js +18 -20
- package/dist/esm/jsonforms/renderers/StringControlRenderer.js +41 -42
- package/dist/esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js +13 -9
- package/dist/esm/jsonforms/renderers/dispatch-renderer.js +1 -0
- package/dist/esm/jsonforms/testers/isOneOfNumber.js +2 -1
- package/dist/foundation-forms.api.json +115 -3
- package/dist/foundation-forms.d.ts +75 -10
- package/dist/react.cjs +0 -14
- package/dist/react.mjs +0 -12
- package/package.json +15 -15
package/dist/esm/form.styles.js
CHANGED
|
@@ -2,6 +2,7 @@ import { controlCornerRadius, designUnit, strokeWidth } from '@microsoft/fast-co
|
|
|
2
2
|
import { css } from '@microsoft/fast-element';
|
|
3
3
|
import { forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';
|
|
4
4
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
5
|
+
import { controlWrapperStyles } from './jsonforms/renderers/ControlWrapperRenderer';
|
|
5
6
|
/** @internal */
|
|
6
7
|
export const comboboxRendererStyles = (prefix = 'zero') => `
|
|
7
8
|
${prefix}-combobox::part(listbox) {
|
|
@@ -11,7 +12,9 @@ export const comboboxRendererStyles = (prefix = 'zero') => `
|
|
|
11
12
|
`;
|
|
12
13
|
/** @internal */
|
|
13
14
|
export const foundationFormStyles = css `
|
|
14
|
-
|
|
15
|
+
${controlWrapperStyles}
|
|
16
|
+
|
|
17
|
+
foundation-form {
|
|
15
18
|
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
16
19
|
margin: 0;
|
|
17
20
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
@@ -25,32 +28,7 @@ export const foundationFormStyles = css `
|
|
|
25
28
|
box-sizing: border-box;
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
font-size: 0.9em;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.form-controls {
|
|
33
|
-
display: grid;
|
|
34
|
-
grid-gap: calc(${designUnit} * 1px);
|
|
35
|
-
grid-column-gap: calc(${designUnit} * 7px);
|
|
36
|
-
grid-template-columns: repeat(2, 1fr);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.form-group {
|
|
40
|
-
display: flex;
|
|
41
|
-
flex-direction: column;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.required::after {
|
|
45
|
-
content: ' *';
|
|
46
|
-
color: #f00;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.label {
|
|
50
|
-
font-size: calc(${designUnit} * 1px + 0.7vmin);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.actions {
|
|
31
|
+
foundation-form .actions {
|
|
54
32
|
display: flex;
|
|
55
33
|
flex-direction: row;
|
|
56
34
|
align-items: flex-end;
|
|
@@ -59,22 +37,18 @@ export const foundationFormStyles = css `
|
|
|
59
37
|
gap: 10px;
|
|
60
38
|
}
|
|
61
39
|
|
|
62
|
-
.
|
|
63
|
-
border-bottom: 2px solid red;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.approval-message-actions {
|
|
40
|
+
foundation-form .approval-message-actions {
|
|
67
41
|
display: flex;
|
|
68
42
|
justify-content: flex-end;
|
|
69
43
|
gap: calc(${designUnit} * 2px);
|
|
70
44
|
margin-top: calc(${designUnit} * 2px);
|
|
71
45
|
}
|
|
72
46
|
|
|
73
|
-
.submit-button {
|
|
47
|
+
foundation-form .submit-button {
|
|
74
48
|
margin: 0;
|
|
75
49
|
}
|
|
76
50
|
|
|
77
|
-
.csv-upload-section {
|
|
51
|
+
foundation-form .csv-upload-section {
|
|
78
52
|
display: flex;
|
|
79
53
|
align-items: center;
|
|
80
54
|
gap: calc(${designUnit} * 3px);
|
|
@@ -82,13 +56,13 @@ export const foundationFormStyles = css `
|
|
|
82
56
|
margin-bottom: calc(${designUnit} * 2px);
|
|
83
57
|
}
|
|
84
58
|
|
|
85
|
-
.csv-file-input {
|
|
59
|
+
foundation-form .csv-file-input {
|
|
86
60
|
display: none;
|
|
87
61
|
}
|
|
88
62
|
|
|
89
63
|
/* Card-like styling for CSV buttons - matches array item aesthetic */
|
|
90
|
-
.csv-template-button,
|
|
91
|
-
.csv-import-button {
|
|
64
|
+
foundation-form .csv-template-button,
|
|
65
|
+
foundation-form .csv-import-button {
|
|
92
66
|
display: flex;
|
|
93
67
|
align-items: center;
|
|
94
68
|
gap: calc(${designUnit} * 1px);
|
|
@@ -104,14 +78,14 @@ export const foundationFormStyles = css `
|
|
|
104
78
|
border-color 0.15s ease;
|
|
105
79
|
}
|
|
106
80
|
|
|
107
|
-
.csv-template-button:hover,
|
|
108
|
-
.csv-import-button:hover {
|
|
81
|
+
foundation-form .csv-template-button:hover,
|
|
82
|
+
foundation-form .csv-import-button:hover {
|
|
109
83
|
box-shadow:
|
|
110
84
|
0 2px 4px rgb(0 0 0 / 6%),
|
|
111
85
|
0 6px 12px rgb(0 0 0 / 8%);
|
|
112
86
|
}
|
|
113
87
|
`.withBehaviors(forcedColorsStylesheetBehavior(css `
|
|
114
|
-
|
|
88
|
+
foundation-form {
|
|
115
89
|
background: ${SystemColors.Canvas};
|
|
116
90
|
border-color: ${SystemColors.CanvasText};
|
|
117
91
|
}
|
|
@@ -3,11 +3,10 @@ import { html, ref, when } from '@microsoft/fast-element';
|
|
|
3
3
|
import { JSONForms } from './jsonforms/json-forms';
|
|
4
4
|
import { ArrayListWrapper } from './jsonforms/renderers/ArrayListWrapperRenderer';
|
|
5
5
|
import { CategorizationWrapper } from './jsonforms/renderers/CategorizationWrapperRenderer';
|
|
6
|
-
import { ControlWrapper } from './jsonforms/renderers/ControlWrapperRenderer';
|
|
7
6
|
import { DispatchRenderer } from './jsonforms/renderers/dispatch-renderer';
|
|
8
7
|
import { StepperWrapper } from './jsonforms/renderers/StepperWrapperRenderer';
|
|
9
8
|
import { VerticalCategorizationWrapper } from './jsonforms/renderers/VerticalCategorizationWrapperRenderer';
|
|
10
|
-
avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper,
|
|
9
|
+
avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper, DispatchRenderer, StepperWrapper);
|
|
11
10
|
/** @internal */
|
|
12
11
|
export const getPrefixedForm = (prefix) => html `
|
|
13
12
|
<template>
|
package/dist/esm/index.js
CHANGED
|
@@ -4,5 +4,7 @@ export * from './form.styles';
|
|
|
4
4
|
export * from './form.template';
|
|
5
5
|
export { MulticolumnDropdownControlRendererEntry, MulticolumnDropdownControlRendererTemplate, } from './jsonforms/renderers/MulticolumnDropdownControlRenderer';
|
|
6
6
|
export { LayoutVerticalCategorizationRendererEntry } from './jsonforms/renderers/LayoutVerticalCategorizationRenderer';
|
|
7
|
+
export { controlWrapperTemplate, controlWrapperStyles, } from './jsonforms/renderers/ControlWrapperRenderer';
|
|
8
|
+
export { layoutWrapperTemplate } from './jsonforms/renderers/LayoutRenderer';
|
|
7
9
|
export * from './types';
|
|
8
10
|
export * from './utils';
|
|
@@ -49,10 +49,15 @@ let JSONForms = class JSONForms extends FASTElement {
|
|
|
49
49
|
this.bulkInsert = false;
|
|
50
50
|
this.dispatch = (action) => {
|
|
51
51
|
this.jsonforms = Object.assign(Object.assign({}, this.jsonforms), { core: coreReducer(this.jsonforms.core, action) });
|
|
52
|
+
// Re-run custom validators against the updated data so consumers receive
|
|
53
|
+
// fresh `additionalErrors` from this single emit (previously the follow-up
|
|
54
|
+
// schemaChanged() emit supplied these).
|
|
55
|
+
const additionalErrors = this.validate(this.uichemaToUse);
|
|
52
56
|
this.$emit('data-change', {
|
|
53
57
|
data: this.jsonforms.core.data,
|
|
54
58
|
errors: this.jsonforms.core.errors,
|
|
55
59
|
additionalErrors: this.jsonforms.core.additionalErrors,
|
|
60
|
+
path: action.path,
|
|
56
61
|
});
|
|
57
62
|
};
|
|
58
63
|
/**
|
|
@@ -144,7 +149,28 @@ let JSONForms = class JSONForms extends FASTElement {
|
|
|
144
149
|
this.schemaChanged();
|
|
145
150
|
}
|
|
146
151
|
dataChanged() {
|
|
147
|
-
|
|
152
|
+
var _a;
|
|
153
|
+
// If core isn't initialized yet, fall back to full init via schemaChanged
|
|
154
|
+
// (which no-ops until a schema is present).
|
|
155
|
+
if (!((_a = this.jsonforms) === null || _a === void 0 ? void 0 : _a.core)) {
|
|
156
|
+
this.schemaChanged();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// Skip echoes: after dispatch emits `data-change`, the parent form mirrors
|
|
160
|
+
// the same `data` reference back into this property. Re-initializing here
|
|
161
|
+
// would cause `data-change` to fire twice for every user edit.
|
|
162
|
+
if (this.jsonforms.core.data === this.data) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// External data update (e.g. reset, CSV import) — fold into core state
|
|
166
|
+
// without re-running Actions.init, then emit a single data-change.
|
|
167
|
+
this.jsonforms = Object.assign(Object.assign({}, this.jsonforms), { core: coreReducer(this.jsonforms.core, Actions.updateCore(this.data, this.schema, this.uichemaToUse)) });
|
|
168
|
+
const additionalErrors = this.validate(this.uichemaToUse);
|
|
169
|
+
this.$emit('data-change', {
|
|
170
|
+
data: this.jsonforms.core.data,
|
|
171
|
+
errors: this.jsonforms.core.errors,
|
|
172
|
+
additionalErrors,
|
|
173
|
+
});
|
|
148
174
|
}
|
|
149
175
|
renderersChanged() {
|
|
150
176
|
this.schemaChanged();
|
|
@@ -259,6 +285,7 @@ JSONForms = __decorate([
|
|
|
259
285
|
display: flex;
|
|
260
286
|
}
|
|
261
287
|
`,
|
|
288
|
+
shadowOptions: null,
|
|
262
289
|
})
|
|
263
290
|
], JSONForms);
|
|
264
291
|
export { JSONForms };
|
|
@@ -185,7 +185,7 @@ export const ArrayListWrapperRendererTemplate = (prefix = 'zero') => html `
|
|
|
185
185
|
</template>
|
|
186
186
|
`;
|
|
187
187
|
const styles = css `
|
|
188
|
-
|
|
188
|
+
array-list-wrapper {
|
|
189
189
|
padding-left: calc(${designUnit} * 1px);
|
|
190
190
|
display: flex;
|
|
191
191
|
flex-direction: column;
|
|
@@ -205,7 +205,7 @@ const styles = css `
|
|
|
205
205
|
--array-item-radius: calc(${designUnit} * 2px);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
.array-list {
|
|
208
|
+
array-list-wrapper .array-list {
|
|
209
209
|
display: flex;
|
|
210
210
|
align-items: flex-start;
|
|
211
211
|
position: relative;
|
|
@@ -222,18 +222,18 @@ const styles = css `
|
|
|
222
222
|
border-color 0.15s ease;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
.array-list:hover {
|
|
225
|
+
array-list-wrapper .array-list:hover {
|
|
226
226
|
box-shadow: var(--array-item-shadow-hover);
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
/* Content area grows to fill space; min-width prevents flex overflow */
|
|
230
|
-
.array-list > dispatch-renderer {
|
|
230
|
+
array-list-wrapper .array-list > dispatch-renderer {
|
|
231
231
|
flex: 1;
|
|
232
232
|
min-width: 0;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
/* Left accent bar for visual hierarchy - industrial form-slot feel */
|
|
236
|
-
.array-list::before {
|
|
236
|
+
array-list-wrapper .array-list::before {
|
|
237
237
|
content: '';
|
|
238
238
|
position: absolute;
|
|
239
239
|
left: 0;
|
|
@@ -245,31 +245,31 @@ const styles = css `
|
|
|
245
245
|
pointer-events: none;
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
.array-list.row-status-success::before {
|
|
248
|
+
array-list-wrapper .array-list.row-status-success::before {
|
|
249
249
|
background: var(--row-status-success-color);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
.array-list.row-status-failed::before {
|
|
252
|
+
array-list-wrapper .array-list.row-status-failed::before {
|
|
253
253
|
background: var(--row-status-failed-color);
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
.array-list.row-status-submitting::before {
|
|
256
|
+
array-list-wrapper .array-list.row-status-submitting::before {
|
|
257
257
|
background: var(--row-status-submitting-color);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
.array-list.row-status-success {
|
|
260
|
+
array-list-wrapper .array-list.row-status-success {
|
|
261
261
|
background-color: color-mix(in srgb, var(--row-status-success-color), transparent 90%);
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
.array-list.row-status-failed {
|
|
264
|
+
array-list-wrapper .array-list.row-status-failed {
|
|
265
265
|
background-color: color-mix(in srgb, var(--row-status-failed-color), transparent 90%);
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
-
.array-list.row-status-submitting {
|
|
268
|
+
array-list-wrapper .array-list.row-status-submitting {
|
|
269
269
|
background-color: color-mix(in srgb, var(--row-status-submitting-color), transparent 95%);
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
-
.row-status-indicator {
|
|
272
|
+
array-list-wrapper .row-status-indicator {
|
|
273
273
|
display: flex;
|
|
274
274
|
align-items: center;
|
|
275
275
|
justify-content: center;
|
|
@@ -278,64 +278,65 @@ const styles = css `
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
/* Hide all status indicators by default */
|
|
281
|
-
.row-status-indicator .status-spinner,
|
|
282
|
-
.row-status-indicator .status-success,
|
|
283
|
-
.row-status-indicator .status-failed {
|
|
281
|
+
array-list-wrapper .row-status-indicator .status-spinner,
|
|
282
|
+
array-list-wrapper .row-status-indicator .status-success,
|
|
283
|
+
array-list-wrapper .row-status-indicator .status-failed {
|
|
284
284
|
display: none;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
/* Show spinner when submitting */
|
|
288
|
-
.array-list.row-status-submitting .row-status-indicator .status-spinner {
|
|
288
|
+
array-list-wrapper .array-list.row-status-submitting .row-status-indicator .status-spinner {
|
|
289
289
|
display: flex;
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
/* Show success icon when successful */
|
|
293
|
-
.array-list.row-status-success .row-status-indicator .status-success {
|
|
293
|
+
array-list-wrapper .array-list.row-status-success .row-status-indicator .status-success {
|
|
294
294
|
display: flex;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
297
|
/* Show failed icon when failed */
|
|
298
|
-
.array-list.row-status-failed .row-status-indicator .status-failed {
|
|
298
|
+
array-list-wrapper .array-list.row-status-failed .row-status-indicator .status-failed {
|
|
299
299
|
display: flex;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
-
.status-icon {
|
|
302
|
+
array-list-wrapper .status-icon {
|
|
303
303
|
width: calc(${designUnit} * 4px);
|
|
304
304
|
height: calc(${designUnit} * 4px);
|
|
305
305
|
}
|
|
306
306
|
|
|
307
|
-
.status-success {
|
|
307
|
+
array-list-wrapper .status-success {
|
|
308
308
|
color: var(--row-status-success-color);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
.status-failed {
|
|
311
|
+
array-list-wrapper .status-failed {
|
|
312
312
|
color: var(--row-status-failed-color);
|
|
313
313
|
cursor: help;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
-
.status-spinner {
|
|
316
|
+
array-list-wrapper .status-spinner {
|
|
317
317
|
width: calc(${designUnit} * 4px);
|
|
318
318
|
height: calc(${designUnit} * 4px);
|
|
319
319
|
}
|
|
320
320
|
|
|
321
|
-
.item-control-btn {
|
|
321
|
+
array-list-wrapper .item-control-btn {
|
|
322
322
|
color: var(--neutral-foreground-hint, rgb(135, 155, 166));
|
|
323
323
|
margin-left: calc(${designUnit} * 3px);
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
-
.item-control-btn:hover {
|
|
326
|
+
array-list-wrapper .item-control-btn:hover {
|
|
327
327
|
color: var(--accent-foreground-hover);
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
-
.row-submit-btn {
|
|
330
|
+
array-list-wrapper .row-submit-btn {
|
|
331
331
|
min-width: calc(${designUnit} * 8px);
|
|
332
332
|
}
|
|
333
333
|
|
|
334
|
-
.row-submit-btn[disabled] {
|
|
334
|
+
array-list-wrapper .row-submit-btn[disabled] {
|
|
335
335
|
opacity: 0.5;
|
|
336
336
|
cursor: not-allowed;
|
|
337
337
|
}
|
|
338
|
-
|
|
338
|
+
|
|
339
|
+
array-list-wrapper .button-group {
|
|
339
340
|
display: flex;
|
|
340
341
|
flex-direction: column;
|
|
341
342
|
gap: 8px;
|
|
@@ -343,7 +344,7 @@ const styles = css `
|
|
|
343
344
|
|
|
344
345
|
/* ── Grid view ────────────────────────────────────────────── */
|
|
345
346
|
|
|
346
|
-
.grid-header {
|
|
347
|
+
array-list-wrapper .grid-header {
|
|
347
348
|
display: flex;
|
|
348
349
|
align-items: center;
|
|
349
350
|
gap: 10px;
|
|
@@ -357,14 +358,14 @@ const styles = css `
|
|
|
357
358
|
letter-spacing: 0.04em;
|
|
358
359
|
}
|
|
359
360
|
|
|
360
|
-
.grid-header-status-spacer {
|
|
361
|
+
array-list-wrapper .grid-header-status-spacer {
|
|
361
362
|
width: var(--grid-status-track-width);
|
|
362
363
|
min-width: var(--grid-status-track-width);
|
|
363
364
|
flex: 0 0 var(--grid-status-track-width);
|
|
364
365
|
flex-shrink: 0;
|
|
365
366
|
}
|
|
366
367
|
|
|
367
|
-
.grid-header-cell {
|
|
368
|
+
array-list-wrapper .grid-header-cell {
|
|
368
369
|
flex: 1;
|
|
369
370
|
min-width: 0;
|
|
370
371
|
overflow: hidden;
|
|
@@ -375,28 +376,28 @@ const styles = css `
|
|
|
375
376
|
gap: 4px;
|
|
376
377
|
}
|
|
377
378
|
|
|
378
|
-
.grid-header-actions {
|
|
379
|
+
array-list-wrapper .grid-header-actions {
|
|
379
380
|
width: var(--grid-actions-track-width);
|
|
380
381
|
min-width: var(--grid-actions-track-width);
|
|
381
382
|
flex: 0 0 var(--grid-actions-track-width);
|
|
382
383
|
text-align: center;
|
|
383
384
|
}
|
|
384
385
|
|
|
385
|
-
.grid-header-label-text {
|
|
386
|
+
array-list-wrapper .grid-header-label-text {
|
|
386
387
|
overflow: hidden;
|
|
387
388
|
text-overflow: ellipsis;
|
|
388
389
|
}
|
|
389
390
|
|
|
390
|
-
.grid-header-required-indicator {
|
|
391
|
+
array-list-wrapper .grid-header-required-indicator {
|
|
391
392
|
color: var(--accent-foreground-rest, #0078d4);
|
|
392
393
|
}
|
|
393
394
|
|
|
394
|
-
.grid-header-tooltip {
|
|
395
|
+
array-list-wrapper .grid-header-tooltip {
|
|
395
396
|
color: var(--neutral-foreground-rest, rgb(217, 223, 224));
|
|
396
397
|
cursor: help;
|
|
397
398
|
}
|
|
398
399
|
|
|
399
|
-
.array-list.grid-row {
|
|
400
|
+
array-list-wrapper .array-list.grid-row {
|
|
400
401
|
border: none;
|
|
401
402
|
border-radius: 0;
|
|
402
403
|
box-shadow: none;
|
|
@@ -408,54 +409,54 @@ const styles = css `
|
|
|
408
409
|
gap: 10px;
|
|
409
410
|
}
|
|
410
411
|
|
|
411
|
-
.array-list.grid-row::before {
|
|
412
|
+
array-list-wrapper .array-list.grid-row::before {
|
|
412
413
|
display: none;
|
|
413
414
|
}
|
|
414
415
|
|
|
415
|
-
.array-list.grid-row:nth-child(odd) {
|
|
416
|
+
array-list-wrapper .array-list.grid-row:nth-child(odd) {
|
|
416
417
|
background-color: var(--neutral-layer-2, rgba(0, 0, 0, 0.02));
|
|
417
418
|
}
|
|
418
419
|
|
|
419
|
-
.array-list.grid-row:nth-child(even) {
|
|
420
|
+
array-list-wrapper .array-list.grid-row:nth-child(even) {
|
|
420
421
|
background-color: var(--neutral-layer-1, #fff);
|
|
421
422
|
}
|
|
422
423
|
|
|
423
|
-
.array-list.grid-row:hover {
|
|
424
|
+
array-list-wrapper .array-list.grid-row:hover {
|
|
424
425
|
background-color: var(--neutral-fill-stealth-hover, rgba(0, 0, 0, 0.06));
|
|
425
426
|
box-shadow: none;
|
|
426
427
|
}
|
|
427
428
|
|
|
428
|
-
.array-list.grid-row > dispatch-renderer {
|
|
429
|
+
array-list-wrapper .array-list.grid-row > dispatch-renderer {
|
|
429
430
|
--control-label-margin: 0;
|
|
430
431
|
}
|
|
431
432
|
|
|
432
|
-
.array-list.grid-row .row-status-indicator {
|
|
433
|
+
array-list-wrapper .array-list.grid-row .row-status-indicator {
|
|
433
434
|
width: var(--grid-status-track-width);
|
|
434
435
|
min-width: var(--grid-status-track-width);
|
|
435
436
|
margin-right: 0;
|
|
436
437
|
flex: 0 0 var(--grid-status-track-width);
|
|
437
438
|
}
|
|
438
439
|
|
|
439
|
-
.array-list.grid-row .button-group {
|
|
440
|
+
array-list-wrapper .array-list.grid-row .button-group {
|
|
440
441
|
width: var(--grid-actions-track-width);
|
|
441
442
|
min-width: var(--grid-actions-track-width);
|
|
442
443
|
flex: 0 0 var(--grid-actions-track-width);
|
|
443
444
|
align-items: center;
|
|
444
445
|
}
|
|
445
446
|
|
|
446
|
-
.array-list.grid-row .item-control-btn {
|
|
447
|
+
array-list-wrapper .array-list.grid-row .item-control-btn {
|
|
447
448
|
margin-left: 0;
|
|
448
449
|
}
|
|
449
450
|
|
|
450
|
-
.array-list.grid-row.row-status-success {
|
|
451
|
+
array-list-wrapper .array-list.grid-row.row-status-success {
|
|
451
452
|
background-color: color-mix(in srgb, var(--row-status-success-color), transparent 90%);
|
|
452
453
|
}
|
|
453
454
|
|
|
454
|
-
.array-list.grid-row.row-status-failed {
|
|
455
|
+
array-list-wrapper .array-list.grid-row.row-status-failed {
|
|
455
456
|
background-color: color-mix(in srgb, var(--row-status-failed-color), transparent 90%);
|
|
456
457
|
}
|
|
457
458
|
|
|
458
|
-
.array-list.grid-row.row-status-submitting {
|
|
459
|
+
array-list-wrapper .array-list.grid-row.row-status-submitting {
|
|
459
460
|
background-color: color-mix(in srgb, var(--row-status-submitting-color), transparent 95%);
|
|
460
461
|
}
|
|
461
462
|
`;
|
|
@@ -524,6 +525,7 @@ ArrayListWrapper = __decorate([
|
|
|
524
525
|
customElement({
|
|
525
526
|
name: 'array-list-wrapper',
|
|
526
527
|
styles,
|
|
528
|
+
shadowOptions: null,
|
|
527
529
|
template: html `
|
|
528
530
|
${(x) => ArrayListWrapperRendererTemplate(x.form.prefix)}
|
|
529
531
|
`,
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { mapStateToControlProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html } from '@microsoft/fast-element';
|
|
3
3
|
import { isOneOfBoolean } from '../testers/isOneOfBoolean';
|
|
4
|
+
import { controlWrapperTemplate } from './ControlWrapperRenderer';
|
|
4
5
|
import { BOOLEAN_CONTROL_RANK } from './RenderersRanks';
|
|
5
6
|
export const BooleanControlRendererTemplate = (prefix = 'zero') => html `
|
|
6
7
|
<template>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
></${prefix}-checkbox>
|
|
26
|
-
</control-wrapper>
|
|
8
|
+
${controlWrapperTemplate({
|
|
9
|
+
prefix,
|
|
10
|
+
innerTemplate: html `
|
|
11
|
+
<${prefix}-checkbox
|
|
12
|
+
?checked=${(x) => x.control.data}
|
|
13
|
+
?disabled=${(x) => !x.control.enabled}
|
|
14
|
+
:autofocus=${(x) => x.control.config.focus}
|
|
15
|
+
:placeholder=${(x) => x.control.config.placeholder}
|
|
16
|
+
tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
|
|
17
|
+
@change=${(x, c) => {
|
|
18
|
+
x.control.handleChange(x.control.path, c.event.target.checked);
|
|
19
|
+
x.onBlur();
|
|
20
|
+
}}
|
|
21
|
+
id=${(x) => x.control.path}
|
|
22
|
+
data-test-id=${(x) => x.control.path}
|
|
23
|
+
></${prefix}-checkbox>
|
|
24
|
+
`,
|
|
25
|
+
})}
|
|
27
26
|
</template>
|
|
28
27
|
`;
|
|
29
28
|
export const BooleanControlEntry = {
|
|
@@ -40,17 +40,21 @@ export const CategorizationWrapperRendererTemplate = (prefix = 'zero') => html `
|
|
|
40
40
|
</template>
|
|
41
41
|
`;
|
|
42
42
|
const styles = css `
|
|
43
|
-
.tabs-container::part(tablist) {
|
|
43
|
+
categorization-wrapper .tabs-container::part(tablist) {
|
|
44
44
|
background-color: transparent;
|
|
45
45
|
border-bottom: none;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
.tab-control {
|
|
48
|
+
categorization-wrapper .tab-control {
|
|
49
49
|
box-shadow: none;
|
|
50
|
-
${tabControlIconStyles}
|
|
51
50
|
}
|
|
52
51
|
|
|
53
|
-
.tab-
|
|
52
|
+
categorization-wrapper .tab-control .tab-control-icon {
|
|
53
|
+
margin-left: 3px;
|
|
54
|
+
color: #f9644d;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
categorization-wrapper .tab-panel-control {
|
|
54
58
|
margin-top: 10px;
|
|
55
59
|
}
|
|
56
60
|
`;
|
|
@@ -75,6 +79,7 @@ CategorizationWrapper = __decorate([
|
|
|
75
79
|
customElement({
|
|
76
80
|
name: 'categorization-wrapper',
|
|
77
81
|
styles,
|
|
82
|
+
shadowOptions: null,
|
|
78
83
|
template: html `
|
|
79
84
|
${(x) => CategorizationWrapperRendererTemplate(x.form.prefix)}
|
|
80
85
|
`,
|
|
@@ -2,50 +2,48 @@ import { MultiselectDatasource } from '@genesislcap/foundation-ui';
|
|
|
2
2
|
import { mapStateToControlProps, rankWith } from '@jsonforms/core';
|
|
3
3
|
import { html } from '@microsoft/fast-element';
|
|
4
4
|
import { isOneOfOptionMultiselect } from '../testers/isOneOfOptionMultiselect';
|
|
5
|
+
import { controlWrapperTemplate } from './ControlWrapperRenderer';
|
|
5
6
|
import { MULTISELECT_CONTROL_RANK } from './RenderersRanks';
|
|
6
7
|
MultiselectDatasource;
|
|
7
8
|
export const ConnectedMultiselectControlRendererTemplate = (prefix = 'zero') => html `
|
|
8
9
|
<template>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
></multiselect-datasource>
|
|
47
|
-
</${prefix}-multiselect>
|
|
48
|
-
</control-wrapper>
|
|
10
|
+
${controlWrapperTemplate({
|
|
11
|
+
prefix,
|
|
12
|
+
innerTemplate: html `
|
|
13
|
+
<${prefix}-multiselect
|
|
14
|
+
style="width: 100%"
|
|
15
|
+
async=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.async; }}
|
|
16
|
+
?disabled=${(x) => !x.control.enabled}
|
|
17
|
+
:selectedOptions=${(x) => {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
const selectedOptions = ((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
|
|
20
|
+
? (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.split((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter)
|
|
21
|
+
: x.control.data;
|
|
22
|
+
return selectedOptions || [];
|
|
23
|
+
}}
|
|
24
|
+
tabindex="${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.tabIndex; }}"
|
|
25
|
+
@selectionChange=${(x, c) => {
|
|
26
|
+
var _a, _b, _c;
|
|
27
|
+
const value = !((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
|
|
28
|
+
? c.event.detail
|
|
29
|
+
: (_b = c.event.detail) === null || _b === void 0 ? void 0 : _b.join((_c = x.control.uischema.options) === null || _c === void 0 ? void 0 : _c.delimiter);
|
|
30
|
+
x.control.handleChange(x.control.path, value);
|
|
31
|
+
x.$emit('change');
|
|
32
|
+
x.onBlur();
|
|
33
|
+
}}
|
|
34
|
+
id=${(x) => x.control.path}
|
|
35
|
+
data-test-id=${(x) => x.control.path}
|
|
36
|
+
>
|
|
37
|
+
<multiselect-datasource
|
|
38
|
+
resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
|
|
39
|
+
value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
|
|
40
|
+
label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
|
|
41
|
+
:data=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data; }}
|
|
42
|
+
:datasourceConfig=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.datasourceConfig; }}
|
|
43
|
+
></multiselect-datasource>
|
|
44
|
+
</${prefix}-multiselect>
|
|
45
|
+
`,
|
|
46
|
+
})}
|
|
49
47
|
</template>
|
|
50
48
|
`;
|
|
51
49
|
export const ConnectedMultiselectControlRendererEntry = {
|