@jsonforms/core 3.0.0-alpha.1 → 3.0.0-beta.1

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 (228) hide show
  1. package/docs/assets/js/search.json +1 -1
  2. package/docs/globals.html +822 -405
  3. package/docs/index.html +69 -36
  4. package/docs/interfaces/addcellrendereraction.html +3 -3
  5. package/docs/interfaces/addrendereraction.html +3 -3
  6. package/docs/interfaces/adduischemaaction.html +3 -3
  7. package/docs/interfaces/arraycontrolprops.html +21 -21
  8. package/docs/interfaces/arraylayoutprops.html +21 -21
  9. package/docs/interfaces/cellprops.html +14 -14
  10. package/docs/interfaces/combinatorrendererprops.html +13 -13
  11. package/docs/interfaces/controlprops.html +16 -16
  12. package/docs/interfaces/controlstate.html +2 -2
  13. package/docs/interfaces/controlwithdetailprops.html +17 -17
  14. package/docs/interfaces/dispatchcellprops.html +13 -13
  15. package/docs/interfaces/dispatchcellstateprops.html +13 -13
  16. package/docs/interfaces/dispatchpropsofarraycontrol.html +4 -4
  17. package/docs/interfaces/dispatchpropsofcontrol.html +1 -1
  18. package/docs/interfaces/dispatchpropsofmultienumcontrol.html +2 -2
  19. package/docs/interfaces/enumcellprops.html +15 -15
  20. package/docs/interfaces/enumoption.html +2 -2
  21. package/docs/interfaces/initaction.html +6 -6
  22. package/docs/interfaces/initactionoptions.html +3 -3
  23. package/docs/interfaces/jsonformscore.html +7 -7
  24. package/docs/interfaces/{jsonformslocalestate.html → jsonformsi18nstate.html} +20 -20
  25. package/docs/interfaces/jsonformsprops.html +9 -9
  26. package/docs/interfaces/jsonformssubstates.html +11 -1
  27. package/docs/interfaces/layoutprops.html +10 -10
  28. package/docs/interfaces/ownpropsofcell.html +10 -10
  29. package/docs/interfaces/ownpropsofcontrol.html +9 -9
  30. package/docs/interfaces/ownpropsofenum.html +1 -1
  31. package/docs/interfaces/ownpropsofenumcell.html +11 -11
  32. package/docs/interfaces/ownpropsofjsonformsrenderer.html +8 -8
  33. package/docs/interfaces/ownpropsoflayout.html +9 -9
  34. package/docs/interfaces/ownpropsofmasterlistitem.html +6 -6
  35. package/docs/interfaces/ownpropsofrenderer.html +8 -8
  36. package/docs/interfaces/registerdefaultdataaction.html +3 -3
  37. package/docs/interfaces/removecellrendereraction.html +3 -3
  38. package/docs/interfaces/removerendereraction.html +3 -3
  39. package/docs/interfaces/removeuischemaaction.html +2 -2
  40. package/docs/interfaces/rendererprops.html +9 -9
  41. package/docs/interfaces/setajvaction.html +3 -3
  42. package/docs/interfaces/setconfigaction.html +2 -2
  43. package/docs/interfaces/setlocaleaction.html +3 -3
  44. package/docs/interfaces/setschemaaction.html +2 -2
  45. package/docs/interfaces/{setlocalizedschemasaction.html → settranslatoraction.html} +29 -15
  46. package/docs/interfaces/setuischemaaction.html +2 -2
  47. package/docs/interfaces/setvalidationmodeaction.html +2 -2
  48. package/docs/interfaces/statepropsofarraycontrol.html +17 -17
  49. package/docs/interfaces/statepropsofarraylayout.html +17 -17
  50. package/docs/interfaces/statepropsofcell.html +13 -13
  51. package/docs/interfaces/statepropsofcombinator.html +12 -12
  52. package/docs/interfaces/statepropsofcontrol.html +15 -15
  53. package/docs/interfaces/statepropsofcontrolwithdetail.html +16 -16
  54. package/docs/interfaces/statepropsofenumcell.html +14 -14
  55. package/docs/interfaces/statepropsofjsonformsrenderer.html +9 -9
  56. package/docs/interfaces/statepropsoflayout.html +10 -10
  57. package/docs/interfaces/statepropsofmasteritem.html +7 -7
  58. package/docs/interfaces/statepropsofrenderer.html +9 -9
  59. package/docs/interfaces/statepropsofscopedrenderer.html +12 -12
  60. package/docs/interfaces/unregisterdefaultdataaction.html +2 -2
  61. package/docs/interfaces/updateaction.html +3 -3
  62. package/docs/interfaces/updatecoreaction.html +6 -6
  63. package/docs/interfaces/updateerrorsaction.html +2 -2
  64. package/docs/interfaces/{setlocalizeduischemasaction.html → updatei18naction.html} +43 -15
  65. package/docs/interfaces/withclassname.html +1 -1
  66. package/lib/Helpers.d.ts +5 -5
  67. package/lib/actions/actions.d.ts +181 -177
  68. package/lib/actions/index.d.ts +1 -1
  69. package/lib/configDefault.d.ts +6 -6
  70. package/lib/generators/Generate.d.ts +6 -6
  71. package/lib/generators/index.d.ts +3 -3
  72. package/lib/generators/schema.d.ts +8 -8
  73. package/lib/generators/uischema.d.ts +12 -12
  74. package/lib/i18n/i18nTypes.d.ts +15 -0
  75. package/lib/i18n/i18nUtil.d.ts +18 -0
  76. package/lib/i18n/index.d.ts +2 -0
  77. package/lib/index.d.ts +11 -10
  78. package/lib/jsonforms-core.cjs.js +2445 -0
  79. package/lib/jsonforms-core.cjs.js.map +1 -0
  80. package/lib/jsonforms-core.esm.js +2164 -0
  81. package/lib/jsonforms-core.esm.js.map +1 -0
  82. package/lib/models/draft4.d.ts +198 -198
  83. package/lib/models/index.d.ts +5 -5
  84. package/lib/models/jsonSchema.d.ts +3 -3
  85. package/lib/models/jsonSchema4.d.ts +110 -110
  86. package/lib/models/jsonSchema7.d.ts +119 -119
  87. package/lib/models/uischema.d.ts +201 -201
  88. package/lib/reducers/cells.d.ts +11 -11
  89. package/lib/reducers/config.d.ts +3 -3
  90. package/lib/reducers/core.d.ts +24 -23
  91. package/lib/reducers/default-data.d.ts +10 -10
  92. package/lib/reducers/i18n.d.ts +8 -11
  93. package/lib/reducers/index.d.ts +9 -9
  94. package/lib/reducers/reducers.d.ts +29 -36
  95. package/lib/reducers/renderers.d.ts +10 -10
  96. package/lib/reducers/selectors.d.ts +15 -15
  97. package/lib/reducers/uischemas.d.ts +10 -10
  98. package/lib/store.d.ts +53 -52
  99. package/lib/testers/index.d.ts +1 -1
  100. package/lib/testers/testers.d.ts +203 -203
  101. package/lib/util/Formatted.d.ts +19 -19
  102. package/lib/util/array.d.ts +3 -3
  103. package/lib/util/cell.d.ts +79 -79
  104. package/lib/util/combinators.d.ts +10 -10
  105. package/lib/util/ids.d.ts +3 -3
  106. package/lib/util/index.d.ts +15 -15
  107. package/lib/util/label.d.ts +9 -9
  108. package/lib/util/path.d.ts +25 -25
  109. package/lib/util/renderer.d.ts +398 -387
  110. package/lib/util/resolvers.d.ts +25 -25
  111. package/lib/util/runtime.d.ts +18 -19
  112. package/lib/util/schema.d.ts +1 -1
  113. package/lib/util/type.d.ts +174 -174
  114. package/lib/util/uischema.d.ts +5 -5
  115. package/lib/util/util.d.ts +31 -31
  116. package/lib/util/validator.d.ts +3 -2
  117. package/package.json +18 -14
  118. package/rollup.config.js +44 -0
  119. package/src/actions/actions.ts +46 -36
  120. package/src/i18n/i18nTypes.ts +17 -0
  121. package/src/i18n/i18nUtil.ts +105 -0
  122. package/src/i18n/index.ts +2 -0
  123. package/src/index.ts +1 -0
  124. package/src/reducers/core.ts +70 -48
  125. package/src/reducers/i18n.ts +41 -35
  126. package/src/reducers/reducers.ts +10 -29
  127. package/src/reducers/selectors.ts +1 -1
  128. package/src/store.ts +4 -4
  129. package/src/util/cell.ts +26 -6
  130. package/src/util/renderer.ts +127 -38
  131. package/src/util/runtime.ts +1 -1
  132. package/src/util/util.ts +1 -1
  133. package/src/util/validator.ts +5 -9
  134. package/stats.html +3279 -0
  135. package/{lib/reducers/cells.js → test/i18n/i18nUtil.test.ts} +25 -17
  136. package/test/reducers/core.test.ts +31 -44
  137. package/test/util/cell.test.ts +2 -2
  138. package/test/util/renderer.test.ts +488 -35
  139. package/lib/Helpers.js +0 -32
  140. package/lib/Helpers.js.map +0 -1
  141. package/lib/actions/actions.js +0 -149
  142. package/lib/actions/actions.js.map +0 -1
  143. package/lib/actions/index.js +0 -29
  144. package/lib/actions/index.js.map +0 -1
  145. package/lib/configDefault.js +0 -47
  146. package/lib/configDefault.js.map +0 -1
  147. package/lib/generators/Generate.js +0 -34
  148. package/lib/generators/Generate.js.map +0 -1
  149. package/lib/generators/index.js +0 -31
  150. package/lib/generators/index.js.map +0 -1
  151. package/lib/generators/schema.js +0 -152
  152. package/lib/generators/schema.js.map +0 -1
  153. package/lib/generators/uischema.js +0 -166
  154. package/lib/generators/uischema.js.map +0 -1
  155. package/lib/index.js +0 -37
  156. package/lib/index.js.map +0 -1
  157. package/lib/jsonforms-core.js +0 -19
  158. package/lib/jsonforms-core.js.map +0 -1
  159. package/lib/models/draft4.js +0 -173
  160. package/lib/models/draft4.js.map +0 -1
  161. package/lib/models/index.js +0 -30
  162. package/lib/models/index.js.map +0 -1
  163. package/lib/models/jsonSchema.js +0 -27
  164. package/lib/models/jsonSchema.js.map +0 -1
  165. package/lib/models/jsonSchema4.js +0 -30
  166. package/lib/models/jsonSchema4.js.map +0 -1
  167. package/lib/models/jsonSchema7.js +0 -30
  168. package/lib/models/jsonSchema7.js.map +0 -1
  169. package/lib/models/uischema.js +0 -55
  170. package/lib/models/uischema.js.map +0 -1
  171. package/lib/reducers/cells.js.map +0 -1
  172. package/lib/reducers/config.js +0 -44
  173. package/lib/reducers/config.js.map +0 -1
  174. package/lib/reducers/core.js +0 -259
  175. package/lib/reducers/core.js.map +0 -1
  176. package/lib/reducers/default-data.js +0 -42
  177. package/lib/reducers/default-data.js.map +0 -1
  178. package/lib/reducers/i18n.js +0 -65
  179. package/lib/reducers/i18n.js.map +0 -1
  180. package/lib/reducers/index.js +0 -37
  181. package/lib/reducers/index.js.map +0 -1
  182. package/lib/reducers/reducers.js +0 -99
  183. package/lib/reducers/reducers.js.map +0 -1
  184. package/lib/reducers/renderers.js +0 -41
  185. package/lib/reducers/renderers.js.map +0 -1
  186. package/lib/reducers/selectors.js +0 -47
  187. package/lib/reducers/selectors.js.map +0 -1
  188. package/lib/reducers/uischemas.js +0 -57
  189. package/lib/reducers/uischemas.js.map +0 -1
  190. package/lib/store.js +0 -27
  191. package/lib/store.js.map +0 -1
  192. package/lib/testers/index.js +0 -29
  193. package/lib/testers/index.js.map +0 -1
  194. package/lib/testers/testers.js +0 -401
  195. package/lib/testers/testers.js.map +0 -1
  196. package/lib/util/Formatted.js +0 -27
  197. package/lib/util/Formatted.js.map +0 -1
  198. package/lib/util/array.js +0 -43
  199. package/lib/util/array.js.map +0 -1
  200. package/lib/util/cell.js +0 -133
  201. package/lib/util/cell.js.map +0 -1
  202. package/lib/util/combinators.js +0 -56
  203. package/lib/util/combinators.js.map +0 -1
  204. package/lib/util/ids.js +0 -50
  205. package/lib/util/ids.js.map +0 -1
  206. package/lib/util/index.js +0 -41
  207. package/lib/util/index.js.map +0 -1
  208. package/lib/util/label.js +0 -70
  209. package/lib/util/label.js.map +0 -1
  210. package/lib/util/path.js +0 -85
  211. package/lib/util/path.js.map +0 -1
  212. package/lib/util/renderer.js +0 -451
  213. package/lib/util/renderer.js.map +0 -1
  214. package/lib/util/resolvers.js +0 -165
  215. package/lib/util/resolvers.js.map +0 -1
  216. package/lib/util/runtime.js +0 -159
  217. package/lib/util/runtime.js.map +0 -1
  218. package/lib/util/schema.js +0 -40
  219. package/lib/util/schema.js.map +0 -1
  220. package/lib/util/type.js +0 -27
  221. package/lib/util/type.js.map +0 -1
  222. package/lib/util/uischema.js +0 -52
  223. package/lib/util/uischema.js.map +0 -1
  224. package/lib/util/util.js +0 -107
  225. package/lib/util/util.js.map +0 -1
  226. package/lib/util/validator.js +0 -36
  227. package/lib/util/validator.js.map +0 -1
  228. package/webpack.build.js +0 -13
