@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.
Files changed (88) hide show
  1. package/dist/custom-elements.json +428 -346
  2. package/dist/dts/filters/filters.template.d.ts.map +1 -1
  3. package/dist/dts/form.d.ts +10 -4
  4. package/dist/dts/form.d.ts.map +1 -1
  5. package/dist/dts/form.styles.d.ts.map +1 -1
  6. package/dist/dts/form.template.d.ts.map +1 -1
  7. package/dist/dts/index.d.ts +0 -2
  8. package/dist/dts/index.d.ts.map +1 -1
  9. package/dist/dts/jsonforms/json-forms.d.ts.map +1 -1
  10. package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts.map +1 -1
  11. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -1
  12. package/dist/dts/jsonforms/renderers/CategorizationWrapperRenderer.d.ts.map +1 -1
  13. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -1
  14. package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts.map +1 -1
  15. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts +11 -31
  16. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
  17. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +1 -2
  18. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -1
  19. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +1 -2
  20. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -1
  21. package/dist/dts/jsonforms/renderers/EnumRadioGroupControlRenderer.d.ts.map +1 -1
  22. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts +1 -2
  23. package/dist/dts/jsonforms/renderers/FilterDateControlRenderer.d.ts.map +1 -1
  24. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts +1 -2
  25. package/dist/dts/jsonforms/renderers/FilterNumberControlRenderer.d.ts.map +1 -1
  26. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts +1 -2
  27. package/dist/dts/jsonforms/renderers/FilterTimeControlRenderer.d.ts.map +1 -1
  28. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts +1 -2
  29. package/dist/dts/jsonforms/renderers/LayoutArrayRenderer.d.ts.map +1 -1
  30. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +1 -2
  31. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -1
  32. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts +1 -2
  33. package/dist/dts/jsonforms/renderers/LayoutGroupRenderer.d.ts.map +1 -1
  34. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts +1 -2
  35. package/dist/dts/jsonforms/renderers/LayoutHorizontalRenderer.d.ts.map +1 -1
  36. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +5 -21
  37. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -1
  38. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +1 -2
  39. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts.map +1 -1
  40. package/dist/dts/jsonforms/renderers/MulticolumnDropdownControlRenderer.d.ts.map +1 -1
  41. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts +1 -2
  42. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts.map +1 -1
  43. package/dist/dts/jsonforms/renderers/SegmentedControlRenderer.d.ts.map +1 -1
  44. package/dist/dts/jsonforms/renderers/StepperWrapperRenderer.d.ts.map +1 -1
  45. package/dist/dts/jsonforms/renderers/StringArrayControlRenderer.d.ts.map +1 -1
  46. package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts.map +1 -1
  47. package/dist/dts/jsonforms/renderers/VerticalCategorizationWrapperRenderer.d.ts.map +1 -1
  48. package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts.map +1 -1
  49. package/dist/dts/react.d.ts +20 -0
  50. package/dist/dts/types.d.ts +0 -12
  51. package/dist/dts/types.d.ts.map +1 -1
  52. package/dist/esm/filters/filters.template.js +2 -1
  53. package/dist/esm/form.js +1 -2
  54. package/dist/esm/form.styles.js +40 -14
  55. package/dist/esm/form.template.js +2 -1
  56. package/dist/esm/index.js +0 -2
  57. package/dist/esm/jsonforms/json-forms.js +1 -27
  58. package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +46 -48
  59. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +20 -19
  60. package/dist/esm/jsonforms/renderers/CategorizationWrapperRenderer.js +4 -9
  61. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +40 -38
  62. package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +39 -39
  63. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +131 -102
  64. package/dist/esm/jsonforms/renderers/DateControlRenderer.js +43 -41
  65. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +27 -27
  66. package/dist/esm/jsonforms/renderers/EnumRadioGroupControlRenderer.js +32 -30
  67. package/dist/esm/jsonforms/renderers/FilterDateControlRenderer.js +77 -81
  68. package/dist/esm/jsonforms/renderers/FilterNumberControlRenderer.js +51 -54
  69. package/dist/esm/jsonforms/renderers/FilterTimeControlRenderer.js +69 -69
  70. package/dist/esm/jsonforms/renderers/LayoutArrayRenderer.js +8 -7
  71. package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +26 -27
  72. package/dist/esm/jsonforms/renderers/LayoutGroupRenderer.js +32 -36
  73. package/dist/esm/jsonforms/renderers/LayoutHorizontalRenderer.js +26 -27
  74. package/dist/esm/jsonforms/renderers/LayoutRenderer.js +44 -36
  75. package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +17 -18
  76. package/dist/esm/jsonforms/renderers/MulticolumnDropdownControlRenderer.js +41 -39
  77. package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +30 -30
  78. package/dist/esm/jsonforms/renderers/SegmentedControlRenderer.js +27 -25
  79. package/dist/esm/jsonforms/renderers/StepperWrapperRenderer.js +1 -2
  80. package/dist/esm/jsonforms/renderers/StringArrayControlRenderer.js +20 -18
  81. package/dist/esm/jsonforms/renderers/StringControlRenderer.js +42 -41
  82. package/dist/esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js +9 -13
  83. package/dist/esm/jsonforms/renderers/dispatch-renderer.js +0 -1
  84. package/dist/foundation-forms.api.json +2 -114
  85. package/dist/foundation-forms.d.ts +10 -69
  86. package/dist/react.cjs +14 -0
  87. package/dist/react.mjs +12 -0
  88. package/package.json +15 -15
