@jsonforms/core 3.2.0-alpha.2 → 3.2.0-alpha.3

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.
@@ -477,13 +477,6 @@ var initState = {
477
477
  validationMode: 'ValidateAndShow',
478
478
  additionalErrors: [],
479
479
  };
480
- var reuseAjvForSchema = function (ajv, schema) {
481
- if (Object.prototype.hasOwnProperty.call(schema, 'id') ||
482
- Object.prototype.hasOwnProperty.call(schema, '$id')) {
483
- ajv.removeSchema(schema);
484
- }
485
- return ajv;
486
- };
487
480
  var getOrCreateAjv = function (state, action) {
488
481
  if (action) {
489
482
  if (hasAjvOption(action.options)) {
@@ -495,12 +488,7 @@ var getOrCreateAjv = function (state, action) {
495
488
  }
496
489
  }
497
490
  }
498
- if (state.ajv) {
499
- return (action === null || action === void 0 ? void 0 : action.schema)
500
- ? reuseAjvForSchema(state.ajv, action.schema)
501
- : state.ajv;
502
- }
503
- return createAjv();
491
+ return state.ajv ? state.ajv : createAjv();
504
492
  };
505
493
  var hasAjvOption = function (option) {
506
494
  if (option) {
@@ -586,7 +574,7 @@ var coreReducer = function (state, action) {
586
574
  case SET_SCHEMA: {
587
575
  var needsNewValidator = action.schema && state.ajv && state.validationMode !== 'NoValidation';
588
576
  var v = needsNewValidator
589
- ? reuseAjvForSchema(state.ajv, action.schema).compile(action.schema)
577
+ ? state.ajv.compile(action.schema)
590
578
  : state.validator;
591
579
  var errors = validate(v, state.data);
592
580
  return __assign(__assign({}, state), { validator: v, schema: action.schema, errors: errors });
@@ -629,7 +617,7 @@ var coreReducer = function (state, action) {
629
617
  return __assign(__assign({}, state), { errors: errors, validationMode: action.validationMode });
630
618
  }
631
619
  if (state.validationMode === 'NoValidation') {
632
- var validator = reuseAjvForSchema(state.ajv, state.schema).compile(state.schema);
620
+ var validator = state.ajv.compile(state.schema);
633
621
  var errors = validate(validator, state.data);
634
622
  return __assign(__assign({}, state), { validator: validator,
635
623
  errors: errors, validationMode: action.validationMode });
@@ -1311,7 +1299,7 @@ var findUISchema = function (uischemas, schema, schemaPath, path, fallback, cont
1311
1299
  if (typeof fallback === 'function') {
1312
1300
  return fallback();
1313
1301
  }
1314
- return Generate.uiSchema(schema, fallback);
1302
+ return Generate.uiSchema(schema, fallback, undefined, rootSchema);
1315
1303
  }
1316
1304
  }
1317
1305
  else if (typeof control.options.detail === 'object') {
@@ -1626,6 +1614,19 @@ var isInherentlyEnabled = function (state, ownProps, uischema, schema, rootData,
1626
1614
  return true;
1627
1615
  };
1628
1616
 
1617
+ var convertDateToString = function (date, format) {
1618
+ var dateString = date.toISOString();
1619
+ if (format === 'date-time') {
1620
+ return dateString;
1621
+ }
1622
+ else if (format === 'date') {
1623
+ return dateString.split('T')[0];
1624
+ }
1625
+ else if (format === 'time') {
1626
+ return dateString.split('T')[1].split('.')[0];
1627
+ }
1628
+ return dateString;
1629
+ };
1629
1630
  var convertToValidClassName = function (s) {
1630
1631
  return s.replace('#', 'root').replace(new RegExp('/', 'g'), '_');
1631
1632
  };
@@ -1747,27 +1748,54 @@ var computeLabel = function (label, required, hideRequiredAsterisk) {
1747
1748
  var showAsRequired = function (required, hideRequiredAsterisk) {
1748
1749
  return required && !hideRequiredAsterisk;
1749
1750
  };
1750
- var createDefaultValue = function (schema) {
1751
- switch (schema.type) {
1752
- case 'string':
1753
- if (schema.format === 'date-time' ||
1754
- schema.format === 'date' ||
1755
- schema.format === 'time') {
1756
- return new Date();
1751
+ var createDefaultValue = function (schema, rootSchema) {
1752
+ var resolvedSchema = Resolve.schema(schema, schema.$ref, rootSchema);
1753
+ if (resolvedSchema.default !== undefined) {
1754
+ return extractDefaults(resolvedSchema, rootSchema);
1755
+ }
1756
+ if (hasType(resolvedSchema, 'string')) {
1757
+ if (resolvedSchema.format === 'date-time' ||
1758
+ resolvedSchema.format === 'date' ||
1759
+ resolvedSchema.format === 'time') {
1760
+ return convertDateToString(new Date(), resolvedSchema.format);
1761
+ }
1762
+ return '';
1763
+ }
1764
+ else if (hasType(resolvedSchema, 'integer') ||
1765
+ hasType(resolvedSchema, 'number')) {
1766
+ return 0;
1767
+ }
1768
+ else if (hasType(resolvedSchema, 'boolean')) {
1769
+ return false;
1770
+ }
1771
+ else if (hasType(resolvedSchema, 'array')) {
1772
+ return [];
1773
+ }
1774
+ else if (hasType(resolvedSchema, 'object')) {
1775
+ return extractDefaults(resolvedSchema, rootSchema);
1776
+ }
1777
+ else if (hasType(resolvedSchema, 'null')) {
1778
+ return null;
1779
+ }
1780
+ else {
1781
+ return {};
1782
+ }
1783
+ };
1784
+ var extractDefaults = function (schema, rootSchema) {
1785
+ if (hasType(schema, 'object') && schema.default === undefined) {
1786
+ var result = {};
1787
+ for (var key in schema.properties) {
1788
+ var property = schema.properties[key];
1789
+ var resolvedProperty = property.$ref
1790
+ ? Resolve.schema(rootSchema, property.$ref, rootSchema)
1791
+ : property;
1792
+ if (resolvedProperty.default !== undefined) {
1793
+ result[key] = cloneDeep__default["default"](resolvedProperty.default);
1757
1794
  }
1758
- return '';
1759
- case 'integer':
1760
- case 'number':
1761
- return 0;
1762
- case 'boolean':
1763
- return false;
1764
- case 'array':
1765
- return [];
1766
- case 'null':
1767
- return null;
1768
- default:
1769
- return {};
1795
+ }
1796
+ return result;
1770
1797
  }
1798
+ return cloneDeep__default["default"](schema.default);
1771
1799
  };
1772
1800
  var isDescriptionHidden = function (visible, description, isFocused, showUnfocusedDescription) {
1773
1801
  return (description === undefined ||
@@ -2261,7 +2289,7 @@ var iterateSchema = function (uischema, toApply) {
2261
2289
  };
2262
2290
 
2263
2291
  var createAjv = function (options) {
2264
- var ajv = new Ajv__default["default"](__assign({ allErrors: true, verbose: true, strict: false }, options));
2292
+ var ajv = new Ajv__default["default"](__assign({ allErrors: true, verbose: true, strict: false, addUsedSchema: false }, options));
2265
2293
  addFormats__default["default"](ajv);
2266
2294
  return ajv;
2267
2295
  };
@@ -2586,6 +2614,7 @@ exports.composeWithUi = composeWithUi;
2586
2614
  exports.computeLabel = computeLabel;
2587
2615
  exports.configReducer = configReducer;
2588
2616
  exports.controlDefaultProps = controlDefaultProps;
2617
+ exports.convertDateToString = convertDateToString;
2589
2618
  exports.convertToValidClassName = convertToValidClassName;
2590
2619
  exports.coreReducer = coreReducer;
2591
2620
  exports.createAjv = createAjv;
@@ -2613,6 +2642,7 @@ exports.evalVisibility = evalVisibility;
2613
2642
  exports.extractAjv = extractAjv;
2614
2643
  exports.extractData = extractData;
2615
2644
  exports.extractDefaultData = extractDefaultData;
2645
+ exports.extractDefaults = extractDefaults;
2616
2646
  exports.extractSchema = extractSchema;
2617
2647
  exports.extractUiSchema = extractUiSchema;
2618
2648
  exports.fetchErrorTranslator = fetchErrorTranslator;