UNPKG

ngx-modialog-10

Version:
124 lines 11.9 kB
/** * @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-10'; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbW9kaWFsb2ctMTAvcGx1Z2lucy9ib290c3RyYXAvIiwic291cmNlcyI6WyJsaWIvbW9kYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUVMLE9BQU8sRUFFUCxLQUFLLElBQUksTUFBTSxFQUNmLFdBQVcsRUFDWCxnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztNQUlwRixLQUFLLEdBQVksQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQzs7SUFFbEUsY0FBYyxHQUFHLE1BQU07Ozs7OztBQU0zQixNQUFNLFVBQVUsY0FBYztBQUM5QixDQUFDOzs7OztBQUtELE1BQU0sVUFBVSxjQUFjO0lBQzVCLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDeEIsQ0FBQztBQUdELE1BQU0sT0FBTyxLQUFNLFNBQVEsTUFBTTs7OztJQUMvQixZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDOzs7O0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsbUJBQUssRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFDLEVBQUEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxtQkFBSyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFBLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7O0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsbUJBQUssRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsRUFBQSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7Ozs7OztJQUVTLE1BQU0sQ0FBQyxTQUF5QixFQUFFLE9BQXlCOztjQUU3RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDOztjQUN6RCxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDOztjQUV6RSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFROztjQUN2QyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVE7O2NBQy9CLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUTtRQUV2QyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVyRSx5REFBeUQ7UUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNDO1FBR0QsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUvQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbkMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUN2QyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM3QztRQUVELE9BQU8sQ0FBQyxhQUFhOzs7UUFBQyxHQUFHLEVBQUU7O2tCQUNuQixTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsRUFBUTtZQUM5QyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxDQUFDLGVBQWUsRUFBRTs7Ozs7WUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO2lCQUM5RixTQUFTOzs7O1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMzRCxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzlDO2dCQUVELFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUMsQ0FBQztZQUVMLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUMzQixDQUFDLEVBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OztZQWpFRixVQUFVOzs7O1lBaENULE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIENvbnRhaW5lckNvbnRlbnQsXG4gIE92ZXJsYXksXG4gIERpYWxvZ1JlZixcbiAgTW9kYWwgYXMgTW9kYWxfLFxuICBDU1NCYWNrZHJvcCxcbiAgUHJvbWlzZUNvbXBsZXRlclxufSBmcm9tICduZ3gtbW9kaWFsb2ctMTAnO1xuXG5pbXBvcnQgeyBCU01vZGFsQ29udGFpbmVyIH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgT25lQnV0dG9uUHJlc2V0QnVpbGRlciB9IGZyb20gJy4vcHJlc2V0cy9vbmUtYnV0dG9uLXByZXNldCc7XG5pbXBvcnQgeyBUd29CdXR0b25QcmVzZXRCdWlsZGVyLCBQcm9tcHRQcmVzZXRCdWlsZGVyIH0gZnJvbSAnLi9wcmVzZXRzL3R3by1idXR0b24tcHJlc2V0JztcblxuLy8gVE9ETzogdXNlIERJIGZhY3RvcnkgZm9yIHRoaXMuXG4vLyBUT0RPOiBjb25zb2xpZGF0ZSBkdXAgY29kZVxuY29uc3QgaXNEb2M6IGJvb2xlYW4gPSAhKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWRvY3VtZW50KTtcblxubGV0IGFuaW1hdGlvbkNsYXNzID0gJ3Nob3cnO1xuXG4vKipcbiAqIEV4ZWN1dGUgdGhpcyBtZXRob2QgdG8gZmxhZyB0aGF0IHlvdSBhcmUgd29ya2luZyB3aXRoIEJvb3RzdHJhcCB2ZXJzaW9uIDQuXG4gKiBAZGVwcmVjYXRlZCBGcm9tIHZlcnNpb24gNSwgbmd4LW1vZGlhbG9nJ3MgYm9vdHN0cmFwIHBsdWdpbiBpcyBzZXQgdG8gd29yayB3aXRoIHZlcnNpb24gNCBvZiBib290c3RyYXAgYnkgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcDRNb2RlKCk6IHZvaWQge1xufVxuXG4vKipcbiAqIEV4ZWN1dGUgdGhpcyBtZXRob2QgdG8gZmxhZyB0aGF0IHlvdSBhcmUgd29ya2luZyB3aXRoIEJvb3RzdHJhcCB2ZXJzaW9uIDMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAzTW9kZSgpOiB2b2lkIHtcbiAgYW5pbWF0aW9uQ2xhc3MgPSAnaW4nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWwgZXh0ZW5kcyBNb2RhbF8ge1xuICBjb25zdHJ1Y3RvcihvdmVybGF5OiBPdmVybGF5KSB7XG4gICAgc3VwZXIob3ZlcmxheSk7XG4gIH1cblxuICBhbGVydCgpOiBPbmVCdXR0b25QcmVzZXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IE9uZUJ1dHRvblByZXNldEJ1aWxkZXIodGhpcywgPGFueT57aXNCbG9ja2luZzogZmFsc2V9KTtcbiAgfVxuXG4gIHByb21wdCgpOiBQcm9tcHRQcmVzZXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFByb21wdFByZXNldEJ1aWxkZXIodGhpcywgPGFueT57aXNCbG9ja2luZzogdHJ1ZSwga2V5Ym9hcmQ6IG51bGx9KTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogVHdvQnV0dG9uUHJlc2V0QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUd29CdXR0b25QcmVzZXRCdWlsZGVyKHRoaXMsIDxhbnk+e2lzQmxvY2tpbmc6IHRydWUsIGtleWJvYXJkOiBudWxsfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIGNvbnRlbnQ6IENvbnRhaW5lckNvbnRlbnQpOiBEaWFsb2dSZWY8YW55PiB7XG5cbiAgICBjb25zdCBiYWNrZHJvcFJlZiA9IHRoaXMuY3JlYXRlQmFja2Ryb3AoZGlhbG9nUmVmLCBDU1NCYWNrZHJvcCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5jcmVhdGVDb250YWluZXIoZGlhbG9nUmVmLCBCU01vZGFsQ29udGFpbmVyLCBjb250ZW50KTtcblxuICAgIGNvbnN0IG92ZXJsYXkgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBiYWNrZHJvcCA9IGJhY2tkcm9wUmVmLmluc3RhbmNlO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcblxuICAgIGRpYWxvZ1JlZi5pbkVsZW1lbnQgPyBvdmVybGF5Lmluc2lkZUVsZW1lbnQoKSA6IG92ZXJsYXkuZnVsbHNjcmVlbigpO1xuXG4gICAgLy8gYWRkIGJvZHkgY2xhc3MgaWYgdGhpcyBpcyB0aGUgb25seSBkaWFsb2cgaW4gdGhlIHN0YWNrXG4gICAgaWYgKGlzRG9jICYmICFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21vZGFsLW9wZW4nKTtcbiAgICB9XG5cblxuICAgIGlmIChkaWFsb2dSZWYuaW5FbGVtZW50KSB7XG4gICAgICBiYWNrZHJvcC5zZXRTdHlsZSgncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB9XG4gICAgYmFja2Ryb3AuYWRkQ2xhc3MoJ21vZGFsLWJhY2tkcm9wIGZhZGUnLCB0cnVlKTtcblxuICAgIGJhY2tkcm9wLmFkZENsYXNzKGFuaW1hdGlvbkNsYXNzKTtcbiAgICBjb250YWluZXIuYWRkQ2xhc3MoYW5pbWF0aW9uQ2xhc3MpO1xuXG4gICAgaWYgKGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb250YWluZXJSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG92ZXJsYXkuYmVmb3JlRGVzdHJveSgoKSA9PiB7XG4gICAgICBjb25zdCBjb21wbGV0ZXIgPSBuZXcgUHJvbWlzZUNvbXBsZXRlcjx2b2lkPigpO1xuICAgICAgYmFja2Ryb3AucmVtb3ZlQ2xhc3MoYW5pbWF0aW9uQ2xhc3MpO1xuICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKGFuaW1hdGlvbkNsYXNzKTtcblxuICAgICAgY29tYmluZUxhdGVzdC5jYWxsKGJhY2tkcm9wLm15QW5pbWF0aW9uRW5kJCgpLCBjb250YWluZXIubXlBbmltYXRpb25FbmQkKCksIChzMSwgczIpID0+IFtzMSwgczJdKVxuICAgICAgICAuc3Vic2NyaWJlKHNvdXJjZXMgPT4ge1xuICAgICAgICAgIGlmIChpc0RvYyAmJiB0aGlzLm92ZXJsYXkuZ3JvdXBTdGFja0xlbmd0aChkaWFsb2dSZWYpID09PSAxKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb21wbGV0ZXIucmVzb2x2ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNvbXBsZXRlci5wcm9taXNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxufVxuIl19