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
JavaScript
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