UNPKG

27.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"ng2-bs3-modal.js.map","sources":["ng://ng2-bs3-modal/modal/models/modal-hide-type.ts","ng://ng2-bs3-modal/modal/models/modal-size.ts","ng://ng2-bs3-modal/modal/modal.service.ts","ng://ng2-bs3-modal/modal/modal.component.ts","ng://ng2-bs3-modal/modal/header.component.ts","ng://ng2-bs3-modal/modal/body.component.ts","ng://ng2-bs3-modal/modal/footer.component.ts","ng://ng2-bs3-modal/autofocus/autofocus.directive.ts","ng://ng2-bs3-modal/modal.module.ts"],"sourcesContent":["export enum BsModalHideType {\n Close,\n Dismiss,\n Backdrop,\n Keyboard,\n RouteChange,\n Destroy\n}\n","export class BsModalSize {\n static Small = 'sm';\n static Large = 'lg';\n\n static isValidSize(size: string) {\n return size && (size === BsModalSize.Small || size === BsModalSize.Large);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, fromEvent } from 'rxjs';\nimport { filter, map, share, tap } from 'rxjs/operators';\n\nimport { BsModalComponent } from './modal.component';\nimport { BsModalHideType } from './models';\n\nconst EVENT_SUFFIX = 'ng2-bs3-modal';\nconst KEYUP_EVENT_NAME = `keyup.${EVENT_SUFFIX}`;\nconst CLICK_EVENT_NAME = `click.${EVENT_SUFFIX}`;\nconst SHOW_EVENT_NAME = `show.bs.modal.${EVENT_SUFFIX}`;\n\n@Injectable()\nexport class BsModalService {\n\n private modals: BsModalComponent[] = [];\n private $body: JQuery;\n\n onBackdropClose$: Observable<BsModalHideType>;\n onKeyboardClose$: Observable<BsModalHideType>;\n onModalStack$: Observable<Event>;\n\n constructor() {\n this.$body = jQuery(document.body);\n\n this.onBackdropClose$ = fromEvent(this.$body, CLICK_EVENT_NAME).pipe(\n filter((e: MouseEvent) => jQuery(e.target).is('.modal')),\n map(() => BsModalHideType.Backdrop),\n share(),\n );\n\n this.onKeyboardClose$ = fromEvent(this.$body, KEYUP_EVENT_NAME).pipe(\n filter((e: KeyboardEvent) => e.which === 27),\n map(() => BsModalHideType.Keyboard),\n share()\n );\n\n this.onModalStack$ = fromEvent<Event>(this.$body, SHOW_EVENT_NAME).pipe(\n tap(() => {\n const zIndex = 1040 + (10 * jQuery('.modal:visible').length);\n jQuery(this).css('z-index', zIndex);\n setTimeout(function() {\n jQuery('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');\n }, 0);\n }),\n share()\n );\n }\n\n add(modal: BsModalComponent) {\n this.modals.push(modal);\n }\n\n remove(modal: BsModalComponent) {\n const index = this.modals.indexOf(modal);\n if (index > -1) {\n this.modals.splice(index, 1);\n }\n }\n\n focusNext() {\n const visible = this.modals.filter(m => m.visible);\n if (visible.length) {\n this.$body.addClass('modal-open');\n visible[visible.length - 1].focus();\n }\n }\n\n dismissAll() {\n return Promise.all(this.modals.map((m) => {\n return m.dismiss();\n }));\n }\n}\n","// tslint:disable:no-output-on-prefix\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnChanges,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n HostBinding,\n NgZone\n} from '@angular/core';\nimport { Observable, Observer, Subject, Subscription, of as observableOf, fromEvent, merge, zip } from 'rxjs';\nimport { take, filter, tap, share, map } from 'rxjs/operators';\n\nimport { BsModalHideEvent, BsModalHideType, BsModalOptions, BsModalSize } from './models';\nimport { BsModalService } from './modal.service';\n\nconst EVENT_SUFFIX = 'ng2-bs3-modal';\nconst SHOW_EVENT_NAME = `show.bs.modal.${EVENT_SUFFIX}`;\nconst SHOWN_EVENT_NAME = `shown.bs.modal.${EVENT_SUFFIX}`;\nconst HIDE_EVENT_NAME = `hide.bs.modal.${EVENT_SUFFIX}`;\nconst HIDDEN_EVENT_NAME = `hidden.bs.modal.${EVENT_SUFFIX}`;\nconst LOADED_EVENT_NAME = `loaded.bs.modal.${EVENT_SUFFIX}`;\nconst DATA_KEY = 'bs.modal';\n\n@Component({\n selector: 'bs-modal',\n template: `\n <div class=\"modal-dialog\" [ngClass]=\"getCssClasses()\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class BsModalComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n\n private overrideSize: string = null;\n private $modal: JQuery;\n private $dialog: JQuery;\n private onShowEvent$: Observable<Event>;\n private onShownEvent$: Observable<Event>;\n private onHideEvent$: Observable<Event>;\n private onHiddenEvent$: Observable<Event>;\n private onLoadedEvent$: Observable<Event>;\n private onShown$: Observable<{}>;\n private onInternalClose$: Subject<BsModalHideType> = new Subject<BsModalHideType>();\n private onDismiss$: Observable<BsModalHideType>;\n private onHide$: Observable<BsModalHideEvent>;\n private onHidden$: Observable<BsModalHideType>;\n private subscriptions: Subscription[] = [];\n private get options() {\n if (!this.$modal) {\n this.init();\n }\n return this.$modal.data(DATA_KEY).options;\n }\n\n visible = false;\n showing = false;\n hiding = false;\n\n @Input() animation = true;\n @Input() backdrop: string | boolean = true;\n @Input() keyboard = true;\n @Input() size: string;\n @Input() cssClass: string;\n\n @Output() onShow = new EventEmitter<Event>();\n @Output() onOpen = new EventEmitter<any>();\n @Output() onHide = new EventEmitter<any>();\n @Output() onClose = new EventEmitter<any>();\n @Output() onDismiss = new EventEmitter<BsModalHideType>();\n @Output() onLoaded = new EventEmitter<any>();\n\n @HostBinding('class.fade')\n get fadeClass() { return this.animation; }\n\n @HostBinding('class.modal')\n get modalClass() { return true; }\n\n @HostBinding('attr.role')\n get roleAttr() { return 'dialog'; }\n\n @HostBinding('attr.tabindex')\n get tabindexAttr() { return '-1'; }\n\n constructor(private element: ElementRef, private service: BsModalService, private zone: NgZone) {\n this.service.add(this);\n this.init();\n }\n\n ngOnInit() {\n this.wireUpEventEmitters();\n }\n\n ngAfterViewInit() {\n this.$dialog = this.$modal.find('.modal-dialog');\n }\n\n ngOnChanges() {\n this.setOptions({\n backdrop: this.backdrop,\n keyboard: this.keyboard\n });\n }\n\n ngOnDestroy() {\n this.onInternalClose$.next(BsModalHideType.Destroy);\n return this.destroy();\n }\n\n focus() {\n this.$modal.trigger('focus');\n }\n\n routerCanDeactivate(): any {\n this.onInternalClose$.next(BsModalHideType.RouteChange);\n return this.destroy();\n }\n\n open(size?: string) {\n this.overrideSize = null;\n if (BsModalSize.isValidSize(size)) {\n this.overrideSize = size;\n }\n return this.show().toPromise();\n }\n\n close(value?: any): Promise<{}> {\n this.onInternalClose$.next(BsModalHideType.Close);\n return this.hide().pipe(\n tap(() => this.onClose.emit(value)),\n ).toPromise().then(() => value);\n }\n\n dismiss(): Promise<{}> {\n this.onInternalClose$.next(BsModalHideType.Dismiss);\n return this.hide().toPromise();\n }\n\n getCssClasses(): string {\n const classes: string[] = [];\n\n if (this.isSmall()) {\n classes.push('modal-sm');\n }\n\n if (this.isLarge()) {\n classes.push('modal-lg');\n }\n\n if (this.cssClass) {\n classes.push(this.cssClass);\n }\n\n return classes.join(' ');\n }\n\n private isSmall() {\n return this.overrideSize !== BsModalSize.Large\n && this.size === BsModalSize.Small\n || this.overrideSize === BsModalSize.Small;\n }\n\n private isLarge() {\n return this.overrideSize !== BsModalSize.Small\n && this.size === BsModalSize.Large\n || this.overrideSize === BsModalSize.Large;\n }\n\n private show(): Observable<any> {\n if (this.visible && !this.hiding) {\n return observableOf(null);\n }\n this.showing = true;\n\n return Observable.create((o: Observer<any>) => {\n this.onShown$.pipe(\n take(1),\n ).subscribe(next => {\n o.next(next);\n o.complete();\n });\n\n this.transitionFix();\n this.$modal.modal('show');\n });\n }\n\n private transitionFix() {\n // Fix for shown.bs.modal not firing when .fade is present\n // https://github.com/twbs/bootstrap/issues/11793\n if (this.animation) {\n setTimeout(() => {\n this.$modal.trigger('focus').trigger(SHOWN_EVENT_NAME);\n }, jQuery.fn.modal['Constructor'].TRANSITION_DURATION);\n }\n }\n\n private hide(): Observable<BsModalHideType> {\n if (!this.visible && !this.showing) {\n return observableOf<BsModalHideType>(null);\n }\n this.hiding = true;\n\n return Observable.create((o: Observer<any>) => {\n this.onHidden$.pipe(\n take(1)\n ).subscribe(next => {\n o.next(next);\n o.complete();\n });\n\n this.$modal.modal('hide');\n });\n }\n\n private init() {\n this.$modal = jQuery(this.element.nativeElement);\n this.$modal.appendTo(document.body);\n this.$modal.modal({\n show: false\n });\n\n this.onShowEvent$ = fromEvent(this.$modal, SHOW_EVENT_NAME);\n this.onShownEvent$ = fromEvent(this.$modal, SHOWN_EVENT_NAME);\n this.onHideEvent$ = fromEvent(this.$modal, HIDE_EVENT_NAME);\n this.onHiddenEvent$ = fromEvent(this.$modal, HIDDEN_EVENT_NAME);\n this.onLoadedEvent$ = fromEvent(this.$modal, LOADED_EVENT_NAME);\n\n const onClose$ = merge(this.onInternalClose$, this.service.onBackdropClose$, this.service.onKeyboardClose$);\n\n this.onHide$ = zip(this.onHideEvent$, onClose$).pipe(\n map(x => <BsModalHideEvent>{ event: x[0], type: x[1] }),\n );\n\n this.onHidden$ = zip<BsModalHideType>(this.onHiddenEvent$, onClose$).pipe(\n map(x => x[1]),\n tap(this.setVisible(false)),\n tap(() => this.service.focusNext()),\n share(),\n );\n\n this.onShown$ = this.onShownEvent$.pipe(\n tap(this.setVisible(true)),\n share()\n );\n\n this.onDismiss$ = this.onHidden$.pipe(\n filter((x) => x !== BsModalHideType.Close)\n );\n\n // Start watching for events\n this.subscriptions.push(...[\n this.onShown$.subscribe(() => { }),\n this.onHidden$.subscribe(() => { }),\n this.service.onModalStack$.subscribe(() => { })\n ]);\n }\n\n private wireUpEventEmitters() {\n\n this.wireUpEventEmitter(this.onShow, this.onShowEvent$);\n this.wireUpEventEmitter(this.onOpen, this.onShown$);\n this.wireUpEventEmitter(this.onHide, this.onHide$);\n this.wireUpEventEmitter(this.onDismiss, this.onDismiss$);\n this.wireUpEventEmitter(this.onLoaded, this.onLoadedEvent$);\n }\n\n private wireUpEventEmitter<T>(emitter: EventEmitter<T>, stream$: Observable<T>) {\n if (emitter.observers.length === 0) {\n return;\n }\n\n const sub = stream$.subscribe((next) => {\n this.zone.run(() => {\n emitter.next(next);\n });\n });\n\n this.subscriptions.push(sub);\n }\n\n private setVisible = (isVisible) => {\n return () => {\n this.visible = isVisible;\n this.showing = false;\n this.hiding = false;\n };\n }\n\n private setOptions = (options: BsModalOptions) => {\n let backdrop = options.backdrop;\n if (typeof backdrop === 'string' && backdrop !== 'static') {\n backdrop = true;\n\n }\n\n if (options.backdrop !== undefined) {\n this.options.backdrop = backdrop;\n }\n if (options.keyboard !== undefined) {\n this.options.keyboard = options.keyboard;\n }\n }\n\n private destroy() {\n return this.hide().pipe(\n tap(() => {\n this.service.remove(this);\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subscriptions = [];\n if (this.$modal) {\n this.$modal.data(DATA_KEY, null);\n this.$modal.remove();\n this.$modal = null;\n }\n })\n ).toPromise();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { BsModalComponent } from './modal.component';\n\n@Component({\n selector: 'bs-modal-header',\n template: `\n <div class=\"modal-header\">\n <button *ngIf=\"showDismiss\" type=\"button\" class=\"close\" aria-label=\"Dismiss\" (click)=\"modal.dismiss()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <ng-content></ng-content>\n </div>\n `\n})\nexport class BsModalHeaderComponent {\n @Input() showDismiss = false;\n constructor(public modal: BsModalComponent) { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-modal-body',\n template: `\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class BsModalBodyComponent { }\n","import { Component, Input } from '@angular/core';\nimport { BsModalComponent } from './modal.component';\n\n@Component({\n selector: 'bs-modal-footer',\n template: `\n <div class=\"modal-footer\">\n <ng-content></ng-content>\n <button *ngIf=\"showDefaultButtons\" type=\"button\" class=\"btn btn-default\" (click)=\"modal.dismiss()\">\n {{dismissButtonLabel}}\n </button>\n <button *ngIf=\"showDefaultButtons\" type=\"button\" class=\"btn btn-primary\" (click)=\"modal.close()\">\n {{closeButtonLabel}}\n </button>\n </div>\n `\n})\nexport class BsModalFooterComponent {\n @Input() showDefaultButtons = false;\n @Input() dismissButtonLabel = 'Dismiss';\n @Input() closeButtonLabel = 'Close';\n constructor(public modal: BsModalComponent) { }\n}\n","import { Directive, ElementRef, Inject, Optional } from '@angular/core';\nimport { BsModalComponent } from '../modal/modal.component';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[autofocus]'\n})\nexport class BsAutofocusDirective {\n constructor(private el: ElementRef, @Optional() private modal: BsModalComponent) {\n if (modal) {\n this.modal.onOpen.subscribe(() => {\n this.el.nativeElement.focus();\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BsModalService } from './modal/modal.service';\nimport { BsModalComponent } from './modal/modal.component';\nimport { BsModalHeaderComponent } from './modal/header.component';\nimport { BsModalBodyComponent } from './modal/body.component';\nimport { BsModalFooterComponent } from './modal/footer.component';\nimport { BsAutofocusDirective } from './autofocus/autofocus.directive';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n BsModalComponent,\n BsModalHeaderComponent,\n BsModalBodyComponent,\n BsModalFooterComponent,\n BsAutofocusDirective\n ],\n providers: [\n BsModalService\n ],\n exports: [\n BsModalComponent,\n BsModalHeaderComponent,\n BsModalBodyComponent,\n BsModalFooterComponent,\n BsAutofocusDirective\n ]\n})\nexport class BsModalModule { }\n"],"names":["EVENT_SUFFIX","SHOW_EVENT_NAME","observableOf"],"mappings":"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"}