@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
90 lines (89 loc) • 2.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.errorChanged = errorChanged;
exports.extendErrorMessagesWithTranslationMessages = extendErrorMessagesWithTranslationMessages;
exports.getTranslationKeyFromValidationRule = getTranslationKeyFromValidationRule;
const ajvErrorKeywordsTranslationTable = [{
ajvKey: 'required',
translationKey: 'Field.errorRequired'
}, {
ajvKey: 'pattern',
translationKey: 'Field.errorPattern'
}, {
ajvKey: 'minLength',
translationKey: 'StringField.errorMinLength'
}, {
ajvKey: 'maxLength',
translationKey: 'StringField.errorMaxLength'
}, {
ajvKey: 'minimum',
translationKey: 'NumberField.errorMinimum'
}, {
ajvKey: 'maximum',
translationKey: 'NumberField.errorMaximum'
}, {
ajvKey: 'minItems',
translationKey: 'IterateArray.errorMinItems'
}, {
ajvKey: 'maxItems',
translationKey: 'IterateArray.errorMaxItems'
}, {
ajvKey: 'exclusiveMinimum',
translationKey: 'NumberField.errorExclusiveMinimum'
}, {
ajvKey: 'exclusiveMaximum',
translationKey: 'NumberField.errorExclusiveMaximum'
}, {
ajvKey: 'multipleOf',
translationKey: 'NumberField.errorMultipleOf'
}];
function extendErrorMessagesWithTranslationMessages(messages, translation) {
messages = {
...messages
};
ajvErrorKeywordsTranslationTable.forEach(({
ajvKey,
translationKey
}) => {
if (!messages[ajvKey]) {
var _messages$translation, _translation$keys$;
const keys = translationKey.split('.');
messages[translationKey] = (_messages$translation = messages[translationKey]) !== null && _messages$translation !== void 0 ? _messages$translation : (_translation$keys$ = translation[keys[0]]) === null || _translation$keys$ === void 0 ? void 0 : _translation$keys$[keys[1]];
}
});
return messages;
}
function getTranslationKeyFromValidationRule(validationRule) {
const item = ajvErrorKeywordsTranslationTable.find(({
ajvKey
}) => ajvKey === validationRule);
return item === null || item === void 0 ? void 0 : item.translationKey;
}
function errorChanged(error1, error2) {
if (error1 === undefined && error2 instanceof Error || error1 instanceof Error && error2 === undefined) {
return true;
}
if (error1 && error2) {
if (error1.message !== error2.message) {
return true;
}
const errors1 = error1.errors;
const errors2 = error2.errors;
if (Array.isArray(errors1)) {
if (errors1.length !== (errors2 === null || errors2 === void 0 ? void 0 : errors2.length)) {
return true;
}
if (errors1.length && errors1.some(({
message
}, i) => {
return (errors2 === null || errors2 === void 0 ? void 0 : errors2[i].message) !== message;
})) {
return true;
}
}
}
return false;
}
//# sourceMappingURL=errors.js.map