@genesislcap/foundation-forms 9.0.1-alpha-b5c5eb7.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 (199) hide show
  1. package/MODULE_FEDERATION.md +11 -0
  2. package/README.md +56 -0
  3. package/dist/1.0.0.remoteEntry.js +1 -0
  4. package/dist/160.160.124ed2c5959b53210cbd.js +2 -0
  5. package/dist/160.190aff29e1d6cef60fa941e3ecd169b4.js.map +1 -0
  6. package/dist/191.191.0325d5c8852ae4921bad.js +2 -0
  7. package/dist/191.cfb3865153509ec434d0ee1d06702e06.js.map +1 -0
  8. package/dist/211.211.9bb272a936b1d1e91e6d.js +2 -0
  9. package/dist/211.618f438c5ae26e2eca20a00121c574ad.js.map +1 -0
  10. package/dist/259.259.2d238ae3cf8d8bdeba08.js +2 -0
  11. package/dist/259.550ac263c3f91b2416d000cf2f255ebb.js.map +1 -0
  12. package/dist/338.338.124651324d743221ad7e.js +3 -0
  13. package/dist/338.338.124651324d743221ad7e.js.LICENSE.txt +1 -0
  14. package/dist/338.d187d80c4b3697c68e08e173075547f8.js.map +1 -0
  15. package/dist/623.2132bb44d6962138c26ec8c716abfb8c.js.map +1 -0
  16. package/dist/623.623.4eb55ef851cb4acfb42d.js +3 -0
  17. package/dist/623.623.4eb55ef851cb4acfb42d.js.LICENSE.txt +4 -0
  18. package/dist/691.56a1e267854b877284b2dde11aae483b.js.map +1 -0
  19. package/dist/691.691.94bd71f12961486f4d8d.js +308 -0
  20. package/dist/730.730.d1c0de79e754bac881cb.js +2 -0
  21. package/dist/730.a7dfb868a3009f72a7daed20f5f05cd4.js.map +1 -0
  22. package/dist/755.755.d9777bd59664cac307f8.js +2 -0
  23. package/dist/755.ef9ff39a1d56dfd14bc47cd9f22cfc9f.js.map +1 -0
  24. package/dist/817.817.09800be1f64f8771bf91.js +2 -0
  25. package/dist/817.c03de73750c9e91e022d445f10572b93.js.map +1 -0
  26. package/dist/914.3464d6aedd1272b9a7824381f8c69dc5.js.map +1 -0
  27. package/dist/914.914.9c2af15b0145e5b35752.js +3 -0
  28. package/dist/914.914.9c2af15b0145e5b35752.js.LICENSE.txt +4 -0
  29. package/dist/dashboard.json +1 -0
  30. package/dist/dts/form.d.ts +103 -0
  31. package/dist/dts/form.d.ts.map +1 -0
  32. package/dist/dts/form.styles.d.ts +2 -0
  33. package/dist/dts/form.styles.d.ts.map +1 -0
  34. package/dist/dts/form.template.d.ts +3 -0
  35. package/dist/dts/form.template.d.ts.map +1 -0
  36. package/dist/dts/index.d.ts +4 -0
  37. package/dist/dts/index.d.ts.map +1 -0
  38. package/dist/dts/index.federated.d.ts +1 -0
  39. package/dist/dts/index.federated.d.ts.map +1 -0
  40. package/dist/dts/jsonforms/json-forms.d.ts +33 -0
  41. package/dist/dts/jsonforms/json-forms.d.ts.map +1 -0
  42. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts +5 -0
  43. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -0
  44. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts +5 -0
  45. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -0
  46. package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts +4 -0
  47. package/dist/dts/jsonforms/renderers/ConnectedSelectControlRenderer.d.ts.map +1 -0
  48. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts +9 -0
  49. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -0
  50. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts +3 -0
  51. package/dist/dts/jsonforms/renderers/DateControlRenderer.d.ts.map +1 -0
  52. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts +5 -0
  53. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -0
  54. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts +3 -0
  55. package/dist/dts/jsonforms/renderers/LayoutRenderer.d.ts.map +1 -0
  56. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts +3 -0
  57. package/dist/dts/jsonforms/renderers/LayoutVertical2ColumnsRenderer.d.ts.map +1 -0
  58. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts +3 -0
  59. package/dist/dts/jsonforms/renderers/NumberControlRenderer.d.ts.map +1 -0
  60. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts +9 -0
  61. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts.map +1 -0
  62. package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts +3 -0
  63. package/dist/dts/jsonforms/renderers/StringControlRenderer.d.ts.map +1 -0
  64. package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts +18 -0
  65. package/dist/dts/jsonforms/renderers/dispatch-renderer.d.ts.map +1 -0
  66. package/dist/dts/jsonforms/testers/isDate.d.ts +2 -0
  67. package/dist/dts/jsonforms/testers/isDate.d.ts.map +1 -0
  68. package/dist/dts/jsonforms/testers/isOneOfBoolean.d.ts +2 -0
  69. package/dist/dts/jsonforms/testers/isOneOfBoolean.d.ts.map +1 -0
  70. package/dist/dts/jsonforms/testers/isOneOfEnum.d.ts +2 -0
  71. package/dist/dts/jsonforms/testers/isOneOfEnum.d.ts.map +1 -0
  72. package/dist/dts/jsonforms/testers/isOneOfNumber.d.ts +2 -0
  73. package/dist/dts/jsonforms/testers/isOneOfNumber.d.ts.map +1 -0
  74. package/dist/dts/jsonforms/testers/isOneOfOptionMultiselect.d.ts +2 -0
  75. package/dist/dts/jsonforms/testers/isOneOfOptionMultiselect.d.ts.map +1 -0
  76. package/dist/dts/jsonforms/testers/optionIs.d.ts +3 -0
  77. package/dist/dts/jsonforms/testers/optionIs.d.ts.map +1 -0
  78. package/dist/dts/tsdoc-metadata.json +11 -0
  79. package/dist/dts/types.d.ts +30 -0
  80. package/dist/dts/types.d.ts.map +1 -0
  81. package/dist/dts/utils/index.d.ts +3 -0
  82. package/dist/dts/utils/index.d.ts.map +1 -0
  83. package/dist/dts/utils/translation.d.ts +3 -0
  84. package/dist/dts/utils/translation.d.ts.map +1 -0
  85. package/dist/dts/utils/validation.d.ts +13 -0
  86. package/dist/dts/utils/validation.d.ts.map +1 -0
  87. package/dist/esm/form.js +166 -0
  88. package/dist/esm/form.js.map +1 -0
  89. package/dist/esm/form.styles.js +62 -0
  90. package/dist/esm/form.styles.js.map +1 -0
  91. package/dist/esm/form.template.js +34 -0
  92. package/dist/esm/form.template.js.map +1 -0
  93. package/dist/esm/index.federated.js +2 -0
  94. package/dist/esm/index.federated.js.map +1 -0
  95. package/dist/esm/index.js +4 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/jsonforms/json-forms.js +175 -0
  98. package/dist/esm/jsonforms/json-forms.js.map +1 -0
  99. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +30 -0
  100. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js.map +1 -0
  101. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +34 -0
  102. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js.map +1 -0
  103. package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js +40 -0
  104. package/dist/esm/jsonforms/renderers/ConnectedSelectControlRenderer.js.map +1 -0
  105. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +76 -0
  106. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js.map +1 -0
  107. package/dist/esm/jsonforms/renderers/DateControlRenderer.js +37 -0
  108. package/dist/esm/jsonforms/renderers/DateControlRenderer.js.map +1 -0
  109. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +45 -0
  110. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js.map +1 -0
  111. package/dist/esm/jsonforms/renderers/LayoutRenderer.js +29 -0
  112. package/dist/esm/jsonforms/renderers/LayoutRenderer.js.map +1 -0
  113. package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js +37 -0
  114. package/dist/esm/jsonforms/renderers/LayoutVertical2ColumnsRenderer.js.map +1 -0
  115. package/dist/esm/jsonforms/renderers/NumberControlRenderer.js +34 -0
  116. package/dist/esm/jsonforms/renderers/NumberControlRenderer.js.map +1 -0
  117. package/dist/esm/jsonforms/renderers/RenderersRanks.js +9 -0
  118. package/dist/esm/jsonforms/renderers/RenderersRanks.js.map +1 -0
  119. package/dist/esm/jsonforms/renderers/StringControlRenderer.js +25 -0
  120. package/dist/esm/jsonforms/renderers/StringControlRenderer.js.map +1 -0
  121. package/dist/esm/jsonforms/renderers/dispatch-renderer.js +90 -0
  122. package/dist/esm/jsonforms/renderers/dispatch-renderer.js.map +1 -0
  123. package/dist/esm/jsonforms/testers/isDate.js +3 -0
  124. package/dist/esm/jsonforms/testers/isDate.js.map +1 -0
  125. package/dist/esm/jsonforms/testers/isOneOfBoolean.js +3 -0
  126. package/dist/esm/jsonforms/testers/isOneOfBoolean.js.map +1 -0
  127. package/dist/esm/jsonforms/testers/isOneOfEnum.js +4 -0
  128. package/dist/esm/jsonforms/testers/isOneOfEnum.js.map +1 -0
  129. package/dist/esm/jsonforms/testers/isOneOfNumber.js +6 -0
  130. package/dist/esm/jsonforms/testers/isOneOfNumber.js.map +1 -0
  131. package/dist/esm/jsonforms/testers/isOneOfOptionMultiselect.js +4 -0
  132. package/dist/esm/jsonforms/testers/isOneOfOptionMultiselect.js.map +1 -0
  133. package/dist/esm/jsonforms/testers/optionIs.js +10 -0
  134. package/dist/esm/jsonforms/testers/optionIs.js.map +1 -0
  135. package/dist/esm/types.js +2 -0
  136. package/dist/esm/types.js.map +1 -0
  137. package/dist/esm/utils/index.js +3 -0
  138. package/dist/esm/utils/index.js.map +1 -0
  139. package/dist/esm/utils/translation.js +18 -0
  140. package/dist/esm/utils/translation.js.map +1 -0
  141. package/dist/esm/utils/validation.js +25 -0
  142. package/dist/esm/utils/validation.js.map +1 -0
  143. package/dist/favicon.ico +0 -0
  144. package/dist/foundation-forms.api.json +723 -0
  145. package/dist/foundation-forms.d.ts +176 -0
  146. package/dist/foundation-forms.iife.min.js +28 -0
  147. package/dist/foundation-forms.js +30835 -0
  148. package/dist/foundation-forms.min.js +26 -0
  149. package/dist/foundationForms.a7013ba9c5c4a97d9a7e2d8a551752ba.js.map +1 -0
  150. package/dist/index.ejs +23 -0
  151. package/dist/index.html +18 -0
  152. package/dist/info.ejs +13 -0
  153. package/dist/main.89d08fe81e0159f212e5f7880954ae70.js.map +1 -0
  154. package/dist/main.99a0affb273b317b04e7.js +2 -0
  155. package/dist/npm.ajv.213.0edf0dee76a3e8e16fa5.js +8 -0
  156. package/dist/npm.ajv.a70ac538476d2b86b0c95c3cddc46db2.js.map +1 -0
  157. package/dist/npm.analytics.343.c50e91b7d34234ff5598.js +2 -0
  158. package/dist/npm.analytics.9350473da68aa7584e1ffd2293d7eb64.js.map +1 -0
  159. package/dist/npm.consola.713.0a877d79045b2ced4b28.js +2 -0
  160. package/dist/npm.consola.b723f5d54df2d007a63f167647d0db4f.js.map +1 -0
  161. package/dist/npm.finos.690.a9cbfbb544d61a77cb75.js +2 -0
  162. package/dist/npm.finos.d24836382e0fd4c82511da38f1e2d712.js.map +1 -0
  163. package/dist/npm.jsonforms.832.135f578bfa3e3426340a.js +2 -0
  164. package/dist/npm.jsonforms.d742a744d53545575dc0f741c7f95a16.js.map +1 -0
  165. package/dist/npm.lodash.913.2f761568d7b7540de80a.js +2 -0
  166. package/dist/npm.lodash.a3a76c8fca5de460b782c77b99c930c9.js.map +1 -0
  167. package/dist/npm.microsoft.127.c2ce55cc34c771dd0e4f.js +1469 -0
  168. package/dist/npm.microsoft.127.c2ce55cc34c771dd0e4f.js.LICENSE.txt +14 -0
  169. package/dist/npm.microsoft.351f8b8b5cd6f2b1872524cc47c1a893.js.map +1 -0
  170. package/dist/npm.rxjs.271.c9ec2153535d20987f67.js +2 -0
  171. package/dist/npm.rxjs.d2fed746c0fef18592a807dcc82cba1c.js.map +1 -0
  172. package/dist/npm.uri-js.2c30a8d9b49ce1474de4ba46d0bc69a6.js.map +1 -0
  173. package/dist/npm.uri-js.415.4ffa54936c8e552b506d.js +3 -0
  174. package/dist/npm.uri-js.415.4ffa54936c8e552b506d.js.LICENSE.txt +1 -0
  175. package/dist/remoteEntry.js +2 -0
  176. package/dist/serve.json +3 -0
  177. package/docs/.gitattributes +2 -0
  178. package/docs/api/foundation-forms.form.data.md +13 -0
  179. package/docs/api/foundation-forms.form.disconnectedcallback.md +18 -0
  180. package/docs/api/foundation-forms.form.jsonschema.md +18 -0
  181. package/docs/api/foundation-forms.form.md +35 -0
  182. package/docs/api/foundation-forms.form.readonly.md +14 -0
  183. package/docs/api/foundation-forms.form.renderers.md +13 -0
  184. package/docs/api/foundation-forms.form.resourcename.md +13 -0
  185. package/docs/api/foundation-forms.form.uischema.md +50 -0
  186. package/docs/api/foundation-forms.genesiserrortranslator.md +11 -0
  187. package/docs/api/foundation-forms.logger.md +11 -0
  188. package/docs/api/foundation-forms.md +30 -0
  189. package/docs/api/foundation-forms.mustmatch.md +19 -0
  190. package/docs/api/foundation-forms.rendererentry.md +15 -0
  191. package/docs/api/foundation-forms.uischema.md +16 -0
  192. package/docs/api/foundation-forms.uischemaelement.md +18 -0
  193. package/docs/api/foundation-forms.uischemaelementoptions.md +20 -0
  194. package/docs/api/foundation-forms.uischemaelementtype.md +11 -0
  195. package/docs/api/index.md +12 -0
  196. package/docs/api-report.md +104 -0
  197. package/jsdom.setup.ts +1 -0
  198. package/license.txt +46 -0
  199. package/package.json +124 -0
