UNPKG

ems-web-app-view-container

Version:

This angular.io module includes a component and service that can be used to render nested view containers that transition between screens (e.g., a tab container).

31 lines 3.93 kB
import { Component, Input, ContentChildren, TemplateRef } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./view-container.service"; export class ViewComponent { constructor(service, element) { this.service = service; this.element = element; } ngAfterViewInit() { if (!this.id) throw new Error("All <view/> elements must have an id attribute."); const parentId = this.element.nativeElement.parentNode.getAttribute("id"); this.service.registerView(parentId, this.id, this.template.first); } } ViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ViewComponent, deps: [{ token: i1.ViewContainerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); ViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ViewComponent, selector: "view", inputs: { id: "id" }, queries: [{ propertyName: "template", predicate: TemplateRef }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ViewComponent, decorators: [{ type: Component, args: [{ selector: 'view', template: `<ng-content></ng-content>` }] }], ctorParameters: function () { return [{ type: i1.ViewContainerService }, { type: i0.ElementRef }]; }, propDecorators: { id: [{ type: Input, args: ["id"] }], template: [{ type: ContentChildren, args: [TemplateRef] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBYSxXQUFXLEVBQWdELE1BQU0sZUFBZSxDQUFDOzs7QUFPeEksTUFBTSxPQUFPLGFBQWE7SUFHekIsWUFBb0IsT0FBNkIsRUFBVSxPQUFtQjtRQUExRCxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBRyxDQUFDO0lBRWxGLGVBQWU7UUFDZCxJQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDaEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7OzBHQVRXLGFBQWE7OEZBQWIsYUFBYSwyRkFFUixXQUFXLDZCQUpqQiwyQkFBMkI7MkZBRTFCLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDO29JQUVhLEVBQUU7c0JBQWQsS0FBSzt1QkFBQyxJQUFJO2dCQUNtQixRQUFRO3NCQUFyQyxlQUFlO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyU2VydmljZSB9IGZyb20gXCIuL3ZpZXctY29udGFpbmVyLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlldycsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQgIHtcblx0QElucHV0KFwiaWRcIikgaWQhOiBzdHJpbmc7XG5cdEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVSZWYpIHRlbXBsYXRlITogUXVlcnlMaXN0PGFueT47XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogVmlld0NvbnRhaW5lclNlcnZpY2UsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0aWYoIXRoaXMuaWQpIHRocm93IG5ldyBFcnJvcihcIkFsbCA8dmlldy8+IGVsZW1lbnRzIG11c3QgaGF2ZSBhbiBpZCBhdHRyaWJ1dGUuXCIpO1xuXHRcdGNvbnN0IHBhcmVudElkID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcblx0XHR0aGlzLnNlcnZpY2UucmVnaXN0ZXJWaWV3KHBhcmVudElkLCB0aGlzLmlkLCB0aGlzLnRlbXBsYXRlLmZpcnN0KTtcblx0fVxufVxuIl19