UNPKG

ngx-admin-lte

Version:

AdminLTE theme for angular

81 lines 7.44 kB
import * as tslib_1 from "tslib"; import { Component, Input, OnInit, OnDestroy, OnChanges, ComponentFactoryResolver, ViewContainerRef, ViewChild, ViewEncapsulation } from '@angular/core'; /** * Component to dynamicly load other component */ let ComponentLoaderComponent = class ComponentLoaderComponent { /** * Component initialisation */ constructor(_factoryResolver) { this._factoryResolver = _factoryResolver; /** * class of the component to load */ this.class_component = null; /** * data to pass to component */ this.data = null; /** * component reference */ this.componentRef = null; } /** * Lifecycle hook OnInit */ ngOnInit() { // Build the child component const factory = this._factoryResolver.resolveComponentFactory(this.class_component); this.componentRef = this.viewContainerRef.createComponent(factory); // then give some data this.setComponentData(this.data); } /** * Lifecycle hook OnChanges, on modification of data send it to the child */ ngOnChanges(changes) { this.setComponentData(changes); } /** * Send data to the inner component */ setComponentData(changes) { if (this.componentRef) { // send data to component Object.assign(this.componentRef.instance, changes); // trigger component ngOnChange this.componentRef.instance.ngOnChanges(changes); } } /** * Lifecycle hook OnDestroy */ ngOnDestroy() { if (this.componentRef) { this.componentRef.destroy(); } } }; ComponentLoaderComponent.ctorParameters = () => [ { type: ComponentFactoryResolver } ]; tslib_1.__decorate([ Input() ], ComponentLoaderComponent.prototype, "class_component", void 0); tslib_1.__decorate([ Input() ], ComponentLoaderComponent.prototype, "data", void 0); tslib_1.__decorate([ ViewChild('destination', { read: ViewContainerRef, static: false }) ], ComponentLoaderComponent.prototype, "viewContainerRef", void 0); ComponentLoaderComponent = tslib_1.__decorate([ Component({ selector: 'app-component-loader', encapsulation: ViewEncapsulation.None, template: '<ng-container #destination ></ng-container>' }) ], ComponentLoaderComponent); export { ComponentLoaderComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYWRtaW4tbHRlLyIsInNvdXJjZXMiOlsid2lkZ2V0cy9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFDbkQsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5HOztHQUVHO0FBTUgsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFxQmpDOztPQUVHO0lBQ0gsWUFDWSxnQkFBMEM7UUFBMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEwQjtRQXZCdEQ7O1dBRUc7UUFDTSxvQkFBZSxHQUFRLElBQUksQ0FBQztRQUVyQzs7V0FFRztRQUNNLFNBQUksR0FBUSxJQUFJLENBQUM7UUFNMUI7O1dBRUc7UUFDSyxpQkFBWSxHQUFRLElBQUksQ0FBQztJQU83QixDQUFDO0lBR0w7O09BRUc7SUFDSCxRQUFRO1FBQ0osNEJBQTRCO1FBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5FLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxPQUFPO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLHlCQUF5QjtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELCtCQUErQjtZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUUsT0FBTyxDQUFFLENBQUM7U0FDakQ7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUEzQ2lDLHdCQUF3Qjs7QUFwQjdDO0lBQVIsS0FBSyxFQUFFO2lFQUE2QjtBQUs1QjtJQUFSLEtBQUssRUFBRTtzREFBa0I7QUFLMkM7SUFBcEUsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7a0VBQW9DO0FBZi9GLHdCQUF3QjtJQUxwQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3JDLFFBQVEsRUFBRSw2Q0FBNkM7S0FDMUQsQ0FBQztHQUNXLHdCQUF3QixDQW9FcEM7U0FwRVksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIFZpZXdDb250YWluZXJSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBkeW5hbWljbHkgbG9hZCBvdGhlciBjb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY29tcG9uZW50LWxvYWRlcicsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250YWluZXIgI2Rlc3RpbmF0aW9uID48L25nLWNvbnRhaW5lcj4nXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gICAgLyoqXG4gICAgICogY2xhc3Mgb2YgdGhlIGNvbXBvbmVudCB0byBsb2FkXG4gICAgICovXG4gICAgQElucHV0KCkgY2xhc3NfY29tcG9uZW50OiBhbnkgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGF0YSB0byBwYXNzIHRvIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRhdGE6IGFueSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBjb21wb25lbnQgcmVmZXJlbmNlIGluIGRvbVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Rlc3RpbmF0aW9uJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0pIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqXG4gICAgICogY29tcG9uZW50IHJlZmVyZW5jZVxuICAgICAqL1xuICAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBhbnkgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ29tcG9uZW50IGluaXRpYWxpc2F0aW9uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgKSB7IH1cblxuXG4gICAgLyoqXG4gICAgICogTGlmZWN5Y2xlIGhvb2sgT25Jbml0XG4gICAgICovXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBjaGlsZCBjb21wb25lbnRcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2ZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNsYXNzX2NvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICAvLyB0aGVuIGdpdmUgc29tZSBkYXRhXG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50RGF0YSh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpZmVjeWNsZSBob29rIE9uQ2hhbmdlcywgb24gbW9kaWZpY2F0aW9uIG9mIGRhdGEgc2VuZCBpdCB0byB0aGUgY2hpbGRcbiAgICAgKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50RGF0YShjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGRhdGEgdG8gdGhlIGlubmVyIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50RGF0YShjaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAvLyBzZW5kIGRhdGEgdG8gY29tcG9uZW50XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UsIGNoYW5nZXMpO1xuICAgICAgICAvLyB0cmlnZ2VyIGNvbXBvbmVudCBuZ09uQ2hhbmdlXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm5nT25DaGFuZ2VzKCBjaGFuZ2VzICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMaWZlY3ljbGUgaG9vayBPbkRlc3Ryb3lcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==