@preeco-privacy/ngx-modal-dialog
Version:
Dynamic modal dialog for Angular
48 lines • 5.63 kB
JavaScript
// components and directives
import { ModalDialogComponent } from './modal-dialog.component';
import { ModalDialogService } from './modal-dialog.service';
import { SimpleModalComponent } from './simple-modal.component';
import { ModalDialogInstanceService } from './modal-dialog-instance.service';
// modules
import { CommonModule } from '@angular/common';
import { NgModule, InjectionToken, SkipSelf, Optional } from '@angular/core';
/**
* Guard to make sure we have single initialization of forRoot
* @type {InjectionToken<ModalDialogModule>}
*/
export const MODAL_DIALOG_FORROOT_GUARD = new InjectionToken('MODAL_DIALOG_FORROOT_GUARD');
export class ModalDialogModule {
static forRoot() {
return {
ngModule: ModalDialogModule,
providers: [
{
provide: MODAL_DIALOG_FORROOT_GUARD,
useFactory: provideForRootGuard,
deps: [ModalDialogModule, new Optional(), new SkipSelf()]
},
ModalDialogInstanceService
]
};
}
}
ModalDialogModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule],
declarations: [ModalDialogComponent, SimpleModalComponent],
entryComponents: [ModalDialogComponent, SimpleModalComponent],
exports: [ModalDialogComponent, SimpleModalComponent],
providers: [ModalDialogService, ModalDialogInstanceService]
},] }
];
/**
* @param dialogModule
* @returns {string}
*/
export function provideForRootGuard(dialogModule) {
if (dialogModule) {
throw new Error(`ModalDialogModule.forRoot() called twice.`);
}
return 'guarded';
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbC1kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFvQiw0QkFBNEIsQ0FBQyxDQUFDO0FBUzlHLE1BQU0sT0FBTyxpQkFBaUI7SUFFckIsTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFVBQVUsRUFBRSxtQkFBbUI7b0JBQy9CLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztpQkFDMUQ7Z0JBQ0QsMEJBQTBCO2FBQzNCO1NBQ0YsQ0FBQztJQUNKLENBQUM7OztZQXJCRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQztnQkFDMUQsZUFBZSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7Z0JBQzdELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDO2dCQUNyRCxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQzthQUM1RDs7QUFrQkQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFlBQStCO0lBQ2pFLElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkNBQTJDLENBQUMsQ0FBQztLQUNoRDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzXG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL21vZGFsLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNpbXBsZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zaW1wbGUtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsRGlhbG9nSW5zdGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1kaWFsb2ctaW5zdGFuY2Uuc2VydmljZSc7XG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBTa2lwU2VsZiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBHdWFyZCB0byBtYWtlIHN1cmUgd2UgaGF2ZSBzaW5nbGUgaW5pdGlhbGl6YXRpb24gb2YgZm9yUm9vdFxuICogQHR5cGUge0luamVjdGlvblRva2VuPE1vZGFsRGlhbG9nTW9kdWxlPn1cbiAqL1xuZXhwb3J0IGNvbnN0IE1PREFMX0RJQUxPR19GT1JST09UX0dVQVJEID0gbmV3IEluamVjdGlvblRva2VuPE1vZGFsRGlhbG9nTW9kdWxlPignTU9EQUxfRElBTE9HX0ZPUlJPT1RfR1VBUkQnKTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW01vZGFsRGlhbG9nQ29tcG9uZW50LCBTaW1wbGVNb2RhbENvbXBvbmVudF0sXG4gIGVudHJ5Q29tcG9uZW50czogW01vZGFsRGlhbG9nQ29tcG9uZW50LCBTaW1wbGVNb2RhbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtNb2RhbERpYWxvZ0NvbXBvbmVudCwgU2ltcGxlTW9kYWxDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtNb2RhbERpYWxvZ1NlcnZpY2UsIE1vZGFsRGlhbG9nSW5zdGFuY2VTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbERpYWxvZ01vZHVsZSB7XG5cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TW9kYWxEaWFsb2dNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE1vZGFsRGlhbG9nTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNT0RBTF9ESUFMT0dfRk9SUk9PVF9HVUFSRCxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBwcm92aWRlRm9yUm9vdEd1YXJkLFxuICAgICAgICAgIGRlcHM6IFtNb2RhbERpYWxvZ01vZHVsZSwgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXVxuICAgICAgICB9LFxuICAgICAgICBNb2RhbERpYWxvZ0luc3RhbmNlU2VydmljZVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gZGlhbG9nTW9kdWxlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZvclJvb3RHdWFyZChkaWFsb2dNb2R1bGU6IE1vZGFsRGlhbG9nTW9kdWxlKTogc3RyaW5nIHtcbiAgaWYgKGRpYWxvZ01vZHVsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNb2RhbERpYWxvZ01vZHVsZS5mb3JSb290KCkgY2FsbGVkIHR3aWNlLmApO1xuICB9XG4gIHJldHVybiAnZ3VhcmRlZCc7XG59XG4iXX0=