UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

43 lines 6.78 kB
import { Component, ViewChild, ViewContainerRef } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@nakedobjects/services"; import * as i2 from "../custom-component.service"; export class DynamicErrorComponent { context; componentFactoryResolver; customComponentService; loggerService; urlManagerService; parent; constructor(context, componentFactoryResolver, customComponentService, loggerService, urlManagerService) { this.context = context; this.componentFactoryResolver = componentFactoryResolver; this.customComponentService = customComponentService; this.loggerService = loggerService; this.urlManagerService = urlManagerService; } ngOnInit() { const errorWrapper = this.context.getError(); const code = errorWrapper.httpErrorCode || errorWrapper.clientErrorCode; if (errorWrapper && code && this.parent) { this.customComponentService.getCustomErrorComponent(errorWrapper.category, code).then(c => { const childComponent = this.componentFactoryResolver.resolveComponentFactory(c); this.parent.createComponent(childComponent); }); } else { this.loggerService.warn('No error found returning to home page'); this.urlManagerService.setHomeSinglePane(); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DynamicErrorComponent, deps: [{ token: i1.ContextService }, { token: i0.ComponentFactoryResolver }, { token: i2.CustomComponentService }, { token: i1.LoggerService }, { token: i1.UrlManagerService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DynamicErrorComponent, selector: "nof-dynamic-error", viewQueries: [{ propertyName: "parent", first: true, predicate: ["parent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div #parent></div>\n", styles: [""] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DynamicErrorComponent, decorators: [{ type: Component, args: [{ selector: 'nof-dynamic-error', template: "<div #parent></div>\n" }] }], ctorParameters: () => [{ type: i1.ContextService }, { type: i0.ComponentFactoryResolver }, { type: i2.CustomComponentService }, { type: i1.LoggerService }, { type: i1.UrlManagerService }], propDecorators: { parent: [{ type: ViewChild, args: ['parent', { read: ViewContainerRef, static: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2R5bmFtaWMtZXJyb3IvZHluYW1pYy1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2R5bmFtaWMtZXJyb3IvZHluYW1pYy1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUEwQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTL0csTUFBTSxPQUFPLHFCQUFxQjtJQU1UO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFQckIsTUFBTSxDQUFvQjtJQUUxQixZQUNxQixPQUF1QixFQUN2Qix3QkFBa0QsRUFDbEQsc0JBQThDLEVBQzlDLGFBQTRCLEVBQzVCLGlCQUFvQztRQUpwQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUNyRCxDQUFDO0lBRUwsUUFBUTtRQUVKLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGFBQWEsSUFBSSxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3hFLElBQUksWUFBWSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0RixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsQ0FBa0IsQ0FBQyxDQUFDO2dCQUNqRyxJQUFJLENBQUMsTUFBTyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQzt1R0ExQlEscUJBQXFCOzJGQUFyQixxQkFBcUIsc0lBRUQsZ0JBQWdCLDJDQ1hqRCx1QkFDQTs7MkZEUWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLG1CQUFtQjsyTkFPN0IsTUFBTTtzQkFETCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUcsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIE9uSW5pdCwgVHlwZSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgTG9nZ2VyU2VydmljZSwgVXJsTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAbmFrZWRvYmplY3RzL3NlcnZpY2VzJztcbmltcG9ydCB7IEN1c3RvbUNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tY29tcG9uZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25vZi1keW5hbWljLWVycm9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2R5bmFtaWMtZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydkeW5hbWljLWVycm9yLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRXJyb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQFZpZXdDaGlsZCgncGFyZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWMgOiB0cnVlIH0pXG4gICAgcGFyZW50PzogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNvbXBvbmVudFNlcnZpY2U6IEN1c3RvbUNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1cmxNYW5hZ2VyU2VydmljZTogVXJsTWFuYWdlclNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgY29uc3QgZXJyb3JXcmFwcGVyID0gdGhpcy5jb250ZXh0LmdldEVycm9yKCk7XG4gICAgICAgIGNvbnN0IGNvZGUgPSBlcnJvcldyYXBwZXIuaHR0cEVycm9yQ29kZSB8fCBlcnJvcldyYXBwZXIuY2xpZW50RXJyb3JDb2RlO1xuICAgICAgICBpZiAoZXJyb3JXcmFwcGVyICYmIGNvZGUgJiYgdGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29tcG9uZW50U2VydmljZS5nZXRDdXN0b21FcnJvckNvbXBvbmVudChlcnJvcldyYXBwZXIuY2F0ZWdvcnksIGNvZGUpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjIGFzIFR5cGU8dW5rbm93bj4pO1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50IS5jcmVhdGVDb21wb25lbnQoY2hpbGRDb21wb25lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2Uud2FybignTm8gZXJyb3IgZm91bmQgcmV0dXJuaW5nIHRvIGhvbWUgcGFnZScpO1xuICAgICAgICAgICAgdGhpcy51cmxNYW5hZ2VyU2VydmljZS5zZXRIb21lU2luZ2xlUGFuZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjcGFyZW50PjwvZGl2PlxuIl19