@jsonforms/core 2.5.2-alpha.0 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +1 -1
  2. package/docs/assets/js/search.json +1 -1
  3. package/docs/enums/ruleeffect.html +4 -4
  4. package/docs/globals.html +1061 -1120
  5. package/docs/index.html +64 -91
  6. package/docs/interfaces/addcellrendereraction.html +3 -3
  7. package/docs/interfaces/addrendereraction.html +3 -3
  8. package/docs/interfaces/adduischemaaction.html +3 -3
  9. package/docs/interfaces/andcondition.html +2 -2
  10. package/docs/interfaces/arraycontrolprops.html +22 -22
  11. package/docs/interfaces/arraylayoutprops.html +22 -22
  12. package/docs/interfaces/categorization.html +5 -5
  13. package/docs/interfaces/category.html +5 -5
  14. package/docs/interfaces/cellprops.html +14 -14
  15. package/docs/interfaces/combinatorrendererprops.html +13 -13
  16. package/docs/interfaces/combinatorsubschemarenderinfo.html +3 -3
  17. package/docs/interfaces/composablecondition.html +2 -2
  18. package/docs/interfaces/condition.html +1 -1
  19. package/docs/interfaces/controlelement.html +5 -5
  20. package/docs/interfaces/controlprops.html +17 -17
  21. package/docs/interfaces/controlstate.html +2 -2
  22. package/docs/interfaces/controlwithdetailprops.html +18 -18
  23. package/docs/interfaces/dispatchcellprops.html +13 -13
  24. package/docs/interfaces/dispatchcellstateprops.html +13 -13
  25. package/docs/interfaces/dispatchpropsofarraycontrol.html +4 -4
  26. package/docs/interfaces/dispatchpropsofcontrol.html +1 -1
  27. package/docs/interfaces/dispatchpropsofmultienumcontrol.html +2 -2
  28. package/docs/interfaces/enumcellprops.html +15 -15
  29. package/docs/interfaces/enumoption.html +2 -2
  30. package/docs/interfaces/formatted.html +2 -2
  31. package/docs/interfaces/grouplayout.html +5 -5
  32. package/docs/interfaces/horizontallayout.html +4 -4
  33. package/docs/interfaces/initaction.html +6 -6
  34. package/docs/interfaces/initactionoptions.html +3 -17
  35. package/docs/interfaces/jsonformscellrendererregistryentry.html +2 -2
  36. package/docs/interfaces/jsonformscore.html +7 -21
  37. package/docs/interfaces/jsonformsdefaultdataregistryentry.html +2 -2
  38. package/docs/interfaces/jsonformsextendedstate.html +1 -1
  39. package/docs/interfaces/{jsonformslocalestate.html → jsonformsi18nstate.html} +20 -20
  40. package/docs/interfaces/jsonformsprops.html +9 -24
  41. package/docs/interfaces/jsonformsrendererregistryentry.html +2 -2
  42. package/docs/interfaces/jsonformsstate.html +1 -1
  43. package/docs/interfaces/jsonformsstore.html +5 -5
  44. package/docs/interfaces/jsonformssubstates.html +18 -8
  45. package/docs/interfaces/jsonformsuischemaregistryentry.html +2 -2
  46. package/docs/interfaces/labeldescription.html +2 -2
  47. package/docs/interfaces/labelelement.html +4 -4
  48. package/docs/interfaces/layout.html +4 -4
  49. package/docs/interfaces/layoutprops.html +10 -10
  50. package/docs/interfaces/leafcondition.html +3 -3
  51. package/docs/interfaces/orcondition.html +2 -2
  52. package/docs/interfaces/ownpropsofcell.html +10 -10
  53. package/docs/interfaces/ownpropsofcontrol.html +9 -9
  54. package/docs/interfaces/ownpropsofenum.html +1 -1
  55. package/docs/interfaces/ownpropsofenumcell.html +11 -11
  56. package/docs/interfaces/ownpropsofjsonformsrenderer.html +8 -8
  57. package/docs/interfaces/ownpropsoflayout.html +9 -9
  58. package/docs/interfaces/ownpropsofmasterlistitem.html +6 -6
  59. package/docs/interfaces/ownpropsofrenderer.html +8 -8
  60. package/docs/interfaces/registerdefaultdataaction.html +3 -3
  61. package/docs/interfaces/removecellrendereraction.html +3 -3
  62. package/docs/interfaces/removerendereraction.html +3 -3
  63. package/docs/interfaces/removeuischemaaction.html +2 -2
  64. package/docs/interfaces/rendererprops.html +9 -9
  65. package/docs/interfaces/rule.html +2 -2
  66. package/docs/interfaces/schemabasedcondition.html +3 -3
  67. package/docs/interfaces/scopable.html +1 -1
  68. package/docs/interfaces/setajvaction.html +3 -3
  69. package/docs/interfaces/setconfigaction.html +2 -2
  70. package/docs/interfaces/setlocaleaction.html +3 -3
  71. package/docs/interfaces/setschemaaction.html +2 -2
  72. package/docs/interfaces/{setlocalizeduischemasaction.html → settranslatoraction.html} +29 -15
  73. package/docs/interfaces/setuischemaaction.html +2 -2
  74. package/docs/interfaces/setvalidationmodeaction.html +2 -2
  75. package/docs/interfaces/statepropsofarraycontrol.html +18 -18
  76. package/docs/interfaces/statepropsofarraylayout.html +18 -18
  77. package/docs/interfaces/statepropsofcell.html +13 -13
  78. package/docs/interfaces/statepropsofcombinator.html +12 -12
  79. package/docs/interfaces/statepropsofcontrol.html +16 -16
  80. package/docs/interfaces/statepropsofcontrolwithdetail.html +17 -17
  81. package/docs/interfaces/statepropsofenumcell.html +14 -14
  82. package/docs/interfaces/statepropsofjsonformsrenderer.html +9 -23
  83. package/docs/interfaces/statepropsoflayout.html +10 -10
  84. package/docs/interfaces/statepropsofmasteritem.html +7 -7
  85. package/docs/interfaces/statepropsofrenderer.html +9 -9
  86. package/docs/interfaces/statepropsofscopedrenderer.html +12 -12
  87. package/docs/interfaces/uischemaelement.html +3 -3
  88. package/docs/interfaces/unregisterdefaultdataaction.html +2 -2
  89. package/docs/interfaces/updateaction.html +3 -3
  90. package/docs/interfaces/updatecoreaction.html +6 -6
  91. package/docs/interfaces/updateerrorsaction.html +2 -2
  92. package/docs/interfaces/{setlocalizedschemasaction.html → updatei18naction.html} +43 -15
  93. package/docs/interfaces/verticallayout.html +4 -4
  94. package/docs/interfaces/withclassname.html +1 -1
  95. package/lib/Helpers.d.ts +5 -0
  96. package/lib/Helpers.js +33 -0
  97. package/lib/Helpers.js.map +1 -0
  98. package/lib/actions/actions.d.ts +181 -0
  99. package/lib/actions/actions.js +173 -0
  100. package/lib/actions/actions.js.map +1 -0
  101. package/lib/actions/index.d.ts +1 -180
  102. package/lib/actions/index.js +26 -122
  103. package/lib/actions/index.js.map +1 -1
  104. package/lib/configDefault.js +2 -1
  105. package/lib/configDefault.js.map +1 -1
  106. package/lib/generators/Generate.d.ts +6 -0
  107. package/lib/generators/Generate.js +35 -0
  108. package/lib/generators/Generate.js.map +1 -0
  109. package/lib/generators/index.d.ts +3 -10
  110. package/lib/generators/index.js +28 -9
  111. package/lib/generators/index.js.map +1 -1
  112. package/lib/generators/schema.d.ts +1 -1
  113. package/lib/generators/schema.js +3 -1
  114. package/lib/generators/schema.js.map +1 -1
  115. package/lib/generators/uischema.d.ts +1 -2
  116. package/lib/generators/uischema.js +12 -10
  117. package/lib/generators/uischema.js.map +1 -1
  118. package/lib/i18n/i18nTypes.d.ts +15 -0
  119. package/lib/i18n/i18nTypes.js +3 -0
  120. package/lib/i18n/i18nTypes.js.map +1 -0
  121. package/lib/i18n/i18nUtil.d.ts +11 -0
  122. package/lib/i18n/i18nUtil.js +58 -0
  123. package/lib/i18n/i18nUtil.js.map +1 -0
  124. package/lib/i18n/index.d.ts +2 -0
  125. package/lib/i18n/index.js +6 -0
  126. package/lib/i18n/index.js.map +1 -0
  127. package/lib/index.d.ts +6 -18
  128. package/lib/index.js +10 -15
  129. package/lib/index.js.map +1 -1
  130. package/lib/jsonforms-core.js +9 -12
  131. package/lib/jsonforms-core.js.map +1 -1
  132. package/lib/models/draft4.js +2 -1
  133. package/lib/models/draft4.js.map +1 -1
  134. package/lib/models/index.d.ts +5 -0
  135. package/lib/models/index.js +33 -0
  136. package/lib/models/index.js.map +1 -0
  137. package/lib/models/jsonSchema.js +24 -0
  138. package/lib/models/jsonSchema.js.map +1 -1
  139. package/lib/models/uischema.js +29 -2
  140. package/lib/models/uischema.js.map +1 -1
  141. package/lib/reducers/cells.d.ts +1 -1
  142. package/lib/reducers/cells.js +27 -1
  143. package/lib/reducers/cells.js.map +1 -1
  144. package/lib/reducers/config.d.ts +1 -1
  145. package/lib/reducers/config.js +5 -3
  146. package/lib/reducers/config.js.map +1 -1
  147. package/lib/reducers/core.d.ts +5 -7
  148. package/lib/reducers/core.js +78 -63
  149. package/lib/reducers/core.js.map +1 -1
  150. package/lib/reducers/default-data.d.ts +1 -1
  151. package/lib/reducers/default-data.js +6 -3
  152. package/lib/reducers/default-data.js.map +1 -1
  153. package/lib/reducers/i18n.d.ts +8 -11
  154. package/lib/reducers/i18n.js +40 -23
  155. package/lib/reducers/i18n.js.map +1 -1
  156. package/lib/reducers/index.d.ts +9 -49
  157. package/lib/reducers/index.js +33 -91
  158. package/lib/reducers/index.js.map +1 -1
  159. package/lib/reducers/reducers.d.ts +37 -0
  160. package/lib/reducers/reducers.js +107 -0
  161. package/lib/reducers/reducers.js.map +1 -0
  162. package/lib/reducers/renderers.d.ts +1 -1
  163. package/lib/reducers/renderers.js +27 -1
  164. package/lib/reducers/renderers.js.map +1 -1
  165. package/lib/reducers/selectors.d.ts +15 -0
  166. package/lib/reducers/selectors.js +56 -0
  167. package/lib/reducers/selectors.js.map +1 -0
  168. package/lib/reducers/uischemas.d.ts +2 -2
  169. package/lib/reducers/uischemas.js +9 -6
  170. package/lib/reducers/uischemas.js.map +1 -1
  171. package/lib/store.d.ts +5 -8
  172. package/lib/store.js +24 -0
  173. package/lib/store.js.map +1 -1
  174. package/lib/testers/index.d.ts +1 -204
  175. package/lib/testers/index.js +3 -376
  176. package/lib/testers/index.js.map +1 -1
  177. package/lib/testers/testers.d.ts +203 -0
  178. package/lib/testers/testers.js +421 -0
  179. package/lib/testers/testers.js.map +1 -0
  180. package/lib/util/Formatted.js +24 -0
  181. package/lib/util/Formatted.js.map +1 -1
  182. package/lib/util/array.js +25 -0
  183. package/lib/util/array.js.map +1 -1
  184. package/lib/util/cell.d.ts +11 -4
  185. package/lib/util/cell.js +61 -17
  186. package/lib/util/cell.js.map +1 -1
  187. package/lib/util/combinators.d.ts +2 -3
  188. package/lib/util/combinators.js +5 -2
  189. package/lib/util/combinators.js.map +1 -1
  190. package/lib/util/ids.js +8 -4
  191. package/lib/util/ids.js.map +1 -1
  192. package/lib/util/index.d.ts +11 -45
  193. package/lib/util/index.js +14 -104
  194. package/lib/util/index.js.map +1 -1
  195. package/lib/util/label.d.ts +1 -2
  196. package/lib/util/label.js +7 -4
  197. package/lib/util/label.js.map +1 -1
  198. package/lib/util/path.d.ts +2 -1
  199. package/lib/util/path.js +12 -6
  200. package/lib/util/path.js.map +1 -1
  201. package/lib/util/renderer.d.ts +17 -17
  202. package/lib/util/renderer.js +163 -76
  203. package/lib/util/renderer.js.map +1 -1
  204. package/lib/util/resolvers.d.ts +1 -14
  205. package/lib/util/resolvers.js +9 -215
  206. package/lib/util/resolvers.js.map +1 -1
  207. package/lib/util/runtime.d.ts +12 -2
  208. package/lib/util/runtime.js +59 -17
  209. package/lib/util/runtime.js.map +1 -1
  210. package/lib/util/schema.js +27 -1
  211. package/lib/util/schema.js.map +1 -1
  212. package/lib/util/uischema.d.ts +1 -1
  213. package/lib/util/uischema.js +11 -7
  214. package/lib/util/uischema.js.map +1 -1
  215. package/lib/util/util.d.ts +31 -0
  216. package/lib/util/util.js +112 -0
  217. package/lib/util/util.js.map +1 -0
  218. package/lib/util/validator.d.ts +3 -2
  219. package/lib/util/validator.js +6 -5
  220. package/lib/util/validator.js.map +1 -1
  221. package/package.json +7 -9
  222. package/src/Helpers.ts +38 -0
  223. package/src/actions/actions.ts +345 -0
  224. package/src/actions/index.ts +1 -312
  225. package/src/configDefault.ts +1 -0
  226. package/src/generators/Generate.ts +43 -0
  227. package/src/generators/index.ts +3 -21
  228. package/src/generators/schema.ts +1 -1
  229. package/src/generators/uischema.ts +4 -4
  230. package/src/i18n/i18nTypes.ts +17 -0
  231. package/src/i18n/i18nUtil.ts +76 -0
  232. package/src/i18n/index.ts +2 -0
  233. package/src/index.ts +7 -31
  234. package/src/models/draft4.ts +1 -0
  235. package/src/models/index.ts +30 -0
  236. package/src/models/jsonSchema.ts +1 -0
  237. package/src/models/uischema.ts +1 -0
  238. package/src/reducers/cells.ts +2 -1
  239. package/src/reducers/config.ts +2 -1
  240. package/src/reducers/core.ts +74 -81
  241. package/src/reducers/default-data.ts +2 -1
  242. package/src/reducers/i18n.ts +42 -35
  243. package/src/reducers/index.ts +9 -158
  244. package/src/reducers/reducers.ts +148 -0
  245. package/src/reducers/renderers.ts +2 -1
  246. package/src/reducers/selectors.ts +65 -0
  247. package/src/reducers/uischemas.ts +4 -2
  248. package/src/store.ts +11 -8
  249. package/src/testers/index.ts +1 -516
  250. package/src/testers/testers.ts +547 -0
  251. package/src/util/Formatted.ts +1 -0
  252. package/src/util/array.ts +25 -0
  253. package/src/util/cell.ts +91 -19
  254. package/src/util/combinators.ts +2 -4
  255. package/src/util/ids.ts +1 -0
  256. package/src/util/index.ts +11 -126
  257. package/src/util/label.ts +2 -2
  258. package/src/util/path.ts +4 -1
  259. package/src/util/renderer.ts +168 -85
  260. package/src/util/resolvers.ts +2 -261
  261. package/src/util/runtime.ts +46 -2
  262. package/src/util/schema.ts +26 -1
  263. package/src/util/uischema.ts +2 -1
  264. package/src/util/util.ts +127 -0
  265. package/src/util/validator.ts +5 -8
  266. package/test/reducers/core.test.ts +31 -223
  267. package/test/util/cell.test.ts +33 -2
  268. package/test/util/renderer.test.ts +483 -3
  269. package/test/util/resolvers.test.ts +1 -59
  270. package/test/util/runtime.test.ts +264 -4
  271. package/docs/interfaces/labels.html +0 -157
  272. package/docs/interfaces/schemaref.html +0 -160
  273. package/docs/interfaces/schemarefs.html +0 -138
