UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

82 lines 2.29 kB
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' }]; export function extendErrorMessagesWithTranslationMessages(messages, translation) { messages = { ...messages }; ajvErrorKeywordsTranslationTable.forEach(({ ajvKey, translationKey }) => { if (!messages[ajvKey]) { var _messages$translation; const keys = translationKey.split('.'); messages[translationKey] = (_messages$translation = messages[translationKey]) !== null && _messages$translation !== void 0 ? _messages$translation : translation[keys[0]]?.[keys[1]]; } }); return messages; } export function getTranslationKeyFromValidationRule(validationRule) { const item = ajvErrorKeywordsTranslationTable.find(({ ajvKey }) => ajvKey === validationRule); return item?.translationKey; } export 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?.length) { return true; } if (errors1.length && errors1.some(({ message }, i) => { return errors2?.[i].message !== message; })) { return true; } } } return false; } //# sourceMappingURL=errors.js.map