@jsonforms/core 3.2.0-alpha.2 → 3.2.0-alpha.4
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.
- package/lib/jsonforms-core.cjs.js +66 -36
- package/lib/jsonforms-core.cjs.js.map +1 -1
- package/lib/jsonforms-core.esm.js +65 -36
- package/lib/jsonforms-core.esm.js.map +1 -1
- package/lib/util/renderer.d.ts +8 -2
- package/lib/util/util.d.ts +26 -0
- package/package.json +2 -2
- package/src/reducers/core.ts +3 -20
- package/src/reducers/reducers.ts +1 -1
- package/src/util/renderer.ts +56 -23
- package/src/util/util.ts +43 -0
- package/src/util/validator.ts +1 -0
|
@@ -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
|
-
|
|
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
|
-
?
|
|
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 =
|
|
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
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
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
|
-
|
|
1759
|
-
|
|
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;
|