ngx-pluto
Version:
128 lines • 9.12 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
import { InsertionDirective } from './insertion.directive';
import { DialogRef } from './dialog-ref';
import { Subject } from 'rxjs';
import { DialogConfig } from './dialog-config';
/**
* @ignore
*/
export class NpDialog {
/**
* @param {?} componentFactoryResolver
* @param {?} cd
* @param {?} dialogRef
* @param {?} config
*/
constructor(componentFactoryResolver, cd, dialogRef, config) {
this.componentFactoryResolver = componentFactoryResolver;
this.cd = cd;
this.dialogRef = dialogRef;
this.config = config;
this._onClose = new Subject();
this.onClose = this._onClose.asObservable();
console.log(config.userClass);
}
/**
* @return {?}
*/
ngOnInit() {
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.loadChildComponent(this.childComponentType);
this.cd.detectChanges(); // Avoid ExpressionChangedAfterItHasBeenCheckedError
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.componentRef) {
this.componentRef.destroy();
}
}
/**
* @param {?} evt
* @return {?}
*/
onOverlayClicked(evt) {
if (this.config.backdrop === false) {
return;
}
this.dialogRef.close();
}
/**
* @param {?} evt
* @return {?}
*/
onDialogClicked(evt) {
evt.stopPropagation();
}
/**
* @param {?} componentType
* @return {?}
*/
loadChildComponent(componentType) {
/** @type {?} */
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);
/** @type {?} */
let viewContainerRef = this.insertionPoint.viewContainerRef;
viewContainerRef.clear();
this.componentRef = viewContainerRef.createComponent(componentFactory);
}
}
NpDialog.decorators = [
{ type: Component, args: [{
selector: 'np-dialog',
template: "<div class=\"overlay\" (click)=\"onOverlayClicked($event)\">\r\n <div class=\"dialog\" [ngClass]=\"config?.userClass\" (click)=\"onDialogClicked($event)\">\r\n <ng-template npInsertion></ng-template>\r\n </div>\r\n</div>\r\n",
styles: [".overlay{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,.5);align-items:center;z-index:99;overflow-x:hidden;overflow-y:auto}.dialog{margin-top:8vh;box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);background-color:#fff;width:50%;height:50%;display:flex;flex-direction:column;padding:5px 20px}"]
}] }
];
/** @nocollapse */
NpDialog.ctorParameters = () => [
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef },
{ type: DialogRef },
{ type: DialogConfig }
];
NpDialog.propDecorators = {
insertionPoint: [{ type: ViewChild, args: [InsertionDirective,] }]
};
if (false) {
/** @type {?} */
NpDialog.prototype.componentRef;
/** @type {?} */
NpDialog.prototype.childComponentType;
/** @type {?} */
NpDialog.prototype.insertionPoint;
/**
* @type {?}
* @private
*/
NpDialog.prototype._onClose;
/** @type {?} */
NpDialog.prototype.onClose;
/**
* @type {?}
* @private
*/
NpDialog.prototype.componentFactoryResolver;
/**
* @type {?}
* @private
*/
NpDialog.prototype.cd;
/**
* @type {?}
* @private
*/
NpDialog.prototype.dialogRef;
/** @type {?} */
NpDialog.prototype.config;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1wbHV0by8iLCJzb3VyY2VzIjpbImxpYi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEMsU0FBUyxFQUFFLHdCQUF3QixFQUFnQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVS9DLE1BQU0sT0FBTyxRQUFROzs7Ozs7O0lBVW5CLFlBQW9CLHdCQUFrRCxFQUM1RCxFQUFxQixFQUNyQixTQUFvQixFQUNyQixNQUFvQjtRQUhULDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDNUQsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBTlosYUFBUSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFPN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFFLG9EQUFvRDtJQUNoRixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFlO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ2xDLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7Ozs7SUFFRCxlQUFlLENBQUMsR0FBZTtRQUM3QixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7Ozs7SUFFRCxrQkFBa0IsQ0FBQyxhQUF3Qjs7WUFDckMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQzs7WUFFdkYsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7UUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7WUF2REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixpUEFBc0M7O2FBRXZDOzs7O1lBYnNFLHdCQUF3QjtZQUFnQixpQkFBaUI7WUFFdkgsU0FBUztZQUVULFlBQVk7Ozs2QkFjbEIsU0FBUyxTQUFDLGtCQUFrQjs7OztJQUg3QixnQ0FBZ0M7O0lBQ2hDLHNDQUE4Qjs7SUFFOUIsa0NBQ21DOzs7OztJQUVuQyw0QkFBK0M7O0lBQy9DLDJCQUFnQzs7Ozs7SUFFcEIsNENBQTBEOzs7OztJQUNwRSxzQkFBNkI7Ozs7O0lBQzdCLDZCQUE0Qjs7SUFDNUIsMEJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgVHlwZSwgVmlld0NoaWxkLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5zZXJ0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnNlcnRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuL2RpYWxvZy1jb25maWcnO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbnAtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnBEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBjaGlsZENvbXBvbmVudFR5cGU6IFR5cGU8YW55PjtcclxuXHJcbiAgQFZpZXdDaGlsZChJbnNlcnRpb25EaXJlY3RpdmUpXHJcbiAgaW5zZXJ0aW9uUG9pbnQ6IEluc2VydGlvbkRpcmVjdGl2ZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfb25DbG9zZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwdWJsaWMgb25DbG9zZTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UgPSB0aGlzLl9vbkNsb3NlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgY29uc29sZS5sb2coY29uZmlnLnVzZXJDbGFzcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZENoaWxkQ29tcG9uZW50KHRoaXMuY2hpbGRDb21wb25lbnRUeXBlKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpOyAgLy8gQXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25PdmVybGF5Q2xpY2tlZChldnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5iYWNrZHJvcCA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25EaWFsb2dDbGlja2VkKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENoaWxkQ29tcG9uZW50KGNvbXBvbmVudFR5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgbGV0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlKTtcclxuXHJcbiAgICBsZXQgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuaW5zZXJ0aW9uUG9pbnQudmlld0NvbnRhaW5lclJlZjtcclxuICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gIH1cclxufVxyXG4iXX0=