@jsonforms/core 3.0.0-beta.1 → 3.0.0-beta.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/README.md +11 -0
- package/docs/assets/js/search.json +1 -1
- package/docs/enums/ruleeffect.html +4 -4
- package/docs/globals.html +357 -217
- package/docs/index.html +29 -4
- package/docs/interfaces/addcellrendereraction.html +3 -3
- package/docs/interfaces/addrendereraction.html +3 -3
- package/docs/interfaces/adduischemaaction.html +3 -3
- package/docs/interfaces/andcondition.html +2 -2
- package/docs/interfaces/arraycontrolprops.html +21 -21
- package/docs/interfaces/arraylayoutprops.html +21 -21
- package/docs/interfaces/categorization.html +5 -5
- package/docs/interfaces/category.html +5 -5
- package/docs/interfaces/cellprops.html +12 -12
- package/docs/interfaces/combinatorrendererprops.html +143 -36
- package/docs/interfaces/composablecondition.html +2 -2
- package/docs/interfaces/condition.html +1 -1
- package/docs/interfaces/controlelement.html +22 -4
- package/docs/interfaces/controlprops.html +16 -16
- package/docs/interfaces/controlstate.html +2 -2
- package/docs/interfaces/controlwithdetailprops.html +17 -17
- package/docs/interfaces/dispatchcellprops.html +10 -10
- package/docs/interfaces/dispatchcellstateprops.html +10 -10
- package/docs/interfaces/dispatchpropsofarraycontrol.html +4 -4
- package/docs/interfaces/dispatchpropsofcontrol.html +1 -1
- package/docs/interfaces/dispatchpropsofmultienumcontrol.html +2 -2
- package/docs/interfaces/enumcellprops.html +13 -13
- package/docs/interfaces/enumoption.html +2 -2
- package/docs/interfaces/grouplayout.html +5 -5
- package/docs/interfaces/horizontallayout.html +4 -4
- package/docs/interfaces/initactionoptions.html +14 -0
- package/docs/interfaces/internationalizable.html +167 -0
- package/docs/interfaces/jsonformscore.html +17 -3
- package/docs/interfaces/jsonformsprops.html +9 -9
- package/docs/interfaces/labeldescription.html +2 -2
- package/docs/interfaces/labelelement.html +4 -4
- package/docs/interfaces/layout.html +4 -4
- package/docs/interfaces/layoutprops.html +10 -10
- package/docs/interfaces/leafcondition.html +2 -2
- package/docs/interfaces/orcondition.html +2 -2
- package/docs/interfaces/ownpropsofcell.html +9 -9
- package/docs/interfaces/ownpropsofcontrol.html +9 -12
- package/docs/interfaces/ownpropsofenum.html +1 -1
- package/docs/interfaces/ownpropsofenumcell.html +10 -10
- package/docs/interfaces/ownpropsofjsonformsrenderer.html +8 -8
- package/docs/interfaces/ownpropsoflayout.html +9 -9
- package/docs/interfaces/ownpropsofmasterlistitem.html +6 -6
- package/docs/interfaces/ownpropsofrenderer.html +8 -8
- package/docs/interfaces/registerdefaultdataaction.html +3 -3
- package/docs/interfaces/removecellrendereraction.html +3 -3
- package/docs/interfaces/removerendereraction.html +3 -3
- package/docs/interfaces/removeuischemaaction.html +2 -2
- package/docs/interfaces/rendererprops.html +9 -9
- package/docs/interfaces/rule.html +2 -2
- package/docs/interfaces/schemabasedcondition.html +2 -2
- package/docs/interfaces/setajvaction.html +2 -2
- package/docs/interfaces/setconfigaction.html +2 -2
- package/docs/interfaces/setlocaleaction.html +2 -2
- package/docs/interfaces/setschemaaction.html +2 -2
- package/docs/interfaces/settranslatoraction.html +3 -3
- package/docs/interfaces/setuischemaaction.html +2 -2
- package/docs/interfaces/setvalidationmodeaction.html +2 -2
- package/docs/interfaces/statepropsofarraycontrol.html +17 -17
- package/docs/interfaces/statepropsofarraylayout.html +17 -17
- package/docs/interfaces/statepropsofcell.html +11 -11
- package/docs/interfaces/statepropsofcombinator.html +147 -40
- package/docs/interfaces/statepropsofcontrol.html +18 -15
- package/docs/interfaces/statepropsofcontrolwithdetail.html +16 -16
- package/docs/interfaces/statepropsofenumcell.html +12 -12
- package/docs/interfaces/statepropsofjsonformsrenderer.html +9 -9
- package/docs/interfaces/statepropsoflayout.html +10 -10
- package/docs/interfaces/statepropsofmasteritem.html +7 -7
- package/docs/interfaces/statepropsofrenderer.html +9 -9
- package/docs/interfaces/statepropsofscopedrenderer.html +12 -12
- package/docs/interfaces/uischemaelement.html +3 -3
- package/docs/interfaces/unregisterdefaultdataaction.html +2 -2
- package/docs/interfaces/updatei18naction.html +4 -4
- package/docs/interfaces/verticallayout.html +4 -4
- package/docs/interfaces/withclassname.html +1 -1
- package/lib/actions/actions.d.ts +1 -0
- package/lib/jsonforms-core.cjs.js +201 -179
- package/lib/jsonforms-core.cjs.js.map +1 -1
- package/lib/jsonforms-core.esm.js +182 -166
- package/lib/jsonforms-core.esm.js.map +1 -1
- package/lib/models/uischema.d.ts +10 -1
- package/lib/reducers/core.d.ts +1 -0
- package/lib/reducers/reducers.d.ts +2 -2
- package/lib/testers/testers.d.ts +8 -7
- package/lib/util/combinators.d.ts +0 -1
- package/lib/util/path.d.ts +10 -0
- package/lib/util/renderer.d.ts +2 -2
- package/lib/util/resolvers.d.ts +1 -1
- package/lib/util/util.d.ts +1 -1
- package/package.json +2 -2
- package/src/actions/actions.ts +1 -0
- package/src/generators/uischema.ts +4 -4
- package/src/i18n/i18nUtil.ts +10 -7
- package/src/models/uischema.ts +14 -1
- package/src/reducers/core.ts +30 -3
- package/src/reducers/reducers.ts +12 -4
- package/src/testers/testers.ts +61 -34
- package/src/util/combinators.ts +17 -32
- package/src/util/label.ts +2 -2
- package/src/util/path.ts +18 -6
- package/src/util/renderer.ts +20 -32
- package/src/util/resolvers.ts +57 -68
- package/src/util/util.ts +1 -1
- package/stats.html +1 -1
- package/test/generators/uischema.test.ts +18 -0
- package/test/i18n/i18nUtil.test.ts +41 -1
- package/test/reducers/core.test.ts +203 -1
- package/test/testers.test.ts +208 -120
- package/test/util/path.test.ts +37 -20
- package/test/util/renderer.test.ts +1 -1
- package/test/util/resolvers.test.ts +99 -8
|
@@ -292,6 +292,9 @@ var RuleEffect;
|
|
|
292
292
|
RuleEffect["ENABLE"] = "ENABLE";
|
|
293
293
|
RuleEffect["DISABLE"] = "DISABLE";
|
|
294
294
|
})(RuleEffect || (RuleEffect = {}));
|
|
295
|
+
const isInternationalized = (element) => {
|
|
296
|
+
return typeof element === 'object' && element !== null && typeof element.i18n === 'string';
|
|
297
|
+
};
|
|
295
298
|
const isGroup = (layout) => layout.type === 'Group';
|
|
296
299
|
const isLayout = (uischema) => uischema.elements !== undefined;
|
|
297
300
|
|
|
@@ -356,6 +359,7 @@ const initState = {
|
|
|
356
359
|
validator: undefined,
|
|
357
360
|
ajv: undefined,
|
|
358
361
|
validationMode: 'ValidateAndShow',
|
|
362
|
+
additionalErrors: []
|
|
359
363
|
};
|
|
360
364
|
const reuseAjvForSchema = (ajv, schema) => {
|
|
361
365
|
if (schema.hasOwnProperty('id') || schema.hasOwnProperty('$id')) {
|
|
@@ -399,6 +403,18 @@ const hasValidationModeOption = (option) => {
|
|
|
399
403
|
}
|
|
400
404
|
return false;
|
|
401
405
|
};
|
|
406
|
+
const hasAdditionalErrorsOption = (option) => {
|
|
407
|
+
if (option) {
|
|
408
|
+
return option.additionalErrors !== undefined;
|
|
409
|
+
}
|
|
410
|
+
return false;
|
|
411
|
+
};
|
|
412
|
+
const getAdditionalErrors = (state, action) => {
|
|
413
|
+
if (action && hasAdditionalErrorsOption(action.options)) {
|
|
414
|
+
return action.options.additionalErrors;
|
|
415
|
+
}
|
|
416
|
+
return state.additionalErrors;
|
|
417
|
+
};
|
|
402
418
|
const coreReducer = (state = initState, action) => {
|
|
403
419
|
switch (action.type) {
|
|
404
420
|
case INIT: {
|
|
@@ -406,11 +422,13 @@ const coreReducer = (state = initState, action) => {
|
|
|
406
422
|
const validationMode = getValidationMode(state, action);
|
|
407
423
|
const v = validationMode === 'NoValidation' ? undefined : thisAjv.compile(action.schema);
|
|
408
424
|
const e = validate(v, action.data);
|
|
425
|
+
const additionalErrors = getAdditionalErrors(state, action);
|
|
409
426
|
return {
|
|
410
427
|
...state,
|
|
411
428
|
data: action.data,
|
|
412
429
|
schema: action.schema,
|
|
413
430
|
uischema: action.uischema,
|
|
431
|
+
additionalErrors,
|
|
414
432
|
errors: e,
|
|
415
433
|
validator: v,
|
|
416
434
|
ajv: thisAjv,
|
|
@@ -434,13 +452,15 @@ const coreReducer = (state = initState, action) => {
|
|
|
434
452
|
else if (state.data !== action.data) {
|
|
435
453
|
errors = validate(validator, action.data);
|
|
436
454
|
}
|
|
455
|
+
const additionalErrors = getAdditionalErrors(state, action);
|
|
437
456
|
const stateChanged = state.data !== action.data ||
|
|
438
457
|
state.schema !== action.schema ||
|
|
439
458
|
state.uischema !== action.uischema ||
|
|
440
459
|
state.ajv !== thisAjv ||
|
|
441
460
|
state.errors !== errors ||
|
|
442
461
|
state.validator !== validator ||
|
|
443
|
-
state.validationMode !== validationMode
|
|
462
|
+
state.validationMode !== validationMode ||
|
|
463
|
+
state.additionalErrors !== additionalErrors;
|
|
444
464
|
return stateChanged
|
|
445
465
|
? {
|
|
446
466
|
...state,
|
|
@@ -451,6 +471,7 @@ const coreReducer = (state = initState, action) => {
|
|
|
451
471
|
errors: isEqual(errors, state.errors) ? state.errors : errors,
|
|
452
472
|
validator: validator,
|
|
453
473
|
validationMode: validationMode,
|
|
474
|
+
additionalErrors
|
|
454
475
|
}
|
|
455
476
|
: state;
|
|
456
477
|
}
|
|
@@ -594,7 +615,11 @@ const isObjectSchema$1 = (schema) => {
|
|
|
594
615
|
return schema?.type === 'object' || !!schema?.properties;
|
|
595
616
|
};
|
|
596
617
|
const filteredErrorKeywords = ['additionalProperties', 'allOf', 'anyOf', 'oneOf'];
|
|
597
|
-
const getErrorsAt = (instancePath, schema, matchPath) => (state) =>
|
|
618
|
+
const getErrorsAt = (instancePath, schema, matchPath) => (state) => {
|
|
619
|
+
const errors = state.errors ?? [];
|
|
620
|
+
const additionalErrors = state.additionalErrors ?? [];
|
|
621
|
+
return errorsAt(instancePath, schema, matchPath)(state.validationMode === 'ValidateAndHide' ? additionalErrors : [...errors, ...additionalErrors]);
|
|
622
|
+
};
|
|
598
623
|
const errorAt = (instancePath, schema) => getErrorsAt(instancePath, schema, path => path === instancePath);
|
|
599
624
|
const subErrorsAt = (instancePath, schema) => getErrorsAt(instancePath, schema, path => path.startsWith(instancePath));
|
|
600
625
|
|
|
@@ -613,7 +638,10 @@ const defaultDataReducer = (state = [], action) => {
|
|
|
613
638
|
const extractDefaultData = (state) => state;
|
|
614
639
|
|
|
615
640
|
const getI18nKeyPrefixBySchema = (schema, uischema) => {
|
|
616
|
-
|
|
641
|
+
if (isInternationalized(uischema)) {
|
|
642
|
+
return uischema.i18n;
|
|
643
|
+
}
|
|
644
|
+
return schema?.i18n ?? undefined;
|
|
617
645
|
};
|
|
618
646
|
const transformPathToI18nPrefix = (path) => {
|
|
619
647
|
return (path
|
|
@@ -631,27 +659,27 @@ const getI18nKey = (schema, uischema, path, key) => {
|
|
|
631
659
|
const defaultTranslator = (_id, defaultMessage) => defaultMessage;
|
|
632
660
|
const defaultErrorTranslator = (error, t, uischema) => {
|
|
633
661
|
const i18nKey = getI18nKey(error.parentSchema, uischema, getControlPath(error), `error.${error.keyword}`);
|
|
634
|
-
const specializedKeywordMessage = t(i18nKey, undefined);
|
|
662
|
+
const specializedKeywordMessage = t(i18nKey, undefined, { error });
|
|
635
663
|
if (specializedKeywordMessage !== undefined) {
|
|
636
664
|
return specializedKeywordMessage;
|
|
637
665
|
}
|
|
638
|
-
const genericKeywordMessage = t(`error.${error.keyword}`, undefined);
|
|
666
|
+
const genericKeywordMessage = t(`error.${error.keyword}`, undefined, { error });
|
|
639
667
|
if (genericKeywordMessage !== undefined) {
|
|
640
668
|
return genericKeywordMessage;
|
|
641
669
|
}
|
|
642
|
-
const messageCustomization = t(error.message, undefined);
|
|
670
|
+
const messageCustomization = t(error.message, undefined, { error });
|
|
643
671
|
if (messageCustomization !== undefined) {
|
|
644
672
|
return messageCustomization;
|
|
645
673
|
}
|
|
646
674
|
if (error.keyword === 'required' && error.message?.startsWith('must have required property')) {
|
|
647
|
-
return t('is a required property', 'is a required property');
|
|
675
|
+
return t('is a required property', 'is a required property', { error });
|
|
648
676
|
}
|
|
649
677
|
return error.message;
|
|
650
678
|
};
|
|
651
679
|
const getCombinedErrorMessage = (errors, et, t, schema, uischema, path) => {
|
|
652
680
|
if (errors.length > 0 && t) {
|
|
653
681
|
const customErrorKey = getI18nKey(schema, uischema, path, 'error.custom');
|
|
654
|
-
const specializedErrorMessage = t(customErrorKey, undefined);
|
|
682
|
+
const specializedErrorMessage = t(customErrorKey, undefined, { schema, uischema, path, errors });
|
|
655
683
|
if (specializedErrorMessage !== undefined) {
|
|
656
684
|
return specializedErrorMessage;
|
|
657
685
|
}
|
|
@@ -731,7 +759,7 @@ const rendererReducer = (state = [], action) => {
|
|
|
731
759
|
|
|
732
760
|
const NOT_APPLICABLE = -1;
|
|
733
761
|
const isControl = (uischema) => !isEmpty(uischema) && uischema.scope !== undefined;
|
|
734
|
-
const schemaMatches = (predicate) => (uischema, schema) => {
|
|
762
|
+
const schemaMatches = (predicate) => (uischema, schema, rootSchema) => {
|
|
735
763
|
if (isEmpty(uischema) || !isControl(uischema)) {
|
|
736
764
|
return false;
|
|
737
765
|
}
|
|
@@ -744,32 +772,32 @@ const schemaMatches = (predicate) => (uischema, schema) => {
|
|
|
744
772
|
}
|
|
745
773
|
let currentDataSchema = schema;
|
|
746
774
|
if (hasType(schema, 'object')) {
|
|
747
|
-
currentDataSchema = resolveSchema(schema, schemaPath);
|
|
775
|
+
currentDataSchema = resolveSchema(schema, schemaPath, rootSchema);
|
|
748
776
|
}
|
|
749
777
|
if (currentDataSchema === undefined) {
|
|
750
778
|
return false;
|
|
751
779
|
}
|
|
752
|
-
return predicate(currentDataSchema);
|
|
780
|
+
return predicate(currentDataSchema, rootSchema);
|
|
753
781
|
};
|
|
754
|
-
const schemaSubPathMatches = (subPath, predicate) => (uischema, schema) => {
|
|
782
|
+
const schemaSubPathMatches = (subPath, predicate) => (uischema, schema, rootSchema) => {
|
|
755
783
|
if (isEmpty(uischema) || !isControl(uischema)) {
|
|
756
784
|
return false;
|
|
757
785
|
}
|
|
758
786
|
const schemaPath = uischema.scope;
|
|
759
787
|
let currentDataSchema = schema;
|
|
760
788
|
if (hasType(schema, 'object')) {
|
|
761
|
-
currentDataSchema = resolveSchema(schema, schemaPath);
|
|
789
|
+
currentDataSchema = resolveSchema(schema, schemaPath, rootSchema);
|
|
762
790
|
}
|
|
763
791
|
currentDataSchema = get(currentDataSchema, subPath);
|
|
764
792
|
if (currentDataSchema === undefined) {
|
|
765
793
|
return false;
|
|
766
794
|
}
|
|
767
|
-
return predicate(currentDataSchema);
|
|
795
|
+
return predicate(currentDataSchema, rootSchema);
|
|
768
796
|
};
|
|
769
797
|
const schemaTypeIs = (expectedType) => schemaMatches(schema => !isEmpty(schema) && hasType(schema, expectedType));
|
|
770
798
|
const formatIs = (expectedFormat) => schemaMatches(schema => !isEmpty(schema) &&
|
|
771
799
|
schema.format === expectedFormat &&
|
|
772
|
-
schema
|
|
800
|
+
hasType(schema, 'string'));
|
|
773
801
|
const uiTypeIs = (expected) => (uischema) => !isEmpty(uischema) && uischema.type === expected;
|
|
774
802
|
const optionIs = (optionName, optionValue) => (uischema) => {
|
|
775
803
|
if (isEmpty(uischema)) {
|
|
@@ -791,16 +819,16 @@ const scopeEndIs = (expected) => (uischema) => {
|
|
|
791
819
|
const schemaPath = uischema.scope;
|
|
792
820
|
return !isEmpty(schemaPath) && last(schemaPath.split('/')) === expected;
|
|
793
821
|
};
|
|
794
|
-
const and = (...testers) => (uischema, schema) => testers.reduce((acc, tester) => acc && tester(uischema, schema), true);
|
|
795
|
-
const or = (...testers) => (uischema, schema) => testers.reduce((acc, tester) => acc || tester(uischema, schema), false);
|
|
796
|
-
const rankWith = (rank, tester) => (uischema, schema) => {
|
|
797
|
-
if (tester(uischema, schema)) {
|
|
822
|
+
const and = (...testers) => (uischema, schema, rootSchema) => testers.reduce((acc, tester) => acc && tester(uischema, schema, rootSchema), true);
|
|
823
|
+
const or = (...testers) => (uischema, schema, rootSchema) => testers.reduce((acc, tester) => acc || tester(uischema, schema, rootSchema), false);
|
|
824
|
+
const rankWith = (rank, tester) => (uischema, schema, rootSchema) => {
|
|
825
|
+
if (tester(uischema, schema, rootSchema)) {
|
|
798
826
|
return rank;
|
|
799
827
|
}
|
|
800
828
|
return NOT_APPLICABLE;
|
|
801
829
|
};
|
|
802
|
-
const withIncreasedRank = (by, rankedTester) => (uischema, schema) => {
|
|
803
|
-
const rank = rankedTester(uischema, schema);
|
|
830
|
+
const withIncreasedRank = (by, rankedTester) => (uischema, schema, rootSchema) => {
|
|
831
|
+
const rank = rankedTester(uischema, schema, rootSchema);
|
|
804
832
|
if (rank === NOT_APPLICABLE) {
|
|
805
833
|
return NOT_APPLICABLE;
|
|
806
834
|
}
|
|
@@ -821,30 +849,39 @@ const isMultiLineControl = and(uiTypeIs('Control'), optionIs('multi', true));
|
|
|
821
849
|
const isDateControl = and(uiTypeIs('Control'), or(formatIs('date'), optionIs('format', 'date')));
|
|
822
850
|
const isTimeControl = and(uiTypeIs('Control'), or(formatIs('time'), optionIs('format', 'time')));
|
|
823
851
|
const isDateTimeControl = and(uiTypeIs('Control'), or(formatIs('date-time'), optionIs('format', 'date-time')));
|
|
824
|
-
const isObjectArray = and(schemaMatches(schema => hasType(schema, 'array') && !Array.isArray(schema
|
|
825
|
-
), schemaSubPathMatches('items',
|
|
852
|
+
const isObjectArray = and(schemaMatches((schema, rootSchema) => hasType(schema, 'array') && !Array.isArray(resolveSchema(schema, 'items', rootSchema))
|
|
853
|
+
), schemaSubPathMatches('items', (schema, rootSchema) => {
|
|
854
|
+
const resolvedSchema = schema.$ref ? resolveSchema(rootSchema, schema.$ref, rootSchema) : schema;
|
|
855
|
+
return hasType(resolvedSchema, 'object');
|
|
856
|
+
}));
|
|
826
857
|
const isObjectArrayControl = and(uiTypeIs('Control'), isObjectArray);
|
|
827
|
-
const traverse = (any, pred) => {
|
|
858
|
+
const traverse = (any, pred, rootSchema) => {
|
|
828
859
|
if (isArray(any)) {
|
|
829
|
-
return reduce(any, (acc, el) => acc || traverse(el, pred), false);
|
|
860
|
+
return reduce(any, (acc, el) => acc || traverse(el, pred, rootSchema), false);
|
|
830
861
|
}
|
|
831
862
|
if (pred(any)) {
|
|
832
863
|
return true;
|
|
833
864
|
}
|
|
865
|
+
if (any.$ref) {
|
|
866
|
+
const toTraverse = resolveSchema(rootSchema, any.$ref, rootSchema);
|
|
867
|
+
if (toTraverse && !toTraverse.$ref) {
|
|
868
|
+
return traverse(toTraverse, pred, rootSchema);
|
|
869
|
+
}
|
|
870
|
+
}
|
|
834
871
|
if (any.items) {
|
|
835
|
-
return traverse(any.items, pred);
|
|
872
|
+
return traverse(any.items, pred, rootSchema);
|
|
836
873
|
}
|
|
837
874
|
if (any.properties) {
|
|
838
|
-
return reduce(toPairs(any.properties), (acc, [_key, val]) => acc || traverse(val, pred), false);
|
|
875
|
+
return reduce(toPairs(any.properties), (acc, [_key, val]) => acc || traverse(val, pred, rootSchema), false);
|
|
839
876
|
}
|
|
840
877
|
return false;
|
|
841
878
|
};
|
|
842
|
-
const isObjectArrayWithNesting = (uischema, schema) => {
|
|
843
|
-
if (!uiTypeIs('Control')(uischema, schema)) {
|
|
879
|
+
const isObjectArrayWithNesting = (uischema, schema, rootSchema) => {
|
|
880
|
+
if (!uiTypeIs('Control')(uischema, schema, rootSchema)) {
|
|
844
881
|
return false;
|
|
845
882
|
}
|
|
846
883
|
const schemaPath = uischema.scope;
|
|
847
|
-
const resolvedSchema = resolveSchema(schema, schemaPath);
|
|
884
|
+
const resolvedSchema = resolveSchema(schema, schemaPath, rootSchema ?? schema);
|
|
848
885
|
const wantedNestingByType = {
|
|
849
886
|
object: 2,
|
|
850
887
|
array: 1
|
|
@@ -854,6 +891,9 @@ const isObjectArrayWithNesting = (uischema, schema) => {
|
|
|
854
891
|
if (val === schema) {
|
|
855
892
|
return false;
|
|
856
893
|
}
|
|
894
|
+
if (val.$ref !== undefined) {
|
|
895
|
+
return false;
|
|
896
|
+
}
|
|
857
897
|
if (typeof val.type !== 'string') {
|
|
858
898
|
return true;
|
|
859
899
|
}
|
|
@@ -863,7 +903,7 @@ const isObjectArrayWithNesting = (uischema, schema) => {
|
|
|
863
903
|
}
|
|
864
904
|
wantedNestingByType[val.type] = typeCount - 1;
|
|
865
905
|
return wantedNestingByType[val.type] === 0;
|
|
866
|
-
})) {
|
|
906
|
+
}, rootSchema)) {
|
|
867
907
|
return true;
|
|
868
908
|
}
|
|
869
909
|
if (uischema.options && uischema.options.detail) {
|
|
@@ -879,9 +919,11 @@ const isObjectArrayWithNesting = (uischema, schema) => {
|
|
|
879
919
|
return false;
|
|
880
920
|
};
|
|
881
921
|
const isArrayObjectControl = isObjectArrayControl;
|
|
882
|
-
const isPrimitiveArrayControl = and(uiTypeIs('Control'), schemaMatches(schema => deriveTypes(schema).length !== 0 &&
|
|
883
|
-
|
|
884
|
-
|
|
922
|
+
const isPrimitiveArrayControl = and(uiTypeIs('Control'), schemaMatches((schema, rootSchema) => deriveTypes(schema).length !== 0 &&
|
|
923
|
+
!Array.isArray(resolveSchema(schema, 'items', rootSchema))
|
|
924
|
+
), schemaSubPathMatches('items', (schema, rootSchema) => {
|
|
925
|
+
const resolvedSchema = schema.$ref ? resolveSchema(rootSchema, schema.$ref, rootSchema) : schema;
|
|
926
|
+
const types = deriveTypes(resolvedSchema);
|
|
885
927
|
return (types.length === 1 &&
|
|
886
928
|
includes(['integer', 'number', 'boolean', 'string'], types[0]));
|
|
887
929
|
}));
|
|
@@ -900,7 +942,7 @@ const hasCategory = (categorization) => {
|
|
|
900
942
|
.reduce((prev, curr) => prev && curr, true);
|
|
901
943
|
};
|
|
902
944
|
const categorizationHasCategory = (uischema) => hasCategory(uischema);
|
|
903
|
-
const not = (tester) => (uischema, schema) => !tester(uischema, schema);
|
|
945
|
+
const not = (tester) => (uischema, schema, rootSchema) => !tester(uischema, schema, rootSchema);
|
|
904
946
|
|
|
905
947
|
var index$1 = /*#__PURE__*/Object.freeze({
|
|
906
948
|
__proto__: null,
|
|
@@ -978,11 +1020,14 @@ const jsonFormsReducerConfig = {
|
|
|
978
1020
|
defaultData: defaultDataReducer,
|
|
979
1021
|
i18n: i18nReducer,
|
|
980
1022
|
};
|
|
981
|
-
const findUISchema = (uischemas, schema, schemaPath, path,
|
|
1023
|
+
const findUISchema = (uischemas, schema, schemaPath, path, fallback = 'VerticalLayout', control, rootSchema) => {
|
|
982
1024
|
if (control && control.options && control.options.detail) {
|
|
983
1025
|
if (typeof control.options.detail === 'string') {
|
|
984
1026
|
if (control.options.detail.toUpperCase() === 'GENERATE') {
|
|
985
|
-
|
|
1027
|
+
if (typeof fallback === "function") {
|
|
1028
|
+
return fallback();
|
|
1029
|
+
}
|
|
1030
|
+
return Generate.uiSchema(schema, fallback);
|
|
986
1031
|
}
|
|
987
1032
|
}
|
|
988
1033
|
else if (typeof control.options.detail === 'object') {
|
|
@@ -994,7 +1039,10 @@ const findUISchema = (uischemas, schema, schemaPath, path, fallbackLayoutType =
|
|
|
994
1039
|
}
|
|
995
1040
|
const uiSchema = findMatchingUISchema(uischemas)(schema, schemaPath, path);
|
|
996
1041
|
if (uiSchema === undefined) {
|
|
997
|
-
|
|
1042
|
+
if (typeof fallback === 'function') {
|
|
1043
|
+
return fallback();
|
|
1044
|
+
}
|
|
1045
|
+
return Generate.uiSchema(schema, fallback, '#', rootSchema);
|
|
998
1046
|
}
|
|
999
1047
|
return uiSchema;
|
|
1000
1048
|
};
|
|
@@ -1016,6 +1064,44 @@ const getRenderers = (state) => get(state, 'jsonforms.renderers');
|
|
|
1016
1064
|
const getCells = (state) => get(state, 'jsonforms.cells');
|
|
1017
1065
|
const getUISchemas = (state) => get(state, 'jsonforms.uischemas');
|
|
1018
1066
|
|
|
1067
|
+
const compose = (path1, path2) => {
|
|
1068
|
+
let p1 = path1;
|
|
1069
|
+
if (!isEmpty(path1) && !isEmpty(path2) && !path2.startsWith('[')) {
|
|
1070
|
+
p1 = path1 + '.';
|
|
1071
|
+
}
|
|
1072
|
+
if (isEmpty(p1)) {
|
|
1073
|
+
return path2;
|
|
1074
|
+
}
|
|
1075
|
+
else if (isEmpty(path2)) {
|
|
1076
|
+
return p1;
|
|
1077
|
+
}
|
|
1078
|
+
else {
|
|
1079
|
+
return `${p1}${path2}`;
|
|
1080
|
+
}
|
|
1081
|
+
};
|
|
1082
|
+
const toDataPathSegments = (schemaPath) => {
|
|
1083
|
+
const s = schemaPath
|
|
1084
|
+
.replace(/(anyOf|allOf|oneOf)\/[\d]\//g, '')
|
|
1085
|
+
.replace(/(then|else)\//g, '');
|
|
1086
|
+
const segments = s.split('/');
|
|
1087
|
+
const decodedSegments = segments.map(decode);
|
|
1088
|
+
const startFromRoot = decodedSegments[0] === '#' || decodedSegments[0] === '';
|
|
1089
|
+
const startIndex = startFromRoot ? 2 : 1;
|
|
1090
|
+
return range(startIndex, decodedSegments.length, 2).map(idx => decodedSegments[idx]);
|
|
1091
|
+
};
|
|
1092
|
+
const toDataPath = (schemaPath) => {
|
|
1093
|
+
return toDataPathSegments(schemaPath).join('.');
|
|
1094
|
+
};
|
|
1095
|
+
const composeWithUi = (scopableUi, path) => {
|
|
1096
|
+
const segments = toDataPathSegments(scopableUi.scope);
|
|
1097
|
+
if (isEmpty(segments) && path === undefined) {
|
|
1098
|
+
return '';
|
|
1099
|
+
}
|
|
1100
|
+
return isEmpty(segments) ? path : compose(path, segments.join('.'));
|
|
1101
|
+
};
|
|
1102
|
+
const encode = (segment) => segment?.replace(/~/g, '~0').replace(/\//g, '~1');
|
|
1103
|
+
const decode = (pointerSegment) => pointerSegment?.replace(/~1/g, '/').replace(/~0/, '~');
|
|
1104
|
+
|
|
1019
1105
|
const isObjectSchema = (schema) => {
|
|
1020
1106
|
return schema.properties !== undefined;
|
|
1021
1107
|
};
|
|
@@ -1062,90 +1148,40 @@ const findAllRefs = (schema, result = {}, resolveTuples = false) => {
|
|
|
1062
1148
|
};
|
|
1063
1149
|
const invalidSegment = (pathSegment) => pathSegment === '#' || pathSegment === undefined || pathSegment === '';
|
|
1064
1150
|
const resolveSchema = (schema, schemaPath, rootSchema) => {
|
|
1151
|
+
const segments = schemaPath?.split('/').map(decode);
|
|
1152
|
+
return resolveSchemaWithSegments(schema, segments, rootSchema);
|
|
1153
|
+
};
|
|
1154
|
+
const resolveSchemaWithSegments = (schema, pathSegments, rootSchema) => {
|
|
1065
1155
|
if (isEmpty(schema)) {
|
|
1066
1156
|
return undefined;
|
|
1067
1157
|
}
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
for (let i = 0; i < validPathSegments.length; i++) {
|
|
1071
|
-
let pathSegment = validPathSegments[i];
|
|
1072
|
-
resultSchema =
|
|
1073
|
-
resultSchema === undefined || resultSchema.$ref === undefined
|
|
1074
|
-
? resultSchema
|
|
1075
|
-
: resolveSchema(schema, resultSchema.$ref);
|
|
1076
|
-
if (invalidSegment(pathSegment)) {
|
|
1077
|
-
continue;
|
|
1078
|
-
}
|
|
1079
|
-
let curSchema = get(resultSchema, pathSegment);
|
|
1080
|
-
if (!curSchema) {
|
|
1081
|
-
const schemas = [].concat(resultSchema?.oneOf ?? [], resultSchema?.allOf ?? [], resultSchema?.anyOf ?? []);
|
|
1082
|
-
for (let item of schemas) {
|
|
1083
|
-
curSchema = resolveSchema(item, validPathSegments.slice(i).join('/'));
|
|
1084
|
-
if (curSchema) {
|
|
1085
|
-
break;
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
if (curSchema) {
|
|
1089
|
-
resultSchema = curSchema;
|
|
1090
|
-
break;
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
resultSchema = curSchema;
|
|
1094
|
-
}
|
|
1095
|
-
if (resultSchema !== undefined && resultSchema.$ref !== undefined) {
|
|
1096
|
-
try {
|
|
1097
|
-
return retrieveResolvableSchema(schema, resultSchema.$ref);
|
|
1098
|
-
}
|
|
1099
|
-
catch (e) {
|
|
1100
|
-
return retrieveResolvableSchema(rootSchema, resultSchema.$ref);
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
return resultSchema;
|
|
1104
|
-
};
|
|
1105
|
-
function retrieveResolvableSchema(full, reference) {
|
|
1106
|
-
const child = resolveSchema(full, reference);
|
|
1107
|
-
const allRefs = findAllRefs(child);
|
|
1108
|
-
const innerSelfReference = allRefs[reference];
|
|
1109
|
-
if (innerSelfReference !== undefined) {
|
|
1110
|
-
innerSelfReference.$ref = '#';
|
|
1111
|
-
}
|
|
1112
|
-
return child;
|
|
1113
|
-
}
|
|
1114
|
-
|
|
1115
|
-
const compose = (path1, path2) => {
|
|
1116
|
-
let p1 = path1;
|
|
1117
|
-
if (!isEmpty(path1) && !isEmpty(path2) && !path2.startsWith('[')) {
|
|
1118
|
-
p1 = path1 + '.';
|
|
1158
|
+
if (schema.$ref) {
|
|
1159
|
+
schema = resolveSchema(rootSchema, schema.$ref, rootSchema);
|
|
1119
1160
|
}
|
|
1120
|
-
if (
|
|
1121
|
-
return
|
|
1161
|
+
if (!pathSegments || pathSegments.length === 0) {
|
|
1162
|
+
return schema;
|
|
1122
1163
|
}
|
|
1123
|
-
|
|
1124
|
-
|
|
1164
|
+
const [segment, ...remainingSegments] = pathSegments;
|
|
1165
|
+
if (invalidSegment(segment)) {
|
|
1166
|
+
return resolveSchemaWithSegments(schema, remainingSegments, rootSchema);
|
|
1125
1167
|
}
|
|
1126
|
-
|
|
1127
|
-
|
|
1168
|
+
const singleSegmentResolveSchema = get(schema, segment);
|
|
1169
|
+
const resolvedSchema = resolveSchemaWithSegments(singleSegmentResolveSchema, remainingSegments, rootSchema);
|
|
1170
|
+
if (resolvedSchema) {
|
|
1171
|
+
return resolvedSchema;
|
|
1128
1172
|
}
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
};
|
|
1140
|
-
const toDataPath = (schemaPath) => {
|
|
1141
|
-
return toDataPathSegments(schemaPath).join('.');
|
|
1142
|
-
};
|
|
1143
|
-
const composeWithUi = (scopableUi, path) => {
|
|
1144
|
-
const segments = toDataPathSegments(scopableUi.scope);
|
|
1145
|
-
if (isEmpty(segments) && path === undefined) {
|
|
1146
|
-
return '';
|
|
1173
|
+
if (segment === 'properties' || segment === 'items') {
|
|
1174
|
+
let alternativeResolveResult = undefined;
|
|
1175
|
+
const subSchemas = [].concat(schema.oneOf ?? [], schema.allOf ?? [], schema.anyOf ?? [], schema.then ?? [], schema.else ?? []);
|
|
1176
|
+
for (const subSchema of subSchemas) {
|
|
1177
|
+
alternativeResolveResult = resolveSchemaWithSegments(subSchema, [segment, ...remainingSegments], rootSchema);
|
|
1178
|
+
if (alternativeResolveResult) {
|
|
1179
|
+
break;
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
return alternativeResolveResult;
|
|
1147
1183
|
}
|
|
1148
|
-
return
|
|
1184
|
+
return undefined;
|
|
1149
1185
|
};
|
|
1150
1186
|
|
|
1151
1187
|
const isOrCondition = (condition) => condition.type === 'OR';
|
|
@@ -1315,7 +1351,7 @@ const deriveLabel = (controlElement, schemaElement) => {
|
|
|
1315
1351
|
}
|
|
1316
1352
|
if (typeof controlElement.scope === 'string') {
|
|
1317
1353
|
const ref = controlElement.scope;
|
|
1318
|
-
const label = ref.substr(ref.lastIndexOf('/') + 1);
|
|
1354
|
+
const label = decode(ref.substr(ref.lastIndexOf('/') + 1));
|
|
1319
1355
|
return startCase(label);
|
|
1320
1356
|
}
|
|
1321
1357
|
return '';
|
|
@@ -1345,30 +1381,6 @@ const labelDescription = (text, show) => ({
|
|
|
1345
1381
|
show: show
|
|
1346
1382
|
});
|
|
1347
1383
|
|
|
1348
|
-
const createLabel = (subSchema, subSchemaIndex, keyword) => {
|
|
1349
|
-
if (subSchema.title) {
|
|
1350
|
-
return subSchema.title;
|
|
1351
|
-
}
|
|
1352
|
-
else {
|
|
1353
|
-
return keyword + '-' + subSchemaIndex;
|
|
1354
|
-
}
|
|
1355
|
-
};
|
|
1356
|
-
const resolveSubSchemas = (schema, rootSchema, keyword) => {
|
|
1357
|
-
const schemas = schema[keyword];
|
|
1358
|
-
if (schemas.findIndex(e => e.$ref !== undefined) !== -1) {
|
|
1359
|
-
return {
|
|
1360
|
-
...schema,
|
|
1361
|
-
[keyword]: schema[keyword].map(e => e.$ref ? resolveSchema(rootSchema, e.$ref) : e)
|
|
1362
|
-
};
|
|
1363
|
-
}
|
|
1364
|
-
return schema;
|
|
1365
|
-
};
|
|
1366
|
-
const createCombinatorRenderInfos = (combinatorSubSchemas, rootSchema, keyword, control, path, uischemas) => combinatorSubSchemas.map((subSchema, subSchemaIndex) => ({
|
|
1367
|
-
schema: subSchema,
|
|
1368
|
-
uischema: findUISchema(uischemas, subSchema, control.scope, path, undefined, control, rootSchema),
|
|
1369
|
-
label: createLabel(subSchema, subSchemaIndex, keyword)
|
|
1370
|
-
}));
|
|
1371
|
-
|
|
1372
1384
|
const isRequired = (schema, schemaPath, rootSchema) => {
|
|
1373
1385
|
const pathSegments = schemaPath.split('/');
|
|
1374
1386
|
const lastSegment = pathSegments[pathSegments.length - 1];
|
|
@@ -1466,8 +1478,8 @@ const mapStateToControlProps = (state, ownProps) => {
|
|
|
1466
1478
|
const schema = resolvedSchema ?? rootSchema;
|
|
1467
1479
|
const t = getTranslator()(state);
|
|
1468
1480
|
const te = getErrorTranslator()(state);
|
|
1469
|
-
const i18nLabel = t(getI18nKey(schema, uischema, path, 'label'), label);
|
|
1470
|
-
const i18nDescription = t(getI18nKey(schema, uischema, path, 'description'), description);
|
|
1481
|
+
const i18nLabel = t(getI18nKey(schema, uischema, path, 'label'), label, { schema, uischema, path, errors });
|
|
1482
|
+
const i18nDescription = t(getI18nKey(schema, uischema, path, 'description'), description, { schema, uischema, path, errors });
|
|
1471
1483
|
const i18nErrorMessage = getCombinedErrorMessage(errors, te, t, schema, uischema, path);
|
|
1472
1484
|
return {
|
|
1473
1485
|
data,
|
|
@@ -1648,14 +1660,15 @@ const mapStateToLayoutProps = (state, ownProps) => {
|
|
|
1648
1660
|
data,
|
|
1649
1661
|
uischema: ownProps.uischema,
|
|
1650
1662
|
schema: ownProps.schema,
|
|
1651
|
-
direction: ownProps.direction ?? getDirection(uischema)
|
|
1663
|
+
direction: ownProps.direction ?? getDirection(uischema),
|
|
1664
|
+
config
|
|
1652
1665
|
};
|
|
1653
1666
|
};
|
|
1654
1667
|
const mapStateToJsonFormsRendererProps = (state, ownProps) => {
|
|
1655
1668
|
let uischema = ownProps.uischema;
|
|
1656
1669
|
if (uischema === undefined) {
|
|
1657
1670
|
if (ownProps.schema) {
|
|
1658
|
-
uischema = findUISchema(state.jsonforms.uischemas, ownProps.schema, undefined, ownProps.path);
|
|
1671
|
+
uischema = findUISchema(state.jsonforms.uischemas, ownProps.schema, undefined, ownProps.path, undefined, undefined, state.jsonforms.core.schema);
|
|
1659
1672
|
}
|
|
1660
1673
|
else {
|
|
1661
1674
|
uischema = getUiSchema(state);
|
|
@@ -1675,18 +1688,8 @@ const controlDefaultProps = {
|
|
|
1675
1688
|
errors: []
|
|
1676
1689
|
};
|
|
1677
1690
|
const mapStateToCombinatorRendererProps = (state, ownProps, keyword) => {
|
|
1678
|
-
const {
|
|
1679
|
-
const path = composeWithUi(uischema, ownProps.path);
|
|
1680
|
-
const rootSchema = getSchema(state);
|
|
1681
|
-
const resolvedSchema = Resolve.schema(ownProps.schema || rootSchema, uischema.scope, rootSchema);
|
|
1682
|
-
const visible = ownProps.visible === undefined || hasShowRule(uischema)
|
|
1683
|
-
? isVisible(uischema, getData(state), ownProps.path, getAjv(state))
|
|
1684
|
-
: ownProps.visible;
|
|
1685
|
-
const id = ownProps.id;
|
|
1686
|
-
const data = Resolve.data(getData(state), path);
|
|
1691
|
+
const { data, schema, ...props } = mapStateToControlProps(state, ownProps);
|
|
1687
1692
|
const ajv = state.jsonforms.core.ajv;
|
|
1688
|
-
const schema = resolvedSchema || rootSchema;
|
|
1689
|
-
const _schema = resolveSubSchemas(schema, rootSchema, keyword);
|
|
1690
1693
|
const structuralKeywords = [
|
|
1691
1694
|
'required',
|
|
1692
1695
|
'additionalProperties',
|
|
@@ -1700,9 +1703,9 @@ const mapStateToCombinatorRendererProps = (state, ownProps, keyword) => {
|
|
|
1700
1703
|
!errors.find(e => structuralKeywords.indexOf(e.keyword) !== -1));
|
|
1701
1704
|
};
|
|
1702
1705
|
let indexOfFittingSchema;
|
|
1703
|
-
for (let i = 0; i <
|
|
1706
|
+
for (let i = 0; i < schema[keyword]?.length; i++) {
|
|
1704
1707
|
try {
|
|
1705
|
-
const valFn = ajv.compile(
|
|
1708
|
+
const valFn = ajv.compile(schema[keyword][i]);
|
|
1706
1709
|
valFn(data);
|
|
1707
1710
|
if (dataIsValid(valFn.errors)) {
|
|
1708
1711
|
indexOfFittingSchema = i;
|
|
@@ -1715,14 +1718,10 @@ const mapStateToCombinatorRendererProps = (state, ownProps, keyword) => {
|
|
|
1715
1718
|
}
|
|
1716
1719
|
return {
|
|
1717
1720
|
data,
|
|
1718
|
-
path,
|
|
1719
1721
|
schema,
|
|
1720
|
-
|
|
1721
|
-
visible,
|
|
1722
|
-
id,
|
|
1722
|
+
...props,
|
|
1723
1723
|
indexOfFittingSchema,
|
|
1724
|
-
uischemas: state
|
|
1725
|
-
uischema
|
|
1724
|
+
uischemas: getUISchemas(state)
|
|
1726
1725
|
};
|
|
1727
1726
|
};
|
|
1728
1727
|
const mapStateToAllOfProps = (state, ownProps) => mapStateToCombinatorRendererProps(state, ownProps, 'allOf');
|
|
@@ -1825,6 +1824,23 @@ const defaultMapDispatchToControlProps =
|
|
|
1825
1824
|
};
|
|
1826
1825
|
};
|
|
1827
1826
|
|
|
1827
|
+
const createLabel = (subSchema, subSchemaIndex, keyword) => {
|
|
1828
|
+
if (subSchema.title) {
|
|
1829
|
+
return subSchema.title;
|
|
1830
|
+
}
|
|
1831
|
+
else {
|
|
1832
|
+
return keyword + '-' + subSchemaIndex;
|
|
1833
|
+
}
|
|
1834
|
+
};
|
|
1835
|
+
const createCombinatorRenderInfos = (combinatorSubSchemas, rootSchema, keyword, control, path, uischemas) => combinatorSubSchemas.map((subSchema, subSchemaIndex) => {
|
|
1836
|
+
const schema = subSchema.$ref ? Resolve.schema(rootSchema, subSchema.$ref, rootSchema) : subSchema;
|
|
1837
|
+
return {
|
|
1838
|
+
schema,
|
|
1839
|
+
uischema: findUISchema(uischemas, schema, control.scope, path, undefined, control, rootSchema),
|
|
1840
|
+
label: createLabel(subSchema, subSchemaIndex, keyword)
|
|
1841
|
+
};
|
|
1842
|
+
});
|
|
1843
|
+
|
|
1828
1844
|
const usedIds = new Set();
|
|
1829
1845
|
const makeId = (idBase, iteration) => iteration <= 1 ? idBase : idBase + iteration.toString();
|
|
1830
1846
|
const isUniqueId = (idBase, iteration) => {
|
|
@@ -1931,7 +1947,7 @@ const isCombinator = (jsonSchema) => {
|
|
|
1931
1947
|
};
|
|
1932
1948
|
const generateUISchema = (jsonSchema, schemaElements, currentRef, schemaName, layoutType, rootSchema) => {
|
|
1933
1949
|
if (!isEmpty(jsonSchema) && jsonSchema.$ref !== undefined) {
|
|
1934
|
-
return generateUISchema(resolveSchema(rootSchema, jsonSchema.$ref), schemaElements, currentRef, schemaName, layoutType, rootSchema);
|
|
1950
|
+
return generateUISchema(resolveSchema(rootSchema, jsonSchema.$ref, rootSchema), schemaElements, currentRef, schemaName, layoutType, rootSchema);
|
|
1935
1951
|
}
|
|
1936
1952
|
if (isCombinator(jsonSchema)) {
|
|
1937
1953
|
const controlObject = createControlElement(currentRef);
|
|
@@ -1957,9 +1973,9 @@ const generateUISchema = (jsonSchema, schemaElements, currentRef, schemaName, la
|
|
|
1957
1973
|
const nextRef = currentRef + '/properties';
|
|
1958
1974
|
Object.keys(jsonSchema.properties).map(propName => {
|
|
1959
1975
|
let value = jsonSchema.properties[propName];
|
|
1960
|
-
const ref = `${nextRef}/${propName}`;
|
|
1976
|
+
const ref = `${nextRef}/${encode(propName)}`;
|
|
1961
1977
|
if (value.$ref !== undefined) {
|
|
1962
|
-
value = resolveSchema(rootSchema, value.$ref);
|
|
1978
|
+
value = resolveSchema(rootSchema, value.$ref, rootSchema);
|
|
1963
1979
|
}
|
|
1964
1980
|
generateUISchema(value, layout.elements, ref, propName, layoutType, rootSchema);
|
|
1965
1981
|
});
|
|
@@ -2160,5 +2176,5 @@ const Helpers = {
|
|
|
2160
2176
|
convertToValidClassName
|
|
2161
2177
|
};
|
|
2162
2178
|
|
|
2163
|
-
export { ADD_CELL, ADD_DEFAULT_DATA, ADD_RENDERER, ADD_UI_SCHEMA, index as Actions, Draft4, Generate, Helpers, INIT, NOT_APPLICABLE, Paths, REMOVE_CELL, REMOVE_DEFAULT_DATA, REMOVE_RENDERER, REMOVE_UI_SCHEMA, Resolve, RuleEffect, Runtime, SET_AJV, SET_CONFIG, SET_LOCALE, SET_SCHEMA, SET_TRANSLATOR, SET_UISCHEMA, SET_VALIDATION_MODE, index$1 as Test, UPDATE_CORE, UPDATE_DATA, UPDATE_ERRORS, UPDATE_I18N, VALIDATE, and, categorizationHasCategory, cellReducer, clearAllIds, compose, compose as composePaths, composeWithUi, computeLabel, configReducer, controlDefaultProps, convertToValidClassName, coreReducer, createAjv, createCleanLabel, createCombinatorRenderInfos, createControlElement, createDefaultValue, createId, createLabelDescriptionFrom, defaultDataReducer, defaultErrorTranslator, defaultJsonFormsI18nState, defaultMapDispatchToControlProps, defaultMapStateToEnumCellProps, defaultTranslator, deriveTypes, enumToEnumOptionMapper, errorAt, errorsAt, evalEnablement, evalVisibility, extractAjv, extractData, extractDefaultData, extractSchema, extractUiSchema, fetchErrorTranslator, fetchLocale, fetchTranslator, findAllRefs, findMatchingUISchema, findUISchema, formatErrorMessage, formatIs, generateDefaultUISchema, generateJsonSchema, getAjv, getCells, getCombinedErrorMessage, getConfig, getControlPath, getData, getDefaultData, getErrorAt, getErrorTranslator, getFirstPrimitiveProp, getI18nKey, getI18nKeyPrefix, getI18nKeyPrefixBySchema, getLocale, getRenderers, getSchema, getSubErrorsAt, getTranslator, getUISchemas, getUiSchema, hasCategory, hasEnableRule, hasShowRule, hasType, i18nReducer, init, isAllOfControl, isAnyOfControl, isArrayObjectControl, isBooleanControl, isCategorization, isCategory, isControl, isDateControl, isDateTimeControl, isDescriptionHidden, isEnabled, isEnumControl, isGroup, isInherentlyEnabled, isIntegerControl, isLayout, isMultiLineControl, isNumberControl, isNumberFormatControl, isObjectArray, isObjectArrayControl, isObjectArrayWithNesting, isObjectControl, isOneOfControl, isOneOfEnumControl, isPrimitiveArrayControl, isRangeControl, isStringControl, isTimeControl, isVisible, iterateSchema, jsonFormsReducerConfig, layoutDefaultProps, mapDispatchToArrayControlProps, mapDispatchToCellProps, mapDispatchToControlProps, mapDispatchToMultiEnumProps, mapStateToAllOfProps, mapStateToAnyOfProps, mapStateToArrayControlProps, mapStateToArrayLayoutProps, mapStateToCellProps, mapStateToCombinatorRendererProps, mapStateToControlProps, mapStateToControlWithDetailProps, mapStateToDispatchCellProps, mapStateToEnumControlProps, mapStateToJsonFormsRendererProps, mapStateToLayoutProps, mapStateToMasterListItemProps, mapStateToMultiEnumControlProps, mapStateToOneOfEnumCellProps, mapStateToOneOfEnumControlProps, mapStateToOneOfProps, moveDown, moveUp, not, oneOfToEnumOptionMapper, optionIs, or, rankWith, registerCell, registerDefaultData, registerRenderer, registerUISchema, removeId, rendererReducer, resolveData, resolveSchema,
|
|
2179
|
+
export { ADD_CELL, ADD_DEFAULT_DATA, ADD_RENDERER, ADD_UI_SCHEMA, index as Actions, Draft4, Generate, Helpers, INIT, NOT_APPLICABLE, Paths, REMOVE_CELL, REMOVE_DEFAULT_DATA, REMOVE_RENDERER, REMOVE_UI_SCHEMA, Resolve, RuleEffect, Runtime, SET_AJV, SET_CONFIG, SET_LOCALE, SET_SCHEMA, SET_TRANSLATOR, SET_UISCHEMA, SET_VALIDATION_MODE, index$1 as Test, UPDATE_CORE, UPDATE_DATA, UPDATE_ERRORS, UPDATE_I18N, VALIDATE, and, categorizationHasCategory, cellReducer, clearAllIds, compose, compose as composePaths, composeWithUi, computeLabel, configReducer, controlDefaultProps, convertToValidClassName, coreReducer, createAjv, createCleanLabel, createCombinatorRenderInfos, createControlElement, createDefaultValue, createId, createLabelDescriptionFrom, decode, defaultDataReducer, defaultErrorTranslator, defaultJsonFormsI18nState, defaultMapDispatchToControlProps, defaultMapStateToEnumCellProps, defaultTranslator, deriveTypes, encode, enumToEnumOptionMapper, errorAt, errorsAt, evalEnablement, evalVisibility, extractAjv, extractData, extractDefaultData, extractSchema, extractUiSchema, fetchErrorTranslator, fetchLocale, fetchTranslator, findAllRefs, findMatchingUISchema, findUISchema, formatErrorMessage, formatIs, generateDefaultUISchema, generateJsonSchema, getAjv, getCells, getCombinedErrorMessage, getConfig, getControlPath, getData, getDefaultData, getErrorAt, getErrorTranslator, getFirstPrimitiveProp, getI18nKey, getI18nKeyPrefix, getI18nKeyPrefixBySchema, getLocale, getRenderers, getSchema, getSubErrorsAt, getTranslator, getUISchemas, getUiSchema, hasCategory, hasEnableRule, hasShowRule, hasType, i18nReducer, init, isAllOfControl, isAnyOfControl, isArrayObjectControl, isBooleanControl, isCategorization, isCategory, isControl, isDateControl, isDateTimeControl, isDescriptionHidden, isEnabled, isEnumControl, isGroup, isInherentlyEnabled, isIntegerControl, isInternationalized, isLayout, isMultiLineControl, isNumberControl, isNumberFormatControl, isObjectArray, isObjectArrayControl, isObjectArrayWithNesting, isObjectControl, isOneOfControl, isOneOfEnumControl, isPrimitiveArrayControl, isRangeControl, isStringControl, isTimeControl, isVisible, iterateSchema, jsonFormsReducerConfig, layoutDefaultProps, mapDispatchToArrayControlProps, mapDispatchToCellProps, mapDispatchToControlProps, mapDispatchToMultiEnumProps, mapStateToAllOfProps, mapStateToAnyOfProps, mapStateToArrayControlProps, mapStateToArrayLayoutProps, mapStateToCellProps, mapStateToCombinatorRendererProps, mapStateToControlProps, mapStateToControlWithDetailProps, mapStateToDispatchCellProps, mapStateToEnumControlProps, mapStateToJsonFormsRendererProps, mapStateToLayoutProps, mapStateToMasterListItemProps, mapStateToMultiEnumControlProps, mapStateToOneOfEnumCellProps, mapStateToOneOfEnumControlProps, mapStateToOneOfProps, moveDown, moveUp, not, oneOfToEnumOptionMapper, optionIs, or, rankWith, registerCell, registerDefaultData, registerRenderer, registerUISchema, removeId, rendererReducer, resolveData, resolveSchema, schemaMatches, schemaSubPathMatches, schemaTypeIs, scopeEndIs, scopeEndsWith, setAjv, setConfig, setLocale, setReadonly, setSchema, setTranslator, setUISchema, setValidationMode, showAsRequired, subErrorsAt, toDataPath, toDataPathSegments, transformPathToI18nPrefix, uiTypeIs, uischemaRegistryReducer, unregisterCell, unregisterDefaultData, unregisterRenderer, unregisterUISchema, unsetReadonly, update, updateCore, updateErrors, updateI18n, validate, withIncreasedRank };
|
|
2164
2180
|
//# sourceMappingURL=jsonforms-core.esm.js.map
|