@@ -0,0 +1,166 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Connect } from '@genesislcap/foundation-comms';
3
+ import { attr, customElement, observable } from '@microsoft/fast-element';
4
+ import { FoundationElement } from '@microsoft/fast-foundation';
5
+ import { foundationFormStyles as styles } from './form.styles';
6
+ import { foundationFormTemplate as template } from './form.template';
7
+ import { createLogger } from '@genesislcap/foundation-utils';
8
+ import { isControl, isStringControl, mapStateToControlProps, rankWith, } from '@jsonforms/core';
9
+ import { BooleanControlEntry } from './jsonforms/renderers/BooleanControlRenderer';
10
+ import { ConnectedMultiselectControlRendererEntry } from './jsonforms/renderers/ConnectedMultiselectControlRenderer';
11
+ import { ConnectedSelectControlRendererEntry } from './jsonforms/renderers/ConnectedSelectControlRenderer';
12
+ import { DateControlRendererEntry } from './jsonforms/renderers/DateControlRenderer';
13
+ import { EnumControlRendererEntry } from './jsonforms/renderers/EnumControlRenderer';
14
+ import { LayoutRendererEntry } from './jsonforms/renderers/LayoutRenderer';
15
+ import { LayoutVertical2ColumnsEntry } from './jsonforms/renderers/LayoutVertical2ColumnsRenderer';
16
+ import { NumberControlRendererEntry } from './jsonforms/renderers/NumberControlRenderer';
17
+ import { StringControlRendererTemplate } from './jsonforms/renderers/StringControlRenderer';
18
+ export const logger = createLogger('foundation-form');
19
+ const stringEntry = {
20
+ renderer: StringControlRendererTemplate,
21
+ tester: rankWith(2, isStringControl),
22
+ mapper: mapStateToControlProps,
23
+ };
24
+ const fallbackEntry = {
25
+ renderer: StringControlRendererTemplate,
26
+ tester: rankWith(1, isControl),
27
+ mapper: mapStateToControlProps,
28
+ };
29
+ const renderers = [
30
+ fallbackEntry,
31
+ stringEntry,
32
+ BooleanControlEntry,
33
+ LayoutVertical2ColumnsEntry,
34
+ LayoutRendererEntry,
35
+ NumberControlRendererEntry,
36
+ ConnectedMultiselectControlRendererEntry,
37
+ EnumControlRendererEntry,
38
+ ConnectedSelectControlRendererEntry,
39
+ DateControlRendererEntry,
40
+ ];
41
+ /**
42
+ * Foundation form component for automatically generated forms based on json schema
43
+ * obtained from the api, supplied initial data or supplied JSON schema.
44
+ * Allowing customisable form elements using UI schema and set of custom renderers
45
+ * @beta
46
+ */
47
+ let Form = class Form extends FoundationElement {
48
+ constructor() {
49
+ super(...arguments);
50
+ /**
51
+ * Allows to provide set of renderers used by the form. If not provided it will default to text-field inputs
52
+ * @public
53
+ */
54
+ this.renderers = renderers;
55
+ this.errors = [];
56
+ /**
57
+ * Initial data for the form
58
+ * @public
59
+ */
60
+ this.data = {};
61
+ }
62
+ resourceNameChanged() {
63
+ var _a, _b;
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ if (this.resourceName) {
66
+ const jsonSchemaResponse = yield this.connect.getJSONSchema(this.resourceName);
67
+ this.jsonSchema = (_b = (_a = jsonSchemaResponse === null || jsonSchemaResponse === void 0 ? void 0 : jsonSchemaResponse.INBOUND) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.DETAILS;
68
+ }
69
+ this.removeDataProperties();
70
+ });
71
+ }
72
+ removeDataProperties() {
73
+ if (!this.jsonSchema || !this.data) {
74
+ return;
75
+ }
76
+ // removes data provided to the form that isn't part of the schema
77
+ const properties = Object.keys(this.jsonSchema.properties);
78
+ Object.keys(this.data).forEach((key) => {
79
+ if (!properties.includes(key)) {
80
+ delete this.data[key];
81
+ logger.debug('Removing key ', key, 'from provided data because it is not part of the payload');
82
+ }
83
+ });
84
+ }
85
+ /**
86
+ * @internal
87
+ */
88
+ _submit() {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const payload = Object.assign({}, this.data);
91
+ this.submissionErrors = '';
92
+ this.submitted = true;
93
+ logger.debug({ payload, errors: this.errors });
94
+ this.$emit('submit', { payload, errors: this.errors });
95
+ if (Object.entries(payload).length !== 0 && !this.errors.length && this.resourceName) {
96
+ this.submitting = true;
97
+ const formSubmitReq = yield this.connect.commitEvent(this.resourceName, { DETAILS: payload });
98
+ this.submitting = false;
99
+ if (formSubmitReq.ERROR) {
100
+ this.$emit('submit-failure', { payload, errors: formSubmitReq.ERROR });
101
+ this.submissionErrors = formSubmitReq.ERROR.map((x) => x.CODE + ': ' + x.TEXT).toString();
102
+ }
103
+ else {
104
+ this.$emit('submit-success', { payload });
105
+ }
106
+ }
107
+ });
108
+ }
109
+ /**
110
+ * @internal
111
+ */
112
+ onChange(event) {
113
+ logger.debug({ event });
114
+ if (event.detail) {
115
+ this.data = event.detail.data;
116
+ this.errors = event.detail.errors;
117
+ }
118
+ }
119
+ disconnectedCallback() {
120
+ super.disconnectedCallback();
121
+ this.submitted = false;
122
+ this.submissionErrors = '';
123
+ this.jsonSchema = undefined;
124
+ this.resourceName = undefined;
125
+ this.data = {};
126
+ }
127
+ };
128
+ __decorate([
129
+ attr
130
+ ], Form.prototype, "resourceName", void 0);
131
+ __decorate([
132
+ observable
133
+ ], Form.prototype, "uischema", void 0);
134
+ __decorate([
135
+ observable
136
+ ], Form.prototype, "renderers", void 0);
137
+ __decorate([
138
+ observable
139
+ ], Form.prototype, "jsonSchema", void 0);
140
+ __decorate([
141
+ Connect
142
+ ], Form.prototype, "connect", void 0);
143
+ __decorate([
144
+ observable
145
+ ], Form.prototype, "data", void 0);
146
+ __decorate([
147
+ observable
148
+ ], Form.prototype, "submitting", void 0);
149
+ __decorate([
150
+ observable
151
+ ], Form.prototype, "submitted", void 0);
152
+ __decorate([
153
+ observable
154
+ ], Form.prototype, "submissionErrors", void 0);
155
+ __decorate([
156
+ attr({ mode: 'boolean' })
157
+ ], Form.prototype, "readonly", void 0);
158
+ Form = __decorate([
159
+ customElement({
160
+ name: 'foundation-form',
161
+ template,
162
+ styles,
163
+ })
164
+ ], Form);
165
+ export { Form };
166
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { controlCornerRadius, designUnit, strokeWidth } from '@microsoft/fast-components';
2
+ import { css } from '@microsoft/fast-element';
3
+ import { display, forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';
4
+ import { SystemColors } from '@microsoft/fast-web-utilities';
5
+ export const foundationFormStyles = css `
6
+ ${display('block')}
7
+ :host {
8
+ border: calc(${strokeWidth} * 1px) solid transparent;
9
+ margin: 0;
10
+ border-radius: calc(${controlCornerRadius} * 1px);
11
+ padding: calc(${designUnit} * 1px);
12
+ min-width: 64px;
13
+ }
14
+
15
+ .form-controls {
16
+ display: grid;
17
+ grid-gap: calc(${designUnit} * 1px);
18
+ grid-column-gap: calc(${designUnit} * 7px);
19
+ grid-template-columns: repeat(2, 1fr);
20
+ }
21
+
22
+ .form-group {
23
+ display: flex;
24
+ flex-direction: column;
25
+ }
26
+
27
+ .required::after {
28
+ content: ' *';
29
+ color: #f00;
30
+ }
31
+
32
+ .label {
33
+ font-size: calc(${designUnit} * 1px + 0.7vmin);
34
+ }
35
+
36
+ .actions {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ padding: calc(${designUnit} * 2px);
41
+ }
42
+
43
+ .error {
44
+ border-bottom: 2px solid red;
45
+ }
46
+
47
+ .errors {
48
+ color: #f00;
49
+ font-size: 11px;
50
+ width: calc(100% - 70px);
51
+ }
52
+
53
+ .submit-button {
54
+ width: 70px;
55
+ }
56
+ `.withBehaviors(forcedColorsStylesheetBehavior(css `
57
+ :host {
58
+ background: ${SystemColors.Canvas};
59
+ border-color: ${SystemColors.CanvasText};
60
+ }
61
+ `));
62
+ //# sourceMappingURL=form.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.styles.js","sourceRoot":"","sources":["../../src/form.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;IACnC,OAAO,CAAC,OAAO,CAAC;;mBAED,WAAW;;0BAEJ,mBAAmB;oBACzB,UAAU;;;;;;qBAMT,UAAU;4BACH,UAAU;;;;;;;;;;;;;;;sBAehB,UAAU;;;;;;;oBAOZ,UAAU;;;;;;;;;;;;;;;;CAgB7B,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;oBAEhB,YAAY,CAAC,MAAM;sBACjB,YAAY,CAAC,UAAU;;GAE1C,CAAC,CACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { html, when } from '@microsoft/fast-element';
2
+ import { JSONForms } from './jsonforms/json-forms';
3
+ import { ControlWrapper } from './jsonforms/renderers/ControlWrapperRenderer';
4
+ import { DispatchRenderer } from './jsonforms/renderers/dispatch-renderer';
5
+ JSONForms;
6
+ ControlWrapper;
7
+ DispatchRenderer;
8
+ export const foundationFormTemplate = html `
9
+ <template>
10
+ <json-forms
11
+ ?readonly=${(x) => x.readonly}
12
+ ?submitted=${(x) => x.submitted}
13
+ :renderers=${(x) => x.renderers}
14
+ :uischema=${(x) => x.uischema}
15
+ :schema=${(x) => x.jsonSchema}
16
+ :data=${(x) => x.data}
17
+ @data-change=${(x, c) => x.onChange(c.event)}
18
+ ></json-forms>
19
+ ${when((x) => !x.readonly, html `
20
+ <div class="actions">
21
+ <div class="errors">${(x) => x.submissionErrors}</div>
22
+ <fast-button
23
+ @click="${(x) => x._submit()}"
24
+ ?disable=${(x) => !x.submitting}
25
+ class="submit-button"
26
+ appearance="accent"
27
+ >
28
+ Submit
29
+ </fast-button>
30
+ </div>
31
+ `)}
32
+ </template>
33
+ `;
34
+ //# sourceMappingURL=form.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.template.js","sourceRoot":"","sources":["../../src/form.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,SAAS,CAAC;AACV,cAAc,CAAC;AACf,gBAAgB,CAAC;AAEjB,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAM;;;kBAG9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ;mBAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;mBAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;kBACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ;gBACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;cACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;qBACN,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAoB,CAAC;;MAE3D,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAClB,IAAI,CAAM;;gCAEgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;;sBAEnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;uBACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;;;;;;;OAOpC,CACF;;CAEJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import('./index');
2
+ //# sourceMappingURL=index.federated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.federated.js","sourceRoot":"","sources":["../../src/index.federated.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './form';
2
+ export * from './types';
3
+ export * from './utils';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,175 @@
1
+ import { __decorate } from "tslib";
2
+ import { Actions, configReducer, coreReducer, Generate, i18nReducer, } from '@jsonforms/core';
3
+ import { attr, css, customElement, FASTElement, html, observable, when, } from '@microsoft/fast-element';
4
+ import { genesisErrorTranslator } from '../utils/translation';
5
+ const template = html `
6
+ <template>
7
+ ${when((x) => x.jsonforms && x.dispatch && x.props, html `
8
+ <dispatch-renderer
9
+ :jsonforms=${(x) => x.jsonforms}
10
+ :dispatch=${(x) => x.dispatch}
11
+ :props=${(x) => x.props}
12
+ ?submitted=${(x) => x.submitted}
13
+ />
14
+ `)}
15
+ </template>
16
+ `;
17
+ const styles = css ``;
18
+ const isObject = (elem) => {
19
+ return elem && typeof elem === 'object';
20
+ };
21
+ const errorTranslator = (error, t, uischema) => {
22
+ var _a, _b, _c, _d;
23
+ return ((_d = (_c = (_b = (_a = uischema === null || uischema === void 0 ? void 0 : uischema.options) === null || _a === void 0 ? void 0 : _a.i18n) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c[error.keyword]) !== null && _d !== void 0 ? _d : genesisErrorTranslator(error, t, uischema));
24
+ };
25
+ let JSONForms = class JSONForms extends FASTElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.dispatch = (action) => {
29
+ this.jsonforms = Object.assign(Object.assign({}, this.jsonforms), { core: coreReducer(this.jsonforms.core, action) });
30
+ this.$emit('data-change', {
31
+ data: this.jsonforms.core.data,
32
+ errors: this.jsonforms.core.errors,
33
+ });
34
+ };
35
+ /**
36
+ * Performs client-side validation by running the validator defined in the UI schema.
37
+ * @param uischema the UI schema
38
+ * @returns ErrorObject[] that will be passed to JsonFormsCore as additionalErrors
39
+ */
40
+ this.validate = (uischema) => {
41
+ var _a, _b, _c;
42
+ const data = (_b = (_a = this.jsonforms) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.data;
43
+ if (!data)
44
+ return [];
45
+ const errors = [];
46
+ (_c = uischema === null || uischema === void 0 ? void 0 : uischema.elements) === null || _c === void 0 ? void 0 : _c.forEach((e) => {
47
+ var _a, _b, _c, _d;
48
+ const validator = (_a = e === null || e === void 0 ? void 0 : e.options) === null || _a === void 0 ? void 0 : _a.validateFn;
49
+ if (typeof validator !== 'function')
50
+ return;
51
+ const path = (_c = (_b = e === null || e === void 0 ? void 0 : e.scope) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop();
52
+ const label = e === null || e === void 0 ? void 0 : e.label;
53
+ let newErrors = (_d = validator(data, path, label)) !== null && _d !== void 0 ? _d : [];
54
+ // the validator function is supposed to return an array of errors but let's not explode if it returns a single one
55
+ if (!Array.isArray(newErrors)) {
56
+ newErrors = [newErrors];
57
+ }
58
+ errors.push(...newErrors);
59
+ });
60
+ return errors;
61
+ };
62
+ }
63
+ schemaChanged() {
64
+ var _a, _b, _c, _d;
65
+ if (!this.schema) {
66
+ return;
67
+ }
68
+ const uischemaToUse = (_a = this.uischema) !== null && _a !== void 0 ? _a : Generate.uiSchema(this.schema);
69
+ if (!this.uischema) {
70
+ console.log('UI schema not provided. Auto generated schema:', uischemaToUse);
71
+ }
72
+ const additionalErrors = this.validate(uischemaToUse);
73
+ const initCore = () => {
74
+ const initialCore = {
75
+ data: this.data,
76
+ schema: this.schema,
77
+ uischema: uischemaToUse,
78
+ };
79
+ const core = coreReducer(initialCore, Actions.init(this.data, this.schema, uischemaToUse, {
80
+ validationMode: this.validationMode || 'ValidateAndShow',
81
+ ajv: this.ajv,
82
+ additionalErrors,
83
+ }));
84
+ return core;
85
+ };
86
+ this.jsonforms = {
87
+ core: initCore(),
88
+ config: configReducer(undefined, Actions.setConfig(this.config)),
89
+ i18n: i18nReducer(this.i18n, Actions.updateI18n((_b = this.i18n) === null || _b === void 0 ? void 0 : _b.locale, (_c = this.i18n) === null || _c === void 0 ? void 0 : _c.translate, ((_d = this.i18n) === null || _d === void 0 ? void 0 : _d.translateError) || errorTranslator)),
90
+ renderers: this.renderers,
91
+ readonly: this.readonly,
92
+ };
93
+ this.$emit('data-change', {
94
+ data: this.jsonforms.core.data,
95
+ errors: this.jsonforms.core.errors,
96
+ });
97
+ }
98
+ uischemaChanged() {
99
+ this.schemaChanged();
100
+ }
101
+ dataChanged() {
102
+ this.schemaChanged();
103
+ }
104
+ renderersChanged() {
105
+ this.schemaChanged();
106
+ }
107
+ validationModeChanged() {
108
+ this.schemaChanged();
109
+ }
110
+ ajvChanged() {
111
+ this.schemaChanged();
112
+ }
113
+ readonlyChanged() {
114
+ this.schemaChanged();
115
+ }
116
+ configChanged() {
117
+ this.schemaChanged();
118
+ }
119
+ get props() {
120
+ var _a;
121
+ if (!this.schema && !this.uischema) {
122
+ return undefined;
123
+ }
124
+ const uischema = (_a = this.uischema) !== null && _a !== void 0 ? _a : Generate.uiSchema(this.schema);
125
+ return {
126
+ uischema,
127
+ schema: this.schema,
128
+ path: '',
129
+ enabled: true,
130
+ visible: true,
131
+ };
132
+ }
133
+ };
134
+ __decorate([
135
+ attr({ mode: 'boolean' })
136
+ ], JSONForms.prototype, "submitted", void 0);
137
+ __decorate([
138
+ observable
139
+ ], JSONForms.prototype, "jsonforms", void 0);
140
+ __decorate([
141
+ observable
142
+ ], JSONForms.prototype, "i18n", void 0);
143
+ __decorate([
144
+ observable
145
+ ], JSONForms.prototype, "schema", void 0);
146
+ __decorate([
147
+ observable
148
+ ], JSONForms.prototype, "uischema", void 0);
149
+ __decorate([
150
+ observable
151
+ ], JSONForms.prototype, "data", void 0);
152
+ __decorate([
153
+ observable
154
+ ], JSONForms.prototype, "renderers", void 0);
155
+ __decorate([
156
+ observable
157
+ ], JSONForms.prototype, "validationMode", void 0);
158
+ __decorate([
159
+ observable
160
+ ], JSONForms.prototype, "ajv", void 0);
161
+ __decorate([
162
+ attr({ mode: 'boolean' })
163
+ ], JSONForms.prototype, "readonly", void 0);
164
+ __decorate([
165
+ observable
166
+ ], JSONForms.prototype, "config", void 0);
167
+ JSONForms = __decorate([
168
+ customElement({
169
+ name: 'json-forms',
170
+ template: template,
171
+ styles: styles,
172
+ })
173
+ ], JSONForms);
174
+ export { JSONForms };
175
+ //# sourceMappingURL=json-forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-forms.js","sourceRoot":"","sources":["../../../src/jsonforms/json-forms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { html } from '@microsoft/fast-element';
2
+ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
3
+ import { isOneOfBoolean } from '../testers/isOneOfBoolean';
4
+ import { BOOLEAN_CONTROL_RANK } from './RenderersRanks';
5
+ export const BooleanControlRendererTemplate = html `
6
+ <template>
7
+ <control-wrapper
8
+ :control=${(x) => x.control}
9
+ :touched=${(x) => x.touched}
10
+ ?submitted=${(x) => x.submitted}
11
+ >
12
+ <zero-checkbox
13
+ :checked=${(x) => x.control.data}
14
+ ?disabled=${(x) => !x.control.enabled}
15
+ :autofocus=${(x) => x.control.config.focus}
16
+ :placeholder=${(x) => x.control.config.placeholder}
17
+ @change=${(x, c) => {
18
+ x.control.handleChange(x.control.path, c.event.target.checked);
19
+ x.onBlur();
20
+ }}
21
+ ></zero-checkbox>
22
+ </control-wrapper>
23
+ </template>
24
+ `;
25
+ export const BooleanControlEntry = {
26
+ renderer: BooleanControlRendererTemplate,
27
+ tester: rankWith(BOOLEAN_CONTROL_RANK, isOneOfBoolean),
28
+ mapper: mapStateToControlProps,
29
+ };
30
+ //# sourceMappingURL=BooleanControlRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanControlRenderer.js","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/BooleanControlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAkB;;;iBAGnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;iBAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;mBACd,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;;;mBAGlB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;oBACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;qBACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;uBAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;kBACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC,CAAC,KAAK,CAAC,MAAc,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC,MAAM,EAAE,CAAC;AACb,CAAC;;;;CAIR,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,QAAQ,EAAE,8BAA8B;IACxC,MAAM,EAAE,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC;IACtD,MAAM,EAAE,sBAAsB;CAC/B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
+ import { html } from '@microsoft/fast-element';
3
+ import { isOneOfOptionMultiselect } from '../testers/isOneOfOptionMultiselect';
4
+ import { MULTISELECT_CONTROL_RANK } from './RenderersRanks';
5
+ export const ConnectedMultiselectControlRendererTemplate = html `
6
+ <template>
7
+ <control-wrapper
8
+ :control=${(x) => x.control}
9
+ :touched=${(x) => x.touched}
10
+ ?submitted=${(x) => x.submitted}
11
+ >
12
+ <zero-multiselect
13
+ style="width: 100%"
14
+ :selectedOptions=${(x) => x.control.data || []}
15
+ @selectionChange=${(x, c) => {
16
+ x.control.handleChange(x.control.path, c.event.detail);
17
+ x.onBlur();
18
+ }}
19
+ >
20
+ <multiselect-datasource
21
+ resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
22
+ value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
23
+ label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
24
+ ></multiselect-datasource>
25
+ </zero-multiselect>
26
+ </control-wrapper>
27
+ </template>
28
+ `;
29
+ export const ConnectedMultiselectControlRendererEntry = {
30
+ renderer: ConnectedMultiselectControlRendererTemplate,
31
+ tester: rankWith(MULTISELECT_CONTROL_RANK, isOneOfOptionMultiselect),
32
+ mapper: mapStateToControlProps,
33
+ };
34
+ //# sourceMappingURL=ConnectedMultiselectControlRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectedMultiselectControlRenderer.js","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ConnectedMultiselectControlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,2CAA2C,GAAG,IAAI,CAAkB;;;iBAGhE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;iBAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;mBACd,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;;;;2BAIV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;2BAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC1B,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC,CAAC,KAAa,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC,CAAC,MAAM,EAAE,CAAC;AACb,CAAC;;;yBAGgB,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,sBAAsB,CAAA,EAAA;wBAC1D,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,UAAU,CAAA,EAAA;wBAC7C,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,UAAU,CAAA,EAAA;;;;;CAKpE,CAAC;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAkB;IACrE,QAAQ,EAAE,2CAA2C;IACrD,MAAM,EAAE,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpE,MAAM,EAAE,sBAAsB;CAC/B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { mapStateToControlProps, or, rankWith } from '@jsonforms/core';
2
+ import { html } from '@microsoft/fast-element';
3
+ import { optionIs } from '../testers/optionIs';
4
+ import { SELECT_CONTROL_RANK } from './RenderersRanks';
5
+ export const ConnectedSelectControlRendererTemplate = html `
6
+ <template>
7
+ <control-wrapper
8
+ :control=${(x) => x.control}
9
+ :touched=${(x) => x.touched}
10
+ ?submitted=${(x) => x.submitted}
11
+ >
12
+ <zero-combobox
13
+ style="width: 100%"
14
+ placeholder=${(x) => x.control.label}
15
+ ?disabled=${(x) => !x.control.enabled}
16
+ :value=${(x) => x.control.data || ''}
17
+ @value-change=${(x, c) => {
18
+ var _a;
19
+ const value = (_a = c.event.detail) === null || _a === void 0 ? void 0 : _a.value;
20
+ x.control.handleChange(x.control.path, value);
21
+ x.onBlur();
22
+ }}
23
+ >
24
+ <options-datasource
25
+ resourceName=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.allOptionsResourceName; }}
26
+ value-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.valueField; }}
27
+ label-field=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.labelField; }}
28
+ :data=${(x) => { var _a; return (_a = x.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data; }}
29
+ :initialSelectedValue=${(x) => x.control.data}
30
+ ></options-datasource>
31
+ </zero-combobox>
32
+ </control-wrapper>
33
+ </template>
34
+ `;
35
+ export const ConnectedSelectControlRendererEntry = {
36
+ renderer: ConnectedSelectControlRendererTemplate,
37
+ tester: rankWith(SELECT_CONTROL_RANK, or(optionIs('allOptionsResourceName'), optionIs('data'))),
38
+ mapper: mapStateToControlProps,
39
+ };
40
+ //# sourceMappingURL=ConnectedSelectControlRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectedSelectControlRenderer.js","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ConnectedSelectControlRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,CAAkB;;;iBAG3D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;iBAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;mBACd,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;;;;sBAIf,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;oBACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;iBAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;wBACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;IACvB,MAAM,KAAK,GAAG,MAAC,CAAC,CAAC,KAAa,CAAC,MAAM,0CAAE,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,MAAM,EAAE,CAAC;AACb,CAAC;;;yBAGgB,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,sBAAsB,CAAA,EAAA;wBAC1D,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,UAAU,CAAA,EAAA;wBAC7C,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,UAAU,CAAA,EAAA;kBACnD,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,0CAAE,IAAI,CAAA,EAAA;kCACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;;;;;CAKtD,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAQ;IACtD,QAAQ,EAAE,sCAAsC;IAChD,MAAM,EAAE,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,MAAM,EAAE,sBAAsB;CAC/B,CAAC"}