@@ -2,7 +2,6 @@ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
2
  import { html } from '@microsoft/fast-element';
3
3
  import { GenesisType } from '../../utils';
4
4
  import { isOneOfDate } from '../testers/isDate';
5
- import { controlWrapperTemplate } from './ControlWrapperRenderer';
6
5
  import { DATE_CONTROL_RANK } from './RenderersRanks';
7
6
  /**
8
7
  * @internal
@@ -26,85 +25,82 @@ const formatDateValue = (timestamp, inputType) => {
26
25
  };
27
26
  export const DateControlRendererTemplate = (prefix = 'zero') => html `
28
27
  <template>
29
- ${controlWrapperTemplate({
30
- prefix,
31
- innerTemplate: html `
32
- <${prefix}-text-field
33
- :value=${(x) => {
34
- var _a;
35
- const inputType = typeSwitch(x.control);
36
- return formatDateValue((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min, inputType);
37
- }}
38
- id=${(x) => `min-${x.control.path}`}
39
- type="${(x) => typeSwitch(x.control)}"
40
- data-test-id=${(x) => `min-${x.control.path}`}
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
- @blur=${(x, c) => {
43
- var _a, _b, _c;
44
- const target = c.event.target;
45
- const inputValue = target.value;
46
- const inputType = typeSwitch(x.control);
47
- let minValue;
48
- if (inputValue) {
49
- minValue = new Date(inputValue).getTime();
50
- }
51
- const maxValue = ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max) !== undefined &&
52
- minValue !== undefined &&
53
- ((_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max) < minValue
54
- ? undefined
55
- : (_c = x.control.data) === null || _c === void 0 ? void 0 : _c.max;
56
- x.control.handleChange(x.control.path, {
57
- min: minValue,
58
- max: maxValue,
59
- type: inputType === 'datetime-local' ? 'datetime' : 'date',
60
- });
61
- x.onBlur();
62
- }}
63
- style="width: 100%"
64
- ></${prefix}-text-field>
65
- <span
66
- style="
67
- font-size: xx-large;
68
- color: var(--neutral-stroke-divider-rest);
69
- padding: calc(var(--design-unit) * 1px);"
70
- >
71
- -
72
- </span>
73
- <${prefix}-text-field
74
- :value=${(x) => {
75
- var _a;
76
- const inputType = typeSwitch(x.control);
77
- return formatDateValue((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max, inputType);
78
- }}
79
- id=${(x) => `max-${x.control.path}`}
80
- type="${(x) => typeSwitch(x.control)}"
81
- data-test-id=${(x) => `max-${x.control.path}`}
82
- 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; }}"
83
- @blur=${(x, c) => {
84
- var _a, _b, _c;
85
- const target = c.event.target;
86
- const inputValue = target.value;
87
- const inputType = typeSwitch(x.control);
88
- let maxValue;
89
- if (inputValue) {
90
- maxValue = new Date(inputValue).getTime();
91
- }
92
- const minValue = ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min) !== undefined &&
93
- maxValue !== undefined &&
94
- ((_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min) > maxValue
95
- ? undefined
96
- : (_c = x.control.data) === null || _c === void 0 ? void 0 : _c.min;
97
- x.control.handleChange(x.control.path, {
98
- min: minValue,
99
- max: maxValue,
100
- type: inputType === 'datetime-local' ? 'datetime' : 'date',
101
- });
102
- x.onBlur();
103
- }}
104
- style="width: 100%"
105
- ></${prefix}-text-field>
106
- `,
107
- })}
28
+ <control-wrapper :control=${(x) => x.control} ?submitted=${(x) => x.submitted} prefix="${prefix}">
29
+ <${prefix}-text-field
30
+ :value=${(x) => {
31
+ var _a;
32
+ const inputType = typeSwitch(x.control);
33
+ return formatDateValue((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min, inputType);
34
+ }}
35
+ id=${(x) => `min-${x.control.path}`}
36
+ type="${(x) => typeSwitch(x.control)}"
37
+ data-test-id=${(x) => `min-${x.control.path}`}
38
+ 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; }}"
39
+ @blur=${(x, c) => {
40
+ var _a, _b, _c;
41
+ const target = c.event.target;
42
+ const inputValue = target.value;
43
+ const inputType = typeSwitch(x.control);
44
+ let minValue;
45
+ if (inputValue) {
46
+ minValue = new Date(inputValue).getTime();
47
+ }
48
+ const maxValue = ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max) !== undefined &&
49
+ minValue !== undefined &&
50
+ ((_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max) < minValue
51
+ ? undefined
52
+ : (_c = x.control.data) === null || _c === void 0 ? void 0 : _c.max;
53
+ x.control.handleChange(x.control.path, {
54
+ min: minValue,
55
+ max: maxValue,
56
+ type: inputType === 'datetime-local' ? 'datetime' : 'date',
57
+ });
58
+ x.onBlur();
59
+ }}
60
+ style="width: 100%"
61
+ ></${prefix}-text-field>
62
+ <span
63
+ style="
64
+ font-size: xx-large;
65
+ color: var(--neutral-stroke-divider-rest);
66
+ padding: calc(var(--design-unit) * 1px);"
67
+ >
68
+ -
69
+ </span>
70
+ <${prefix}-text-field
71
+ :value=${(x) => {
72
+ var _a;
73
+ const inputType = typeSwitch(x.control);
74
+ return formatDateValue((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max, inputType);
75
+ }}
76
+ id=${(x) => `max-${x.control.path}`}
77
+ type="${(x) => typeSwitch(x.control)}"
78
+ data-test-id=${(x) => `max-${x.control.path}`}
79
+ 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; }}"
80
+ @blur=${(x, c) => {
81
+ var _a, _b, _c;
82
+ const target = c.event.target;
83
+ const inputValue = target.value;
84
+ const inputType = typeSwitch(x.control);
85
+ let maxValue;
86
+ if (inputValue) {
87
+ maxValue = new Date(inputValue).getTime();
88
+ }
89
+ const minValue = ((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min) !== undefined &&
90
+ maxValue !== undefined &&
91
+ ((_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min) > maxValue
92
+ ? undefined
93
+ : (_c = x.control.data) === null || _c === void 0 ? void 0 : _c.min;
94
+ x.control.handleChange(x.control.path, {
95
+ min: minValue,
96
+ max: maxValue,
97
+ type: inputType === 'datetime-local' ? 'datetime' : 'date',
98
+ });
99
+ x.onBlur();
100
+ }}
101
+ style="width: 100%"
102
+ ></${prefix}-text-field>
103
+ </control-wrapper>
108
104
  </template>
109
105
  `;
110
106
  export const FilterDateControlRendererEntry = {
@@ -112,5 +108,5 @@ export const FilterDateControlRendererEntry = {
112
108
  ${(x) => DateControlRendererTemplate(x.prefix)}
113
109
  `,
114
110
  tester: rankWith(DATE_CONTROL_RANK, isOneOfDate),
115
- mapper: mapStateToControlProps,
111
+ mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template
116
112
  };
@@ -1,63 +1,60 @@
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';
5
4
  import { NUMBER_CONTROL_RANK } from './RenderersRanks';
6
5
  export const FilterNumberControlRendererTemplate = (prefix = 'zero') => html `
7
6
  <template>
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
- })}
7
+ <control-wrapper :control=${(x) => x.control} ?submitted=${(x) => x.submitted} prefix="${prefix}"
8
+ >
9
+ <${prefix}-text-field
10
+ :value=${(x) => { var _a; return (((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min) === undefined ? '' : x.control.data.min); }}
11
+ 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; }}"
12
+ @change=${(x, c) => {
13
+ var _a, _b;
14
+ const value = parseFloat(c.event.target.value);
15
+ return x.control.handleChange(x.control.path, !isNaN(value)
16
+ ? {
17
+ min: value,
18
+ 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,
19
+ type: 'number',
20
+ }
21
+ : Object.assign(Object.assign({}, x.control.data), { min: undefined }));
22
+ }}
23
+ placeholder="Min"
24
+ id=${(x) => `min-${x.control.path}`}
25
+ data-test-id=${(x) => `min-${x.control.path}`}
26
+ @blur=${(x) => x.onBlur()}
27
+ style="width: 100%"
28
+ ></${prefix}-text-field>
29
+ <span
30
+ style="
31
+ font-size: xx-large;
32
+ color: var(--neutral-stroke-divider-rest);
33
+ padding: calc(var(--design-unit) * 1px);"
34
+ >
35
+ -
36
+ </span>
37
+ <${prefix}-text-field
38
+ :value=${(x) => { var _a; return (((_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max) === undefined ? '' : x.control.data.max); }}
39
+ 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; }}"
40
+ @change=${(x, c) => {
41
+ var _a, _b;
42
+ const value = parseFloat(c.event.target.value);
43
+ return x.control.handleChange(x.control.path, !isNaN(value)
44
+ ? {
45
+ 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,
46
+ max: value,
47
+ type: 'number',
48
+ }
49
+ : Object.assign(Object.assign({}, x.control.data), { max: undefined }));
50
+ }}
51
+ placeholder="Max"
52
+ id=${(x) => `max-${x.control.path}`}
53
+ data-test-id=${(x) => `max-${x.control.path}`}
54
+ @blur=${(x) => x.onBlur()}
55
+ style="width: 100%"
56
+ ></${prefix}-text-field>
57
+ </control-wrapper>
61
58
  </template>
62
59
  `;
63
60
  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';
5
4
  import { TIME_CONTROL_RANK } from './RenderersRanks';
6
5
  export const TimeControlRendererTemplate = (prefix = 'zero') => html `
7
6
  <template>
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
- })}
7
+ <control-wrapper :control=${(x) => x.control} ?submitted=${(x) => x.submitted} prefix="${prefix}">
8
+
9
+
10
+ <${prefix}-text-field
11
+ :value=${(x) => {
12
+ var _a;
13
+ const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
14
+ if (!time)
15
+ return '';
16
+ return `${time}`;
17
+ }}
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
+
24
+ @blur=${(x, c) => {
25
+ var _a, _b;
26
+ const minValue = c.event.target.control.value;
27
+ const maxValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
28
+ const setMin = minValue ? minValue : undefined;
29
+ const setMax = maxValue < minValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max;
30
+ x.control.handleChange(x.control.path, {
31
+ min: setMin,
32
+ max: setMax,
33
+ type: 'time',
34
+ });
35
+ x.onBlur();
36
+ }}
37
+ style="width: 100%"
38
+ ></${prefix}-text-field>
39
+ <span
40
+ style="
41
+ font-size: xx-large;
42
+ color: var(--neutral-stroke-divider-rest);
43
+ padding: calc(var(--design-unit) * 1px);"
44
+ >
45
+ -
46
+ </span>
47
+ <${prefix}-text-field
48
+ :value=${(x) => {
49
+ var _a;
50
+ const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
51
+ if (!time)
52
+ return '';
53
+ return `${time}`;
54
+ }}
55
+ id=${(x) => `max-${x.control.path}`}
56
+ type="time"
57
+ data-test-id=${(x) => `max-${x.control.path}`}
58
+ 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; }}"
59
+ @blur=${(x, c) => {
60
+ var _a, _b;
61
+ const maxValue = c.event.target.control.value;
62
+ const minValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
63
+ const setMin = minValue > maxValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min;
64
+ const setMax = maxValue ? maxValue : undefined;
65
+ x.control.handleChange(x.control.path, {
66
+ min: setMin,
67
+ max: setMax,
68
+ type: 'time',
69
+ });
70
+ x.onBlur();
71
+ }}
72
+ style="width: 100%"
73
+ ></${prefix}-text-field>
74
+ </control-wrapper>
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, // TODO: change mapper to handle dates instead of doing it in the template
83
83
  };
@@ -1,18 +1,19 @@
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';
5
4
  import { LAYOUT_ARRAY_RANK } from './RenderersRanks';
6
5
  const borderStyle = 'padding: 5px; border-radius: 3px; border: 1px solid var(--neutral-stroke-rest);';
7
6
  export const LayoutArrayRendererTemplate = html `
8
7
  <template>
9
8
  <div style="${(x) => { var _a; return (((_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.border) ? borderStyle : ''); }}">
10
- ${controlWrapperTemplate({
11
- prefix: 'zero',
12
- innerTemplate: html `
13
- <array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>
14
- `,
15
- })}
9
+ <control-wrapper
10
+ :control=${(x) => x.control}
11
+ :jsonForms=${(x) => x.jsonforms}
12
+ :touched=${(x) => x.touched}
13
+ ?submitted=${(x) => x.submitted}
14
+ >
15
+ <array-list-wrapper :form=${(x) => x} :control=${(x) => x.control}></array-list-wrapper>
16
+ </control-wrapper>
16
17
  </div>
17
18
  </template>
18
19
  `;
@@ -1,36 +1,35 @@
1
1
  import { mapStateToLayoutProps, rankWith } from '@jsonforms/core';
2
2
  import { html, repeat } from '@microsoft/fast-element';
3
- import { layoutWrapperTemplate } from './LayoutRenderer';
3
+ import { LayoutWrapper } from './LayoutRenderer';
4
4
  import { LAYOUT_FORM_GRID_RANK } from './RenderersRanks';
5
+ LayoutWrapper;
5
6
  export const LayoutFormGridRendererTemplate = html `
6
7
  <template>
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
- `,
8
+ <layout-wrapper :control=${(x) => x.control}>
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,
33
28
  })}
29
+ ></dispatch-renderer>
30
+ `)}
31
+ </div>
32
+ </layout-wrapper>
34
33
  </template>
35
34
  `;
36
35
  export const LayoutFormGridEntry = {
@@ -1,45 +1,41 @@
1
1
  import { isGroup, mapStateToLayoutProps, rankWith } from '@jsonforms/core';
2
2
  import { html, repeat, when } from '@microsoft/fast-element';
3
- import { layoutWrapperTemplate } from './LayoutRenderer';
4
3
  import { LAYOUT_GROUP_RANK } from './RenderersRanks';
5
4
  export const LayoutGroupRendererTemplate = html `
6
5
  <template>
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
- `,
6
+ <layout-wrapper :control=${(x) => x.control} hide-label>
7
+ <div>
8
+ ${when((x) => x.control.label, html `
9
+ <div
10
+ for="${(x) => x.control.path + '-wrapper'}"
11
+ style="color: var(--neutral-foreground-rest);
12
+ padding-bottom: calc(var(--design-unit) * 1px);
13
+ margin-bottom: calc(var(--design-unit) * 4px);
14
+ font-weight: 600;
15
+ font-size: var(--type-ramp-base-font-size);
16
+ display: flex;
17
+ justify-content: space-between;"
18
+ >
19
+ ${(x) => x.control.label}
20
+ </div>
21
+ `)}
22
+ ${repeat((x) => x.control.uischema.options.childElements, html `
23
+ <dispatch-renderer
24
+ ?submitted=${(x, ctx) => ctx.parent.submitted}
25
+ :dispatch=${(x, ctx) => ctx.parent.dispatch}
26
+ :jsonforms=${(x, ctx) => ctx.parent.jsonforms}
27
+ :prefix=${(x, ctx) => ctx.parent.prefix}
28
+ :props=${(x, ctx) => ({
29
+ uischema: x,
30
+ schema: ctx.parent.control.schema,
31
+ renderers: ctx.parent.control.renderers,
32
+ path: ctx.parent.control.path,
33
+ enabled: ctx.parent.control.enabled,
42
34
  })}
35
+ ></dispatch-renderer>
36
+ `)}
37
+ </div>
38
+ </layout-wrapper>
43
39
  </template>
44
40
  `;
45
41
  export const LayoutGroupRendererEntry = {