@@ -1,451 +0,0 @@
1
- "use strict";
2
- /*
3
- The MIT License
4
-
5
- Copyright (c) 2017-2019 EclipseSource Munich
6
- https://github.com/eclipsesource/jsonforms
7
-
8
- Permission is hereby granted, free of charge, to any person obtaining a copy
9
- of this software and associated documentation files (the "Software"), to deal
10
- in the Software without restriction, including without limitation the rights
11
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
- copies of the Software, and to permit persons to whom the Software is
13
- furnished to do so, subject to the following conditions:
14
-
15
- The above copyright notice and this permission notice shall be included in
16
- all copies or substantial portions of the Software.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
- THE SOFTWARE.
25
- */
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- var tslib_1 = require("tslib");
28
- var get_1 = tslib_1.__importDefault(require("lodash/get"));
29
- var union_1 = tslib_1.__importDefault(require("lodash/union"));
30
- var find_1 = tslib_1.__importDefault(require("lodash/find"));
31
- var reducers_1 = require("../reducers");
32
- var runtime_1 = require("./runtime");
33
- var label_1 = require("./label");
34
- var combinators_1 = require("./combinators");
35
- var array_1 = require("./array");
36
- var util_1 = require("./util");
37
- var path_1 = require("./path");
38
- var runtime_2 = require("./runtime");
39
- var actions_1 = require("../actions");
40
- var isRequired = function (schema, schemaPath, rootSchema) {
41
- var pathSegments = schemaPath.split('/');
42
- var lastSegment = pathSegments[pathSegments.length - 1];
43
- var nextHigherSchemaSegments = pathSegments.slice(0, pathSegments.length - 2);
44
- var nextHigherSchemaPath = nextHigherSchemaSegments.join('/');
45
- var nextHigherSchema = util_1.Resolve.schema(schema, nextHigherSchemaPath, rootSchema);
46
- return (nextHigherSchema !== undefined &&
47
- nextHigherSchema.required !== undefined &&
48
- nextHigherSchema.required.indexOf(lastSegment) !== -1);
49
- };
50
- /**
51
- * Adds an asterisk to the given label string based
52
- * on the required parameter.
53
- *
54
- * @param {string} label the label string
55
- * @param {boolean} required whether the label belongs to a control which is required
56
- * @returns {string} the label string
57
- */
58
- exports.computeLabel = function (label, required, hideRequiredAsterisk) {
59
- return required && !hideRequiredAsterisk ? label + '*' : label;
60
- };
61
- /**
62
- * Create a default value based on the given scheam.
63
- * @param schema the schema for which to create a default value.
64
- * @returns {any}
65
- */
66
- exports.createDefaultValue = function (schema) {
67
- switch (schema.type) {
68
- case 'string':
69
- if (schema.format === 'date-time' ||
70
- schema.format === 'date' ||
71
- schema.format === 'time') {
72
- return new Date();
73
- }
74
- return '';
75
- case 'integer':
76
- case 'number':
77
- return 0;
78
- case 'boolean':
79
- return false;
80
- case 'array':
81
- return [];
82
- case 'null':
83
- return null;
84
- default:
85
- return {};
86
- }
87
- };
88
- /**
89
- * Whether an element's description should be hidden.
90
- *
91
- * @param visible whether an element is visible
92
- * @param description the element's description
93
- * @param isFocused whether the element is focused
94
- *
95
- * @returns {boolean} true, if the description is to be hidden, false otherwise
96
- */
97
- exports.isDescriptionHidden = function (visible, description, isFocused, showUnfocusedDescription) {
98
- return (description === undefined ||
99
- (description !== undefined && !visible) ||
100
- (!showUnfocusedDescription && !isFocused));
101
- };
102
- exports.enumToEnumOptionMapper = function (e) {
103
- var stringifiedEnum = typeof e === 'string' ? e : JSON.stringify(e);
104
- return { label: stringifiedEnum, value: e };
105
- };
106
- exports.oneOfToEnumOptionMapper = function (e) {
107
- var _a;
108
- return ({
109
- value: e.const,
110
- label: (_a = e.title) !== null && _a !== void 0 ? _a : (typeof e.const === 'string' ? e.const : JSON.stringify(e.const))
111
- });
112
- };
113
- /**
114
- * Map state to control props.
115
- * @param state the store's state
116
- * @param ownProps any own props
117
- * @returns {StatePropsOfControl} state props for a control
118
- */
119
- exports.mapStateToControlProps = function (state, ownProps) {
120
- var uischema = ownProps.uischema;
121
- var rootData = reducers_1.getData(state);
122
- var path = path_1.composeWithUi(uischema, ownProps.path);
123
- var visible = ownProps.visible === undefined || runtime_1.hasShowRule(uischema)
124
- ? runtime_2.isVisible(uischema, rootData, ownProps.path, reducers_1.getAjv(state))
125
- : ownProps.visible;
126
- var controlElement = uischema;
127
- var id = ownProps.id;
128
- var rootSchema = reducers_1.getSchema(state);
129
- var required = controlElement.scope !== undefined &&
130
- isRequired(ownProps.schema, controlElement.scope, rootSchema);
131
- var resolvedSchema = util_1.Resolve.schema(ownProps.schema || rootSchema, controlElement.scope, rootSchema);
132
- var errors = util_1.formatErrorMessage(union_1.default(reducers_1.getErrorAt(path, resolvedSchema)(state).map(function (error) { return error.message; })));
133
- var description = resolvedSchema !== undefined ? resolvedSchema.description : '';
134
- var data = util_1.Resolve.data(rootData, path);
135
- var labelDesc = label_1.createLabelDescriptionFrom(uischema, resolvedSchema);
136
- var label = labelDesc.show ? labelDesc.text : '';
137
- var config = reducers_1.getConfig(state);
138
- var enabled = runtime_1.isInherentlyEnabled(state, ownProps, uischema, resolvedSchema || rootSchema, rootData, config);
139
- return {
140
- data: data,
141
- description: description,
142
- errors: errors,
143
- label: label,
144
- visible: visible,
145
- enabled: enabled,
146
- id: id,
147
- path: path,
148
- required: required,
149
- uischema: ownProps.uischema,
150
- schema: resolvedSchema || rootSchema,
151
- config: reducers_1.getConfig(state),
152
- cells: ownProps.cells || state.jsonforms.cells,
153
- rootSchema: rootSchema
154
- };
155
- };
156
- /**
157
- *
158
- * Map dispatch to control props.
159
- *
160
- * @param dispatch the store's dispatch method
161
- * @returns {DispatchPropsOfControl} dispatch props for a control
162
- */
163
- exports.mapDispatchToControlProps = function (dispatch) { return ({
164
- handleChange: function (path, value) {
165
- dispatch(actions_1.update(path, function () { return value; }));
166
- }
167
- }); };
168
- /**
169
- * Default mapStateToCellProps for enum control. Options is used for populating dropdown list
170
- * @param state
171
- * @param ownProps
172
- * @returns {StatePropsOfControl & OwnPropsOfEnum}
173
- */
174
- exports.mapStateToEnumControlProps = function (state, ownProps) {
175
- var _a;
176
- var props = exports.mapStateToControlProps(state, ownProps);
177
- var options = ownProps.options || ((_a = props.schema.enum) === null || _a === void 0 ? void 0 : _a.map(exports.enumToEnumOptionMapper)) ||
178
- (props.schema.const && [exports.enumToEnumOptionMapper(props.schema.const)]);
179
- return tslib_1.__assign(tslib_1.__assign({}, props), { options: options });
180
- };
181
- /**
182
- * Default mapStateToCellProps for enum control based on oneOf. Options is used for populating dropdown list
183
- * @param state
184
- * @param ownProps
185
- * @returns {StatePropsOfControl & OwnPropsOfEnum}
186
- */
187
- exports.mapStateToOneOfEnumControlProps = function (state, ownProps) {
188
- var _a;
189
- var props = exports.mapStateToControlProps(state, ownProps);
190
- var options = ownProps.options || ((_a = props.schema.oneOf) === null || _a === void 0 ? void 0 : _a.map(exports.oneOfToEnumOptionMapper));
191
- return tslib_1.__assign(tslib_1.__assign({}, props), { options: options });
192
- };
193
- /**
194
- * Default mapStateToCellProps for multi enum control. Options is used for populating dropdown list
195
- * @param state
196
- * @param ownProps
197
- * @returns {StatePropsOfControl & OwnPropsOfEnum}
198
- */
199
- exports.mapStateToMultiEnumControlProps = function (state, ownProps) {
200
- var _a;
201
- var props = exports.mapStateToControlProps(state, ownProps);
202
- var items = props.schema.items;
203
- var options = ownProps.options ||
204
- ((items === null || items === void 0 ? void 0 : items.oneOf) &&
205
- items.oneOf.map(exports.oneOfToEnumOptionMapper)) || ((_a = items === null || items === void 0 ? void 0 : items.enum) === null || _a === void 0 ? void 0 : _a.map(exports.enumToEnumOptionMapper));
206
- return tslib_1.__assign(tslib_1.__assign({}, props), { options: options });
207
- };
208
- /**
209
- * Map state to control props.
210
- * @param state the store's state
211
- * @param ownProps any own props
212
- * @returns {StatePropsOfControl} state props for a control
213
- */
214
- exports.mapStateToMasterListItemProps = function (state, ownProps) {
215
- var schema = ownProps.schema, path = ownProps.path, index = ownProps.index;
216
- var firstPrimitiveProp = schema.properties
217
- ? find_1.default(Object.keys(schema.properties), function (propName) {
218
- var prop = schema.properties[propName];
219
- return (prop.type === 'string' ||
220
- prop.type === 'number' ||
221
- prop.type === 'integer');
222
- })
223
- : undefined;
224
- var childPath = path_1.composePaths(path, "" + index);
225
- var childData = util_1.Resolve.data(reducers_1.getData(state), childPath);
226
- var childLabel = firstPrimitiveProp ? childData[firstPrimitiveProp] : '';
227
- return tslib_1.__assign(tslib_1.__assign({}, ownProps), { childLabel: childLabel });
228
- };
229
- /**
230
- * Map state to control with detail props
231
- *
232
- * @param state the store's state
233
- * @param ownProps any element's own props
234
- * @returns {StatePropsOfArrayControl} state props for a table control
235
- */
236
- exports.mapStateToControlWithDetailProps = function (state, ownProps) {
237
- var props = tslib_1.__rest(exports.mapStateToControlProps(state, ownProps), []);
238
- return tslib_1.__assign(tslib_1.__assign({}, props), { uischemas: state.jsonforms.uischemas });
239
- };
240
- /**
241
- * Map state to table props
242
- *
243
- * @param state the store's state
244
- * @param ownProps any element's own props
245
- * @returns {StatePropsOfArrayControl} state props for a table control
246
- */
247
- exports.mapStateToArrayControlProps = function (state, ownProps) {
248
- var _a = exports.mapStateToControlWithDetailProps(state, ownProps), path = _a.path, schema = _a.schema, uischema = _a.uischema, props = tslib_1.__rest(_a, ["path", "schema", "uischema"]);
249
- var resolvedSchema = util_1.Resolve.schema(schema, 'items', props.rootSchema);
250
- var childErrors = reducers_1.getSubErrorsAt(path, resolvedSchema)(state);
251
- return tslib_1.__assign(tslib_1.__assign({}, props), { path: path,
252
- uischema: uischema, schema: resolvedSchema, childErrors: childErrors, renderers: ownProps.renderers || reducers_1.getRenderers(state), cells: ownProps.cells || reducers_1.getCells(state) });
253
- };
254
- /**
255
- * Maps state to dispatch properties of an array control.
256
- *
257
- * @param dispatch the store's dispatch method
258
- * @returns {DispatchPropsOfArrayControl} dispatch props of an array control
259
- */
260
- exports.mapDispatchToArrayControlProps = function (dispatch) { return ({
261
- addItem: function (path, value) { return function () {
262
- dispatch(actions_1.update(path, function (array) {
263
- if (array === undefined || array === null) {
264
- return [value];
265
- }
266
- array.push(value);
267
- return array;
268
- }));
269
- }; },
270
- removeItems: function (path, toDelete) { return function () {
271
- dispatch(actions_1.update(path, function (array) {
272
- toDelete
273
- .sort()
274
- .reverse()
275
- .forEach(function (s) { return array.splice(s, 1); });
276
- return array;
277
- }));
278
- }; },
279
- moveUp: function (path, toMove) { return function () {
280
- dispatch(actions_1.update(path, function (array) {
281
- array_1.moveUp(array, toMove);
282
- return array;
283
- }));
284
- }; },
285
- moveDown: function (path, toMove) { return function () {
286
- dispatch(actions_1.update(path, function (array) {
287
- array_1.moveDown(array, toMove);
288
- return array;
289
- }));
290
- }; }
291
- }); };
292
- exports.mapDispatchToMultiEnumProps = function (dispatch) { return ({
293
- addItem: function (path, value) {
294
- dispatch(actions_1.update(path, function (data) {
295
- if (data === undefined || data === null) {
296
- return [value];
297
- }
298
- data.push(value);
299
- return data;
300
- }));
301
- },
302
- removeItem: function (path, toDelete) {
303
- dispatch(actions_1.update(path, function (data) {
304
- var indexInData = data.indexOf(toDelete);
305
- data.splice(indexInData, 1);
306
- return data;
307
- }));
308
- }
309
- }); };
310
- exports.layoutDefaultProps = {
311
- visible: true,
312
- enabled: true,
313
- path: '',
314
- direction: 'column'
315
- };
316
- var getDirection = function (uischema) {
317
- if (uischema.type === 'HorizontalLayout') {
318
- return 'row';
319
- }
320
- if (uischema.type === 'VerticalLayout') {
321
- return 'column';
322
- }
323
- return exports.layoutDefaultProps.direction;
324
- };
325
- /**
326
- * Map state to layout props.
327
- * @param state JSONForms state tree
328
- * @param ownProps any own props
329
- * @returns {StatePropsOfLayout}
330
- */
331
- exports.mapStateToLayoutProps = function (state, ownProps) {
332
- var _a;
333
- var rootData = reducers_1.getData(state);
334
- var uischema = ownProps.uischema;
335
- var visible = ownProps.visible === undefined || runtime_1.hasShowRule(uischema)
336
- ? runtime_2.isVisible(ownProps.uischema, rootData, ownProps.path, reducers_1.getAjv(state))
337
- : ownProps.visible;
338
- var data = util_1.Resolve.data(rootData, ownProps.path);
339
- var config = reducers_1.getConfig(state);
340
- var enabled = runtime_1.isInherentlyEnabled(state, ownProps, uischema, undefined, // layouts have no associated schema
341
- rootData, config);
342
- return tslib_1.__assign(tslib_1.__assign({}, exports.layoutDefaultProps), { renderers: ownProps.renderers || reducers_1.getRenderers(state), cells: ownProps.cells || reducers_1.getCells(state), visible: visible,
343
- enabled: enabled, path: ownProps.path, data: data, uischema: ownProps.uischema, schema: ownProps.schema, direction: (_a = ownProps.direction) !== null && _a !== void 0 ? _a : getDirection(uischema) });
344
- };
345
- exports.mapStateToJsonFormsRendererProps = function (state, ownProps) {
346
- var uischema = ownProps.uischema;
347
- if (uischema === undefined) {
348
- if (ownProps.schema) {
349
- uischema = reducers_1.findUISchema(state.jsonforms.uischemas, ownProps.schema, undefined, ownProps.path);
350
- }
351
- else {
352
- uischema = reducers_1.getUiSchema(state);
353
- }
354
- }
355
- return {
356
- renderers: ownProps.renderers || get_1.default(state.jsonforms, 'renderers') || [],
357
- cells: ownProps.cells || get_1.default(state.jsonforms, 'cells') || [],
358
- schema: ownProps.schema || reducers_1.getSchema(state),
359
- rootSchema: reducers_1.getSchema(state),
360
- uischema: uischema,
361
- path: ownProps.path
362
- };
363
- };
364
- exports.controlDefaultProps = tslib_1.__assign(tslib_1.__assign({}, exports.layoutDefaultProps), { errors: [] });
365
- var mapStateToCombinatorRendererProps = function (state, ownProps, keyword) {
366
- var uischema = ownProps.uischema;
367
- var path = path_1.composeWithUi(uischema, ownProps.path);
368
- var rootSchema = reducers_1.getSchema(state);
369
- var resolvedSchema = util_1.Resolve.schema(ownProps.schema || rootSchema, uischema.scope, rootSchema);
370
- var visible = ownProps.visible === undefined || runtime_1.hasShowRule(uischema)
371
- ? runtime_2.isVisible(uischema, reducers_1.getData(state), ownProps.path, reducers_1.getAjv(state))
372
- : ownProps.visible;
373
- var id = ownProps.id;
374
- var data = util_1.Resolve.data(reducers_1.getData(state), path);
375
- var ajv = state.jsonforms.core.ajv;
376
- var schema = resolvedSchema || rootSchema;
377
- var _schema = combinators_1.resolveSubSchemas(schema, rootSchema, keyword);
378
- var structuralKeywords = [
379
- 'required',
380
- 'additionalProperties',
381
- 'type',
382
- 'enum',
383
- 'const'
384
- ];
385
- var dataIsValid = function (errors) {
386
- return (!errors ||
387
- errors.length === 0 ||
388
- !errors.find(function (e) { return structuralKeywords.indexOf(e.keyword) !== -1; }));
389
- };
390
- var indexOfFittingSchema;
391
- // TODO instead of compiling the combinator subschemas we can compile the original schema
392
- // without the combinator alternatives and then revalidate and check the errors for the
393
- // element
394
- for (var i = 0; i < _schema[keyword].length; i++) {
395
- try {
396
- var valFn = ajv.compile(_schema[keyword][i]);
397
- valFn(data);
398
- if (dataIsValid(valFn.errors)) {
399
- indexOfFittingSchema = i;
400
- break;
401
- }
402
- }
403
- catch (error) {
404
- console.debug("Combinator subschema is not self contained, can't hand it over to AJV");
405
- }
406
- }
407
- return {
408
- data: data,
409
- path: path,
410
- schema: schema,
411
- rootSchema: rootSchema,
412
- visible: visible,
413
- id: id,
414
- indexOfFittingSchema: indexOfFittingSchema,
415
- uischemas: state.jsonforms.uischemas,
416
- uischema: uischema
417
- };
418
- };
419
- /**
420
- * Map state to all of renderer props.
421
- * @param state the store's state
422
- * @param ownProps any own props
423
- * @returns {StatePropsOfCombinator} state props for a combinator
424
- */
425
- exports.mapStateToAllOfProps = function (state, ownProps) {
426
- return mapStateToCombinatorRendererProps(state, ownProps, 'allOf');
427
- };
428
- exports.mapStateToAnyOfProps = function (state, ownProps) {
429
- return mapStateToCombinatorRendererProps(state, ownProps, 'anyOf');
430
- };
431
- exports.mapStateToOneOfProps = function (state, ownProps) {
432
- return mapStateToCombinatorRendererProps(state, ownProps, 'oneOf');
433
- };
434
- /**
435
- * Map state to table props
436
- *
437
- * @param state the store's state
438
- * @param ownProps any element's own props
439
- * @returns {StatePropsOfArrayControl} state props for a table control
440
- */
441
- exports.mapStateToArrayLayoutProps = function (state, ownProps) {
442
- var _a = exports.mapStateToControlWithDetailProps(state, ownProps), path = _a.path, schema = _a.schema, uischema = _a.uischema, errors = _a.errors, props = tslib_1.__rest(_a, ["path", "schema", "uischema", "errors"]);
443
- var resolvedSchema = util_1.Resolve.schema(schema, 'items', props.rootSchema);
444
- var childErrors = util_1.formatErrorMessage(reducers_1.getSubErrorsAt(path, resolvedSchema)(state).map(function (error) { return error.message; }));
445
- var allErrors = errors +
446
- (errors.length > 0 && childErrors.length > 0 ? '\n' : '') +
447
- childErrors;
448
- return tslib_1.__assign(tslib_1.__assign({}, props), { path: path,
449
- uischema: uischema, schema: resolvedSchema, data: props.data ? props.data.length : 0, errors: allErrors, minItems: schema.minItems });
450
- };
451
- //# sourceMappingURL=renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/util/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- /*
3
- The MIT License
4
-
5
- Copyright (c) 2017-2019 EclipseSource Munich
6
- https://github.com/eclipsesource/jsonforms
7
-
8
- Permission is hereby granted, free of charge, to any person obtaining a copy
9
- of this software and associated documentation files (the "Software"), to deal
10
- in the Software without restriction, including without limitation the rights
11
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
- copies of the Software, and to permit persons to whom the Software is
13
- furnished to do so, subject to the following conditions:
14
-
15
- The above copyright notice and this permission notice shall be included in
16
- all copies or substantial portions of the Software.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
- THE SOFTWARE.
25
- */
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- var tslib_1 = require("tslib");
28
- var isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
29
- var get_1 = tslib_1.__importDefault(require("lodash/get"));
30
- var isObjectSchema = function (schema) {
31
- return schema.properties !== undefined;
32
- };
33
- var isArraySchema = function (schema) {
34
- return schema.type === 'array' && schema.items !== undefined;
35
- };
36
- exports.resolveData = function (instance, dataPath) {
37
- if (isEmpty_1.default(dataPath)) {
38
- return instance;
39
- }
40
- var dataPathSegments = dataPath.split('.');
41
- return dataPathSegments
42
- .map(function (segment) { return decodeURIComponent(segment); })
43
- .reduce(function (curInstance, decodedSegment) {
44
- if (!curInstance || !curInstance.hasOwnProperty(decodedSegment)) {
45
- return undefined;
46
- }
47
- return curInstance[decodedSegment];
48
- }, instance);
49
- };
50
- /**
51
- * Finds all references inside the given schema.
52
- *
53
- * @param schema The {@link JsonSchema} to find the references in
54
- * @param result The initial result map, default: empty map (this parameter is used for recursion
55
- * inside the function)
56
- * @param resolveTuples Whether arrays of tuples should be considered; default: false
57
- */
58
- exports.findAllRefs = function (schema, result, resolveTuples) {
59
- if (result === void 0) { result = {}; }
60
- if (resolveTuples === void 0) { resolveTuples = false; }
61
- if (isObjectSchema(schema)) {
62
- Object.keys(schema.properties).forEach(function (key) {
63
- return exports.findAllRefs(schema.properties[key], result);
64
- });
65
- }
66
- if (isArraySchema(schema)) {
67
- if (Array.isArray(schema.items)) {
68
- if (resolveTuples) {
69
- var items = schema.items;
70
- items.forEach(function (child) { return exports.findAllRefs(child, result); });
71
- }
72
- }
73
- else {
74
- exports.findAllRefs(schema.items, result);
75
- }
76
- }
77
- if (Array.isArray(schema.anyOf)) {
78
- var anyOf = schema.anyOf;
79
- anyOf.forEach(function (child) { return exports.findAllRefs(child, result); });
80
- }
81
- if (schema.$ref !== undefined) {
82
- result[schema.$ref] = schema;
83
- }
84
- return result;
85
- };
86
- var invalidSegment = function (pathSegment) {
87
- return pathSegment === '#' || pathSegment === undefined || pathSegment === '';
88
- };
89
- /**
90
- * Resolve the given schema path in order to obtain a subschema.
91
- * @param {JsonSchema} schema the root schema from which to start
92
- * @param {string} schemaPath the schema path to be resolved
93
- * @param {JsonSchema} rootSchema the actual root schema
94
- * @returns {JsonSchema} the resolved sub-schema
95
- */
96
- exports.resolveSchema = function (schema, schemaPath, rootSchema) {
97
- var _a, _b, _c;
98
- if (isEmpty_1.default(schema)) {
99
- return undefined;
100
- }
101
- var validPathSegments = schemaPath.split('/');
102
- var resultSchema = schema;
103
- for (var i = 0; i < validPathSegments.length; i++) {
104
- var pathSegment = validPathSegments[i];
105
- resultSchema =
106
- resultSchema === undefined || resultSchema.$ref === undefined
107
- ? resultSchema
108
- : exports.resolveSchema(schema, resultSchema.$ref);
109
- if (invalidSegment(pathSegment)) {
110
- // skip invalid segments
111
- continue;
112
- }
113
- var curSchema = get_1.default(resultSchema, pathSegment);
114
- if (!curSchema) {
115
- // resolving was not successful, check whether the scope omitted an oneOf, allOf or anyOf and resolve anyway
116
- var schemas = [].concat((_a = resultSchema === null || resultSchema === void 0 ? void 0 : resultSchema.oneOf) !== null && _a !== void 0 ? _a : [], (_b = resultSchema === null || resultSchema === void 0 ? void 0 : resultSchema.allOf) !== null && _b !== void 0 ? _b : [], (_c = resultSchema === null || resultSchema === void 0 ? void 0 : resultSchema.anyOf) !== null && _c !== void 0 ? _c : []);
117
- for (var _i = 0, schemas_1 = schemas; _i < schemas_1.length; _i++) {
118
- var item = schemas_1[_i];
119
- curSchema = exports.resolveSchema(item, validPathSegments.slice(i).join('/'));
120
- if (curSchema) {
121
- break;
122
- }
123
- }
124
- if (curSchema) {
125
- // already resolved rest of the path
126
- resultSchema = curSchema;
127
- break;
128
- }
129
- }
130
- resultSchema = curSchema;
131
- }
132
- // TODO: because schema is already scoped we might end up with refs pointing
133
- // outside of the current schema. It would be better if we'd always could deal
134
- // with absolute paths here, so that we don't need to keep two different
135
- // schemas around
136
- if (resultSchema !== undefined && resultSchema.$ref !== undefined) {
137
- try {
138
- return retrieveResolvableSchema(schema, resultSchema.$ref);
139
- }
140
- catch (e) {
141
- return retrieveResolvableSchema(rootSchema, resultSchema.$ref);
142
- }
143
- }
144
- return resultSchema;
145
- };
146
- /**
147
- * Normalizes the schema and resolves the given ref.
148
- *
149
- * @param {JsonSchema} full the JSON schema to resolved the reference against
150
- * @param {string} reference the reference to be resolved
151
- * @returns {JsonSchema} the resolved sub-schema
152
- */
153
- // disable rule because resolve is mutually recursive
154
- // tslint:disable:only-arrow-functions
155
- function retrieveResolvableSchema(full, reference) {
156
- // tslint:enable:only-arrow-functions
157
- var child = exports.resolveSchema(full, reference);
158
- var allRefs = exports.findAllRefs(child);
159
- var innerSelfReference = allRefs[reference];
160
- if (innerSelfReference !== undefined) {
161
- innerSelfReference.$ref = '#';
162
- }
163
- return child;
164
- }
165
- //# sourceMappingURL=resolvers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/util/resolvers.ts"],"names":[],"mappings":"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"}