@angular-mdl/core
Version:
Angular components, directives and styles based on material design lite https://getmdl.io.
82 lines • 9.53 kB
JavaScript
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=