@jsonforms/core 3.0.0-alpha.1 → 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.
- package/docs/assets/js/search.json +1 -1
- package/docs/globals.html +716 -401
- package/docs/index.html +60 -36
- package/docs/interfaces/addcellrendereraction.html +3 -3
- package/docs/interfaces/addrendereraction.html +3 -3
- package/docs/interfaces/adduischemaaction.html +3 -3
- package/docs/interfaces/arraycontrolprops.html +21 -21
- package/docs/interfaces/arraylayoutprops.html +21 -21
- package/docs/interfaces/cellprops.html +14 -14
- package/docs/interfaces/combinatorrendererprops.html +13 -13
- 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 +13 -13
- package/docs/interfaces/dispatchcellstateprops.html +13 -13
- 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 +15 -15
- package/docs/interfaces/enumoption.html +2 -2
- package/docs/interfaces/initaction.html +6 -6
- package/docs/interfaces/initactionoptions.html +3 -3
- package/docs/interfaces/jsonformscore.html +7 -7
- package/docs/interfaces/{jsonformslocalestate.html → jsonformsi18nstate.html} +20 -20
- package/docs/interfaces/jsonformsprops.html +9 -9
- package/docs/interfaces/jsonformssubstates.html +11 -1
- package/docs/interfaces/layoutprops.html +10 -10
- package/docs/interfaces/ownpropsofcell.html +10 -10
- package/docs/interfaces/ownpropsofcontrol.html +9 -9
- package/docs/interfaces/ownpropsofenum.html +1 -1
- package/docs/interfaces/ownpropsofenumcell.html +11 -11
- 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/setajvaction.html +3 -3
- package/docs/interfaces/setconfigaction.html +2 -2
- package/docs/interfaces/setlocaleaction.html +3 -3
- package/docs/interfaces/setschemaaction.html +2 -2
- package/docs/interfaces/{setlocalizedschemasaction.html → settranslatoraction.html} +29 -15
- 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 +13 -13
- package/docs/interfaces/statepropsofcombinator.html +12 -12
- package/docs/interfaces/statepropsofcontrol.html +15 -15
- package/docs/interfaces/statepropsofcontrolwithdetail.html +16 -16
- package/docs/interfaces/statepropsofenumcell.html +14 -14
- 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/unregisterdefaultdataaction.html +2 -2
- package/docs/interfaces/updateaction.html +3 -3
- package/docs/interfaces/updatecoreaction.html +6 -6
- package/docs/interfaces/updateerrorsaction.html +2 -2
- package/docs/interfaces/{setlocalizeduischemasaction.html → updatei18naction.html} +43 -15
- package/docs/interfaces/withclassname.html +1 -1
- package/lib/Helpers.js +1 -0
- package/lib/Helpers.js.map +1 -1
- package/lib/actions/actions.d.ts +29 -25
- package/lib/actions/actions.js +52 -28
- package/lib/actions/actions.js.map +1 -1
- package/lib/configDefault.js +1 -0
- package/lib/configDefault.js.map +1 -1
- package/lib/generators/Generate.js +1 -0
- package/lib/generators/Generate.js.map +1 -1
- package/lib/generators/schema.js +3 -1
- package/lib/generators/schema.js.map +1 -1
- package/lib/generators/uischema.js +5 -2
- package/lib/generators/uischema.js.map +1 -1
- package/lib/i18n/i18nTypes.d.ts +15 -0
- package/lib/i18n/i18nTypes.js +3 -0
- package/lib/i18n/i18nTypes.js.map +1 -0
- package/lib/i18n/i18nUtil.d.ts +11 -0
- package/lib/i18n/i18nUtil.js +58 -0
- package/lib/i18n/i18nUtil.js.map +1 -0
- package/lib/i18n/index.d.ts +2 -0
- package/lib/i18n/index.js +6 -0
- package/lib/i18n/index.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/jsonforms-core.js +9 -3
- package/lib/jsonforms-core.js.map +1 -1
- package/lib/models/draft4.js +1 -0
- package/lib/models/draft4.js.map +1 -1
- package/lib/models/index.js +3 -0
- package/lib/models/index.js.map +1 -1
- package/lib/models/uischema.js +5 -2
- package/lib/models/uischema.js.map +1 -1
- package/lib/reducers/cells.js +3 -1
- package/lib/reducers/cells.js.map +1 -1
- package/lib/reducers/config.js +3 -1
- package/lib/reducers/config.js.map +1 -1
- package/lib/reducers/core.d.ts +3 -2
- package/lib/reducers/core.js +72 -37
- package/lib/reducers/core.js.map +1 -1
- package/lib/reducers/default-data.js +5 -2
- package/lib/reducers/default-data.js.map +1 -1
- package/lib/reducers/i18n.d.ts +7 -10
- package/lib/reducers/i18n.js +38 -20
- package/lib/reducers/i18n.js.map +1 -1
- package/lib/reducers/reducers.d.ts +8 -7
- package/lib/reducers/reducers.js +25 -17
- package/lib/reducers/reducers.js.map +1 -1
- package/lib/reducers/renderers.js +3 -1
- package/lib/reducers/renderers.js.map +1 -1
- package/lib/reducers/selectors.d.ts +1 -1
- package/lib/reducers/selectors.js +17 -8
- package/lib/reducers/selectors.js.map +1 -1
- package/lib/reducers/uischemas.js +5 -2
- package/lib/reducers/uischemas.js.map +1 -1
- package/lib/store.d.ts +5 -4
- package/lib/testers/testers.js +39 -19
- package/lib/testers/testers.js.map +1 -1
- package/lib/util/array.js +1 -0
- package/lib/util/array.js.map +1 -1
- package/lib/util/cell.js +25 -9
- package/lib/util/cell.js.map +1 -1
- package/lib/util/combinators.js +5 -2
- package/lib/util/combinators.js.map +1 -1
- package/lib/util/ids.js +7 -3
- package/lib/util/ids.js.map +1 -1
- package/lib/util/index.js +2 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/label.js +5 -2
- package/lib/util/label.js.map +1 -1
- package/lib/util/path.js +9 -4
- package/lib/util/path.js.map +1 -1
- package/lib/util/renderer.d.ts +13 -4
- package/lib/util/renderer.js +120 -39
- package/lib/util/renderer.js.map +1 -1
- package/lib/util/resolvers.js +7 -3
- package/lib/util/resolvers.js.map +1 -1
- package/lib/util/runtime.d.ts +4 -5
- package/lib/util/runtime.js +15 -7
- package/lib/util/runtime.js.map +1 -1
- package/lib/util/schema.js +3 -1
- package/lib/util/schema.js.map +1 -1
- package/lib/util/uischema.js +7 -3
- package/lib/util/uischema.js.map +1 -1
- package/lib/util/util.d.ts +1 -1
- package/lib/util/util.js +9 -4
- package/lib/util/util.js.map +1 -1
- package/lib/util/validator.d.ts +3 -2
- package/lib/util/validator.js +8 -7
- package/lib/util/validator.js.map +1 -1
- package/package.json +5 -4
- package/src/actions/actions.ts +46 -36
- package/src/i18n/i18nTypes.ts +17 -0
- package/src/i18n/i18nUtil.ts +76 -0
- package/src/i18n/index.ts +2 -0
- package/src/index.ts +1 -0
- package/src/reducers/core.ts +70 -48
- package/src/reducers/i18n.ts +41 -35
- package/src/reducers/reducers.ts +10 -9
- package/src/reducers/selectors.ts +1 -1
- package/src/store.ts +4 -4
- package/src/util/cell.ts +24 -4
- package/src/util/renderer.ts +116 -27
- package/src/util/runtime.ts +1 -1
- package/src/util/util.ts +1 -1
- package/src/util/validator.ts +5 -9
- package/test/reducers/core.test.ts +29 -41
- package/test/util/cell.test.ts +2 -2
- package/test/util/renderer.test.ts +425 -4
package/lib/util/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/util/runtime.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/util/runtime.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;;;;AAEF,2DAA6B;AAC7B,oCASmB;AACnB,yCAA0C;AAC1C,+BAAuC;AAEvC,wCAAqC;AAIrC,IAAM,aAAa,GAAG,UAAC,SAAoB;IACzC,OAAA,SAAS,CAAC,IAAI,KAAK,IAAI;AAAvB,CAAuB,CAAC;AAE1B,IAAM,cAAc,GAAG,UAAC,SAAoB;IAC1C,OAAA,SAAS,CAAC,IAAI,KAAK,KAAK;AAAxB,CAAwB,CAAC;AAE3B,IAAM,eAAe,GAAG,UAAC,SAAoB;IAC3C,OAAA,SAAS,CAAC,IAAI,KAAK,MAAM;AAAzB,CAAyB,CAAC;AAE5B,IAAM,iBAAiB,GAAG,UACxB,SAAoB,IACkB,OAAA,aAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAxB,CAAwB,CAAC;AAEjE,IAAM,iBAAiB,GAAG,UAAC,SAAmB,EAAE,IAAY;IAC1D,OAAO,oBAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UACxB,IAAS,EACT,SAAoB,EACpB,IAAY,EACZ,GAAQ;IAER,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAChC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAA9C,CAA8C,EAC5D,IAAI,CACL,CAAC;KACH;SAAM,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAChC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAA9C,CAA8C,EAC5D,KAAK,CACN,CAAC;KACH;SAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;QACrC,IAAM,KAAK,GAAG,uBAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,KAAK,SAAS,CAAC,aAAa,CAAC;KAC1C;SAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;QACvC,IAAM,KAAK,GAAG,uBAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAY,CAAC;KACzD;SAAM;QACL,oBAAoB;QACpB,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,IAAM,eAAe,GAAG,UACtB,QAAyB,EACzB,IAAS,EACT,IAAY,EACZ,GAAQ;IAER,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1C,OAAO,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC;AAEK,IAAM,cAAc,GAAG,UAC5B,QAAyB,EACzB,IAAS,EACT,IAAwB,EACxB,GAAQ;IADR,qBAAA,EAAA,gBAAwB;IAGxB,IAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7D,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;QAC5B,KAAK,mBAAU,CAAC,IAAI;YAClB,OAAO,CAAC,SAAS,CAAC;QACpB,KAAK,mBAAU,CAAC,IAAI;YAClB,OAAO,SAAS,CAAC;QACnB,qBAAqB;QACrB;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEK,IAAM,cAAc,GAAG,UAC5B,QAAyB,EACzB,IAAS,EACT,IAAwB,EACxB,GAAQ;IADR,qBAAA,EAAA,gBAAwB;IAGxB,IAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7D,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;QAC5B,KAAK,mBAAU,CAAC,OAAO;YACrB,OAAO,CAAC,SAAS,CAAC;QACpB,KAAK,mBAAU,CAAC,MAAM;YACpB,OAAO,SAAS,CAAC;QACnB,qBAAqB;QACrB;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEK,IAAM,WAAW,GAAG,UAAC,QAAyB;IACnD,IACE,QAAQ,CAAC,IAAI;QACb,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAU,CAAC,IAAI;YACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAU,CAAC,IAAI,CAAC,EAC3C;QACA,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEK,IAAM,aAAa,GAAG,UAAC,QAAyB;IACrD,IACE,QAAQ,CAAC,IAAI;QACb,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAU,CAAC,MAAM;YACzC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAU,CAAC,OAAO,CAAC,EAC9C;QACA,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,IAAM,SAAS,GAAG,UACvB,QAAyB,EACzB,IAAS,EACT,IAAwB,EACxB,GAAQ;IADR,qBAAA,EAAA,gBAAwB;IAGxB,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,OAAO,sBAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;KAClD;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAXW,QAAA,SAAS,aAWpB;AAEK,IAAM,SAAS,GAAG,UACvB,QAAyB,EACzB,IAAS,EACT,IAAwB,EACxB,GAAQ;IADR,qBAAA,EAAA,gBAAwB;IAGxB,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,OAAO,sBAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;KAClD;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAXW,QAAA,SAAS,aAWpB;AAEF;;;;GAIG;AACI,IAAM,mBAAmB,GAAG,UACjC,KAAqB,EACrB,QAAa,EACb,QAAyB,EACzB,MAAuD,EACvD,QAAa,EACb,MAAW;;IAEX,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,QAAQ,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,IAAI,QAAQ,IAAI,qBAAa,CAAC,QAAQ,CAAC,EAAE;QACvC,OAAO,iBAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACrE;IACD,IAAI,OAAO,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,QAAQ,CAAA,KAAK,SAAS,EAAE;QACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IACD,IAAI,OAAO,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,QAAQ,CAAA,KAAK,SAAS,EAAE;QACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IACD,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,KAAK,SAAS,EAAE;QACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;KACzB;IACD,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,KAAK,SAAS,EAAE;QACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;KACzB;IACD,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,MAAK,IAAI,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,IAAI,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,KAAK,SAAS,EAAE;QAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC;KACzB;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjCW,QAAA,mBAAmB,uBAiC9B"}
|
package/lib/util/schema.js
CHANGED
|
@@ -24,9 +24,10 @@
|
|
|
24
24
|
THE SOFTWARE.
|
|
25
25
|
*/
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.getFirstPrimitiveProp = void 0;
|
|
27
28
|
var tslib_1 = require("tslib");
|
|
28
29
|
var find_1 = tslib_1.__importDefault(require("lodash/find"));
|
|
29
|
-
|
|
30
|
+
var getFirstPrimitiveProp = function (schema) {
|
|
30
31
|
if (schema.properties) {
|
|
31
32
|
return find_1.default(Object.keys(schema.properties), function (propName) {
|
|
32
33
|
var prop = schema.properties[propName];
|
|
@@ -37,4 +38,5 @@ exports.getFirstPrimitiveProp = function (schema) {
|
|
|
37
38
|
}
|
|
38
39
|
return undefined;
|
|
39
40
|
};
|
|
41
|
+
exports.getFirstPrimitiveProp = getFirstPrimitiveProp;
|
|
40
42
|
//# sourceMappingURL=schema.js.map
|
package/lib/util/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/util/schema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/util/schema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;;;;AAEF,6DAA+B;AAExB,IAAM,qBAAqB,GAAG,UAAC,MAAW;IAC/C,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,OAAO,cAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAA,QAAQ;YAClD,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtB,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtB,IAAI,CAAC,IAAI,KAAK,SAAS,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,qBAAqB,yBAYhC"}
|
package/lib/util/uischema.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
THE SOFTWARE.
|
|
25
25
|
*/
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.iterateSchema = exports.unsetReadonly = exports.setReadonly = void 0;
|
|
27
28
|
var tslib_1 = require("tslib");
|
|
28
29
|
var isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
|
|
29
30
|
var models_1 = require("../models");
|
|
@@ -33,13 +34,15 @@ var setReadonlyPropertyValue = function (value) { return function (child) {
|
|
|
33
34
|
}
|
|
34
35
|
child.options.readonly = value;
|
|
35
36
|
}; };
|
|
36
|
-
|
|
37
|
+
var setReadonly = function (uischema) {
|
|
37
38
|
exports.iterateSchema(uischema, setReadonlyPropertyValue(true));
|
|
38
39
|
};
|
|
39
|
-
exports.
|
|
40
|
+
exports.setReadonly = setReadonly;
|
|
41
|
+
var unsetReadonly = function (uischema) {
|
|
40
42
|
exports.iterateSchema(uischema, setReadonlyPropertyValue(false));
|
|
41
43
|
};
|
|
42
|
-
exports.
|
|
44
|
+
exports.unsetReadonly = unsetReadonly;
|
|
45
|
+
var iterateSchema = function (uischema, toApply) {
|
|
43
46
|
if (isEmpty_1.default(uischema)) {
|
|
44
47
|
return;
|
|
45
48
|
}
|
|
@@ -49,4 +52,5 @@ exports.iterateSchema = function (uischema, toApply) {
|
|
|
49
52
|
}
|
|
50
53
|
toApply(uischema);
|
|
51
54
|
};
|
|
55
|
+
exports.iterateSchema = iterateSchema;
|
|
52
56
|
//# sourceMappingURL=uischema.js.map
|
package/lib/util/uischema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uischema.js","sourceRoot":"","sources":["../../src/util/uischema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE
|
|
1
|
+
{"version":3,"file":"uischema.js","sourceRoot":"","sources":["../../src/util/uischema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;;;;AAEF,mEAAqC;AACrC,oCAAsD;AAItD,IAAM,wBAAwB,GAAG,UAAC,KAAc,IAAsB,OAAA,UACpE,KAAsB;IAEtB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KACpB;IACD,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;AACjC,CAAC,EAPqE,CAOrE,CAAC;AACK,IAAM,WAAW,GAAG,UAAC,QAAyB;IACnD,qBAAa,CAAC,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AACK,IAAM,aAAa,GAAG,UAAC,QAAyB;IACrD,qBAAa,CAAC,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AACK,IAAM,aAAa,GAAG,UAC3B,QAAyB,EACzB,OAAwB;IAExB,IAAI,iBAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,OAAO;KACR;IACD,IAAI,iBAAQ,CAAC,QAAQ,CAAC,EAAE;QACtB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,qBAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAA7B,CAA6B,CAAC,CAAC;QAClE,OAAO;KACR;IACD,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB"}
|
package/lib/util/util.d.ts
CHANGED
package/lib/util/util.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
THE SOFTWARE.
|
|
25
25
|
*/
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.Runtime = exports.Paths = exports.Resolve = exports.deriveTypes = exports.hasType = exports.formatErrorMessage = exports.convertToValidClassName = void 0;
|
|
27
28
|
var tslib_1 = require("tslib");
|
|
28
29
|
var isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
|
|
29
30
|
var isArray_1 = tslib_1.__importDefault(require("lodash/isArray"));
|
|
@@ -39,22 +40,25 @@ var runtime_1 = require("./runtime");
|
|
|
39
40
|
* @param {string} s the string that should be converted to a valid class name
|
|
40
41
|
* @returns {string} the escaped string
|
|
41
42
|
*/
|
|
42
|
-
|
|
43
|
+
var convertToValidClassName = function (s) {
|
|
43
44
|
return s.replace('#', 'root').replace(new RegExp('/', 'g'), '_');
|
|
44
45
|
};
|
|
45
|
-
exports.
|
|
46
|
+
exports.convertToValidClassName = convertToValidClassName;
|
|
47
|
+
var formatErrorMessage = function (errors) {
|
|
46
48
|
if (errors === undefined || errors === null) {
|
|
47
49
|
return '';
|
|
48
50
|
}
|
|
49
51
|
return errors.join('\n');
|
|
50
52
|
};
|
|
51
|
-
exports.
|
|
53
|
+
exports.formatErrorMessage = formatErrorMessage;
|
|
54
|
+
var hasType = function (jsonSchema, expected) {
|
|
52
55
|
return includes_1.default(exports.deriveTypes(jsonSchema), expected);
|
|
53
56
|
};
|
|
57
|
+
exports.hasType = hasType;
|
|
54
58
|
/**
|
|
55
59
|
* Derives the type of the jsonSchema element
|
|
56
60
|
*/
|
|
57
|
-
|
|
61
|
+
var deriveTypes = function (jsonSchema) {
|
|
58
62
|
if (isEmpty_1.default(jsonSchema)) {
|
|
59
63
|
return [];
|
|
60
64
|
}
|
|
@@ -80,6 +84,7 @@ exports.deriveTypes = function (jsonSchema) {
|
|
|
80
84
|
// ignore all remaining cases
|
|
81
85
|
return [];
|
|
82
86
|
};
|
|
87
|
+
exports.deriveTypes = deriveTypes;
|
|
83
88
|
/**
|
|
84
89
|
* Convenience wrapper around resolveData and resolveSchema.
|
|
85
90
|
*/
|
package/lib/util/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util/util.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util/util.ts"],"names":[],"mappings":"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"}
|
package/lib/util/validator.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
import { Options } from 'ajv';
|
|
3
|
+
export declare const createAjv: (options?: Options) => Ajv;
|
package/lib/util/validator.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAjv = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
2
5
|
/*
|
|
3
6
|
The MIT License
|
|
4
7
|
|
|
@@ -23,14 +26,12 @@
|
|
|
23
26
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
27
|
THE SOFTWARE.
|
|
25
28
|
*/
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
var tslib_1 = require("tslib");
|
|
28
29
|
var ajv_1 = tslib_1.__importDefault(require("ajv"));
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
var ajv = new ajv_1.default(tslib_1.__assign({
|
|
32
|
-
|
|
33
|
-
ajv.addMetaSchema(models_1.Draft4);
|
|
30
|
+
var ajv_formats_1 = tslib_1.__importDefault(require("ajv-formats"));
|
|
31
|
+
var createAjv = function (options) {
|
|
32
|
+
var ajv = new ajv_1.default(tslib_1.__assign({ allErrors: true, verbose: true, strict: false }, options));
|
|
33
|
+
ajv_formats_1.default(ajv);
|
|
34
34
|
return ajv;
|
|
35
35
|
};
|
|
36
|
+
exports.createAjv = createAjv;
|
|
36
37
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AACF,oDAAsB;AACtB,oEAAqC;AAG9B,IAAM,SAAS,GAAG,UAAC,OAAiB;IACzC,IAAM,GAAG,GAAG,IAAI,aAAG,oBACjB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,KAAK,IACV,OAAO,EACV,CAAC;IACH,qBAAU,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AATW,QAAA,SAAS,aASpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsonforms/core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.2",
|
|
4
4
|
"description": "Core module of JSON Forms",
|
|
5
5
|
"repository": "https://github.com/eclipsesource/jsonforms",
|
|
6
6
|
"bugs": "https://github.com/eclipsesource/jsonforms/issues",
|
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@types/json-schema": "^7.0.3",
|
|
65
|
-
"ajv": "^6.
|
|
65
|
+
"ajv": "^8.6.1",
|
|
66
|
+
"ajv-formats": "^2.1.0",
|
|
66
67
|
"lodash": "^4.17.15"
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
@@ -80,9 +81,9 @@
|
|
|
80
81
|
"ts-node": "^8.5.3",
|
|
81
82
|
"tslint": "^5.20.1",
|
|
82
83
|
"typedoc": "^0.19.2",
|
|
83
|
-
"typescript": "
|
|
84
|
+
"typescript": "4.2.3",
|
|
84
85
|
"webpack": "^4.41.2",
|
|
85
86
|
"webpack-cli": "^3.2.1"
|
|
86
87
|
},
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "7532a3e16558d9f0934bd5c602ccbe3a35ed9dab"
|
|
88
89
|
}
|
package/src/actions/actions.ts
CHANGED
|
@@ -29,6 +29,7 @@ import { generateDefaultUISchema, generateJsonSchema } from '../generators';
|
|
|
29
29
|
|
|
30
30
|
import { RankedTester } from '../testers';
|
|
31
31
|
import { UISchemaTester, ValidationMode } from '../reducers';
|
|
32
|
+
import { ErrorTranslator, Translator } from '../i18n';
|
|
32
33
|
|
|
33
34
|
export const INIT: 'jsonforms/INIT' = 'jsonforms/INIT';
|
|
34
35
|
export const UPDATE_CORE: 'jsonforms/UPDATE_CORE' = `jsonforms/UPDATE_CORE`;
|
|
@@ -51,10 +52,10 @@ export const SET_VALIDATION_MODE: 'jsonforms/SET_VALIDATION_MODE' =
|
|
|
51
52
|
'jsonforms/SET_VALIDATION_MODE';
|
|
52
53
|
|
|
53
54
|
export const SET_LOCALE: 'jsonforms/SET_LOCALE' = `jsonforms/SET_LOCALE`;
|
|
54
|
-
export const
|
|
55
|
-
'jsonforms/
|
|
56
|
-
export const
|
|
57
|
-
'jsonforms/
|
|
55
|
+
export const SET_TRANSLATOR: 'jsonforms/SET_TRANSLATOR' =
|
|
56
|
+
'jsonforms/SET_TRANSLATOR';
|
|
57
|
+
export const UPDATE_I18N: 'jsonforms/UPDATE_I18N' =
|
|
58
|
+
'jsonforms/UPDATE_I18N';
|
|
58
59
|
|
|
59
60
|
export const ADD_DEFAULT_DATA: 'jsonforms/ADD_DEFAULT_DATA' = `jsonforms/ADD_DEFAULT_DATA`;
|
|
60
61
|
export const REMOVE_DEFAULT_DATA: 'jsonforms/REMOVE_DEFAULT_DATA' = `jsonforms/REMOVE_DEFAULT_DATA`;
|
|
@@ -85,7 +86,7 @@ export interface InitAction {
|
|
|
85
86
|
data: any;
|
|
86
87
|
schema: JsonSchema;
|
|
87
88
|
uischema: UISchemaElement;
|
|
88
|
-
options?: InitActionOptions | AJV
|
|
89
|
+
options?: InitActionOptions | AJV;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
export interface UpdateCoreAction {
|
|
@@ -93,11 +94,11 @@ export interface UpdateCoreAction {
|
|
|
93
94
|
data?: any;
|
|
94
95
|
schema?: JsonSchema;
|
|
95
96
|
uischema?: UISchemaElement;
|
|
96
|
-
options?: InitActionOptions | AJV
|
|
97
|
+
options?: InitActionOptions | AJV;
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
export interface InitActionOptions {
|
|
100
|
-
ajv?: AJV
|
|
101
|
+
ajv?: AJV;
|
|
101
102
|
validationMode?: ValidationMode;
|
|
102
103
|
}
|
|
103
104
|
|
|
@@ -110,7 +111,7 @@ export const init = (
|
|
|
110
111
|
data: any,
|
|
111
112
|
schema: JsonSchema = generateJsonSchema(data),
|
|
112
113
|
uischema?: UISchemaElement,
|
|
113
|
-
options?: InitActionOptions | AJV
|
|
114
|
+
options?: InitActionOptions | AJV
|
|
114
115
|
) => ({
|
|
115
116
|
type: INIT,
|
|
116
117
|
data,
|
|
@@ -124,7 +125,7 @@ export const updateCore = (
|
|
|
124
125
|
data: any,
|
|
125
126
|
schema: JsonSchema,
|
|
126
127
|
uischema?: UISchemaElement,
|
|
127
|
-
options?: AJV
|
|
128
|
+
options?: AJV | InitActionOptions
|
|
128
129
|
): UpdateCoreAction => ({
|
|
129
130
|
type: UPDATE_CORE,
|
|
130
131
|
data,
|
|
@@ -157,10 +158,10 @@ export const unregisterDefaultData = (schemaPath: string) => ({
|
|
|
157
158
|
|
|
158
159
|
export interface SetAjvAction {
|
|
159
160
|
type: 'jsonforms/SET_AJV';
|
|
160
|
-
ajv: AJV
|
|
161
|
+
ajv: AJV;
|
|
161
162
|
}
|
|
162
163
|
|
|
163
|
-
export const setAjv = (ajv: AJV
|
|
164
|
+
export const setAjv = (ajv: AJV) => ({
|
|
164
165
|
type: SET_AJV,
|
|
165
166
|
ajv
|
|
166
167
|
});
|
|
@@ -275,33 +276,21 @@ export const unregisterUISchema = (
|
|
|
275
276
|
};
|
|
276
277
|
};
|
|
277
278
|
|
|
278
|
-
export type
|
|
279
|
+
export type I18nActions =
|
|
279
280
|
| SetLocaleAction
|
|
280
|
-
|
|
|
281
|
-
|
|
|
281
|
+
| SetTranslatorAction
|
|
282
|
+
| UpdateI18nAction
|
|
282
283
|
|
|
283
284
|
export interface SetLocaleAction {
|
|
284
285
|
type: 'jsonforms/SET_LOCALE';
|
|
285
|
-
locale: string;
|
|
286
|
+
locale: string | undefined;
|
|
286
287
|
}
|
|
287
288
|
|
|
288
|
-
export const setLocale = (locale: string): SetLocaleAction => ({
|
|
289
|
+
export const setLocale = (locale: string | undefined): SetLocaleAction => ({
|
|
289
290
|
type: SET_LOCALE,
|
|
290
291
|
locale
|
|
291
292
|
});
|
|
292
293
|
|
|
293
|
-
export interface SetLocalizedSchemasAction {
|
|
294
|
-
type: 'jsonforms/SET_LOCALIZED_SCHEMAS';
|
|
295
|
-
localizedSchemas: Map<string, JsonSchema>;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
export const setLocalizedSchemas = (
|
|
299
|
-
localizedSchemas: Map<string, JsonSchema>
|
|
300
|
-
): SetLocalizedSchemasAction => ({
|
|
301
|
-
type: SET_LOCALIZED_SCHEMAS,
|
|
302
|
-
localizedSchemas
|
|
303
|
-
});
|
|
304
|
-
|
|
305
294
|
export interface SetSchemaAction {
|
|
306
295
|
type: 'jsonforms/SET_SCHEMA';
|
|
307
296
|
schema: JsonSchema;
|
|
@@ -312,16 +301,37 @@ export const setSchema = (schema: JsonSchema): SetSchemaAction => ({
|
|
|
312
301
|
schema
|
|
313
302
|
});
|
|
314
303
|
|
|
315
|
-
export interface
|
|
316
|
-
type: 'jsonforms/
|
|
317
|
-
|
|
304
|
+
export interface SetTranslatorAction {
|
|
305
|
+
type: 'jsonforms/SET_TRANSLATOR';
|
|
306
|
+
translator?: Translator;
|
|
307
|
+
errorTranslator?: ErrorTranslator;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export const setTranslator = (
|
|
311
|
+
translator?: Translator,
|
|
312
|
+
errorTranslator?: ErrorTranslator
|
|
313
|
+
): SetTranslatorAction => ({
|
|
314
|
+
type: SET_TRANSLATOR,
|
|
315
|
+
translator,
|
|
316
|
+
errorTranslator
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
export interface UpdateI18nAction {
|
|
320
|
+
type: 'jsonforms/UPDATE_I18N';
|
|
321
|
+
locale: string | undefined;
|
|
322
|
+
translator: Translator | undefined;
|
|
323
|
+
errorTranslator: ErrorTranslator | undefined;
|
|
318
324
|
}
|
|
319
325
|
|
|
320
|
-
export const
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
326
|
+
export const updateI18n = (
|
|
327
|
+
locale: string | undefined,
|
|
328
|
+
translator: Translator | undefined,
|
|
329
|
+
errorTranslator: ErrorTranslator | undefined
|
|
330
|
+
): UpdateI18nAction => ({
|
|
331
|
+
type: UPDATE_I18N,
|
|
332
|
+
locale,
|
|
333
|
+
translator,
|
|
334
|
+
errorTranslator
|
|
325
335
|
});
|
|
326
336
|
|
|
327
337
|
export interface SetUISchemaAction {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ErrorObject } from 'ajv';
|
|
2
|
+
import { JsonSchema, UISchemaElement } from '../models';
|
|
3
|
+
|
|
4
|
+
export type Translator = {
|
|
5
|
+
(id: string, defaultMessage: string, values?: any): string;
|
|
6
|
+
(id: string, defaultMessage: undefined, values?: any): string | undefined;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type ErrorTranslator = (error: ErrorObject, translate: Translator, uischema?: UISchemaElement) => string;
|
|
10
|
+
|
|
11
|
+
export interface JsonFormsI18nState {
|
|
12
|
+
locale?: string;
|
|
13
|
+
translate?: Translator;
|
|
14
|
+
translateError?: ErrorTranslator;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type i18nJsonSchema = JsonSchema & {i18n?: string};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ErrorObject } from 'ajv';
|
|
2
|
+
import { UISchemaElement } from '../models';
|
|
3
|
+
import { formatErrorMessage } from '../util';
|
|
4
|
+
import { i18nJsonSchema, ErrorTranslator, Translator } from './i18nTypes';
|
|
5
|
+
|
|
6
|
+
export const getI18nKey = (
|
|
7
|
+
schema: i18nJsonSchema | undefined,
|
|
8
|
+
uischema: UISchemaElement | undefined,
|
|
9
|
+
key: string
|
|
10
|
+
): string | undefined => {
|
|
11
|
+
if (uischema?.options?.i18n) {
|
|
12
|
+
return `${uischema.options.i18n}.${key}`;
|
|
13
|
+
}
|
|
14
|
+
if (schema?.i18n) {
|
|
15
|
+
return `${schema.i18n}.${key}`;
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const defaultTranslator: Translator = (_id: string, defaultMessage: string | undefined) => defaultMessage;
|
|
21
|
+
|
|
22
|
+
export const defaultErrorTranslator: ErrorTranslator = (error, t, uischema) => {
|
|
23
|
+
// check whether there is a special keyword message
|
|
24
|
+
const keyInSchemas = getI18nKey(
|
|
25
|
+
error.parentSchema,
|
|
26
|
+
uischema,
|
|
27
|
+
`error.${error.keyword}`
|
|
28
|
+
);
|
|
29
|
+
const specializedKeywordMessage = keyInSchemas && t(keyInSchemas, undefined);
|
|
30
|
+
if (specializedKeywordMessage !== undefined) {
|
|
31
|
+
return specializedKeywordMessage;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// check whether there is a generic keyword message
|
|
35
|
+
const genericKeywordMessage = t(`error.${error.keyword}`, undefined);
|
|
36
|
+
if (genericKeywordMessage !== undefined) {
|
|
37
|
+
return genericKeywordMessage;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// check whether there is a customization for the default message
|
|
41
|
+
const messageCustomization = t(error.message, undefined);
|
|
42
|
+
if (messageCustomization !== undefined) {
|
|
43
|
+
return messageCustomization;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// rewrite required property messages (if they were not customized) as we place them next to the respective input
|
|
47
|
+
if (error.keyword === 'required') {
|
|
48
|
+
return t('is a required property', 'is a required property');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return error.message;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Returns the determined error message for the given errors.
|
|
56
|
+
* All errors must correspond to the given schema and uischema.
|
|
57
|
+
*/
|
|
58
|
+
export const getCombinedErrorMessage = (
|
|
59
|
+
errors: ErrorObject[],
|
|
60
|
+
et: ErrorTranslator,
|
|
61
|
+
t: Translator,
|
|
62
|
+
schema?: i18nJsonSchema,
|
|
63
|
+
uischema?: UISchemaElement
|
|
64
|
+
) => {
|
|
65
|
+
if (errors.length > 0 && t) {
|
|
66
|
+
// check whether there is a special message which overwrites all others
|
|
67
|
+
const keyInSchemas = getI18nKey(schema, uischema, 'error.custom');
|
|
68
|
+
const specializedErrorMessage = keyInSchemas && t(keyInSchemas, undefined);
|
|
69
|
+
if (specializedErrorMessage !== undefined) {
|
|
70
|
+
return specializedErrorMessage;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return formatErrorMessage(
|
|
74
|
+
errors.map(error => et(error, t, uischema))
|
|
75
|
+
);
|
|
76
|
+
};
|
package/src/index.ts
CHANGED