@genesislcap/foundation-forms 14.429.1 → 14.429.2
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 +126 -35
- 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 +8 -0
- 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 +42 -3
- 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 +29 -3
- 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/types.d.ts +12 -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 +8 -0
- package/dist/esm/jsonforms/json-forms.js +27 -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 +160 -7
- 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 +62 -29
- 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/foundation-forms.api.json +575 -2
- package/dist/foundation-forms.d.ts +101 -10
- package/package.json +15 -15
|
@@ -1,60 +1,63 @@
|
|
|
1
1
|
import { mapStateToControlProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html } from '@microsoft/fast-element';
|
|
3
3
|
import { isOneOfNumber } from '../testers/isOneOfNumber';
|
|
4
|
+
import { controlWrapperTemplate } from './ControlWrapperRenderer';
|
|
4
5
|
import { NUMBER_CONTROL_RANK } from './RenderersRanks';
|
|
5
6
|
export const FilterNumberControlRendererTemplate = (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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
8
|
+
${controlWrapperTemplate({
|
|
9
|
+
prefix,
|
|
10
|
+
innerTemplate: html `
|
|
11
|
+
<${prefix}-text-field
|
|
12
|
+
:value=${(x) => { var _a; return (((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min) === undefined ? '' : x.control.data.min); }}
|
|
13
|
+
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; }}"
|
|
14
|
+
@change=${(x, c) => {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const value = parseFloat(c.event.target.value);
|
|
17
|
+
return x.control.handleChange(x.control.path, !isNaN(value)
|
|
18
|
+
? {
|
|
19
|
+
min: value,
|
|
20
|
+
max: ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max) < value ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max,
|
|
21
|
+
type: 'number',
|
|
22
|
+
}
|
|
23
|
+
: Object.assign(Object.assign({}, x.control.data), { min: undefined }));
|
|
24
|
+
}}
|
|
25
|
+
placeholder="Min"
|
|
26
|
+
id=${(x) => `min-${x.control.path}`}
|
|
27
|
+
data-test-id=${(x) => `min-${x.control.path}`}
|
|
28
|
+
@blur=${(x) => x.onBlur()}
|
|
29
|
+
style="width: 100%"
|
|
30
|
+
></${prefix}-text-field>
|
|
31
|
+
<span
|
|
32
|
+
style="
|
|
33
|
+
font-size: xx-large;
|
|
34
|
+
color: var(--neutral-stroke-divider-rest);
|
|
35
|
+
padding: calc(var(--design-unit) * 1px);"
|
|
36
|
+
>
|
|
37
|
+
-
|
|
38
|
+
</span>
|
|
39
|
+
<${prefix}-text-field
|
|
40
|
+
:value=${(x) => { var _a; return (((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max) === undefined ? '' : x.control.data.max); }}
|
|
41
|
+
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; }}"
|
|
42
|
+
@change=${(x, c) => {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const value = parseFloat(c.event.target.value);
|
|
45
|
+
return x.control.handleChange(x.control.path, !isNaN(value)
|
|
46
|
+
? {
|
|
47
|
+
min: ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min) > value ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min,
|
|
48
|
+
max: value,
|
|
49
|
+
type: 'number',
|
|
50
|
+
}
|
|
51
|
+
: Object.assign(Object.assign({}, x.control.data), { max: undefined }));
|
|
52
|
+
}}
|
|
53
|
+
placeholder="Max"
|
|
54
|
+
id=${(x) => `max-${x.control.path}`}
|
|
55
|
+
data-test-id=${(x) => `max-${x.control.path}`}
|
|
56
|
+
@blur=${(x) => x.onBlur()}
|
|
57
|
+
style="width: 100%"
|
|
58
|
+
></${prefix}-text-field>
|
|
59
|
+
`,
|
|
60
|
+
})}
|
|
58
61
|
</template>
|
|
59
62
|
`;
|
|
60
63
|
export const FilterNumberControlRendererEntry = {
|
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
import { mapStateToControlProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html } from '@microsoft/fast-element';
|
|
3
3
|
import { isOneOfTime } from '../testers/isTime';
|
|
4
|
+
import { controlWrapperTemplate } from './ControlWrapperRenderer';
|
|
4
5
|
import { TIME_CONTROL_RANK } from './RenderersRanks';
|
|
5
6
|
export const TimeControlRendererTemplate = (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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
</control-wrapper>
|
|
8
|
+
${controlWrapperTemplate({
|
|
9
|
+
prefix,
|
|
10
|
+
innerTemplate: html `
|
|
11
|
+
<${prefix}-text-field
|
|
12
|
+
:value=${(x) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
|
|
15
|
+
if (!time)
|
|
16
|
+
return '';
|
|
17
|
+
return `${time}`;
|
|
18
|
+
}}
|
|
19
|
+
id=${(x) => `min-${x.control.path}`}
|
|
20
|
+
type="time"
|
|
21
|
+
data-test-id=${(x) => `min-${x.control.path}`}
|
|
22
|
+
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; }}"
|
|
23
|
+
@blur=${(x, c) => {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
const minValue = c.event.target.control.value;
|
|
26
|
+
const maxValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
|
|
27
|
+
const setMin = minValue ? minValue : undefined;
|
|
28
|
+
const setMax = maxValue < minValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max;
|
|
29
|
+
x.control.handleChange(x.control.path, {
|
|
30
|
+
min: setMin,
|
|
31
|
+
max: setMax,
|
|
32
|
+
type: 'time',
|
|
33
|
+
});
|
|
34
|
+
x.onBlur();
|
|
35
|
+
}}
|
|
36
|
+
style="width: 100%"
|
|
37
|
+
></${prefix}-text-field>
|
|
38
|
+
<span
|
|
39
|
+
style="
|
|
40
|
+
font-size: xx-large;
|
|
41
|
+
color: var(--neutral-stroke-divider-rest);
|
|
42
|
+
padding: calc(var(--design-unit) * 1px);"
|
|
43
|
+
>
|
|
44
|
+
-
|
|
45
|
+
</span>
|
|
46
|
+
<${prefix}-text-field
|
|
47
|
+
:value=${(x) => {
|
|
48
|
+
var _a;
|
|
49
|
+
const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
|
|
50
|
+
if (!time)
|
|
51
|
+
return '';
|
|
52
|
+
return `${time}`;
|
|
53
|
+
}}
|
|
54
|
+
id=${(x) => `max-${x.control.path}`}
|
|
55
|
+
type="time"
|
|
56
|
+
data-test-id=${(x) => `max-${x.control.path}`}
|
|
57
|
+
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; }}"
|
|
58
|
+
@blur=${(x, c) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const maxValue = c.event.target.control.value;
|
|
61
|
+
const minValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
|
|
62
|
+
const setMin = minValue > maxValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min;
|
|
63
|
+
const setMax = maxValue ? maxValue : undefined;
|
|
64
|
+
x.control.handleChange(x.control.path, {
|
|
65
|
+
min: setMin,
|
|
66
|
+
max: setMax,
|
|
67
|
+
type: 'time',
|
|
68
|
+
});
|
|
69
|
+
x.onBlur();
|
|
70
|
+
}}
|
|
71
|
+
style="width: 100%"
|
|
72
|
+
></${prefix}-text-field>
|
|
73
|
+
`,
|
|
74
|
+
})}
|
|
75
75
|
</template>
|
|
76
76
|
`;
|
|
77
77
|
export const FilterTimeControlRendererEntry = {
|
|
@@ -79,5 +79,5 @@ export const FilterTimeControlRendererEntry = {
|
|
|
79
79
|
${(x) => TimeControlRendererTemplate(x.prefix)}
|
|
80
80
|
`,
|
|
81
81
|
tester: rankWith(TIME_CONTROL_RANK, isOneOfTime),
|
|
82
|
-
mapper: mapStateToControlProps,
|
|
82
|
+
mapper: mapStateToControlProps,
|
|
83
83
|
};
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { mapDispatchToArrayControlProps, mapStateToArrayLayoutProps, rankWith, } from '@jsonforms/core';
|
|
2
2
|
import { html } from '@microsoft/fast-element';
|
|
3
3
|
import { isArray } from '../testers/isArray';
|
|
4
|
+
import { controlWrapperTemplate } from './ControlWrapperRenderer';
|
|
4
5
|
import { LAYOUT_ARRAY_RANK } from './RenderersRanks';
|
|
5
6
|
const borderStyle = 'padding: 5px; border-radius: 3px; border: 1px solid var(--neutral-stroke-rest);';
|
|
6
7
|
export const LayoutArrayRendererTemplate = html `
|
|
7
8
|
<template>
|
|
8
9
|
<div style="${(x) => { var _a; return (((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.border) ? borderStyle : ''); }}">
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>
|
|
16
|
-
</control-wrapper>
|
|
10
|
+
${controlWrapperTemplate({
|
|
11
|
+
prefix: 'zero',
|
|
12
|
+
innerTemplate: html `
|
|
13
|
+
<array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>
|
|
14
|
+
`,
|
|
15
|
+
})}
|
|
17
16
|
</div>
|
|
18
17
|
</template>
|
|
19
18
|
`;
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
import { mapStateToLayoutProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html, repeat } from '@microsoft/fast-element';
|
|
3
|
-
import {
|
|
3
|
+
import { layoutWrapperTemplate } from './LayoutRenderer';
|
|
4
4
|
import { LAYOUT_FORM_GRID_RANK } from './RenderersRanks';
|
|
5
|
-
LayoutWrapper;
|
|
6
5
|
export const LayoutFormGridRendererTemplate = html `
|
|
7
6
|
<template>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
${layoutWrapperTemplate({
|
|
8
|
+
innerTemplate: html `
|
|
9
|
+
<div
|
|
10
|
+
style="
|
|
11
|
+
display: grid;
|
|
12
|
+
grid-template-columns: repeat(4, 1fr);
|
|
13
|
+
gap: 8px;
|
|
14
|
+
"
|
|
15
|
+
>
|
|
16
|
+
${repeat((x) => x.control.uischema.elements, html `
|
|
17
|
+
<dispatch-renderer
|
|
18
|
+
?submitted=${(x, ctx) => ctx.parent.submitted}
|
|
19
|
+
:dispatch=${(x, ctx) => ctx.parent.dispatch}
|
|
20
|
+
:jsonforms=${(x, ctx) => ctx.parent.jsonforms}
|
|
21
|
+
:prefix=${(x, ctx) => ctx.parent.prefix}
|
|
22
|
+
:props=${(x, ctx) => ({
|
|
23
|
+
uischema: x,
|
|
24
|
+
schema: ctx.parent.control.schema,
|
|
25
|
+
renderers: ctx.parent.control.renderers,
|
|
26
|
+
path: ctx.parent.control.path,
|
|
27
|
+
enabled: ctx.parent.control.enabled,
|
|
28
|
+
})}
|
|
29
|
+
></dispatch-renderer>
|
|
30
|
+
`)}
|
|
31
|
+
</div>
|
|
32
|
+
`,
|
|
28
33
|
})}
|
|
29
|
-
></dispatch-renderer>
|
|
30
|
-
`)}
|
|
31
|
-
</div>
|
|
32
|
-
</layout-wrapper>
|
|
33
34
|
</template>
|
|
34
35
|
`;
|
|
35
36
|
export const LayoutFormGridEntry = {
|
|
@@ -1,41 +1,45 @@
|
|
|
1
1
|
import { isGroup, mapStateToLayoutProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html, repeat, when } from '@microsoft/fast-element';
|
|
3
|
+
import { layoutWrapperTemplate } from './LayoutRenderer';
|
|
3
4
|
import { LAYOUT_GROUP_RANK } from './RenderersRanks';
|
|
4
5
|
export const LayoutGroupRendererTemplate = html `
|
|
5
6
|
<template>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
7
|
+
${layoutWrapperTemplate({
|
|
8
|
+
hideLabel: true,
|
|
9
|
+
innerTemplate: html `
|
|
10
|
+
<div>
|
|
11
|
+
${when((x) => x.control.label, html `
|
|
12
|
+
<div
|
|
13
|
+
for="${(x) => x.control.path + '-wrapper'}"
|
|
14
|
+
style="color: var(--neutral-foreground-rest);
|
|
15
|
+
padding-bottom: calc(var(--design-unit) * 1px);
|
|
16
|
+
margin-bottom: calc(var(--design-unit) * 4px);
|
|
17
|
+
font-weight: 600;
|
|
18
|
+
font-size: var(--type-ramp-base-font-size);
|
|
19
|
+
display: flex;
|
|
20
|
+
justify-content: space-between;"
|
|
21
|
+
>
|
|
22
|
+
${(x) => x.control.label}
|
|
23
|
+
</div>
|
|
24
|
+
`)}
|
|
25
|
+
${repeat((x) => x.control.uischema.options.childElements, html `
|
|
26
|
+
<dispatch-renderer
|
|
27
|
+
?submitted=${(x, ctx) => ctx.parent.submitted}
|
|
28
|
+
:dispatch=${(x, ctx) => ctx.parent.dispatch}
|
|
29
|
+
:jsonforms=${(x, ctx) => ctx.parent.jsonforms}
|
|
30
|
+
:prefix=${(x, ctx) => ctx.parent.prefix}
|
|
31
|
+
:props=${(x, ctx) => ({
|
|
32
|
+
uischema: x,
|
|
33
|
+
schema: ctx.parent.control.schema,
|
|
34
|
+
renderers: ctx.parent.control.renderers,
|
|
35
|
+
path: ctx.parent.control.path,
|
|
36
|
+
enabled: ctx.parent.control.enabled,
|
|
37
|
+
})}
|
|
38
|
+
></dispatch-renderer>
|
|
39
|
+
`)}
|
|
40
|
+
</div>
|
|
41
|
+
`,
|
|
34
42
|
})}
|
|
35
|
-
></dispatch-renderer>
|
|
36
|
-
`)}
|
|
37
|
-
</div>
|
|
38
|
-
</layout-wrapper>
|
|
39
43
|
</template>
|
|
40
44
|
`;
|
|
41
45
|
export const LayoutGroupRendererEntry = {
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
import { mapStateToLayoutProps, rankWith } from '@jsonforms/core';
|
|
2
2
|
import { html, repeat } from '@microsoft/fast-element';
|
|
3
|
-
import {
|
|
3
|
+
import { layoutWrapperTemplate } from './LayoutRenderer';
|
|
4
4
|
import { LAYOUT_HORIZONTAL_RANK } from './RenderersRanks';
|
|
5
|
-
LayoutWrapper;
|
|
6
5
|
export const LayoutHorizontalRendererTemplate = html `
|
|
7
6
|
<template>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
${layoutWrapperTemplate({
|
|
8
|
+
innerTemplate: html `
|
|
9
|
+
<div
|
|
10
|
+
style="
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: row;
|
|
13
|
+
gap: 10px"
|
|
14
|
+
>
|
|
15
|
+
${repeat((x) => x.control.uischema.elements, html `
|
|
16
|
+
<dispatch-renderer
|
|
17
|
+
style="flex: 1; min-width: 0"
|
|
18
|
+
?submitted=${(x, ctx) => ctx.parent.submitted}
|
|
19
|
+
:dispatch=${(x, ctx) => ctx.parent.dispatch}
|
|
20
|
+
:jsonforms=${(x, ctx) => ctx.parent.jsonforms}
|
|
21
|
+
:prefix=${(x, ctx) => ctx.parent.prefix}
|
|
22
|
+
:props=${(x, ctx) => ({
|
|
23
|
+
uischema: x,
|
|
24
|
+
schema: ctx.parent.control.schema,
|
|
25
|
+
renderers: ctx.parent.control.renderers,
|
|
26
|
+
path: ctx.parent.control.path,
|
|
27
|
+
enabled: ctx.parent.control.enabled,
|
|
28
|
+
})}
|
|
29
|
+
></dispatch-renderer>
|
|
30
|
+
`)}
|
|
31
|
+
</div>
|
|
32
|
+
`,
|
|
28
33
|
})}
|
|
29
|
-
></dispatch-renderer>
|
|
30
|
-
`)}
|
|
31
|
-
</div>
|
|
32
|
-
</layout-wrapper>
|
|
33
34
|
</template>
|
|
34
35
|
`;
|
|
35
36
|
export const LayoutHorizontalEntry = {
|
|
@@ -1,12 +1,73 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { isLayout, mapStateToLayoutProps, rankWith } from '@jsonforms/core';
|
|
3
|
-
import { attr, customElement,
|
|
3
|
+
import { FASTElement, attr, customElement, html, observable, repeat, when, } from '@microsoft/fast-element';
|
|
4
|
+
import { logger } from '../../utils/logger';
|
|
4
5
|
import { LAYOUT_RANK } from './RenderersRanks';
|
|
6
|
+
/**
|
|
7
|
+
* Light-DOM-friendly layout wrapper that replaces the former `<layout-wrapper>`
|
|
8
|
+
* custom element. Renders the (optional) control label and, when the control is
|
|
9
|
+
* visible, composes the provided inner template inline so that bindings stay on
|
|
10
|
+
* the `DispatchRenderer` source.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export const layoutWrapperTemplate = (options) => {
|
|
15
|
+
const { innerTemplate, hideLabel = false } = options;
|
|
16
|
+
return html `
|
|
17
|
+
${when((x) => { var _a; return !!((_a = x.control) === null || _a === void 0 ? void 0 : _a.label) && !hideLabel; }, html `
|
|
18
|
+
<div style="color: var(--neutral-foreground-hint);">${(x) => x.control.label}</div>
|
|
19
|
+
`)}
|
|
20
|
+
${when((x) => { var _a; return (_a = x.control) === null || _a === void 0 ? void 0 : _a.visible; }, innerTemplate)}
|
|
21
|
+
`;
|
|
22
|
+
};
|
|
23
|
+
export const LayoutRendererTemplate = html `
|
|
24
|
+
<template>
|
|
25
|
+
${layoutWrapperTemplate({
|
|
26
|
+
innerTemplate: html `
|
|
27
|
+
<div>
|
|
28
|
+
${repeat((x) => x.control.uischema.elements, html `
|
|
29
|
+
<dispatch-renderer
|
|
30
|
+
?submitted=${(x, ctx) => ctx.parent.submitted}
|
|
31
|
+
:dispatch=${(x, ctx) => ctx.parent.dispatch}
|
|
32
|
+
:jsonforms=${(x, ctx) => ctx.parent.jsonforms}
|
|
33
|
+
:prefix=${(x, ctx) => ctx.parent.prefix}
|
|
34
|
+
:props=${(x, ctx) => ({
|
|
35
|
+
uischema: x,
|
|
36
|
+
schema: ctx.parent.control.schema,
|
|
37
|
+
renderers: ctx.parent.control.renderers,
|
|
38
|
+
path: ctx.parent.control.path,
|
|
39
|
+
enabled: ctx.parent.control.enabled,
|
|
40
|
+
})}
|
|
41
|
+
></dispatch-renderer>
|
|
42
|
+
`)}
|
|
43
|
+
</div>
|
|
44
|
+
`,
|
|
45
|
+
})}
|
|
46
|
+
</template>
|
|
47
|
+
`;
|
|
48
|
+
export const LayoutRendererEntry = {
|
|
49
|
+
renderer: LayoutRendererTemplate,
|
|
50
|
+
tester: rankWith(LAYOUT_RANK, isLayout),
|
|
51
|
+
mapper: mapStateToLayoutProps,
|
|
52
|
+
};
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Deprecated: <layout-wrapper> custom element
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use `layoutWrapperTemplate` instead. The `<layout-wrapper>` custom element
|
|
58
|
+
* will be removed in a future major version. Migrate to the light-DOM `layoutWrapperTemplate`
|
|
59
|
+
* function which renders inline within the parent renderer's template.
|
|
60
|
+
*/
|
|
5
61
|
let LayoutWrapper = class LayoutWrapper extends FASTElement {
|
|
6
62
|
constructor() {
|
|
7
63
|
super(...arguments);
|
|
8
64
|
this.hideLabel = false;
|
|
9
65
|
}
|
|
66
|
+
connectedCallback() {
|
|
67
|
+
super.connectedCallback();
|
|
68
|
+
logger.warn('<layout-wrapper> is deprecated and will be removed in a future major version. ' +
|
|
69
|
+
'Migrate to the `layoutWrapperTemplate` function for light-DOM rendering.');
|
|
70
|
+
}
|
|
10
71
|
};
|
|
11
72
|
__decorate([
|
|
12
73
|
observable
|
|
@@ -28,31 +89,3 @@ LayoutWrapper = __decorate([
|
|
|
28
89
|
})
|
|
29
90
|
], LayoutWrapper);
|
|
30
91
|
export { LayoutWrapper };
|
|
31
|
-
export const LayoutRendererTemplate = html `
|
|
32
|
-
<template>
|
|
33
|
-
<layout-wrapper :control=${(x) => x.control}>
|
|
34
|
-
<div>
|
|
35
|
-
${repeat((x) => x.control.uischema.elements, html `
|
|
36
|
-
<dispatch-renderer
|
|
37
|
-
?submitted=${(x, ctx) => ctx.parent.submitted}
|
|
38
|
-
:dispatch=${(x, ctx) => ctx.parent.dispatch}
|
|
39
|
-
:jsonforms=${(x, ctx) => ctx.parent.jsonforms}
|
|
40
|
-
:prefix=${(x, ctx) => ctx.parent.prefix}
|
|
41
|
-
:props=${(x, ctx) => ({
|
|
42
|
-
uischema: x,
|
|
43
|
-
schema: ctx.parent.control.schema,
|
|
44
|
-
renderers: ctx.parent.control.renderers,
|
|
45
|
-
path: ctx.parent.control.path,
|
|
46
|
-
enabled: ctx.parent.control.enabled,
|
|
47
|
-
})}
|
|
48
|
-
></dispatch-renderer>
|
|
49
|
-
`)}
|
|
50
|
-
</div>
|
|
51
|
-
</layout-wrapper>
|
|
52
|
-
</template>
|
|
53
|
-
`;
|
|
54
|
-
export const LayoutRendererEntry = {
|
|
55
|
-
renderer: LayoutRendererTemplate,
|
|
56
|
-
tester: rankWith(LAYOUT_RANK, isLayout),
|
|
57
|
-
mapper: mapStateToLayoutProps,
|
|
58
|
-
};
|