ngx-modialog-7
Version:
Modal / Dialog for Angular
141 lines • 12.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/modal.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __extends } from "tslib";
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 {?} */
var isDoc = !(typeof document === 'undefined' || !document);
/** @type {?} */
var 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';
}
var Modal = /** @class */ (function (_super) {
__extends(Modal, _super);
function Modal(overlay) {
return _super.call(this, overlay) || this;
}
/**
* @return {?}
*/
Modal.prototype.alert = /**
* @return {?}
*/
function () {
return new OneButtonPresetBuilder(this, (/** @type {?} */ ({ isBlocking: false })));
};
/**
* @return {?}
*/
Modal.prototype.prompt = /**
* @return {?}
*/
function () {
return new PromptPresetBuilder(this, (/** @type {?} */ ({ isBlocking: true, keyboard: null })));
};
/**
* @return {?}
*/
Modal.prototype.confirm = /**
* @return {?}
*/
function () {
return new TwoButtonPresetBuilder(this, (/** @type {?} */ ({ isBlocking: true, keyboard: null })));
};
/**
* @protected
* @param {?} dialogRef
* @param {?} content
* @return {?}
*/
Modal.prototype.create = /**
* @protected
* @param {?} dialogRef
* @param {?} content
* @return {?}
*/
function (dialogRef, content) {
var _this = this;
/** @type {?} */
var backdropRef = this.createBackdrop(dialogRef, CSSBackdrop);
/** @type {?} */
var containerRef = this.createContainer(dialogRef, BSModalContainer, content);
/** @type {?} */
var overlay = dialogRef.overlayRef.instance;
/** @type {?} */
var backdrop = backdropRef.instance;
/** @type {?} */
var 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 {?}
*/
function () {
/** @type {?} */
var completer = new PromiseCompleter();
backdrop.removeClass(animationClass);
container.removeClass(animationClass);
combineLatest.call(backdrop.myAnimationEnd$(), container.myAnimationEnd$(), (/**
* @param {?} s1
* @param {?} s2
* @return {?}
*/
function (s1, s2) { return [s1, s2]; }))
.subscribe((/**
* @param {?} sources
* @return {?}
*/
function (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 = function () { return [
{ type: Overlay }
]; };
return Modal;
}(Modal_));
export { Modal };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbW9kaWFsb2ctNy9wbHVnaW5zL2Jvb3RzdHJhcC8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUVMLE9BQU8sRUFFUCxLQUFLLElBQUksTUFBTSxFQUNmLFdBQVcsRUFDWCxnQkFBZ0IsRUFDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztJQUlwRixLQUFLLEdBQVksQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQzs7SUFFbEUsY0FBYyxHQUFHLE1BQU07Ozs7OztBQU0zQixNQUFNLFVBQVUsY0FBYztBQUM5QixDQUFDOzs7OztBQUtELE1BQU0sVUFBVSxjQUFjO0lBQzVCLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDeEIsQ0FBQztBQUVEO0lBQzJCLHlCQUFNO0lBQy9CLGVBQVksT0FBZ0I7ZUFDMUIsa0JBQU0sT0FBTyxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCxxQkFBSzs7O0lBQUw7UUFDRSxPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLG1CQUFLLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyxFQUFBLENBQUMsQ0FBQztJQUNwRSxDQUFDOzs7O0lBRUQsc0JBQU07OztJQUFOO1FBQ0UsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxtQkFBSyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFBLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7O0lBRUQsdUJBQU87OztJQUFQO1FBQ0UsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxtQkFBSyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFBLENBQUMsQ0FBQztJQUNuRixDQUFDOzs7Ozs7O0lBRVMsc0JBQU07Ozs7OztJQUFoQixVQUFpQixTQUF5QixFQUFFLE9BQXlCO1FBQXJFLGlCQStDQzs7WUE3Q08sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQzs7WUFDekQsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQzs7WUFFekUsT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUTs7WUFDdkMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFROztZQUMvQixTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVE7UUFFdkMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFckUseURBQXlEO1FBQ3pELElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzVELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQztRQUdELElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMzQztRQUNELFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0MsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRW5DLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDdkMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDN0M7UUFFRCxPQUFPLENBQUMsYUFBYTs7O1FBQUM7O2dCQUNkLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixFQUFRO1lBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV0QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLENBQUMsZUFBZSxFQUFFOzs7OztZQUFFLFVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSyxPQUFBLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFSLENBQVEsRUFBQztpQkFDOUYsU0FBUzs7OztZQUFDLFVBQUEsT0FBTztnQkFDaEIsSUFBSSxLQUFLLElBQUksS0FBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzNELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBQyxDQUFDO1lBRUwsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzNCLENBQUMsRUFBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Z0JBakVGLFVBQVU7Ozs7Z0JBaENULE9BQU87O0lBa0dULFlBQUM7Q0FBQSxBQWxFRCxDQUMyQixNQUFNLEdBaUVoQztTQWpFWSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb250YWluZXJDb250ZW50LFxuICBPdmVybGF5LFxuICBEaWFsb2dSZWYsXG4gIE1vZGFsIGFzIE1vZGFsXyxcbiAgQ1NTQmFja2Ryb3AsXG4gIFByb21pc2VDb21wbGV0ZXJcbn0gZnJvbSAnbmd4LW1vZGlhbG9nLTcnO1xuXG5pbXBvcnQgeyBCU01vZGFsQ29udGFpbmVyIH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgT25lQnV0dG9uUHJlc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlc2V0cy9vbmUtYnV0dG9uLXByZXNldCc7XG5pbXBvcnQgeyBUd29CdXR0b25QcmVzZXRCdWlsZGVyLCBQcm9tcHRQcmVzZXRCdWlsZGVyIH0gZnJvbSAnLi9wcmVzZXRzL3R3by1idXR0b24tcHJlc2V0JztcblxuLy8gVE9ETzogdXNlIERJIGZhY3RvcnkgZm9yIHRoaXMuXG4vLyBUT0RPOiBjb25zb2xpZGF0ZSBkdXAgY29kZVxuY29uc3QgaXNEb2M6IGJvb2xlYW4gPSAhKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWRvY3VtZW50KTtcblxubGV0IGFuaW1hdGlvbkNsYXNzID0gJ3Nob3cnO1xuXG4vKipcbiAqIEV4ZWN1dGUgdGhpcyBtZXRob2QgdG8gZmxhZyB0aGF0IHlvdSBhcmUgd29ya2luZyB3aXRoIEJvb3RzdHJhcCB2ZXJzaW9uIDQuXG4gKiBAZGVwcmVjYXRlZCBGcm9tIHZlcnNpb24gNSwgbmd4LW1vZGlhbG9nJ3MgYm9vdHN0cmFwIHBsdWdpbiBpcyBzZXQgdG8gd29yayB3aXRoIHZlcnNpb24gNCBvZiBib290c3RyYXAgYnkgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDRNb2RlKCk6IHZvaWQge1xufVxuXG4vKipcbiAqIEV4ZWN1dGUgdGhpcyBtZXRob2QgdG8gZmxhZyB0aGF0IHlvdSBhcmUgd29ya2luZyB3aXRoIEJvb3RzdHJhcCB2ZXJzaW9uIDMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAzTW9kZSgpOiB2b2lkIHtcbiAgYW5pbWF0aW9uQ2xhc3MgPSAnaW4nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWwgZXh0ZW5kcyBNb2RhbF8ge1xuICBjb25zdHJ1Y3RvcihvdmVybGF5OiBPdmVybGF5KSB7XG4gICAgc3VwZXIob3ZlcmxheSk7XG4gIH1cblxuICBhbGVydCgpOiBPbmVCdXR0b25QcmVzZXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IE9uZUJ1dHRvblByZXNldEJ1aWxkZXIodGhpcywgPGFueT57aXNCbG9ja2luZzogZmFsc2V9KTtcbiAgfVxuXG4gIHByb21wdCgpOiBQcm9tcHRQcmVzZXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFByb21wdFByZXNldEJ1aWxkZXIodGhpcywgPGFueT57aXNCbG9ja2luZzogdHJ1ZSwga2V5Ym9hcmQ6IG51bGx9KTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogVHdvQnV0dG9uUHJlc2V0QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUd29CdXR0b25QcmVzZXRCdWlsZGVyKHRoaXMsIDxhbnk+e2lzQmxvY2tpbmc6IHRydWUsIGtleWJvYXJkOiBudWxsfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIGNvbnRlbnQ6IENvbnRhaW5lckNvbnRlbnQpOiBEaWFsb2dSZWY8YW55PiB7XG5cbiAgICBjb25zdCBiYWNrZHJvcFJlZiA9IHRoaXMuY3JlYXRlQmFja2Ryb3AoZGlhbG9nUmVmLCBDU1NCYWNrZHJvcCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5jcmVhdGVDb250YWluZXIoZGlhbG9nUmVmLCBCU01vZGFsQ29udGFpbmVyLCBjb250ZW50KTtcblxuICAgIGNvbnN0IG92ZXJsYXkgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBiYWNrZHJvcCA9IGJhY2tkcm9wUmVmLmluc3RhbmNlO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcblxuICAgIGRpYWxvZ1JlZi5pbkVsZW1lbnQgPyBvdmVybGF5Lmluc2lkZUVsZW1lbnQoKSA6IG92ZXJsYXkuZnVsbHNjcmVlbigpO1xuXG4gICAgLy8gYWRkIGJvZHkgY2xhc3MgaWYgdGhpcyBpcyB0aGUgb25seSBkaWFsb2cgaW4gdGhlIHN0YWNrXG4gICAgaWYgKGlzRG9jICYmICFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21vZGFsLW9wZW4nKTtcbiAgICB9XG5cblxuICAgIGlmIChkaWFsb2dSZWYuaW5FbGVtZW50KSB7XG4gICAgICBiYWNrZHJvcC5zZXRTdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB9XG4gICAgYmFja2Ryb3AuYWRkQ2xhc3MoJ21vZGFsLWJhY2tkcm9wIGZhZGUnLCB0cnVlKTtcblxuICAgIGJhY2tkcm9wLmFkZENsYXNzKGFuaW1hdGlvbkNsYXNzKTtcbiAgICBjb250YWluZXIuYWRkQ2xhc3MoYW5pbWF0aW9uQ2xhc3MpO1xuXG4gICAgaWYgKGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb250YWluZXJSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG92ZXJsYXkuYmVmb3JlRGVzdHJveSgoKSA9PiB7XG4gICAgICBjb25zdCBjb21wbGV0ZXIgPSBuZXcgUHJvbWlzZUNvbXBsZXRlcjx2b2lkPigpO1xuICAgICAgYmFja2Ryb3AucmVtb3ZlQ2xhc3MoYW5pbWF0aW9uQ2xhc3MpO1xuICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKGFuaW1hdGlvbkNsYXNzKTtcblxuICAgICAgY29tYmluZUxhdGVzdC5jYWxsKGJhY2tkcm9wLm15QW5pbWF0aW9uRW5kJCgpLCBjb250YWluZXIubXlBbmltYXRpb25FbmQkKCksIChzMSwgczIpID0+IFtzMSwgczJdKVxuICAgICAgICAuc3Vic2NyaWJlKHNvdXJjZXMgPT4ge1xuICAgICAgICAgIGlmIChpc0RvYyAmJiB0aGlzLm92ZXJsYXkuZ3JvdXBTdGFja0xlbmd0aChkaWFsb2dSZWYpID09PSAxKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb21wbGV0ZXIucmVzb2x2ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNvbXBsZXRlci5wcm9taXNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxufVxuIl19