@universal-material/angular
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
39 lines • 6.5 kB
JavaScript
import { Injectable, InjectionToken } from '@angular/core';
import { DialogInjector } from './dialog-injector';
import * as i0 from "@angular/core";
import * as i1 from "./dialog-stack.service";
export const DIALOG_DATA = new InjectionToken('DIALOG_DATA');
export class DialogService {
constructor(_componentFactoryResolver, _appRef, _injector, _dialogStackService) {
this._componentFactoryResolver = _componentFactoryResolver;
this._appRef = _appRef;
this._injector = _injector;
this._dialogStackService = _dialogStackService;
}
_internalOpen(dialogType, customInjectionTokens) {
const dialogComponent = this._componentFactoryResolver.resolveComponentFactory(dialogType);
const dialogComponentRef = dialogComponent.create(new DialogInjector(this._injector, customInjectionTokens));
dialogComponentRef.instance.afterClose.subscribe(() => {
this._appRef.detachView(dialogComponentRef.hostView);
dialogComponentRef.destroy();
});
this._appRef.attachView(dialogComponentRef.hostView);
this._dialogStackService.add(dialogComponentRef.instance);
document
.querySelector('body')
.appendChild(dialogComponentRef.location.nativeElement);
return dialogComponentRef.instance;
}
open(dialogType, data) {
return this._internalOpen(dialogType, new WeakMap(data && [[DIALOG_DATA, data]]));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.DialogStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i1.DialogStackService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEMsVUFBVSxFQUFFLGNBQWMsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDO0FBS2xFLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQTZCLHlCQUFtRCxFQUNuRCxPQUF1QixFQUN2QixTQUFtQixFQUNuQixtQkFBdUM7UUFIdkMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7SUFFcEUsQ0FBQztJQUVELGFBQWEsQ0FBNEIsVUFBbUIsRUFBRSxxQkFBd0M7UUFDcEcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNGLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUU3RyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELFFBQVE7YUFDTCxhQUFhLENBQUMsTUFBTSxDQUFFO2FBQ3RCLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUQsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksQ0FBNEIsVUFBbUIsRUFBRSxJQUFVO1FBQzdELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzsrR0FoQ1UsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlhbG9nSW5qZWN0b3IgfSBmcm9tICcuL2RpYWxvZy1pbmplY3Rvcic7XG5pbXBvcnQgeyBEaWFsb2dTdGFja1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZy1zdGFjay5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBESUFMT0dfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdESUFMT0dfREFUQScpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dTdGFja1NlcnZpY2U6IERpYWxvZ1N0YWNrU2VydmljZSkge1xuXG4gIH1cblxuICBfaW50ZXJuYWxPcGVuPFQgZXh0ZW5kcyBEaWFsb2dDb21wb25lbnQ+KGRpYWxvZ1R5cGU6IFR5cGU8VD4sIGN1c3RvbUluamVjdGlvblRva2VuczogV2Vha01hcDxhbnksIGFueT4pOiBUIHtcbiAgICBjb25zdCBkaWFsb2dDb21wb25lbnQgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZGlhbG9nVHlwZSk7XG5cbiAgICBjb25zdCBkaWFsb2dDb21wb25lbnRSZWYgPSBkaWFsb2dDb21wb25lbnQuY3JlYXRlKG5ldyBEaWFsb2dJbmplY3Rvcih0aGlzLl9pbmplY3RvciwgY3VzdG9tSW5qZWN0aW9uVG9rZW5zKSk7XG5cbiAgICBkaWFsb2dDb21wb25lbnRSZWYuaW5zdGFuY2UuYWZ0ZXJDbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcoZGlhbG9nQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgIGRpYWxvZ0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyhkaWFsb2dDb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgdGhpcy5fZGlhbG9nU3RhY2tTZXJ2aWNlLmFkZChkaWFsb2dDb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuXG4gICAgZG9jdW1lbnRcbiAgICAgIC5xdWVyeVNlbGVjdG9yKCdib2R5JykhXG4gICAgICAuYXBwZW5kQ2hpbGQoZGlhbG9nQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGRpYWxvZ0NvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIG9wZW48VCBleHRlbmRzIERpYWxvZ0NvbXBvbmVudD4oZGlhbG9nVHlwZTogVHlwZTxUPiwgZGF0YT86IGFueSk6IFQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbE9wZW4oZGlhbG9nVHlwZSwgbmV3IFdlYWtNYXAoZGF0YSAmJiBbW0RJQUxPR19EQVRBLCBkYXRhXV0pKTtcbiAgfVxufVxuIl19