@@ -23,15 +23,14 @@
23
23
  THE SOFTWARE.
24
24
  */
25
25
  import test from 'ava';
26
- import AJV from 'ajv';
27
- import RefParser from 'json-schema-ref-parser';
26
+ import Ajv from 'ajv';
28
27
  import { coreReducer } from '../../src/reducers';
29
28
  import { init, update, updateErrors } from '../../src/actions';
30
29
  import { JsonSchema } from '../../src/models/jsonSchema';
31
30
  import {
32
31
  errorAt,
33
32
  JsonFormsCore,
34
- sanitizeErrors,
33
+ validate,
35
34
  subErrorsAt
36
35
  } from '../../src/reducers/core';
37
36
 
@@ -39,20 +38,6 @@ import { createAjv, updateCore } from '../../src';
39
38
  import { setSchema, setValidationMode } from '../../lib';
40
39
  import { cloneDeep } from 'lodash';
41
40
 
42
- const createRefParserOptions = (
43
- encoding = 'testEncoding'
44
- ): RefParser.Options => {
45
- const parserOptions: RefParser.ParserOptions & { encoding?: string } = {
46
- encoding
47
- };
48
- const myOptions: RefParser.Options = {
49
- parse: {
50
- text: parserOptions
51
- }
52
- };
53
- return myOptions;
54
- };
55
-
56
41
  test('core reducer should support v7', t => {
57
42
  const schema: JsonSchema = {
58
43
  type: 'object',
@@ -75,7 +60,7 @@ test('core reducer should support v7', t => {
75
60
  t.is(after.errors.length, 1);
76
61
  });
77
62
 
78
- test('core reducer - no previous state - init without options should create new ajv and no ref parser options object', t => {
63
+ test('core reducer - no previous state - init without options should create new ajv', t => {
79
64
  const schema: JsonSchema = {
80
65
  type: 'object',
81
66
  properties: {
@@ -87,7 +72,6 @@ test('core reducer - no previous state - init without options should create new
87
72
  };
88
73
  const after = coreReducer(undefined, init({}, schema, undefined, undefined));
89
74
  t.true(after.ajv !== undefined);
90
- t.true(after.refParserOptions === undefined);
91
75
  });
92
76
 
93
77
  test('core reducer - no previous state - init with ajv as options object should use it', t => {
@@ -100,12 +84,9 @@ test('core reducer - no previous state - init with ajv as options object should
100
84
  }
101
85
  }
102
86
  };
103
- const myAjv = new AJV({
104
- errorDataPath: 'mypath'
105
- });
87
+ const myAjv = new Ajv();
106
88
  const after = coreReducer(undefined, init({}, schema, undefined, myAjv));
107
89
  t.deepEqual(after.ajv, myAjv);
108
- t.true(after.refParserOptions === undefined);
109
90
  });
110
91
 
111
92
  test('core reducer - no previous state - init with empty options object', t => {
@@ -120,7 +101,6 @@ test('core reducer - no previous state - init with empty options object', t => {
120
101
  };
121
102
  const after = coreReducer(undefined, init({}, schema, undefined, {}));
122
103
  t.true(after.ajv !== undefined);
123
- t.true(after.refParserOptions === undefined);
124
104
  });
125
105
 
126
106
  test('core reducer - no previous state - init with options object with ajv', t => {
@@ -133,9 +113,7 @@ test('core reducer - no previous state - init with options object with ajv', t =
133
113
  }
134
114
  }
135
115
  };
136
- const myAjv = new AJV({
137
- errorDataPath: 'mypath'
138
- });
116
+ const myAjv = new Ajv();
139
117
  const after = coreReducer(
140
118
  undefined,
141
119
  init({}, schema, undefined, {
@@ -143,53 +121,6 @@ test('core reducer - no previous state - init with options object with ajv', t =
143
121
  })
144
122
  );
145
123
  t.deepEqual(after.ajv, myAjv);
146
- t.true(after.refParserOptions === undefined);
147
- });
148
-
149
- test('core reducer - no previous state - init with options object with ref parser options', t => {
150
- const schema: JsonSchema = {
151
- type: 'object',
152
- properties: {
153
- foo: {
154
- type: 'string',
155
- const: 'bar'
156
- }
157
- }
158
- };
159
- const myOptions = createRefParserOptions();
160
- const after = coreReducer(
161
- undefined,
162
- init({}, schema, undefined, {
163
- refParserOptions: myOptions
164
- })
165
- );
166
- t.true(after.ajv !== undefined);
167
- t.deepEqual(after.refParserOptions, myOptions);
168
- });
169
-
170
- test('core reducer - no previous state - init with options object with ajv and ref parser options', t => {
171
- const schema: JsonSchema = {
172
- type: 'object',
173
- properties: {
174
- foo: {
175
- type: 'string',
176
- const: 'bar'
177
- }
178
- }
179
- };
180
- const myAjv = new AJV({
181
- errorDataPath: 'mypath'
182
- });
183
- const myOptions = createRefParserOptions();
184
- const after = coreReducer(
185
- undefined,
186
- init({}, schema, undefined, {
187
- ajv: myAjv,
188
- refParserOptions: myOptions
189
- })
190
- );
191
- t.deepEqual(after.ajv, myAjv);
192
- t.deepEqual(after.refParserOptions, myOptions);
193
124
  });
194
125
 
195
126
  test('core reducer - previous state - init without options should keep previous objects', t => {
@@ -202,10 +133,7 @@ test('core reducer - previous state - init without options should keep previous
202
133
  }
203
134
  }
204
135
  };
205
- const myAjv = new AJV({
206
- errorDataPath: 'mypath'
207
- });
208
- const myOptions = createRefParserOptions();
136
+ const myAjv = new Ajv();
209
137
  const after = coreReducer(
210
138
  {
211
139
  data: {},
@@ -214,15 +142,13 @@ test('core reducer - previous state - init without options should keep previous
214
142
  type: 'Label'
215
143
  },
216
144
  ajv: myAjv,
217
- refParserOptions: myOptions
218
145
  },
219
146
  init({}, schema)
220
147
  );
221
148
  t.deepEqual(after.ajv, myAjv);
222
- t.deepEqual(after.refParserOptions, myOptions);
223
149
  });
224
150
 
225
- test('core reducer - previous state - init with ajv options object should overwrite ajv and keep ref parser options', t => {
151
+ test('core reducer - previous state - init with ajv options object should overwrite ajv', t => {
226
152
  const schema: JsonSchema = {
227
153
  type: 'object',
228
154
  properties: {
@@ -232,13 +158,8 @@ test('core reducer - previous state - init with ajv options object should overwr
232
158
  }
233
159
  }
234
160
  };
235
- const previousAjv = new AJV({
236
- errorDataPath: 'mypath'
237
- });
238
- const newAjv = new AJV({
239
- errorDataPath: 'newajv'
240
- });
241
- const myOptions = createRefParserOptions();
161
+ const previousAjv = new Ajv();
162
+ const newAjv = new Ajv();
242
163
  const after = coreReducer(
243
164
  {
244
165
  data: {},
@@ -247,117 +168,10 @@ test('core reducer - previous state - init with ajv options object should overwr
247
168
  type: 'Label'
248
169
  },
249
170
  ajv: previousAjv,
250
- refParserOptions: myOptions
251
171
  },
252
172
  init({}, schema, undefined, newAjv)
253
173
  );
254
174
  t.deepEqual(after.ajv, newAjv);
255
- t.deepEqual(after.refParserOptions, myOptions);
256
- });
257
-
258
- test('core reducer - previous state - init with options with ajv should overwrite ajv and keep ref parser options', t => {
259
- const schema: JsonSchema = {
260
- type: 'object',
261
- properties: {
262
- foo: {
263
- type: 'string',
264
- const: 'bar'
265
- }
266
- }
267
- };
268
- const previousAjv = new AJV({
269
- errorDataPath: 'mypath'
270
- });
271
- const newAjv = new AJV({
272
- errorDataPath: 'newajv'
273
- });
274
- const myOptions = createRefParserOptions();
275
- const after = coreReducer(
276
- {
277
- data: {},
278
- schema: {},
279
- uischema: {
280
- type: 'Label'
281
- },
282
- ajv: previousAjv,
283
- refParserOptions: myOptions
284
- },
285
- init({}, schema, undefined, {
286
- ajv: newAjv
287
- })
288
- );
289
- t.deepEqual(after.ajv, newAjv);
290
- t.deepEqual(after.refParserOptions, myOptions);
291
- });
292
-
293
- test('core reducer - previous state - init with options with ref parser options should overwrite ref parser options and keep ajv', t => {
294
- const schema: JsonSchema = {
295
- type: 'object',
296
- properties: {
297
- foo: {
298
- type: 'string',
299
- const: 'bar'
300
- }
301
- }
302
- };
303
- const myAjv = new AJV({
304
- errorDataPath: 'mypath'
305
- });
306
- const previousOptions = createRefParserOptions();
307
- const newOptions = createRefParserOptions('newEncoding');
308
- const after = coreReducer(
309
- {
310
- data: {},
311
- schema: {},
312
- uischema: {
313
- type: 'Label'
314
- },
315
- ajv: myAjv,
316
- refParserOptions: previousOptions
317
- },
318
- init({}, schema, undefined, {
319
- refParserOptions: newOptions
320
- })
321
- );
322
- t.deepEqual(after.ajv, myAjv);
323
- t.deepEqual(after.refParserOptions, newOptions);
324
- });
325
-
326
- test('core reducer - previous state - init with both options should overwrite both', t => {
327
- const schema: JsonSchema = {
328
- type: 'object',
329
- properties: {
330
- foo: {
331
- type: 'string',
332
- const: 'bar'
333
- }
334
- }
335
- };
336
- const previousAjv = new AJV({
337
- errorDataPath: 'mypath'
338
- });
339
- const newAjv = new AJV({
340
- errorDataPath: 'newajv'
341
- });
342
- const previousOptions = createRefParserOptions();
343
- const newOptions = createRefParserOptions('newEncoding');
344
- const after = coreReducer(
345
- {
346
- data: {},
347
- schema: {},
348
- uischema: {
349
- type: 'Label'
350
- },
351
- ajv: previousAjv,
352
- refParserOptions: previousOptions
353
- },
354
- init({}, schema, undefined, {
355
- ajv: newAjv,
356
- refParserOptions: newOptions
357
- })
358
- );
359
- t.deepEqual(after.ajv, newAjv);
360
- t.deepEqual(after.refParserOptions, newOptions);
361
175
  });
362
176
 
363
177
  test('core reducer - previous state - init with empty options should not overwrite', t => {
@@ -370,10 +184,7 @@ test('core reducer - previous state - init with empty options should not overwri
370
184
  }
371
185
  }
372
186
  };
373
- const myAjv = new AJV({
374
- errorDataPath: 'mypath'
375
- });
376
- const myOptions = createRefParserOptions();
187
+ const myAjv = new Ajv();
377
188
  const after = coreReducer(
378
189
  {
379
190
  data: {},
@@ -382,12 +193,10 @@ test('core reducer - previous state - init with empty options should not overwri
382
193
  type: 'Label'
383
194
  },
384
195
  ajv: myAjv,
385
- refParserOptions: myOptions
386
196
  },
387
197
  init({}, schema, undefined, {})
388
198
  );
389
199
  t.deepEqual(after.ajv, myAjv);
390
- t.deepEqual(after.refParserOptions, myOptions);
391
200
  });
392
201
 
393
202
  test('core reducer - previous state - init with undefined data should not change data', t => {
@@ -458,7 +267,7 @@ test('core reducer - update - undefined data should update for given path', t =>
458
267
  type: 'Label'
459
268
  },
460
269
  errors: [],
461
- validator: new AJV().compile(schema)
270
+ validator: new Ajv().compile(schema)
462
271
  };
463
272
 
464
273
  const after = coreReducer(
@@ -565,7 +374,7 @@ test('core reducer - update - empty path should update root state', t => {
565
374
  uischema: {
566
375
  type: 'Label'
567
376
  },
568
- validator: new AJV().compile(schema)
377
+ validator: new Ajv().compile(schema)
569
378
  };
570
379
 
571
380
  const after = coreReducer(
@@ -606,7 +415,7 @@ test('core reducer - update - providing a path should update data only belonging
606
415
  uischema: {
607
416
  type: 'Label'
608
417
  },
609
- validator: new AJV().compile(schema)
418
+ validator: new Ajv().compile(schema)
610
419
  };
611
420
 
612
421
  const after = coreReducer(
@@ -646,7 +455,7 @@ test('core reducer - update - should update errors', t => {
646
455
  uischema: {
647
456
  type: 'Label'
648
457
  },
649
- validator: new AJV().compile(schema)
458
+ validator: new Ajv().compile(schema)
650
459
  };
651
460
 
652
461
  const after = coreReducer(
@@ -661,9 +470,9 @@ test('core reducer - update - should update errors', t => {
661
470
  data: { ...before.data, color: 'Yellow' },
662
471
  errors: [
663
472
  {
664
- dataPath: 'color',
473
+ instancePath: '/color',
665
474
  keyword: 'enum',
666
- message: 'should be equal to one of the allowed values',
475
+ message: 'must be equal to one of the allowed values',
667
476
  params: {
668
477
  allowedValues: ['Blue', 'Green']
669
478
  },
@@ -693,7 +502,7 @@ test('core reducer - updateErrors - should update errors with error', t => {
693
502
  };
694
503
 
695
504
  const error = {
696
- dataPath: 'color',
505
+ instancePath: '/color',
697
506
  keyword: 'enum',
698
507
  message: 'should be equal to one of the allowed values',
699
508
  params: {
@@ -735,7 +544,7 @@ test('errorAt filters enum', t => {
735
544
  };
736
545
  const data = { foo: '', bar: '' };
737
546
  const v = ajv.compile(schema);
738
- const errors = sanitizeErrors(v, data);
547
+ const errors = validate(v, data);
739
548
 
740
549
  const state: JsonFormsCore = {
741
550
  data,
@@ -766,7 +575,7 @@ test('errorAt filters required', t => {
766
575
  };
767
576
  const data = {};
768
577
  const v = ajv.compile(schema);
769
- const errors = sanitizeErrors(v, data);
578
+ const errors = validate(v, data);
770
579
 
771
580
  const state: JsonFormsCore = {
772
581
  data,
@@ -815,7 +624,7 @@ test('errorAt filters required in oneOf object', t => {
815
624
  };
816
625
  const data = { fooOrBar: { } };
817
626
  const v = ajv.compile(schema);
818
- const errors = sanitizeErrors(v, data);
627
+ const errors = validate(v, data);
819
628
 
820
629
  const state: JsonFormsCore = {
821
630
  data,
@@ -867,7 +676,7 @@ test('errorAt filters required in anyOf object', t => {
867
676
  };
868
677
  const data = { fooOrBar: { } };
869
678
  const v = ajv.compile(schema);
870
- const errors = sanitizeErrors(v, data);
679
+ const errors = validate(v, data);
871
680
 
872
681
  const state: JsonFormsCore = {
873
682
  data,
@@ -915,7 +724,7 @@ test('errorAt filters array minItems', t => {
915
724
  numbers: []
916
725
  };
917
726
  const v = ajv.compile(schema);
918
- const errors = sanitizeErrors(v, data);
727
+ const errors = validate(v, data);
919
728
 
920
729
  const state: JsonFormsCore = {
921
730
  data,
@@ -960,7 +769,7 @@ test('errorAt filters array inner value', t => {
960
769
  numbers: ['Bar']
961
770
  };
962
771
  const v = ajv.compile(schema);
963
- const errors = sanitizeErrors(v, data);
772
+ const errors = validate(v, data);
964
773
 
965
774
  const state: JsonFormsCore = {
966
775
  data,
@@ -996,7 +805,7 @@ test('errorAt filters oneOf simple', t => {
996
805
  };
997
806
  const data: { coloursOrNumbers: string } = { coloursOrNumbers: 'Foo' };
998
807
  const v = ajv.compile(schema);
999
- const errors = sanitizeErrors(v, data);
808
+ const errors = validate(v, data);
1000
809
 
1001
810
  const state: JsonFormsCore = {
1002
811
  data,
@@ -1035,7 +844,7 @@ test('errorAt filters anyOf simple', t => {
1035
844
  };
1036
845
  const data: { coloursOrNumbers: string } = { coloursOrNumbers: 'Foo' };
1037
846
  const v = ajv.compile(schema);
1038
- const errors = sanitizeErrors(v, data);
847
+ const errors = validate(v, data);
1039
848
 
1040
849
  const state: JsonFormsCore = {
1041
850
  data,
@@ -1089,7 +898,7 @@ test('errorAt filters oneOf objects', t => {
1089
898
  };
1090
899
  const data = { coloursOrNumbers: { colour: 'Foo' } };
1091
900
  const v = ajv.compile(schema);
1092
- const errors = sanitizeErrors(v, data);
901
+ const errors = validate(v, data);
1093
902
 
1094
903
  const state: JsonFormsCore = {
1095
904
  data,
@@ -1141,7 +950,7 @@ test('errorAt filters oneOf objects same properties', t => {
1141
950
  };
1142
951
  const data = { coloursOrNumbers: { colourOrNumber: 'Foo' } };
1143
952
  const v = ajv.compile(schema);
1144
- const errors = sanitizeErrors(v, data);
953
+ const errors = validate(v, data);
1145
954
 
1146
955
  const state: JsonFormsCore = {
1147
956
  data,
@@ -1190,7 +999,7 @@ test('errorAt filters oneOf array', t => {
1190
999
  };
1191
1000
  const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: [] };
1192
1001
  const v = ajv.compile(schema);
1193
- const errors = sanitizeErrors(v, data);
1002
+ const errors = validate(v, data);
1194
1003
 
1195
1004
  const state: JsonFormsCore = {
1196
1005
  data,
@@ -1239,7 +1048,7 @@ test('errorAt filters oneOf array inner', t => {
1239
1048
  };
1240
1049
  const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: ['Foo'] };
1241
1050
  const v = ajv.compile(schema);
1242
- const errors = sanitizeErrors(v, data);
1051
+ const errors = validate(v, data);
1243
1052
 
1244
1053
  const state: JsonFormsCore = {
1245
1054
  data,
@@ -1286,7 +1095,7 @@ test('subErrorsAt filters array inner', t => {
1286
1095
  numbers: ['Bar']
1287
1096
  };
1288
1097
  const v = ajv.compile(schema);
1289
- const errors = sanitizeErrors(v, data);
1098
+ const errors = validate(v, data);
1290
1099
 
1291
1100
  const state: JsonFormsCore = {
1292
1101
  data,
@@ -1335,7 +1144,7 @@ test('subErrorsAt filters oneOf array inner', t => {
1335
1144
  };
1336
1145
  const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: ['Foo'] };
1337
1146
  const v = ajv.compile(schema);
1338
- const errors = sanitizeErrors(v, data);
1147
+ const errors = validate(v, data);
1339
1148
 
1340
1149
  const state: JsonFormsCore = {
1341
1150
  data,
@@ -1621,7 +1430,6 @@ test('core reducer - update core - unchanged state properties should be unchange
1621
1430
  t.true(before.schema === afterDataUpdate.schema);
1622
1431
  t.true(before.ajv === afterDataUpdate.ajv);
1623
1432
  t.true(before.errors === afterDataUpdate.errors);
1624
- t.true(before.refParserOptions === afterDataUpdate.refParserOptions);
1625
1433
  t.true(before.uischema === afterDataUpdate.uischema);
1626
1434
  t.true(before.validationMode === afterDataUpdate.validationMode);
1627
1435
  t.true(before.validator === afterDataUpdate.validator);
@@ -30,7 +30,7 @@ import {
30
30
  defaultMapDispatchToControlProps,
31
31
  defaultMapStateToEnumCellProps,
32
32
  DispatchPropsOfCell,
33
- mapStateToCellProps
33
+ mapStateToCellProps, mapStateToOneOfEnumCellProps, oneOfToEnumOptionMapper
34
34
  } from '../../src/util';
35
35
  import { UPDATE_DATA, UpdateAction } from '../../src/actions';
36
36
  import configureStore from 'redux-mock-store';
@@ -284,7 +284,38 @@ test('mapStateToEnumCellProps - set default options for dropdown list', t => {
284
284
  };
285
285
 
286
286
  const props = defaultMapStateToEnumCellProps(createState(uischema), ownProps);
287
- t.deepEqual(props.options, ['DE', 'IT', 'JP', 'US', 'RU', 'Other'].map(enumToEnumOptionMapper));
287
+ t.deepEqual(
288
+ props.options,
289
+ ['DE', 'IT', 'JP', 'US', 'RU', 'Other'].map(e => enumToEnumOptionMapper(e))
290
+ );
291
+ t.is(props.data, undefined);
292
+ });
293
+
294
+
295
+ test('mapStateToOneOfEnumCellProps - set one of options for dropdown list', t => {
296
+ const uischema: ControlElement = {
297
+ type: 'Control',
298
+ scope: '#/properties/country'
299
+ };
300
+ const ownProps = {
301
+ schema: {
302
+ oneOf: [
303
+ {
304
+ const: 'AU',
305
+ title: 'Australia'
306
+ },
307
+ {
308
+ const: 'NZ',
309
+ title: 'New Zealand'
310
+ }
311
+ ]
312
+ },
313
+ uischema,
314
+ path: 'country'
315
+ };
316
+
317
+ const props = mapStateToOneOfEnumCellProps(createState(uischema), ownProps);
318
+ t.deepEqual(props.options, [{title: 'Australia' , const: 'AU', }, { title: 'New Zealand', const: 'NZ' }].map(schema => oneOfToEnumOptionMapper(schema)));
288
319
  t.is(props.data, undefined);
289
320
  });
290
321