ngx-input-eip
Version:
Lightweight edit in place text editor.
80 lines • 10 kB
JavaScript
import { Messages as MessagesEn } from './messages/en';
export class ErrorsManager {
static formatErrors(errors, customErrorMessages) {
return new ErrorsManager(errors, customErrorMessages).formatErrors();
}
constructor(errors, customMessages = MessagesEn) {
this.defaultMessages = MessagesEn;
this.messages = {};
this.enableLogging = false;
this.errors = errors;
if (customMessages)
this.mergeMessages(customMessages);
else
this.assignDefaults();
}
assignDefaults() {
this.messages = {};
Object.keys(this.defaultMessages).forEach((key) => {
this.messages[key] = this.defaultMessages[key];
});
}
mergeMessages(messages) {
const keys = [
...Object.keys(this.defaultMessages),
...Object.keys(messages)
];
keys.forEach((key) => {
if (messages[key]) {
this.messages[key] = messages[key];
}
else {
this.messages[key] = this.defaultMessages[key];
}
});
}
formatErrors() {
const result = [
...this.errorMsgFromControl()
];
/**
* TODO write here your custom logic of parsing errors.
*/
return result;
}
warn(...args) {
if (!(this.enableLogging))
return;
console.warn(...args);
}
errorMsgFromControl() {
if (this.errors == undefined || this.errors == null)
return [];
var messages = [];
Object.keys(this.errors).filter((key) => {
if (this.messages.hasOwnProperty(key) && this.messages[key] && this.messages[key] != undefined) {
const field = this.messages[key];
switch (typeof field) {
case 'string':
messages.push(field);
break;
case 'function':
messages.push(field(this.errors[key]));
break;
default:
messages.push(field);
break;
}
return;
}
this.warn(`ReactiveFormsErrors missing error message of "${key}". Parser error with your custom logic.`);
var msg = {};
msg[key] = this.errors[key];
if (!(typeof msg == 'string'))
msg = JSON.stringify(msg);
messages.push(msg);
});
return messages;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2xpYi9mb3JtLWVycm9ycy9lcnJvcnMtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxNQUFNLE9BQU8sYUFBYTtJQUN4QixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQVcsRUFBRSxtQkFBeUI7UUFDeEQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBTUQsWUFBWSxNQUFnQyxFQUFFLGlCQUEwQyxVQUFVO1FBSGpGLG9CQUFlLEdBQTRCLFVBQVUsQ0FBQztRQUMvRCxhQUFRLEdBQTRCLEVBQUUsQ0FBQztRQTRDdkMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUF6Q3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksY0FBYztZQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7O1lBQ2xELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVuQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWlDO1FBQ3JELE1BQU0sSUFBSSxHQUFHO1lBQ1gsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDcEMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN6QixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQzNCLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxNQUFNLEdBQWtDO1lBQzVDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1NBQzlCLENBQUM7UUFFRjs7V0FFRztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJTyxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFBRSxPQUFPO1FBRWxDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDL0QsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsRUFBRTtnQkFDOUYsTUFBTSxLQUFLLEdBQW1DLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFtQyxDQUFDO2dCQUNuRyxRQUFRLE9BQU8sS0FBSyxFQUFFO29CQUNwQixLQUFLLFFBQVE7d0JBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckIsTUFBTTtvQkFDUixLQUFLLFVBQVU7d0JBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hDLE1BQU07b0JBQ1I7d0JBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckIsTUFBTTtpQkFDVDtnQkFDRCxPQUFPO2FBQ1I7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxHQUFHLHlDQUF5QyxDQUFDLENBQUM7WUFFekcsSUFBSSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQztnQkFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEN1c3RvbVZhbGlkYXRvck1lc3NhZ2VzIH0gZnJvbSBcIi4vbWVzc2FnZXMvY3VzdG9tLXZhbGlkYXRvci1tZXNzYWdlc1wiO1xuaW1wb3J0IHsgTWVzc2FnZXMgYXMgTWVzc2FnZXNJdCB9IGZyb20gJy4vbWVzc2FnZXMvaXQnO1xuaW1wb3J0IHsgTWVzc2FnZXMgYXMgTWVzc2FnZXNFbiB9IGZyb20gJy4vbWVzc2FnZXMvZW4nO1xuXG5leHBvcnQgY2xhc3MgRXJyb3JzTWFuYWdlciB7XG4gIHN0YXRpYyBmb3JtYXRFcnJvcnMoZXJyb3JzOiBhbnksIGN1c3RvbUVycm9yTWVzc2FnZXM/OiBhbnkpOiAoc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PilbXSB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcnNNYW5hZ2VyKGVycm9ycywgY3VzdG9tRXJyb3JNZXNzYWdlcykuZm9ybWF0RXJyb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIGVycm9yczogeyBbZXJyb3I6IHN0cmluZ106IGFueSB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNZXNzYWdlczogQ3VzdG9tVmFsaWRhdG9yTWVzc2FnZXMgPSBNZXNzYWdlc0VuO1xuICBwcml2YXRlIG1lc3NhZ2VzOiBDdXN0b21WYWxpZGF0b3JNZXNzYWdlcyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKGVycm9yczogeyBbZXJyb3I6IHN0cmluZ106IGFueSB9LCBjdXN0b21NZXNzYWdlczogQ3VzdG9tVmFsaWRhdG9yTWVzc2FnZXMgPSBNZXNzYWdlc0VuKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG5cbiAgICBpZiAoY3VzdG9tTWVzc2FnZXMpIHRoaXMubWVyZ2VNZXNzYWdlcyhjdXN0b21NZXNzYWdlcyk7XG4gICAgZWxzZSB0aGlzLmFzc2lnbkRlZmF1bHRzKCk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbkRlZmF1bHRzKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKHRoaXMuZGVmYXVsdE1lc3NhZ2VzKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlc1trZXldID0gdGhpcy5kZWZhdWx0TWVzc2FnZXNba2V5XTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU1lc3NhZ2VzKG1lc3NhZ2VzOiBDdXN0b21WYWxpZGF0b3JNZXNzYWdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGtleXMgPSBbXG4gICAgICAuLi5PYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRNZXNzYWdlcyksXG4gICAgICAuLi5PYmplY3Qua2V5cyhtZXNzYWdlcylcbiAgICBdO1xuXG4gICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2VzW2tleV0pIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlc1trZXldID0gbWVzc2FnZXNba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNba2V5XSA9IHRoaXMuZGVmYXVsdE1lc3NhZ2VzW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmb3JtYXRFcnJvcnMoKTogKHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pW10ge1xuICAgIGNvbnN0IHJlc3VsdDogKHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pW10gPSBbXG4gICAgICAuLi50aGlzLmVycm9yTXNnRnJvbUNvbnRyb2woKVxuICAgIF07XG5cbiAgICAvKipcbiAgICAgKiBUT0RPIHdyaXRlIGhlcmUgeW91ciBjdXN0b20gbG9naWMgb2YgcGFyc2luZyBlcnJvcnMuXG4gICAgICovXG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVMb2dnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB3YXJuKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCEodGhpcy5lbmFibGVMb2dnaW5nKSkgcmV0dXJuO1xuXG4gICAgY29uc29sZS53YXJuKC4uLmFyZ3MpO1xuICB9XG5cbiAgZXJyb3JNc2dGcm9tQ29udHJvbCgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuZXJyb3JzID09IHVuZGVmaW5lZCB8fCB0aGlzLmVycm9ycyA9PSBudWxsKSByZXR1cm4gW107XG4gICAgdmFyIG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgT2JqZWN0LmtleXModGhpcy5lcnJvcnMpLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5tZXNzYWdlc1trZXldICYmIHRoaXMubWVzc2FnZXNba2V5XSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgZmllbGQ6ICgoZT86IGFueSkgPT4gc3RyaW5nKSB8IHN0cmluZyA9IHRoaXMubWVzc2FnZXNba2V5XSBhcyBzdHJpbmcgfCAoKGU/OiBhbnkpID0+IHN0cmluZyk7XG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGZpZWxkKSB7XG4gICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goZmllbGQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgbWVzc2FnZXMucHVzaChmaWVsZCh0aGlzLmVycm9ycyFba2V5XSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goZmllbGQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLndhcm4oYFJlYWN0aXZlRm9ybXNFcnJvcnMgbWlzc2luZyBlcnJvciBtZXNzYWdlIG9mIFwiJHtrZXl9XCIuIFBhcnNlciBlcnJvciB3aXRoIHlvdXIgY3VzdG9tIGxvZ2ljLmApO1xuXG4gICAgICB2YXIgbXNnOiBhbnkgPSB7fTtcbiAgICAgIG1zZ1trZXldID0gdGhpcy5lcnJvcnNba2V5XTtcbiAgICAgIGlmICghKHR5cGVvZiBtc2cgPT0gJ3N0cmluZycpKSBtc2cgPSBKU09OLnN0cmluZ2lmeShtc2cpO1xuICAgICAgbWVzc2FnZXMucHVzaChtc2cpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICB9XG59Il19