UNPKG

ngx-input-eip

Version:

Lightweight edit in place text editor.

80 lines 10 kB
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