ngx-material-drawer
Version:
A dynamic, configurable Angular Material drawer with dashboard capabilities
32 lines • 5.59 kB
JavaScript
import { Component, Input, ViewChild, ComponentFactoryResolver, } from "@angular/core";
import { CardDirective } from "../directive/card.directive";
import * as i0 from "@angular/core";
import * as i1 from "../directive/card.directive";
export class CardHolderComponent {
constructor(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
}
ngOnInit() {
this.cardHost && this.cardData && this.loadComponent();
}
ngAfterViewInit() { }
loadComponent() {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.cardData.component);
const viewContainerRef = this.cardHost.viewContainerRef;
viewContainerRef.clear();
const componentRef = viewContainerRef.createComponent(componentFactory);
componentRef.instance.data = this.cardData.data;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardHolderComponent, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardHolderComponent, selector: "lib-card-holder", inputs: { cardData: "cardData" }, viewQueries: [{ propertyName: "cardHost", first: true, predicate: CardDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"ngx-card-holder\">\n <ng-template card-host></ng-template>\n</div>", styles: [":host{height:100%;width:100%}:host .ngx-card-holder{height:inherit;width:inherit}\n"], dependencies: [{ kind: "directive", type: i1.CardDirective, selector: "[card-host]" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardHolderComponent, decorators: [{
type: Component,
args: [{ selector: "lib-card-holder", template: "<div class=\"ngx-card-holder\">\n <ng-template card-host></ng-template>\n</div>", styles: [":host{height:100%;width:100%}:host .ngx-card-holder{height:inherit;width:inherit}\n"] }]
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }], propDecorators: { cardData: [{
type: Input
}], cardHost: [{
type: ViewChild,
args: [CardDirective, { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1ob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWRyYXdlci9zcmMvbGliL2FwcC9jYXJkLWhvbGRlci9jYXJkLWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZHJhd2VyL3NyYy9saWIvYXBwL2NhcmQtaG9sZGVyL2NhcmQtaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCx3QkFBd0IsR0FFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFRNUQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7SUFFMUUsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELGVBQWUsS0FBSSxDQUFDO0lBRXBCLGFBQWE7UUFDWCxNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUN4QixDQUFDO1FBRUosTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBQ3hELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXpCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELFlBQVksQ0FBQyxRQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzlELENBQUM7K0dBdkJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1JQUVuQixhQUFhLDhEQ2xCMUIsa0ZBRU07OzRGRGNPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7NkZBS2xCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3NDLFFBQVE7c0JBQW5ELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENhcmREaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlL2NhcmQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBJTmd4Q2FyZCB9IGZyb20gXCIuLi9pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImxpYi1jYXJkLWhvbGRlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NhcmQtaG9sZGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jYXJkLWhvbGRlci5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZEhvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGNhcmREYXRhOiBhbnk7XG4gIEBWaWV3Q2hpbGQoQ2FyZERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgY2FyZEhvc3QhOiBDYXJkRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYXJkSG9zdCAmJiB0aGlzLmNhcmREYXRhICYmIHRoaXMubG9hZENvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge31cblxuICBsb2FkQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPVxuICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgIHRoaXMuY2FyZERhdGEuY29tcG9uZW50XG4gICAgICApO1xuXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuY2FyZEhvc3Qudmlld0NvbnRhaW5lclJlZjtcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICAoPElOZ3hDYXJkPmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZGF0YSA9IHRoaXMuY2FyZERhdGEuZGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5neC1jYXJkLWhvbGRlclwiPlxuICA8bmctdGVtcGxhdGUgY2FyZC1ob3N0PjwvbmctdGVtcGxhdGU+XG48L2Rpdj4iXX0=