UNPKG

15.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-overlaypanel.umd.js","sources":["ng://primeng/overlaypanel/overlaypanel.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,OnDestroy,EventEmitter,Renderer2,ElementRef,ChangeDetectorRef,NgZone,\n ContentChildren,TemplateRef,AfterContentInit,QueryList,ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomHandler} from 'primeng/dom';\nimport {PrimeTemplate} from 'primeng/api';\nimport {trigger,state,style,transition,animate,AnimationEvent} from '@angular/animations';\n\n@Component({\n selector: 'p-overlayPanel',\n template: `\n <div *ngIf=\"render\" [ngClass]=\"'ui-overlaypanel ui-widget ui-widget-content ui-corner-all ui-shadow'\" [ngStyle]=\"style\" [class]=\"styleClass\" (click)=\"onContainerClick()\"\n [@animation]=\"{value: (overlayVisible ? 'open': 'close'), params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" \n (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\">\n <div class=\"ui-overlaypanel-content\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n <a tabindex=\"0\" *ngIf=\"showCloseIcon\" class=\"ui-overlaypanel-close ui-state-default\" (click)=\"onCloseClick($event)\" (keydown.enter)=\"hide()\" [attr.aria-label]=\"ariaCloseLabel\">\n <span class=\"ui-overlaypanel-close-icon pi pi-times\"></span>\n </a>\n </div>\n `,\n animations: [\n trigger('animation', [\n state('void', style({\n transform: 'translateY(5%)',\n opacity: 0\n })),\n state('close', style({\n transform: 'translateY(5%)',\n opacity: 0\n })),\n state('open', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => open', animate('{{showTransitionParams}}')),\n transition('open => close', animate('{{hideTransitionParams}}'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class OverlayPanel implements AfterContentInit, OnDestroy {\n\n @Input() dismissable: boolean = true;\n\n @Input() showCloseIcon: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n \n @Input() appendTo: any;\n\n @Input() autoZIndex: boolean = true;\n\n @Input() ariaCloseLabel: string;\n \n @Input() baseZIndex: number = 0;\n \n @Input() showTransitionOptions: string = '225ms ease-out';\n\n @Input() hideTransitionOptions: string = '195ms ease-in';\n\n @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n container: HTMLDivElement;\n\n overlayVisible: boolean = false;\n\n render: boolean = false;\n\n isContainerClicked: boolean = true;\n\n documentClickListener: any;\n \n target: any;\n \n willHide: boolean;\n \n documentResizeListener: any;\n\n contentTemplate: TemplateRef<any>;\n\n destroyCallback: Function;\n\n constructor(public el: ElementRef, public renderer: Renderer2, private cd: ChangeDetectorRef, private zone: NgZone) {}\n \n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n onContainerClick() {\n this.isContainerClicked = true;\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener && this.dismissable) {\n this.zone.runOutsideAngular(() => {\n let documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';\n this.documentClickListener = this.renderer.listen('document', documentEvent, (event) => {\n if (!this.container.contains(event.target) && this.target !== event.target && !this.target.contains(event.target) && !this.isContainerClicked) {\n this.zone.run(() => {\n this.hide();\n });\n }\n\n this.isContainerClicked = false;\n this.cd.markForCheck();\n });\n });\n }\n }\n \n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n \n toggle(event, target?) {\n if (this.overlayVisible) {\n if (this.hasTargetChanged(event, target)) {\n this.destroyCallback = () => {\n this.show(null, (target||event.currentTarget||event.target));\n };\n }\n\n this.overlayVisible = false;\n }\n else {\n this.show(event, target);\n }\n }\n\n show(event, target?) {\n this.target = target||event.currentTarget||event.target;\n this.overlayVisible = true;\n this.render = true;\n }\n\n hasTargetChanged(event, target) {\n return this.target != null && this.target !== (target||event.currentTarget||event.target);\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.container);\n else\n DomHandler.appendChild(this.container, this.appendTo);\n }\n }\n\n restoreAppend() {\n if (this.container && this.appendTo) {\n this.el.nativeElement.appendChild(this.container);\n }\n }\n\n align() {\n if (this.autoZIndex) {\n this.container.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n DomHandler.absolutePosition(this.container, this.target);\n if (DomHandler.getOffset(this.container).top < DomHandler.getOffset(this.target).top) {\n DomHandler.addClass(this.container, 'ui-overlaypanel-flipped');\n }\n if (Math.floor(DomHandler.getOffset(this.container).left) < Math.floor(DomHandler.getOffset(this.target).left) &&\n DomHandler.getOffset(this.container).left > 0) {\n DomHandler.addClass(this.container, 'ui-overlaypanel-shifted');\n }\n }\n\n onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'open') {\n this.container = event.element;\n this.onShow.emit(null);\n this.appendContainer();\n this.align();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n if (this.destroyCallback) {\n this.destroyCallback();\n this.destroyCallback = null;\n }\n break;\n \n case 'close':\n this.onContainerDestroy();\n this.onHide.emit({});\n this.render = false;\n break; \n }\n }\n\n hide() {\n this.overlayVisible = false;\n }\n\n onCloseClick(event) {\n this.hide();\n event.preventDefault();\n }\n\n onWindowResize(event) {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n \n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onContainerDestroy() {\n this.target = null;\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n }\n\n ngOnDestroy() {\n this.target = null;\n this.destroyCallback = null;\n if (this.container) {\n this.restoreAppend();\n this.onContainerDestroy();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [OverlayPanel],\n declarations: [OverlayPanel]\n})\nexport class OverlayPanelModule { }\n"],"names":["EventEmitter","DomHandler","ElementRef","Renderer2","ChangeDetectorRef","NgZone","Input","Output","ContentChildren","PrimeTemplate","Component","trigger","state","style","transition","animate","ChangeDetectionStrategy","NgModule","CommonModule"],"mappings":"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"}
\No newline at end of file