UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

67 lines 9.07 kB
import { Component } from '@angular/core'; import { safeUnsubscribe } from '../helpers-components'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; import * as i2 from "@nakedobjects/services"; export class PaneComponent { activatedRoute; urlManager; context; constructor(activatedRoute, urlManager, context) { this.activatedRoute = activatedRoute; this.urlManager = urlManager; this.context = context; } activatedRouteDataSub; paneRouteDataSub; lastPaneRouteData; // pane API paneId; paneType; paneIdName; arData; onChild() { setTimeout(() => this.paneType = 'split'); } onChildless() { setTimeout(() => this.paneType = 'single'); } doSetup(routeData) { return !routeData.isEqual(this.lastPaneRouteData); } ngOnInit() { this.activatedRouteDataSub = this.activatedRoute.data.subscribe(d => { const data = d; this.arData = data; this.paneId = data.pane; this.paneType = data.paneType; this.paneIdName = this.paneId === 1 ? 'pane1' : 'pane2'; if (!this.paneRouteDataSub) { this.paneRouteDataSub = this.urlManager.getPaneRouteDataObservable(this.paneId) .subscribe((paneRouteData) => { if (!paneRouteData.isEqualIgnoringReload(this.lastPaneRouteData)) { // only remove messages if something more than reload flag has changed this.context.clearMessages(); this.context.clearWarnings(); } if (this.doSetup(paneRouteData)) { this.lastPaneRouteData = paneRouteData; this.setup(paneRouteData); } }); } }); } ngOnDestroy() { safeUnsubscribe(this.activatedRouteDataSub); safeUnsubscribe(this.paneRouteDataSub); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PaneComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UrlManagerService }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: PaneComponent, selector: "ng-component", ngImport: i0, template: '<div></div>', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PaneComponent, decorators: [{ type: Component, args: [{ template: '<div></div>' }] }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.UrlManagerService }, { type: i2.ContextService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2dlbWluaS9zcmMvcGFuZS9wYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUd4RCxNQUFNLE9BQWdCLGFBQWE7SUFHUjtJQUNBO0lBQ0E7SUFIdkIsWUFDdUIsY0FBOEIsRUFDOUIsVUFBNkIsRUFDN0IsT0FBdUI7UUFGdkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBRTlDLENBQUM7SUFFTyxxQkFBcUIsQ0FBaUI7SUFDdEMsZ0JBQWdCLENBQWlCO0lBQ2pDLGlCQUFpQixDQUFpQjtJQUUxQyxXQUFXO0lBQ1gsTUFBTSxDQUFRO0lBQ2QsUUFBUSxDQUFZO0lBQ3BCLFVBQVUsQ0FBWTtJQUN0QixNQUFNLENBQTZCO0lBRW5DLE9BQU87UUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFHUyxPQUFPLENBQUMsU0FBd0I7UUFDdEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hFLE1BQU0sSUFBSSxHQUFHLENBQThCLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUV4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0I7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzt5QkFDbEQsU0FBUyxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFO3dCQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7NEJBQy9ELHNFQUFzRTs0QkFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQzt3QkFDakMsQ0FBQzt3QkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQzs0QkFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQzs0QkFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO3VHQTlEaUIsYUFBYTsyRkFBYixhQUFhLG9EQURaLGFBQWE7OzJGQUNkLGFBQWE7a0JBRGxDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUcsYUFBYSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIElDdXN0b21BY3RpdmF0ZWRSb3V0ZURhdGEsIFBhbmUsIFBhbmVOYW1lLCBQYW5lUm91dGVEYXRhLCBQYW5lVHlwZSwgVXJsTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAbmFrZWRvYmplY3RzL3NlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkxpa2UgYXMgSVN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2FmZVVuc3Vic2NyaWJlIH0gZnJvbSAnLi4vaGVscGVycy1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7dGVtcGxhdGUgOiAnPGRpdj48L2Rpdj4nfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSB1cmxNYW5hZ2VyOiBVcmxNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZURhdGFTdWI/OiBJU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGFuZVJvdXRlRGF0YVN1Yj86IElTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBsYXN0UGFuZVJvdXRlRGF0YT86IFBhbmVSb3V0ZURhdGE7XG5cbiAgICAvLyBwYW5lIEFQSVxuICAgIHBhbmVJZD86IFBhbmU7XG4gICAgcGFuZVR5cGU/OiBQYW5lVHlwZTtcbiAgICBwYW5lSWROYW1lPzogUGFuZU5hbWU7XG4gICAgYXJEYXRhPzogSUN1c3RvbUFjdGl2YXRlZFJvdXRlRGF0YTtcblxuICAgIG9uQ2hpbGQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wYW5lVHlwZSA9ICdzcGxpdCcpO1xuICAgIH1cblxuICAgIG9uQ2hpbGRsZXNzKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucGFuZVR5cGUgPSAnc2luZ2xlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHNldHVwKHJvdXRlRGF0YTogUGFuZVJvdXRlRGF0YSk6IHZvaWQ7XG4gICAgcHJvdGVjdGVkIGRvU2V0dXAocm91dGVEYXRhOiBQYW5lUm91dGVEYXRhKSB7XG4gICAgICAgIHJldHVybiAhcm91dGVEYXRhLmlzRXF1YWwodGhpcy5sYXN0UGFuZVJvdXRlRGF0YSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGVEYXRhU3ViID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkIGFzIElDdXN0b21BY3RpdmF0ZWRSb3V0ZURhdGE7XG4gICAgICAgICAgICB0aGlzLmFyRGF0YSA9IGRhdGE7XG4gICAgICAgICAgICB0aGlzLnBhbmVJZCA9IGRhdGEucGFuZTtcbiAgICAgICAgICAgIHRoaXMucGFuZVR5cGUgPSBkYXRhLnBhbmVUeXBlO1xuICAgICAgICAgICAgdGhpcy5wYW5lSWROYW1lID0gdGhpcy5wYW5lSWQgPT09IDEgPyAncGFuZTEnIDogJ3BhbmUyJztcblxuICAgICAgICAgICAgaWYgKCF0aGlzLnBhbmVSb3V0ZURhdGFTdWIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVSb3V0ZURhdGFTdWIgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVybE1hbmFnZXIuZ2V0UGFuZVJvdXRlRGF0YU9ic2VydmFibGUodGhpcy5wYW5lSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChwYW5lUm91dGVEYXRhOiBQYW5lUm91dGVEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYW5lUm91dGVEYXRhLmlzRXF1YWxJZ25vcmluZ1JlbG9hZCh0aGlzLmxhc3RQYW5lUm91dGVEYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHJlbW92ZSBtZXNzYWdlcyBpZiBzb21ldGhpbmcgbW9yZSB0aGFuIHJlbG9hZCBmbGFnIGhhcyBjaGFuZ2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5jbGVhck1lc3NhZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5jbGVhcldhcm5pbmdzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZG9TZXR1cChwYW5lUm91dGVEYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RQYW5lUm91dGVEYXRhID0gcGFuZVJvdXRlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cChwYW5lUm91dGVEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHNhZmVVbnN1YnNjcmliZSh0aGlzLmFjdGl2YXRlZFJvdXRlRGF0YVN1Yik7XG4gICAgICAgIHNhZmVVbnN1YnNjcmliZSh0aGlzLnBhbmVSb3V0ZURhdGFTdWIpO1xuICAgIH1cbn1cbiJdfQ==