@genesislcap/foundation-forms 14.427.2-alpha-e0ffaad.0 → 14.428.1-alpha-035cbdd.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 +428 -346
- package/dist/dts/filters/filters.template.d.ts.map +1 -1
- package/dist/dts/form.d.ts +10 -4
- 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 +0 -2
- package/dist/dts/index.d.ts.map +1 -1
- 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 +11 -31
- package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +1 -2
- 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 +1 -2
- package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts +1 -2
- package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +5 -21
- package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -1
- package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +1 -2
- 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 +1 -2
- 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/react.d.ts +20 -0
- package/dist/dts/types.d.ts +0 -12
- package/dist/dts/types.d.ts.map +1 -1
- package/dist/esm/filters/filters.template.js +2 -1
- package/dist/esm/form.js +1 -2
- package/dist/esm/form.styles.js +40 -14
- package/dist/esm/form.template.js +2 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/jsonforms/json-forms.js +1 -27
- package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +46 -48
- package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +20 -19
- package/dist/esm/jsonforms/renderers/CategorizationWrapperRenderer.js +4 -9
- package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +40 -38
- package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +39 -39
- package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +131 -102
- package/dist/esm/jsonforms/renderers/DateControlRenderer.js +43 -41
- package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +27 -27
- package/dist/esm/jsonforms/renderers/EnumRadioGroupControlRenderer.js +32 -30
- package/dist/esm/jsonforms/renderers/FilterDateControlRenderer.js +77 -81
- package/dist/esm/jsonforms/renderers/FilterNumberControlRenderer.js +51 -54
- package/dist/esm/jsonforms/renderers/FilterTimeControlRenderer.js +69 -69
- package/dist/esm/jsonforms/renderers/LayoutArrayRenderer.js +8 -7
- package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +26 -27
- package/dist/esm/jsonforms/renderers/LayoutGroupRenderer.js +32 -36
- package/dist/esm/jsonforms/renderers/LayoutHorizontalRenderer.js +26 -27
- package/dist/esm/jsonforms/renderers/LayoutRenderer.js +44 -36
- package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +17 -18
- package/dist/esm/jsonforms/renderers/MulticolumnDropdownControlRenderer.js +41 -39
- package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +30 -30
- package/dist/esm/jsonforms/renderers/SegmentedControlRenderer.js +27 -25
- package/dist/esm/jsonforms/renderers/StepperWrapperRenderer.js +1 -2
- package/dist/esm/jsonforms/renderers/StringArrayControlRenderer.js +20 -18
- package/dist/esm/jsonforms/renderers/StringControlRenderer.js +42 -41
- package/dist/esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js +9 -13
- package/dist/esm/jsonforms/renderers/dispatch-renderer.js +0 -1
- package/dist/foundation-forms.api.json +2 -114
- package/dist/foundation-forms.d.ts +10 -69
- package/dist/react.cjs +14 -0
- package/dist/react.mjs +12 -0
- package/package.json +15 -15
package/dist/esm/form.styles.js
CHANGED
|
@@ -2,7 +2,6 @@ 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';
|
|
6
5
|
/** @internal */
|
|
7
6
|
export const comboboxRendererStyles = (prefix = 'zero') => `
|
|
8
7
|
${prefix}-combobox::part(listbox) {
|
|
@@ -12,9 +11,7 @@ export const comboboxRendererStyles = (prefix = 'zero') => `
|
|
|
12
11
|
`;
|
|
13
12
|
/** @internal */
|
|
14
13
|
export const foundationFormStyles = css `
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
foundation-form {
|
|
14
|
+
:host {
|
|
18
15
|
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
19
16
|
margin: 0;
|
|
20
17
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
@@ -28,7 +25,32 @@ export const foundationFormStyles = css `
|
|
|
28
25
|
box-sizing: border-box;
|
|
29
26
|
}
|
|
30
27
|
|
|
31
|
-
|
|
28
|
+
.form-grid-compact {
|
|
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 {
|
|
32
54
|
display: flex;
|
|
33
55
|
flex-direction: row;
|
|
34
56
|
align-items: flex-end;
|
|
@@ -37,18 +59,22 @@ export const foundationFormStyles = css `
|
|
|
37
59
|
gap: 10px;
|
|
38
60
|
}
|
|
39
61
|
|
|
40
|
-
|
|
62
|
+
.error {
|
|
63
|
+
border-bottom: 2px solid red;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.approval-message-actions {
|
|
41
67
|
display: flex;
|
|
42
68
|
justify-content: flex-end;
|
|
43
69
|
gap: calc(${designUnit} * 2px);
|
|
44
70
|
margin-top: calc(${designUnit} * 2px);
|
|
45
71
|
}
|
|
46
72
|
|
|
47
|
-
|
|
73
|
+
.submit-button {
|
|
48
74
|
margin: 0;
|
|
49
75
|
}
|
|
50
76
|
|
|
51
|
-
|
|
77
|
+
.csv-upload-section {
|
|
52
78
|
display: flex;
|
|
53
79
|
align-items: center;
|
|
54
80
|
gap: calc(${designUnit} * 3px);
|
|
@@ -56,13 +82,13 @@ export const foundationFormStyles = css `
|
|
|
56
82
|
margin-bottom: calc(${designUnit} * 2px);
|
|
57
83
|
}
|
|
58
84
|
|
|
59
|
-
|
|
85
|
+
.csv-file-input {
|
|
60
86
|
display: none;
|
|
61
87
|
}
|
|
62
88
|
|
|
63
89
|
/* Card-like styling for CSV buttons - matches array item aesthetic */
|
|
64
|
-
|
|
65
|
-
|
|
90
|
+
.csv-template-button,
|
|
91
|
+
.csv-import-button {
|
|
66
92
|
display: flex;
|
|
67
93
|
align-items: center;
|
|
68
94
|
gap: calc(${designUnit} * 1px);
|
|
@@ -78,14 +104,14 @@ export const foundationFormStyles = css `
|
|
|
78
104
|
border-color 0.15s ease;
|
|
79
105
|
}
|
|
80
106
|
|
|
81
|
-
|
|
82
|
-
|
|
107
|
+
.csv-template-button:hover,
|
|
108
|
+
.csv-import-button:hover {
|
|
83
109
|
box-shadow:
|
|
84
110
|
0 2px 4px rgb(0 0 0 / 6%),
|
|
85
111
|
0 6px 12px rgb(0 0 0 / 8%);
|
|
86
112
|
}
|
|
87
113
|
`.withBehaviors(forcedColorsStylesheetBehavior(css `
|
|
88
|
-
|
|
114
|
+
:host {
|
|
89
115
|
background: ${SystemColors.Canvas};
|
|
90
116
|
border-color: ${SystemColors.CanvasText};
|
|
91
117
|
}
|
|
@@ -3,10 +3,11 @@ 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';
|
|
6
7
|
import { DispatchRenderer } from './jsonforms/renderers/dispatch-renderer';
|
|
7
8
|
import { StepperWrapper } from './jsonforms/renderers/StepperWrapperRenderer';
|
|
8
9
|
import { VerticalCategorizationWrapper } from './jsonforms/renderers/VerticalCategorizationWrapperRenderer';
|
|
9
|
-
avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper, DispatchRenderer, StepperWrapper);
|
|
10
|
+
avoidTreeShaking(JSONForms, ArrayListWrapper, CategorizationWrapper, VerticalCategorizationWrapper, ControlWrapper, DispatchRenderer, StepperWrapper);
|
|
10
11
|
/** @internal */
|
|
11
12
|
export const getPrefixedForm = (prefix) => html `
|
|
12
13
|
<template>
|
package/dist/esm/index.js
CHANGED
|
@@ -4,7 +4,5 @@ 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';
|
|
9
7
|
export * from './types';
|
|
10
8
|
export * from './utils';
|
|
@@ -49,10 +49,6 @@ 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);
|
|
56
52
|
this.$emit('data-change', {
|
|
57
53
|
data: this.jsonforms.core.data,
|
|
58
54
|
errors: this.jsonforms.core.errors,
|
|
@@ -149,28 +145,7 @@ let JSONForms = class JSONForms extends FASTElement {
|
|
|
149
145
|
this.schemaChanged();
|
|
150
146
|
}
|
|
151
147
|
dataChanged() {
|
|
152
|
-
|
|
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
|
+
this.schemaChanged();
|
|
174
149
|
}
|
|
175
150
|
renderersChanged() {
|
|
176
151
|
this.schemaChanged();
|
|
@@ -285,7 +260,6 @@ JSONForms = __decorate([
|
|
|
285
260
|
display: flex;
|
|
286
261
|
}
|
|
287
262
|
`,
|
|
288
|
-
shadowOptions: null,
|
|
289
263
|
})
|
|
290
264
|
], JSONForms);
|
|
291
265
|
export { JSONForms };
|
|
@@ -185,7 +185,7 @@ export const ArrayListWrapperRendererTemplate = (prefix = 'zero') => html `
|
|
|
185
185
|
</template>
|
|
186
186
|
`;
|
|
187
187
|
const styles = css `
|
|
188
|
-
|
|
188
|
+
:host {
|
|
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
|
-
|
|
208
|
+
.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
|
-
|
|
225
|
+
.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
|
-
|
|
230
|
+
.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
|
-
|
|
236
|
+
.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
|
-
|
|
248
|
+
.array-list.row-status-success::before {
|
|
249
249
|
background: var(--row-status-success-color);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
|
|
252
|
+
.array-list.row-status-failed::before {
|
|
253
253
|
background: var(--row-status-failed-color);
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
|
|
256
|
+
.array-list.row-status-submitting::before {
|
|
257
257
|
background: var(--row-status-submitting-color);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
.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
|
-
|
|
264
|
+
.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
|
-
|
|
268
|
+
.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
|
-
|
|
272
|
+
.row-status-indicator {
|
|
273
273
|
display: flex;
|
|
274
274
|
align-items: center;
|
|
275
275
|
justify-content: center;
|
|
@@ -278,65 +278,64 @@ const styles = css `
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
/* Hide all status indicators by default */
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
.row-status-indicator .status-spinner,
|
|
282
|
+
.row-status-indicator .status-success,
|
|
283
|
+
.row-status-indicator .status-failed {
|
|
284
284
|
display: none;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
/* Show spinner when submitting */
|
|
288
|
-
|
|
288
|
+
.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
|
-
|
|
293
|
+
.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
|
-
|
|
298
|
+
.array-list.row-status-failed .row-status-indicator .status-failed {
|
|
299
299
|
display: flex;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
.status-icon {
|
|
303
303
|
width: calc(${designUnit} * 4px);
|
|
304
304
|
height: calc(${designUnit} * 4px);
|
|
305
305
|
}
|
|
306
306
|
|
|
307
|
-
|
|
307
|
+
.status-success {
|
|
308
308
|
color: var(--row-status-success-color);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
|
|
311
|
+
.status-failed {
|
|
312
312
|
color: var(--row-status-failed-color);
|
|
313
313
|
cursor: help;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
-
|
|
316
|
+
.status-spinner {
|
|
317
317
|
width: calc(${designUnit} * 4px);
|
|
318
318
|
height: calc(${designUnit} * 4px);
|
|
319
319
|
}
|
|
320
320
|
|
|
321
|
-
|
|
321
|
+
.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
|
-
|
|
326
|
+
.item-control-btn:hover {
|
|
327
327
|
color: var(--accent-foreground-hover);
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
-
|
|
330
|
+
.row-submit-btn {
|
|
331
331
|
min-width: calc(${designUnit} * 8px);
|
|
332
332
|
}
|
|
333
333
|
|
|
334
|
-
|
|
334
|
+
.row-submit-btn[disabled] {
|
|
335
335
|
opacity: 0.5;
|
|
336
336
|
cursor: not-allowed;
|
|
337
337
|
}
|
|
338
|
-
|
|
339
|
-
array-list-wrapper .button-group {
|
|
338
|
+
.button-group {
|
|
340
339
|
display: flex;
|
|
341
340
|
flex-direction: column;
|
|
342
341
|
gap: 8px;
|
|
@@ -344,7 +343,7 @@ const styles = css `
|
|
|
344
343
|
|
|
345
344
|
/* ── Grid view ────────────────────────────────────────────── */
|
|
346
345
|
|
|
347
|
-
|
|
346
|
+
.grid-header {
|
|
348
347
|
display: flex;
|
|
349
348
|
align-items: center;
|
|
350
349
|
gap: 10px;
|
|
@@ -358,14 +357,14 @@ const styles = css `
|
|
|
358
357
|
letter-spacing: 0.04em;
|
|
359
358
|
}
|
|
360
359
|
|
|
361
|
-
|
|
360
|
+
.grid-header-status-spacer {
|
|
362
361
|
width: var(--grid-status-track-width);
|
|
363
362
|
min-width: var(--grid-status-track-width);
|
|
364
363
|
flex: 0 0 var(--grid-status-track-width);
|
|
365
364
|
flex-shrink: 0;
|
|
366
365
|
}
|
|
367
366
|
|
|
368
|
-
|
|
367
|
+
.grid-header-cell {
|
|
369
368
|
flex: 1;
|
|
370
369
|
min-width: 0;
|
|
371
370
|
overflow: hidden;
|
|
@@ -376,28 +375,28 @@ const styles = css `
|
|
|
376
375
|
gap: 4px;
|
|
377
376
|
}
|
|
378
377
|
|
|
379
|
-
|
|
378
|
+
.grid-header-actions {
|
|
380
379
|
width: var(--grid-actions-track-width);
|
|
381
380
|
min-width: var(--grid-actions-track-width);
|
|
382
381
|
flex: 0 0 var(--grid-actions-track-width);
|
|
383
382
|
text-align: center;
|
|
384
383
|
}
|
|
385
384
|
|
|
386
|
-
|
|
385
|
+
.grid-header-label-text {
|
|
387
386
|
overflow: hidden;
|
|
388
387
|
text-overflow: ellipsis;
|
|
389
388
|
}
|
|
390
389
|
|
|
391
|
-
|
|
390
|
+
.grid-header-required-indicator {
|
|
392
391
|
color: var(--accent-foreground-rest, #0078d4);
|
|
393
392
|
}
|
|
394
393
|
|
|
395
|
-
|
|
394
|
+
.grid-header-tooltip {
|
|
396
395
|
color: var(--neutral-foreground-rest, rgb(217, 223, 224));
|
|
397
396
|
cursor: help;
|
|
398
397
|
}
|
|
399
398
|
|
|
400
|
-
|
|
399
|
+
.array-list.grid-row {
|
|
401
400
|
border: none;
|
|
402
401
|
border-radius: 0;
|
|
403
402
|
box-shadow: none;
|
|
@@ -409,54 +408,54 @@ const styles = css `
|
|
|
409
408
|
gap: 10px;
|
|
410
409
|
}
|
|
411
410
|
|
|
412
|
-
|
|
411
|
+
.array-list.grid-row::before {
|
|
413
412
|
display: none;
|
|
414
413
|
}
|
|
415
414
|
|
|
416
|
-
|
|
415
|
+
.array-list.grid-row:nth-child(odd) {
|
|
417
416
|
background-color: var(--neutral-layer-2, rgba(0, 0, 0, 0.02));
|
|
418
417
|
}
|
|
419
418
|
|
|
420
|
-
|
|
419
|
+
.array-list.grid-row:nth-child(even) {
|
|
421
420
|
background-color: var(--neutral-layer-1, #fff);
|
|
422
421
|
}
|
|
423
422
|
|
|
424
|
-
|
|
423
|
+
.array-list.grid-row:hover {
|
|
425
424
|
background-color: var(--neutral-fill-stealth-hover, rgba(0, 0, 0, 0.06));
|
|
426
425
|
box-shadow: none;
|
|
427
426
|
}
|
|
428
427
|
|
|
429
|
-
|
|
428
|
+
.array-list.grid-row > dispatch-renderer {
|
|
430
429
|
--control-label-margin: 0;
|
|
431
430
|
}
|
|
432
431
|
|
|
433
|
-
|
|
432
|
+
.array-list.grid-row .row-status-indicator {
|
|
434
433
|
width: var(--grid-status-track-width);
|
|
435
434
|
min-width: var(--grid-status-track-width);
|
|
436
435
|
margin-right: 0;
|
|
437
436
|
flex: 0 0 var(--grid-status-track-width);
|
|
438
437
|
}
|
|
439
438
|
|
|
440
|
-
|
|
439
|
+
.array-list.grid-row .button-group {
|
|
441
440
|
width: var(--grid-actions-track-width);
|
|
442
441
|
min-width: var(--grid-actions-track-width);
|
|
443
442
|
flex: 0 0 var(--grid-actions-track-width);
|
|
444
443
|
align-items: center;
|
|
445
444
|
}
|
|
446
445
|
|
|
447
|
-
|
|
446
|
+
.array-list.grid-row .item-control-btn {
|
|
448
447
|
margin-left: 0;
|
|
449
448
|
}
|
|
450
449
|
|
|
451
|
-
|
|
450
|
+
.array-list.grid-row.row-status-success {
|
|
452
451
|
background-color: color-mix(in srgb, var(--row-status-success-color), transparent 90%);
|
|
453
452
|
}
|
|
454
453
|
|
|
455
|
-
|
|
454
|
+
.array-list.grid-row.row-status-failed {
|
|
456
455
|
background-color: color-mix(in srgb, var(--row-status-failed-color), transparent 90%);
|
|
457
456
|
}
|
|
458
457
|
|
|
459
|
-
|
|
458
|
+
.array-list.grid-row.row-status-submitting {
|
|
460
459
|
background-color: color-mix(in srgb, var(--row-status-submitting-color), transparent 95%);
|
|
461
460
|
}
|
|
462
461
|
`;
|
|
@@ -525,7 +524,6 @@ ArrayListWrapper = __decorate([
|
|
|
525
524
|
customElement({
|
|
526
525
|
name: 'array-list-wrapper',
|
|
527
526
|
styles,
|
|
528
|
-
shadowOptions: null,
|
|
529
527
|
template: html `
|
|
530
528
|
${(x) => ArrayListWrapperRendererTemplate(x.form.prefix)}
|
|
531
529
|
`,
|
|
@@ -1,28 +1,29 @@
|
|
|
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';
|
|
5
4
|
import { BOOLEAN_CONTROL_RANK } from './RenderersRanks';
|
|
6
5
|
export const BooleanControlRendererTemplate = (prefix = 'zero') => html `
|
|
7
6
|
<template>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
x.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
7
|
+
<control-wrapper
|
|
8
|
+
:control=${(x) => x.control}
|
|
9
|
+
:jsonForms=${(x) => x.jsonforms}
|
|
10
|
+
:touched=${(x) => x.touched}
|
|
11
|
+
?submitted=${(x) => x.submitted}
|
|
12
|
+
>
|
|
13
|
+
<${prefix}-checkbox
|
|
14
|
+
?checked=${(x) => x.control.data}
|
|
15
|
+
?disabled=${(x) => !x.control.enabled}
|
|
16
|
+
:autofocus=${(x) => x.control.config.focus}
|
|
17
|
+
:placeholder=${(x) => x.control.config.placeholder}
|
|
18
|
+
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; }}"
|
|
19
|
+
@change=${(x, c) => {
|
|
20
|
+
x.control.handleChange(x.control.path, c.event.target.checked);
|
|
21
|
+
x.onBlur();
|
|
22
|
+
}}
|
|
23
|
+
id=${(x) => x.control.path}
|
|
24
|
+
data-test-id=${(x) => x.control.path}
|
|
25
|
+
></${prefix}-checkbox>
|
|
26
|
+
</control-wrapper>
|
|
26
27
|
</template>
|
|
27
28
|
`;
|
|
28
29
|
export const BooleanControlEntry = {
|
|
@@ -40,21 +40,17 @@ export const CategorizationWrapperRendererTemplate = (prefix = 'zero') => html `
|
|
|
40
40
|
</template>
|
|
41
41
|
`;
|
|
42
42
|
const styles = css `
|
|
43
|
-
|
|
43
|
+
.tabs-container::part(tablist) {
|
|
44
44
|
background-color: transparent;
|
|
45
45
|
border-bottom: none;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
.tab-control {
|
|
49
49
|
box-shadow: none;
|
|
50
|
+
${tabControlIconStyles}
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
margin-left: 3px;
|
|
54
|
-
color: #f9644d;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
categorization-wrapper .tab-panel-control {
|
|
53
|
+
.tab-panel-control {
|
|
58
54
|
margin-top: 10px;
|
|
59
55
|
}
|
|
60
56
|
`;
|
|
@@ -79,7 +75,6 @@ CategorizationWrapper = __decorate([
|
|
|
79
75
|
customElement({
|
|
80
76
|
name: 'categorization-wrapper',
|
|
81
77
|
styles,
|
|
82
|
-
shadowOptions: null,
|
|
83
78
|
template: html `
|
|
84
79
|
${(x) => CategorizationWrapperRendererTemplate(x.form.prefix)}
|
|
85
80
|
`,
|
|
@@ -2,48 +2,50 @@ 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';
|
|
6
5
|
import { MULTISELECT_CONTROL_RANK } from './RenderersRanks';
|
|
7
6
|
MultiselectDatasource;
|
|
8
7
|
export const ConnectedMultiselectControlRendererTemplate = (prefix = 'zero') => html `
|
|
9
8
|
<template>
|
|
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
|
-
|
|
9
|
+
<control-wrapper
|
|
10
|
+
:control=${(x) => x.control}
|
|
11
|
+
:jsonForms=${(x) => x.jsonforms}
|
|
12
|
+
:touched=${(x) => x.touched}
|
|
13
|
+
?submitted=${(x) => x.submitted}
|
|
14
|
+
prefix="${prefix}"
|
|
15
|
+
>
|
|
16
|
+
<${prefix}-multiselect
|
|
17
|
+
style="width: 100%"
|
|
18
|
+
async=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.async; }}
|
|
19
|
+
?disabled=${(x) => !x.control.enabled}
|
|
20
|
+
:selectedOptions=${(x) => {
|
|
21
|
+
var _a, _b, _c;
|
|
22
|
+
const selectedOptions = ((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
|
|
23
|
+
? (_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)
|
|
24
|
+
: x.control.data;
|
|
25
|
+
return selectedOptions || [];
|
|
26
|
+
}}
|
|
27
|
+
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; }}"
|
|
28
|
+
@selectionChange=${(x, c) => {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
const value = !((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.delimiter)
|
|
31
|
+
? c.event.detail
|
|
32
|
+
: (_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);
|
|
33
|
+
x.control.handleChange(x.control.path, value);
|
|
34
|
+
x.$emit('change');
|
|
35
|
+
x.onBlur();
|
|
36
|
+
}}
|
|
37
|
+
id=${(x) => x.control.path}
|
|
38
|
+
data-test-id=${(x) => x.control.path}
|
|
39
|
+
>
|
|
40
|
+
<multiselect-datasource
|
|
41
|
+
resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
|
|
42
|
+
value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
|
|
43
|
+
label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
|
|
44
|
+
:data=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data; }}
|
|
45
|
+
:datasourceConfig=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.datasourceConfig; }}
|
|
46
|
+
></multiselect-datasource>
|
|
47
|
+
</${prefix}-multiselect>
|
|
48
|
+
</control-wrapper>
|
|
47
49
|
</template>
|
|
48
50
|
`;
|
|
49
51
|
export const ConnectedMultiselectControlRendererEntry = {
|