ngx-modialog-7
Version:
Modal / Dialog for Angular
124 lines • 11.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/modal.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { combineLatest } from 'rxjs';
import { Injectable } from '@angular/core';
import { Overlay, Modal as Modal_, CSSBackdrop, PromiseCompleter } from 'ngx-modialog-7';
import { BSModalContainer } from './modal-container.component';
import { OneButtonPresetBuilder } from './presets/one-button-preset';
import { TwoButtonPresetBuilder, PromptPresetBuilder } from './presets/two-button-preset';
// TODO: use DI factory for this.
// TODO: consolidate dup code
/** @type {?} */
const isDoc = !(typeof document === 'undefined' || !document);
/** @type {?} */
let animationClass = 'show';
/**
* Execute this method to flag that you are working with Bootstrap version 4.
* @deprecated From version 5, ngx-modialog's bootstrap plugin is set to work with version 4 of bootstrap by default.
* @return {?}
*/
export function bootstrap4Mode() {
}
/**
* Execute this method to flag that you are working with Bootstrap version 3.
* @return {?}
*/
export function bootstrap3Mode() {
animationClass = 'in';
}
export class Modal extends Modal_ {
/**
* @param {?} overlay
*/
constructor(overlay) {
super(overlay);
}
/**
* @return {?}
*/
alert() {
return new OneButtonPresetBuilder(this, (/** @type {?} */ ({ isBlocking: false })));
}
/**
* @return {?}
*/
prompt() {
return new PromptPresetBuilder(this, (/** @type {?} */ ({ isBlocking: true, keyboard: null })));
}
/**
* @return {?}
*/
confirm() {
return new TwoButtonPresetBuilder(this, (/** @type {?} */ ({ isBlocking: true, keyboard: null })));
}
/**
* @protected
* @param {?} dialogRef
* @param {?} content
* @return {?}
*/
create(dialogRef, content) {
/** @type {?} */
const backdropRef = this.createBackdrop(dialogRef, CSSBackdrop);
/** @type {?} */
const containerRef = this.createContainer(dialogRef, BSModalContainer, content);
/** @type {?} */
const overlay = dialogRef.overlayRef.instance;
/** @type {?} */
const backdrop = backdropRef.instance;
/** @type {?} */
const container = containerRef.instance;
dialogRef.inElement ? overlay.insideElement() : overlay.fullscreen();
// add body class if this is the only dialog in the stack
if (isDoc && !document.body.classList.contains('modal-open')) {
document.body.classList.add('modal-open');
}
if (dialogRef.inElement) {
backdrop.setStyle('position', 'absolute');
}
backdrop.addClass('modal-backdrop fade', true);
backdrop.addClass(animationClass);
container.addClass(animationClass);
if (containerRef.location.nativeElement) {
containerRef.location.nativeElement.focus();
}
overlay.beforeDestroy((/**
* @return {?}
*/
() => {
/** @type {?} */
const completer = new PromiseCompleter();
backdrop.removeClass(animationClass);
container.removeClass(animationClass);
combineLatest.call(backdrop.myAnimationEnd$(), container.myAnimationEnd$(), (/**
* @param {?} s1
* @param {?} s2
* @return {?}
*/
(s1, s2) => [s1, s2]))
.subscribe((/**
* @param {?} sources
* @return {?}
*/
sources => {
if (isDoc && this.overlay.groupStackLength(dialogRef) === 1) {
document.body.classList.remove('modal-open');
}
completer.resolve();
}));
return completer.promise;
}));
return dialogRef;
}
}
Modal.decorators = [
{ type: Injectable }
];
/** @nocollapse */
Modal.ctorParameters = () => [
{ type: Overlay }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbW9kaWFsb2ctNy9wbHVnaW5zL2Jvb3RzdHJhcC8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBRUwsT0FBTyxFQUVQLEtBQUssSUFBSSxNQUFNLEVBQ2YsV0FBVyxFQUNYLGdCQUFnQixFQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O01BSXBGLEtBQUssR0FBWSxDQUFDLENBQUMsT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDOztJQUVsRSxjQUFjLEdBQUcsTUFBTTs7Ozs7O0FBTTNCLE1BQU0sVUFBVSxjQUFjO0FBQzlCLENBQUM7Ozs7O0FBS0QsTUFBTSxVQUFVLGNBQWM7SUFDNUIsY0FBYyxHQUFHLElBQUksQ0FBQztBQUN4QixDQUFDO0FBR0QsTUFBTSxPQUFPLEtBQU0sU0FBUSxNQUFNOzs7O0lBQy9CLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Ozs7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxtQkFBSyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsRUFBQSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7OztJQUVELE1BQU07UUFDSixPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLG1CQUFLLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Ozs7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxtQkFBSyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFBLENBQUMsQ0FBQztJQUNuRixDQUFDOzs7Ozs7O0lBRVMsTUFBTSxDQUFDLFNBQXlCLEVBQUUsT0FBeUI7O2NBRTdELFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7O2NBQ3pELFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7O2NBRXpFLE9BQU8sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVE7O2NBQ3ZDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUTs7Y0FDL0IsU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRO1FBRXZDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXJFLHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM1RCxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0M7UUFHRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDdkIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDM0M7UUFDRCxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9DLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO1lBQ3ZDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzdDO1FBRUQsT0FBTyxDQUFDLGFBQWE7OztRQUFDLEdBQUcsRUFBRTs7a0JBQ25CLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixFQUFRO1lBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV0QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLENBQUMsZUFBZSxFQUFFOzs7OztZQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUM7aUJBQzlGLFNBQVM7Ozs7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzNELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBQyxDQUFDO1lBRUwsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzNCLENBQUMsRUFBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7O1lBakVGLFVBQVU7Ozs7WUFoQ1QsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ29udGFpbmVyQ29udGVudCxcbiAgT3ZlcmxheSxcbiAgRGlhbG9nUmVmLFxuICBNb2RhbCBhcyBNb2RhbF8sXG4gIENTU0JhY2tkcm9wLFxuICBQcm9taXNlQ29tcGxldGVyXG59IGZyb20gJ25neC1tb2RpYWxvZy03JztcblxuaW1wb3J0IHsgQlNNb2RhbENvbnRhaW5lciB9IGZyb20gJy4vbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IE9uZUJ1dHRvblByZXNldEJ1aWxkZXIgfSBmcm9tICcuL3ByZXNldHMvb25lLWJ1dHRvbi1wcmVzZXQnO1xuaW1wb3J0IHsgVHdvQnV0dG9uUHJlc2V0QnVpbGRlciwgUHJvbXB0UHJlc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlc2V0cy90d28tYnV0dG9uLXByZXNldCc7XG5cbi8vIFRPRE86IHVzZSBESSBmYWN0b3J5IGZvciB0aGlzLlxuLy8gVE9ETzogY29uc29saWRhdGUgZHVwIGNvZGVcbmNvbnN0IGlzRG9jOiBib29sZWFuID0gISh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8ICFkb2N1bWVudCk7XG5cbmxldCBhbmltYXRpb25DbGFzcyA9ICdzaG93JztcblxuLyoqXG4gKiBFeGVjdXRlIHRoaXMgbWV0aG9kIHRvIGZsYWcgdGhhdCB5b3UgYXJlIHdvcmtpbmcgd2l0aCBCb290c3RyYXAgdmVyc2lvbiA0LlxuICogQGRlcHJlY2F0ZWQgRnJvbSB2ZXJzaW9uIDUsIG5neC1tb2RpYWxvZydzIGJvb3RzdHJhcCBwbHVnaW4gaXMgc2V0IHRvIHdvcmsgd2l0aCB2ZXJzaW9uIDQgb2YgYm9vdHN0cmFwIGJ5IGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXA0TW9kZSgpOiB2b2lkIHtcbn1cblxuLyoqXG4gKiBFeGVjdXRlIHRoaXMgbWV0aG9kIHRvIGZsYWcgdGhhdCB5b3UgYXJlIHdvcmtpbmcgd2l0aCBCb290c3RyYXAgdmVyc2lvbiAzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYm9vdHN0cmFwM01vZGUoKTogdm9pZCB7XG4gIGFuaW1hdGlvbkNsYXNzID0gJ2luJztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vZGFsIGV4dGVuZHMgTW9kYWxfIHtcbiAgY29uc3RydWN0b3Iob3ZlcmxheTogT3ZlcmxheSkge1xuICAgIHN1cGVyKG92ZXJsYXkpO1xuICB9XG5cbiAgYWxlcnQoKTogT25lQnV0dG9uUHJlc2V0QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBPbmVCdXR0b25QcmVzZXRCdWlsZGVyKHRoaXMsIDxhbnk+e2lzQmxvY2tpbmc6IGZhbHNlfSk7XG4gIH1cblxuICBwcm9tcHQoKTogUHJvbXB0UHJlc2V0QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBQcm9tcHRQcmVzZXRCdWlsZGVyKHRoaXMsIDxhbnk+e2lzQmxvY2tpbmc6IHRydWUsIGtleWJvYXJkOiBudWxsfSk7XG4gIH1cblxuICBjb25maXJtKCk6IFR3b0J1dHRvblByZXNldEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHdvQnV0dG9uUHJlc2V0QnVpbGRlcih0aGlzLCA8YW55Pntpc0Jsb2NraW5nOiB0cnVlLCBrZXlib2FyZDogbnVsbH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBjb250ZW50OiBDb250YWluZXJDb250ZW50KTogRGlhbG9nUmVmPGFueT4ge1xuXG4gICAgY29uc3QgYmFja2Ryb3BSZWYgPSB0aGlzLmNyZWF0ZUJhY2tkcm9wKGRpYWxvZ1JlZiwgQ1NTQmFja2Ryb3ApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHRoaXMuY3JlYXRlQ29udGFpbmVyKGRpYWxvZ1JlZiwgQlNNb2RhbENvbnRhaW5lciwgY29udGVudCk7XG5cbiAgICBjb25zdCBvdmVybGF5ID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYuaW5zdGFuY2U7XG4gICAgY29uc3QgYmFja2Ryb3AgPSBiYWNrZHJvcFJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuaW5zdGFuY2U7XG5cbiAgICBkaWFsb2dSZWYuaW5FbGVtZW50ID8gb3ZlcmxheS5pbnNpZGVFbGVtZW50KCkgOiBvdmVybGF5LmZ1bGxzY3JlZW4oKTtcblxuICAgIC8vIGFkZCBib2R5IGNsYXNzIGlmIHRoaXMgaXMgdGhlIG9ubHkgZGlhbG9nIGluIHRoZSBzdGFja1xuICAgIGlmIChpc0RvYyAmJiAhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsLW9wZW4nKSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1vcGVuJyk7XG4gICAgfVxuXG5cbiAgICBpZiAoZGlhbG9nUmVmLmluRWxlbWVudCkge1xuICAgICAgYmFja2Ryb3Auc2V0U3R5bGUoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgfVxuICAgIGJhY2tkcm9wLmFkZENsYXNzKCdtb2RhbC1iYWNrZHJvcCBmYWRlJywgdHJ1ZSk7XG5cbiAgICBiYWNrZHJvcC5hZGRDbGFzcyhhbmltYXRpb25DbGFzcyk7XG4gICAgY29udGFpbmVyLmFkZENsYXNzKGFuaW1hdGlvbkNsYXNzKTtcblxuICAgIGlmIChjb250YWluZXJSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29udGFpbmVyUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvdmVybGF5LmJlZm9yZURlc3Ryb3koKCkgPT4ge1xuICAgICAgY29uc3QgY29tcGxldGVyID0gbmV3IFByb21pc2VDb21wbGV0ZXI8dm9pZD4oKTtcbiAgICAgIGJhY2tkcm9wLnJlbW92ZUNsYXNzKGFuaW1hdGlvbkNsYXNzKTtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcyhhbmltYXRpb25DbGFzcyk7XG5cbiAgICAgIGNvbWJpbmVMYXRlc3QuY2FsbChiYWNrZHJvcC5teUFuaW1hdGlvbkVuZCQoKSwgY29udGFpbmVyLm15QW5pbWF0aW9uRW5kJCgpLCAoczEsIHMyKSA9PiBbczEsIHMyXSlcbiAgICAgICAgLnN1YnNjcmliZShzb3VyY2VzID0+IHtcbiAgICAgICAgICBpZiAoaXNEb2MgJiYgdGhpcy5vdmVybGF5Lmdyb3VwU3RhY2tMZW5ndGgoZGlhbG9nUmVmKSA9PT0gMSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2RhbC1vcGVuJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29tcGxldGVyLnJlc29sdmUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBjb21wbGV0ZXIucHJvbWlzZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cbn1cbiJdfQ==