ngx-modialog-11
Version:
Modal / Dialog for Angular
42 lines • 6.63 kB
JavaScript
export function unsupportedDropInError(dropInName) {
return new Error(`Unsupported Drop-In ${dropInName}`);
}
export class Modal {
constructor(overlay) {
this.overlay = overlay;
}
alert() {
throw unsupportedDropInError('alert');
}
prompt() {
throw unsupportedDropInError('prompt');
}
confirm() {
throw unsupportedDropInError('confirm');
}
/**
* Opens a modal window inside an existing component.
* @param content The content to display, either string, template ref or a component.
* @param config Additional settings.
*/
open(content, config) {
config = config || {};
const dialogs = this.overlay.open(config, this.constructor);
if (dialogs.length > 1) {
console.warn(`Attempt to open more then 1 overlay detected.
Multiple modal copies are not supported at the moment,
only the first viewContainer will display.`);
}
// TODO: Currently supporting 1 view container, hence working on dialogs[0].
// upgrade to multiple containers.
return this.create(dialogs[0], content);
}
createBackdrop(dialogRef, BackdropComponent) {
return dialogRef.overlayRef.instance.addComponent(BackdropComponent);
}
createContainer(dialogRef, ContainerComponent, content) {
const nodes = dialogRef.overlayRef.instance.getProjectables(content);
return dialogRef.overlayRef.instance.addComponent(ContainerComponent, nodes);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbW9kaWFsb2ctMTEvc3JjL2xpYi9wcm92aWRlcnMvbW9kYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFVBQWtCO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLENBQUMsdUJBQXVCLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sT0FBZ0IsS0FBSztJQUN6QixZQUFtQixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQ25DLENBQUM7SUFHRCxLQUFLO1FBQ0gsTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE9BQXlCLEVBQUUsTUFBc0I7UUFDcEQsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFTLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUM7O2lEQUU4QixDQUFDLENBQUM7U0FDOUM7UUFDRCw2RUFBNkU7UUFDN0UseUNBQXlDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQVVTLGNBQWMsQ0FBSSxTQUF5QixFQUFFLGlCQUEyQjtRQUNoRixPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxlQUFlLENBQ3ZCLFNBQXlCLEVBQ3pCLGtCQUE0QixFQUM1QixPQUF5QjtRQUV6QixNQUFNLEtBQUssR0FBVSxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vb3ZlcmxheS9pbmRleCc7XHJcbmltcG9ydCB7IENsYXNzIH0gZnJvbSAnLi4vZnJhbWV3b3JrL3V0aWxzJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZywgQ29udGFpbmVyQ29udGVudCB9IGZyb20gJy4uL21vZGVscy90b2tlbnMnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuLi9tb2RlbHMvZGlhbG9nLXJlZic7XHJcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxpbmdDb250ZXh0QnVpbGRlciB9IGZyb20gJy4uL21vZGVscy9vdmVybGF5LWNvbnRleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVuc3VwcG9ydGVkRHJvcEluRXJyb3IoZHJvcEluTmFtZTogc3RyaW5nKTogRXJyb3Ige1xyXG4gIHJldHVybiBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIERyb3AtSW4gJHtkcm9wSW5OYW1lfWApO1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kYWwge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVybGF5OiBPdmVybGF5KSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWxlcnQoKTogTW9kYWxDb250cm9sbGluZ0NvbnRleHRCdWlsZGVyPGFueT4ge1xyXG4gICAgdGhyb3cgdW5zdXBwb3J0ZWREcm9wSW5FcnJvcignYWxlcnQnKTtcclxuICB9XHJcblxyXG4gIHByb21wdCgpOiBNb2RhbENvbnRyb2xsaW5nQ29udGV4dEJ1aWxkZXI8YW55PiB7XHJcbiAgICB0aHJvdyB1bnN1cHBvcnRlZERyb3BJbkVycm9yKCdwcm9tcHQnKTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm0oKTogTW9kYWxDb250cm9sbGluZ0NvbnRleHRCdWlsZGVyPGFueT4ge1xyXG4gICAgdGhyb3cgdW5zdXBwb3J0ZWREcm9wSW5FcnJvcignY29uZmlybScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBtb2RhbCB3aW5kb3cgaW5zaWRlIGFuIGV4aXN0aW5nIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0gY29udGVudCBUaGUgY29udGVudCB0byBkaXNwbGF5LCBlaXRoZXIgc3RyaW5nLCB0ZW1wbGF0ZSByZWYgb3IgYSBjb21wb25lbnQuXHJcbiAgICogQHBhcmFtIGNvbmZpZyBBZGRpdGlvbmFsIHNldHRpbmdzLlxyXG4gICAqL1xyXG4gIG9wZW4oY29udGVudDogQ29udGFpbmVyQ29udGVudCwgY29uZmlnPzogT3ZlcmxheUNvbmZpZyk6IERpYWxvZ1JlZjxhbnk+IHtcclxuICAgIGNvbmZpZyA9IGNvbmZpZyB8fCB7fSBhcyBhbnk7XHJcbiAgICBjb25zdCBkaWFsb2dzID0gdGhpcy5vdmVybGF5Lm9wZW4oY29uZmlnLCB0aGlzLmNvbnN0cnVjdG9yKTtcclxuXHJcbiAgICBpZiAoZGlhbG9ncy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgQXR0ZW1wdCB0byBvcGVuIG1vcmUgdGhlbiAxIG92ZXJsYXkgZGV0ZWN0ZWQuXHJcbiAgICAgIE11bHRpcGxlIG1vZGFsIGNvcGllcyBhcmUgbm90IHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LFxyXG4gICAgICBvbmx5IHRoZSBmaXJzdCB2aWV3Q29udGFpbmVyIHdpbGwgZGlzcGxheS5gKTtcclxuICAgIH1cclxuICAgIC8vIFRPRE86ICBDdXJyZW50bHkgc3VwcG9ydGluZyAxIHZpZXcgY29udGFpbmVyLCBoZW5jZSB3b3JraW5nIG9uIGRpYWxvZ3NbMF0uXHJcbiAgICAvLyAgICAgICAgdXBncmFkZSB0byBtdWx0aXBsZSBjb250YWluZXJzLlxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGRpYWxvZ3NbMF0sIGNvbnRlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBIb29rIHRoYXQgZW5hYmxlcyBkZXJpdmVkIGNsYXNzZXMgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG92ZXJsYXkuXHJcbiAgICogQHBhcmFtIGRpYWxvZ1JlZlxyXG4gICAqIEBwYXJhbSB0eXBlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCB0eXBlOiBDb250YWluZXJDb250ZW50KTogRGlhbG9nUmVmPGFueT47XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlQmFja2Ryb3A8VD4oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgQmFja2Ryb3BDb21wb25lbnQ6IENsYXNzPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcclxuICAgIHJldHVybiBkaWFsb2dSZWYub3ZlcmxheVJlZi5pbnN0YW5jZS5hZGRDb21wb25lbnQ8VD4oQmFja2Ryb3BDb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnRhaW5lcjxUPihcclxuICAgIGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sXHJcbiAgICBDb250YWluZXJDb21wb25lbnQ6IENsYXNzPFQ+LFxyXG4gICAgY29udGVudDogQ29udGFpbmVyQ29udGVudCk6IENvbXBvbmVudFJlZjxUPiB7XHJcblxyXG4gICAgY29uc3Qgbm9kZXM6IGFueVtdID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYuaW5zdGFuY2UuZ2V0UHJvamVjdGFibGVzKGNvbnRlbnQpO1xyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5vdmVybGF5UmVmLmluc3RhbmNlLmFkZENvbXBvbmVudDxUPihDb250YWluZXJDb21wb25lbnQsIG5vZGVzKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==