UNPKG

@vismaux/ngx-nordic-cool

Version:
49 lines 7.11 kB
import { Component, ChangeDetectionStrategy, ContentChildren, } from '@angular/core'; import { NcErrorDirective } from './error.directive'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "./global-error-messages.service"; export class NcGlobalErrorsComponent { constructor(renderer, elRef, globalErrors) { this.renderer = renderer; this.elRef = elRef; this.globalErrors = globalErrors; this.destroyed$ = new Subject(); } ngOnInit() { /** * This is an virtual component only needed to pass-through the error list, * no actual component is needed in the DOM, therefore `hidden` attribute is set. */ this.renderer.setAttribute(this.elRef.nativeElement, 'hidden', ''); } ngAfterContentInit() { this.updateGlobalErrorMessages(); this.errors.changes .pipe(takeUntil(this.destroyed$)) .subscribe(() => this.updateGlobalErrorMessages()); } ngOnDestroy() { this.destroyed$.next(); this.destroyed$.unsubscribe(); } updateGlobalErrorMessages() { const messages = this.errors.reduce((errors, error) => ({ ...errors, [error.errorKey]: error.templateRef }), {}); this.globalErrors.registerErrorMessages(messages); } } NcGlobalErrorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcGlobalErrorsComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NcGlobalErrorMessagesService }], target: i0.ɵɵFactoryTarget.Component }); NcGlobalErrorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: NcGlobalErrorsComponent, selector: "nc-global-errors", queries: [{ propertyName: "errors", predicate: NcErrorDirective }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcGlobalErrorsComponent, decorators: [{ type: Component, args: [{ selector: 'nc-global-errors', template: '', changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.NcGlobalErrorMessagesService }]; }, propDecorators: { errors: [{ type: ContentChildren, args: [NcErrorDirective] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9ycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9yZGljLWNvb2wvc3JjL2xpYi9lcnJvci10b29sdGlwL2Vycm9yLW1lc3NhZ2VzL2dsb2JhbC1lcnJvcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGVBQWUsR0FPaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU8zQyxNQUFNLE9BQU8sdUJBQXVCO0lBUWxDLFlBQ1UsUUFBbUIsRUFDbkIsS0FBaUIsRUFDakIsWUFBMEM7UUFGMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtRQVI1QyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVNoQyxDQUFDO0lBRUosUUFBUTtRQUNOOzs7V0FHRztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzthQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8seUJBQXlCO1FBQy9CLE1BQU0sUUFBUSxHQUFvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbEQsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ3ZFLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOztvSEF6Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsK0VBS2pCLGdCQUFnQiw2QkFSdkIsRUFBRTsyRkFHRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO29LQU9VLE1BQU07c0JBRGQsZUFBZTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5jRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Vycm9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOY0Vycm9yTWVzc2FnZXMgfSBmcm9tICcuL2Vycm9yLW1lc3NhZ2VzLm1vZGVsJztcbmltcG9ydCB7IE5jR2xvYmFsRXJyb3JNZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuL2dsb2JhbC1lcnJvci1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmMtZ2xvYmFsLWVycm9ycycsXG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5jR2xvYmFsRXJyb3JzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICBAQ29udGVudENoaWxkcmVuKE5jRXJyb3JEaXJlY3RpdmUpXG4gIHJlYWRvbmx5IGVycm9yczogUXVlcnlMaXN0PE5jRXJyb3JEaXJlY3RpdmU+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZ2xvYmFsRXJyb3JzOiBOY0dsb2JhbEVycm9yTWVzc2FnZXNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGFuIHZpcnR1YWwgY29tcG9uZW50IG9ubHkgbmVlZGVkIHRvIHBhc3MtdGhyb3VnaCB0aGUgZXJyb3IgbGlzdCxcbiAgICAgKiBubyBhY3R1YWwgY29tcG9uZW50IGlzIG5lZWRlZCBpbiB0aGUgRE9NLCB0aGVyZWZvcmUgYGhpZGRlbmAgYXR0cmlidXRlIGlzIHNldC5cbiAgICAgKi9cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nLCAnJyk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVHbG9iYWxFcnJvck1lc3NhZ2VzKCk7XG5cbiAgICB0aGlzLmVycm9ycy5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVHbG9iYWxFcnJvck1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlR2xvYmFsRXJyb3JNZXNzYWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlczogTmNFcnJvck1lc3NhZ2VzID0gdGhpcy5lcnJvcnMucmVkdWNlKFxuICAgICAgKGVycm9ycywgZXJyb3IpID0+ICh7IC4uLmVycm9ycywgW2Vycm9yLmVycm9yS2V5XTogZXJyb3IudGVtcGxhdGVSZWYgfSksXG4gICAgICB7fVxuICAgICk7XG4gICAgdGhpcy5nbG9iYWxFcnJvcnMucmVnaXN0ZXJFcnJvck1lc3NhZ2VzKG1lc3NhZ2VzKTtcbiAgfVxufVxuIl19