UNPKG

primeng

Version:

PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,

1 lines 48.1 kB
{"version":3,"file":"primeng-overlay.mjs","sources":["../../src/overlay/style/overlaystyle.ts","../../src/overlay/overlay.ts","../../src/overlay/primeng-overlay.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n root: ({ instance }: { instance: any }) => {\n const modal = instance.modal();\n const responsiveStyle = modal ? instance.$overlayResponsiveOptions()?.style : instance.$overlayOptions()?.style;\n return {\n position: 'absolute',\n top: '0',\n ...responsiveStyle,\n ...instance.style()\n };\n },\n content: ({ instance }: { instance: any }) => {\n const modal = instance.modal();\n const responsiveContentStyle = modal ? instance.$overlayResponsiveOptions()?.contentStyle : instance.$overlayOptions()?.contentStyle;\n return {\n ...responsiveContentStyle,\n ...instance.contentStyle()\n };\n }\n};\n\nconst style = /*css*/ `\n.p-overlay-modal {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-overlay-content {\n transform-origin: inherit;\n will-change: transform;\n}\n\n/* Github Issue #18560 */\n.p-component-overlay.p-component {\n position: relative;\n}\n\n.p-overlay-modal > .p-overlay-content {\n z-index: 1;\n width: 90%;\n}\n\n/* Position */\n/* top */\n.p-overlay-top {\n align-items: flex-start;\n}\n.p-overlay-top-start {\n align-items: flex-start;\n justify-content: flex-start;\n}\n.p-overlay-top-end {\n align-items: flex-start;\n justify-content: flex-end;\n}\n\n/* bottom */\n.p-overlay-bottom {\n align-items: flex-end;\n}\n.p-overlay-bottom-start {\n align-items: flex-end;\n justify-content: flex-start;\n}\n.p-overlay-bottom-end {\n align-items: flex-end;\n justify-content: flex-end;\n}\n\n/* left */\n.p-overlay-left {\n justify-content: flex-start;\n}\n.p-overlay-left-start {\n justify-content: flex-start;\n align-items: flex-start;\n}\n.p-overlay-left-end {\n justify-content: flex-start;\n align-items: flex-end;\n}\n\n/* right */\n.p-overlay-right {\n justify-content: flex-end;\n}\n.p-overlay-right-start {\n justify-content: flex-end;\n align-items: flex-start;\n}\n.p-overlay-right-end {\n justify-content: flex-end;\n align-items: flex-end;\n}\n\n.p-overlay-content ~ .p-overlay-content {\n display: none;\n}\n`;\n\nconst classes = {\n host: 'p-overlay-host',\n root: ({ instance }: { instance: any }) => {\n const modal = instance.modal();\n const dir = instance.overlayResponsiveDirection();\n return [\n 'p-overlay p-component',\n {\n 'p-overlay-modal p-overlay-mask p-overlay-mask-enter-active': modal,\n 'p-overlay-center': modal && dir === 'center',\n 'p-overlay-top': modal && dir === 'top',\n 'p-overlay-top-start': modal && dir === 'top-start',\n 'p-overlay-top-end': modal && dir === 'top-end',\n 'p-overlay-bottom': modal && dir === 'bottom',\n 'p-overlay-bottom-start': modal && dir === 'bottom-start',\n 'p-overlay-bottom-end': modal && dir === 'bottom-end',\n 'p-overlay-left': modal && dir === 'left',\n 'p-overlay-left-start': modal && dir === 'left-start',\n 'p-overlay-left-end': modal && dir === 'left-end',\n 'p-overlay-right': modal && dir === 'right',\n 'p-overlay-right-start': modal && dir === 'right-start',\n 'p-overlay-right-end': modal && dir === 'right-end'\n }\n ];\n },\n content: 'p-overlay-content'\n};\n\n@Injectable()\nexport class OverlayStyle extends BaseStyle {\n name = 'overlay';\n\n style = style;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, InjectionToken, input, model, NgModule, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { absolutePosition, addClass, appendChild, focus, getOuterWidth, getTargetElement, isTouchDevice, relativePosition, removeClass } from '@primeuix/utils';\nimport { OverlayModeType, OverlayOnBeforeHideEvent, OverlayOnBeforeShowEvent, OverlayOnHideEvent, OverlayOnShowEvent, OverlayOptions, OverlayService, ResponsiveOverlayOptions, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { MotionModule } from 'primeng/motion';\nimport type { AppendTo, CSSProperties } from 'primeng/types/shared';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { OverlayContentTemplateContext } from 'primeng/types/overlay';\nimport { OverlayStyle } from './style/overlaystyle';\n\nconst OVERLAY_INSTANCE = new InjectionToken<Overlay>('OVERLAY_INSTANCE');\n\n/**\n * This API allows overlay components to be controlled from the PrimeNG. In this way, all overlay components in the application can have the same behavior.\n * @group Components\n */\n@Component({\n selector: 'p-overlay',\n standalone: true,\n imports: [NgTemplateOutlet, SharedModule, Bind, MotionModule],\n hostDirectives: [Bind],\n template: `\n @if (inline()) {\n <ng-content />\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: { $implicit: { mode: null } }\" />\n } @else {\n @if (modalVisible()) {\n <div #overlay [class]=\"cn(cx('root'), mergedStyleClass())\" [style]=\"sx('root')\" [pBind]=\"ptm('root')\" (click)=\"onOverlayClick()\">\n <p-motion\n [visible]=\"visible()\"\n name=\"p-anchored-overlay\"\n [appear]=\"true\"\n [options]=\"computedMotionOptions()\"\n (onBeforeEnter)=\"onOverlayBeforeEnter($event)\"\n (onEnter)=\"onOverlayEnter($event)\"\n (onAfterEnter)=\"onOverlayAfterEnter($event)\"\n (onBeforeLeave)=\"onOverlayBeforeLeave($event)\"\n (onLeave)=\"onOverlayLeave($event)\"\n (onAfterLeave)=\"onOverlayAfterLeave($event)\"\n >\n <div #content [class]=\"cn(cx('content'), mergedContentStyleClass())\" [style]=\"sx('content')\" [pBind]=\"ptm('content')\" (click)=\"onOverlayContentClick($event)\">\n <ng-content />\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: { $implicit: { mode: overlayMode() } }\" />\n </div>\n </p-motion>\n </div>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [OverlayStyle, { provide: OVERLAY_INSTANCE, useExisting: Overlay }, { provide: PARENT_INSTANCE, useExisting: Overlay }]\n})\nexport class Overlay extends BaseComponent {\n componentName = 'Overlay';\n\n $pcOverlay: Overlay | undefined = inject(OVERLAY_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n hostName = input('');\n\n /**\n * The visible property is an input that determines the visibility of the component.\n * @defaultValue false\n * @group Props\n */\n visible = model<boolean>(false);\n /**\n * The mode property is an input that determines the overlay mode type or string.\n * @defaultValue null\n * @group Props\n */\n mode = input<OverlayModeType | string>();\n /**\n * The style property is an input that determines the style object for the component.\n * @defaultValue null\n * @group Props\n */\n style = input<CSSProperties>();\n /**\n * The styleClass property is an input that determines the CSS class(es) for the component.\n * @defaultValue null\n * @group Props\n */\n styleClass = input<string>();\n /**\n * The contentStyle property is an input that determines the style object for the content of the component.\n * @defaultValue null\n * @group Props\n */\n contentStyle = input<CSSProperties>();\n /**\n * The contentStyleClass property is an input that determines the CSS class(es) for the content of the component.\n * @defaultValue null\n * @group Props\n */\n contentStyleClass = input<string>();\n /**\n * The target property is an input that specifies the target element or selector for the component.\n * @defaultValue null\n * @group Props\n */\n target = input<string | null>();\n /**\n * The autoZIndex determines whether to automatically manage layering. Its default value is 'false'.\n * @defaultValue false\n * @group Props\n */\n autoZIndex = input<boolean>();\n /**\n * The baseZIndex is base zIndex value to use in layering.\n * @defaultValue null\n * @group Props\n */\n baseZIndex = input<number>();\n /**\n * The listener property is an input that specifies the listener object for the component.\n * @defaultValue null\n * @group Props\n */\n listener = input<any>();\n /**\n * It is the option used to determine in which mode it should appear according to the given media or breakpoint.\n * @defaultValue null\n * @group Props\n */\n responsive = input<ResponsiveOverlayOptions>();\n /**\n * The options property is an input that specifies the overlay options for the component.\n * @defaultValue null\n * @group Props\n */\n options = input<OverlayOptions>();\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @defaultValue 'self'\n * @group Props\n */\n appendTo = input<AppendTo>(undefined);\n /**\n * Specifies whether the overlay should be rendered inline within the current component's template.\n * @defaultValue false\n * @group Props\n */\n inline = input<boolean>(false);\n /**\n * The motion options.\n * @group Props\n */\n motionOptions = input<MotionOptions | undefined>(undefined);\n\n /**\n * Callback to invoke before the overlay is shown.\n * @param {OverlayOnBeforeShowEvent} event - Custom overlay before show event.\n * @group Emits\n */\n onBeforeShow = output<OverlayOnBeforeShowEvent>();\n /**\n * Callback to invoke when the overlay is shown.\n * @param {OverlayOnShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n onShow = output<OverlayOnShowEvent>();\n /**\n * Callback to invoke before the overlay is hidden.\n * @param {OverlayOnBeforeHideEvent} event - Custom overlay before hide event.\n * @group Emits\n */\n onBeforeHide = output<OverlayOnBeforeHideEvent>();\n /**\n * Callback to invoke when the overlay is hidden\n * @param {OverlayOnHideEvent} event - Custom hide event.\n * @group Emits\n */\n onHide = output<OverlayOnHideEvent>();\n /**\n * Callback to invoke when the animation is started.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n * @deprecated since v21.0.0. Use onOverlayBeforeEnter and onOverlayBeforeLeave instead.\n */\n onAnimationStart = output<AnimationEvent>();\n /**\n * Callback to invoke when the animation is done.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n * @deprecated since v21.0.0. Use onOverlayAfterEnter and onOverlayAfterLeave instead.\n */\n onAnimationDone = output<AnimationEvent>();\n /**\n * Callback to invoke before the overlay enters.\n * @param {MotionEvent} event - Event before enter.\n * @group Emits\n */\n onBeforeEnter = output<MotionEvent>();\n /**\n * Callback to invoke when the overlay enters.\n * @param {MotionEvent} event - Event on enter.\n * @group Emits\n */\n onEnter = output<MotionEvent>();\n /**\n * Callback to invoke after the overlay has entered.\n * @param {MotionEvent} event - Event after enter.\n * @group Emits\n */\n onAfterEnter = output<MotionEvent>();\n /**\n * Callback to invoke before the overlay leaves.\n * @param {MotionEvent} event - Event before leave.\n * @group Emits\n */\n onBeforeLeave = output<MotionEvent>();\n /**\n * Callback to invoke when the overlay leaves.\n * @param {MotionEvent} event - Event on leave.\n * @group Emits\n */\n onLeave = output<MotionEvent>();\n /**\n * Callback to invoke after the overlay has left.\n * @param {MotionEvent} event - Event after leave.\n * @group Emits\n */\n onAfterLeave = output<MotionEvent>();\n\n overlayViewChild = viewChild<ElementRef>('overlay');\n\n contentViewChild = viewChild<ElementRef>('content');\n /**\n * Content template of the component.\n * @param {OverlayContentTemplateContext} context - content context.\n * @see {@link OverlayContentTemplateContext}\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<OverlayContentTemplateContext>>('content', { descendants: false });\n\n hostAttrSelector = input<string>();\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n $overlayOptions = computed<OverlayOptions>(() => {\n return { ...this.config?.overlayOptions, ...this.options() };\n });\n\n $overlayResponsiveOptions = computed<ResponsiveOverlayOptions>(() => {\n return { ...this.$overlayOptions()?.responsive, ...this.responsive() };\n });\n\n overlayResponsiveDirection = computed(() => this.$overlayResponsiveOptions()?.direction || 'center');\n\n $mode = computed(() => this.mode() || this.$overlayOptions()?.mode);\n\n mergedStyleClass = computed(() => this.cn(this.styleClass(), this.modal() ? this.$overlayResponsiveOptions()?.styleClass : this.$overlayOptions()?.styleClass));\n\n mergedContentStyleClass = computed(() => this.cn(this.contentStyleClass(), this.modal() ? this.$overlayResponsiveOptions()?.contentStyleClass : this.$overlayOptions()?.contentStyleClass));\n\n $target = computed(() => {\n const value = this.target() || this.$overlayOptions()?.target;\n return value === undefined ? '@prev' : value;\n });\n\n $autoZIndex = computed(() => {\n const value = this.autoZIndex() || this.$overlayOptions()?.autoZIndex;\n return value === undefined ? true : value;\n });\n\n $baseZIndex = computed(() => {\n const value = this.baseZIndex() || this.$overlayOptions()?.baseZIndex;\n return value === undefined ? 0 : value;\n });\n\n $listener = computed(() => this.listener() || this.$overlayOptions()?.listener);\n\n modal = computed(() => {\n if (isPlatformBrowser(this.platformId)) {\n return (\n this.$mode() === 'modal' ||\n (this.$overlayResponsiveOptions() && this.document.defaultView?.matchMedia(this.$overlayResponsiveOptions().media?.replace('@media', '') || `(max-width: ${this.$overlayResponsiveOptions().breakpoint})`).matches)\n );\n }\n return undefined;\n });\n\n overlayMode = computed(() => this.$mode() || (this.modal() ? 'modal' : 'overlay'));\n\n overlayEl = computed(() => this.overlayViewChild()?.nativeElement);\n\n contentEl = computed(() => this.contentViewChild()?.nativeElement);\n\n targetEl = computed(() => <any>getTargetElement(this.$target(), this.el?.nativeElement));\n\n computedMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('motion'),\n ...(this.motionOptions() || this.$overlayOptions()?.motionOptions)\n };\n });\n\n modalVisible = signal(false);\n\n isOverlayClicked = false;\n\n isOverlayContentClicked = false;\n\n scrollHandler: any;\n\n documentClickListener: any;\n\n documentResizeListener: any;\n\n _componentStyle = inject(OverlayStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n private documentKeyboardListener: VoidListener;\n\n private parentDragSubscription: Subscription | null = null;\n\n protected transformOptions: any = {\n default: 'scaleY(0.8)',\n center: 'scale(0.7)',\n top: 'translate3d(0px, -100%, 0px)',\n 'top-start': 'translate3d(0px, -100%, 0px)',\n 'top-end': 'translate3d(0px, -100%, 0px)',\n bottom: 'translate3d(0px, 100%, 0px)',\n 'bottom-start': 'translate3d(0px, 100%, 0px)',\n 'bottom-end': 'translate3d(0px, 100%, 0px)',\n left: 'translate3d(-100%, 0px, 0px)',\n 'left-start': 'translate3d(-100%, 0px, 0px)',\n 'left-end': 'translate3d(-100%, 0px, 0px)',\n right: 'translate3d(100%, 0px, 0px)',\n 'right-start': 'translate3d(100%, 0px, 0px)',\n 'right-end': 'translate3d(100%, 0px, 0px)'\n };\n\n overlayService = inject(OverlayService);\n\n constructor() {\n super();\n\n effect(() => {\n const v = this.visible();\n if (v && !this.modalVisible()) {\n this.modalVisible.set(true);\n }\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n }\n\n show(overlay?: HTMLElement, isFocus = false) {\n this.onVisibleChange(true);\n this.handleEvents('onShow', { overlay: overlay || this.overlayEl(), target: this.targetEl(), mode: this.overlayMode() });\n\n isFocus && focus(this.targetEl());\n this.modal() && addClass(this.document?.body, 'p-overflow-hidden');\n }\n\n hide(overlay?: HTMLElement, isFocus = false) {\n if (!this.visible()) {\n return;\n } else {\n this.onVisibleChange(false);\n this.handleEvents('onHide', { overlay: overlay || this.overlayEl(), target: this.targetEl(), mode: this.overlayMode() });\n isFocus && focus(this.targetEl() as any);\n this.modal() && removeClass(this.document?.body, 'p-overflow-hidden');\n }\n }\n\n onVisibleChange(visible: boolean) {\n this.visible.set(visible);\n }\n\n onOverlayClick() {\n this.isOverlayClicked = true;\n }\n\n onOverlayContentClick(event: MouseEvent) {\n this.overlayService.add({\n originalEvent: event,\n target: this.targetEl()\n });\n\n this.isOverlayContentClicked = true;\n }\n\n container = signal<any>(undefined);\n\n onOverlayBeforeEnter(event: MotionEvent) {\n this.handleEvents('onBeforeShow', { overlay: this.overlayEl(), target: this.targetEl(), mode: this.overlayMode() });\n this.container.set(this.overlayEl() || event.element);\n this.show(this.overlayEl(), true);\n this.hostAttrSelector() && this.overlayEl() && this.overlayEl().setAttribute(this.hostAttrSelector(), '');\n this.appendOverlay();\n this.alignOverlay();\n this.bindParentDragListener();\n this.setZIndex();\n\n this.handleEvents('onBeforeEnter', event);\n }\n\n onOverlayEnter(event: MotionEvent) {\n this.handleEvents('onEnter', event);\n }\n\n onOverlayAfterEnter(event: MotionEvent) {\n this.bindListeners();\n this.handleEvents('onAfterEnter', event);\n }\n\n onOverlayBeforeLeave(event: MotionEvent) {\n this.handleEvents('onBeforeHide', { overlay: this.overlayEl(), target: this.targetEl(), mode: this.overlayMode() });\n this.handleEvents('onBeforeLeave', event);\n }\n\n onOverlayLeave(event: MotionEvent) {\n this.handleEvents('onLeave', event);\n }\n\n onOverlayAfterLeave(event: MotionEvent) {\n this.hide(this.overlayEl(), true);\n this.container.set(null);\n this.unbindListeners();\n this.appendOverlay();\n ZIndexUtils.clear(this.overlayEl());\n this.modalVisible.set(false);\n this.cd.markForCheck();\n this.handleEvents('onAfterLeave', event);\n }\n\n handleEvents(name: string, params: any) {\n (this as any)[name].emit(params);\n const opts = this.options();\n opts && (opts as any)[name] && (opts as any)[name](params);\n this.config?.overlayOptions && (this.config?.overlayOptions as any)[name] && (this.config?.overlayOptions as any)[name](params);\n }\n\n setZIndex() {\n if (this.$autoZIndex()) {\n ZIndexUtils.set(this.overlayMode(), this.overlayEl(), this.$baseZIndex() + this.config?.zIndex[this.overlayMode()]);\n }\n }\n\n appendOverlay() {\n if (this.$appendTo() && this.$appendTo() !== 'self') {\n if (this.$appendTo() === 'body') {\n appendChild(this.document.body, this.overlayEl());\n } else {\n appendChild(this.$appendTo(), this.overlayEl());\n }\n }\n }\n\n alignOverlay() {\n if (!this.modal()) {\n if (this.overlayEl() && this.targetEl()) {\n this.overlayEl().style.minWidth = getOuterWidth(this.targetEl()) + 'px';\n if (this.$appendTo() === 'self') {\n relativePosition(this.overlayEl(), this.targetEl());\n } else {\n absolutePosition(this.overlayEl(), this.targetEl());\n }\n }\n }\n }\n\n bindListeners() {\n this.bindScrollListener();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindDocumentKeyboardListener();\n }\n\n unbindListeners() {\n this.unbindScrollListener();\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindDocumentKeyboardListener();\n this.unbindParentDragListener();\n }\n\n bindParentDragListener() {\n if (!this.parentDragSubscription && this.$appendTo() !== 'self' && this.targetEl) {\n this.parentDragSubscription = this.overlayService.parentDragObservable.subscribe((container: Element) => {\n if (container.contains(this.targetEl())) {\n this.hide(this.overlayEl(), true);\n }\n });\n }\n }\n\n unbindParentDragListener() {\n if (this.parentDragSubscription) {\n this.parentDragSubscription.unsubscribe();\n this.parentDragSubscription = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.targetEl(), (event: any) => {\n const valid = this.$listener() ? this.$listener()(event, { type: 'scroll', mode: this.overlayMode(), valid: true }) : true;\n\n valid && this.hide(event, true);\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen(this.document, 'click', (event) => {\n const isTargetClicked = this.targetEl() && ((this.targetEl() as any).isSameNode(event.target) || (!this.isOverlayClicked && (this.targetEl() as any).contains(event.target)));\n const isOutsideClicked = !isTargetClicked && !this.isOverlayContentClicked;\n const valid = this.$listener() ? this.$listener()(event, { type: 'outside', mode: this.overlayMode(), valid: event.which !== 3 && isOutsideClicked }) : isOutsideClicked;\n\n valid && this.hide(event);\n this.isOverlayClicked = this.isOverlayContentClicked = false;\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {\n const valid = this.$listener() ? this.$listener()(event, { type: 'resize', mode: this.overlayMode(), valid: !isTouchDevice() }) : !isTouchDevice();\n\n valid && this.hide(event, true);\n });\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n bindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n return;\n }\n\n this.documentKeyboardListener = this.renderer.listen(this.document.defaultView, 'keydown', (event) => {\n if (this.$overlayOptions().hideOnEscape === false || event.code !== 'Escape') {\n return;\n }\n\n const valid = this.$listener() ? this.$listener()(event, { type: 'keydown', mode: this.overlayMode(), valid: !isTouchDevice() }) : !isTouchDevice();\n\n if (valid) {\n this.hide(event, true);\n }\n });\n }\n\n unbindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n this.documentKeyboardListener();\n this.documentKeyboardListener = null;\n }\n }\n\n onDestroy() {\n this.hide(this.overlayEl(), true);\n\n if (this.overlayEl() && this.$appendTo() !== 'self') {\n this.renderer.appendChild(this.el.nativeElement, this.overlayEl());\n ZIndexUtils.clear(this.overlayEl());\n }\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindListeners();\n }\n}\n\n@NgModule({\n imports: [Overlay, SharedModule],\n exports: [Overlay, SharedModule]\n})\nexport class OverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}