UNPKG

@angular-mdl/core

Version:

Angular components, directives and styles based on material design lite https://getmdl.io.

82 lines 9.53 kB
import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from "@angular/core"; import { Subject } from "rxjs"; import { MdlDialogService } from "./mdl-dialog.service"; import * as i0 from "@angular/core"; import * as i1 from "./mdl-dialog.service"; export class MdlDialogComponent { constructor(dialogService) { this.dialogService = dialogService; // eslint-disable-next-line this.showEmitter = new EventEmitter(); // eslint-disable-next-line this.hideEmitter = new EventEmitter(); this.isShown = false; this.dialogRef = null; } show() { if (this.isShown) { throw new Error("Only one instance of an embedded mdl-dialog can exist!"); } this.isShown = true; const mergedConfig = this.config || {}; // default is true if (typeof mergedConfig.isModal === "undefined") { mergedConfig.isModal = true; } const result = new Subject(); if (!this.template) { return result.asObservable(); } const p = this.dialogService.showDialogTemplate(this.template, mergedConfig); p.subscribe((dialogRef) => { this.dialogRef = dialogRef; this.dialogRef.onVisible().subscribe(() => { this.showEmitter.emit(dialogRef); result.next(dialogRef); result.complete(); }); this.dialogRef.onHide().subscribe(() => { this.hideEmitter.emit(); this.dialogRef = null; this.isShown = false; }); }); return result.asObservable(); } close() { if (this.dialogRef) { this.dialogRef.hide(); } } } MdlDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlDialogComponent, deps: [{ token: i1.MdlDialogService }], target: i0.ɵɵFactoryTarget.Component }); MdlDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MdlDialogComponent, selector: "mdl-dialog", inputs: { config: ["mdl-dialog-config", "config"] }, outputs: { showEmitter: "show", hideEmitter: "hide" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: ` <div *dialogTemplate> <ng-content></ng-content> </div> `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlDialogComponent, decorators: [{ type: Component, args: [{ selector: "mdl-dialog", template: ` <div *dialogTemplate> <ng-content></ng-content> </div> `, encapsulation: ViewEncapsulation.None, }] }], ctorParameters: function () { return [{ type: i1.MdlDialogService }]; }, propDecorators: { template: [{ type: ViewChild, args: [TemplateRef, { static: true }] }], config: [{ type: Input, args: ["mdl-dialog-config"] }], showEmitter: [{ type: Output, args: ["show"] }], hideEmitter: [{ type: Output, args: ["hide"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvZGlhbG9nL21kbC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBYXhELE1BQU0sT0FBTyxrQkFBa0I7SUFtQjdCLFlBQW9CLGFBQStCO1FBQS9CLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQVhuRCwyQkFBMkI7UUFFM0IsZ0JBQVcsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFdkYsMkJBQTJCO1FBRTNCLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQThCLElBQUksQ0FBQztJQUVFLENBQUM7SUFFdkQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLFlBQVksR0FBNEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFaEUsa0JBQWtCO1FBQ2xCLElBQUksT0FBTyxZQUFZLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUMvQyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUM3QjtRQUVELE1BQU0sTUFBTSxHQUFnQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTFELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzlCO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDN0MsSUFBSSxDQUFDLFFBQVEsRUFDYixZQUFZLENBQ2IsQ0FBQztRQUNGLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUE2QixFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFFM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFakMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDOzsrR0FsRVUsa0JBQWtCO21HQUFsQixrQkFBa0Isd01BQ2xCLFdBQVcsOERBUlo7Ozs7R0FJVDsyRkFHVSxrQkFBa0I7a0JBVDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzt1R0FHQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLeEMsTUFBTTtzQkFETCxLQUFLO3VCQUFDLG1CQUFtQjtnQkFLMUIsV0FBVztzQkFEVixNQUFNO3VCQUFDLE1BQU07Z0JBS2QsV0FBVztzQkFEVixNQUFNO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgTWRsRGlhbG9nU2VydmljZSB9IGZyb20gXCIuL21kbC1kaWFsb2cuc2VydmljZVwiO1xuaW1wb3J0IHsgSU1kbERpYWxvZ0NvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9tZGwtZGlhbG9nLWNvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IE1kbERpYWxvZ1JlZmVyZW5jZSB9IGZyb20gXCIuL21kbC1kaWFsb2ctcmVmZXJlbmNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtZGwtZGlhbG9nXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqZGlhbG9nVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1kbERpYWxvZ0NvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgQElucHV0KFwibWRsLWRpYWxvZy1jb25maWdcIilcbiAgY29uZmlnOiBJTWRsRGlhbG9nQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgQE91dHB1dChcInNob3dcIilcbiAgc2hvd0VtaXR0ZXI6IEV2ZW50RW1pdHRlcjxNZGxEaWFsb2dSZWZlcmVuY2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZGxEaWFsb2dSZWZlcmVuY2U+KCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIEBPdXRwdXQoXCJoaWRlXCIpXG4gIGhpZGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBpc1Nob3duID0gZmFsc2U7XG4gIHByaXZhdGUgZGlhbG9nUmVmOiBNZGxEaWFsb2dSZWZlcmVuY2UgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IE1kbERpYWxvZ1NlcnZpY2UpIHt9XG5cbiAgc2hvdygpOiBPYnNlcnZhYmxlPE1kbERpYWxvZ1JlZmVyZW5jZT4ge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk9ubHkgb25lIGluc3RhbmNlIG9mIGFuIGVtYmVkZGVkIG1kbC1kaWFsb2cgY2FuIGV4aXN0IVwiKTtcbiAgICB9XG4gICAgdGhpcy5pc1Nob3duID0gdHJ1ZTtcblxuICAgIGNvbnN0IG1lcmdlZENvbmZpZzogSU1kbERpYWxvZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZyB8fCB7fTtcblxuICAgIC8vIGRlZmF1bHQgaXMgdHJ1ZVxuICAgIGlmICh0eXBlb2YgbWVyZ2VkQ29uZmlnLmlzTW9kYWwgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIG1lcmdlZENvbmZpZy5pc01vZGFsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IFN1YmplY3Q8TWRsRGlhbG9nUmVmZXJlbmNlPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBpZiAoIXRoaXMudGVtcGxhdGUpIHtcbiAgICAgIHJldHVybiByZXN1bHQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGNvbnN0IHAgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RpYWxvZ1RlbXBsYXRlKFxuICAgICAgdGhpcy50ZW1wbGF0ZSxcbiAgICAgIG1lcmdlZENvbmZpZ1xuICAgICk7XG4gICAgcC5zdWJzY3JpYmUoKGRpYWxvZ1JlZjogTWRsRGlhbG9nUmVmZXJlbmNlKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IGRpYWxvZ1JlZjtcblxuICAgICAgdGhpcy5kaWFsb2dSZWYub25WaXNpYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93RW1pdHRlci5lbWl0KGRpYWxvZ1JlZik7XG5cbiAgICAgICAgcmVzdWx0Lm5leHQoZGlhbG9nUmVmKTtcbiAgICAgICAgcmVzdWx0LmNvbXBsZXRlKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5kaWFsb2dSZWYub25IaWRlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5oaWRlRW1pdHRlci5lbWl0KCk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc1Nob3duID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5oaWRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=