ngx-modialog-11
Version:
Modal / Dialog for Angular
58 lines • 5.41 kB
JavaScript
import { Directive, Input, ElementRef, ViewContainerRef } from '@angular/core';
import { DialogRef } from '../models/dialog-ref';
import { vcRefStore } from '../models/vc-ref-store';
/**
* A directive use to signal the overlay that the host of this directive
* is a dialog boundary, i.e: over click outside of the element should close the modal
* (if non blocking)
*/
// tslint:disable-next-line:directive-class-suffix
export class OverlayDialogBoundary {
constructor(el, dialogRef) {
if (dialogRef && el.nativeElement) {
dialogRef.overlayRef.instance.setClickBoundary(el.nativeElement);
}
}
}
OverlayDialogBoundary.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line:directive-selector
selector: '[overlayDialogBoundary]'
},] }
];
/** @nocollapse */
OverlayDialogBoundary.ctorParameters = () => [
{ type: ElementRef },
{ type: DialogRef }
];
// tslint:disable-next-line:directive-class-suffix
export class OverlayTarget {
constructor(vcRef) {
this.vcRef = vcRef;
}
set targetKey(value) {
this._targetKey = value;
if (value) {
vcRefStore.setVCRef(value, this.vcRef);
}
}
ngOnDestroy() {
if (this._targetKey) {
vcRefStore.delVCRef(this._targetKey, this.vcRef);
}
}
}
OverlayTarget.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line:directive-selector
selector: '[overlayTarget]'
},] }
];
/** @nocollapse */
OverlayTarget.ctorParameters = () => [
{ type: ViewContainerRef }
];
OverlayTarget.propDecorators = {
targetKey: [{ type: Input, args: ['overlayTarget',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1vZGlhbG9nLTExL3NyYy9saWIvb3ZlcmxheS9vdmVybGF5LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLGdCQUFnQixFQUVqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3BEOzs7O0dBSUc7QUFLSCxrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFZLEVBQWMsRUFBRSxTQUF5QjtRQUNuRCxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFO1lBQ2pDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7OztZQVZGLFNBQVMsU0FBQztnQkFDVCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSx5QkFBeUI7YUFDcEM7Ozs7WUFqQkMsVUFBVTtZQUtILFNBQVM7O0FBMkJsQixrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLGFBQWE7SUFVeEIsWUFBb0IsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7SUFDM0MsQ0FBQztJQVZELElBQTRCLFNBQVMsQ0FBQyxLQUFhO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksS0FBSyxFQUFFO1lBQ1QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQU9ELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7OztZQXRCRixTQUFTLFNBQUM7Z0JBQ1QsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7O1lBOUJDLGdCQUFnQjs7O3dCQWlDZixLQUFLLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIElucHV0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4uL21vZGVscy9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgdmNSZWZTdG9yZSB9IGZyb20gJy4uL21vZGVscy92Yy1yZWYtc3RvcmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi9vdmVybGF5LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgZGlyZWN0aXZlIHVzZSB0byBzaWduYWwgdGhlIG92ZXJsYXkgdGhhdCB0aGUgaG9zdCBvZiB0aGlzIGRpcmVjdGl2ZVxyXG4gKiBpcyBhIGRpYWxvZyBib3VuZGFyeSwgaS5lOiBvdmVyIGNsaWNrIG91dHNpZGUgb2YgdGhlIGVsZW1lbnQgc2hvdWxkIGNsb3NlIHRoZSBtb2RhbFxyXG4gKiAoaWYgbm9uIGJsb2NraW5nKVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnW292ZXJsYXlEaWFsb2dCb3VuZGFyeV0nXHJcbn0pXHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtY2xhc3Mtc3VmZml4XHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5RGlhbG9nQm91bmRhcnkge1xyXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+KSB7XHJcbiAgICBpZiAoZGlhbG9nUmVmICYmIGVsLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgZGlhbG9nUmVmLm92ZXJsYXlSZWYuaW5zdGFuY2Uuc2V0Q2xpY2tCb3VuZGFyeShlbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdbb3ZlcmxheVRhcmdldF0nXHJcbn0pXHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtY2xhc3Mtc3VmZml4XHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5VGFyZ2V0IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoJ292ZXJsYXlUYXJnZXQnKSBzZXQgdGFyZ2V0S2V5KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RhcmdldEtleSA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHZjUmVmU3RvcmUuc2V0VkNSZWYodmFsdWUsIHRoaXMudmNSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGFyZ2V0S2V5OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuX3RhcmdldEtleSkge1xyXG4gICAgICB2Y1JlZlN0b3JlLmRlbFZDUmVmKHRoaXMuX3RhcmdldEtleSwgdGhpcy52Y1JlZik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==