{"version":3,"file":"chunk-di4lkay7.js","sources":["packages/vanilla/lib/shared/overlay-factory/src/overlay-factory.models.ts","packages/vanilla/lib/shared/overlay-factory/src/overlay.factory.ts"],"sourcesContent":["/**\n * @stable\n */\nexport enum AnimateOverlayFrom {\n Left = 'left',\n Bottom = 'bottom',\n}\n\n/**\n * @stable\n */\nexport interface AnimatedOverlayStates {\n initial: string;\n off: string;\n on: string;\n}\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { AnimateOverlayFrom, AnimatedOverlayStates } from './overlay-factory.models';\n\n/**\n * @stable\n */\nexport type InjectorFactory = (ref: OverlayRef) => Injector;\n\n/**\n * @whatItDoes Provides a wrapper around Angular Overlay service.\n *\n * @howToUse\n *\n * ```\n * const overlay = this.overlayFactory.create(overlayConfig?);\n * ```\n *\n * If no config provided a default one will be used:\n * ```\n * {\n * hasBackdrop: true,\n * backdropClass: 'vn-backdrop',\n * panelClass: ['generic-modal-popup, popup-actions'],\n * scrollStrategy: this.overlay.scrollStrategies.block(),\n * positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n * type: 'generic-modal-overlay'\n * }\n * ```\n *\n * Available properties:\n * ```\n * overlayHandler.overlayRefs;\n * overlayHandler.overlayRefsSubject;\n * overlayHandler.scrollStrategies;\n * overlayHandler.position;\n * ```\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class OverlayFactory {\n get overlayRefs(): Map {\n return this.overlayReferences;\n }\n\n get overlayRefsSubject(): Observable | null> {\n return this.overlayReferencesSubject;\n }\n\n get scrollStrategies(): ScrollStrategyOptions {\n return this.overlay.scrollStrategies;\n }\n\n get position(): OverlayPositionBuilder {\n return this.overlay.position();\n }\n\n private overlayReferences: Map = new Map();\n private overlayReferencesSubject = new BehaviorSubject | null>(null);\n\n constructor(private overlay: Overlay) {}\n\n create(overlayConfig?: OverlayConfig): OverlayRef {\n const backdropClass = overlayConfig?.hasBackdrop === false ? undefined : 'vn-backdrop';\n const config: OverlayConfig = {\n hasBackdrop: true,\n ...(backdropClass ? { backdropClass } : {}),\n scrollStrategy: this.scrollStrategies.block(),\n positionStrategy: this.position.global().centerHorizontally().centerVertically(),\n panelClass: ['vn-overlay'],\n ...overlayConfig,\n };\n\n const overlayRef = this.overlay.create(config);\n const overlayClass = Array.isArray(overlayConfig?.panelClass) ? overlayConfig?.panelClass[0] : overlayConfig?.panelClass;\n\n this.overlayReferences.set(overlayClass || '', overlayRef);\n this.overlayReferencesSubject.next(this.overlayReferences);\n\n return overlayRef;\n }\n\n createAnimatedOverlayStates(animateFrom?: AnimateOverlayFrom): AnimatedOverlayStates | null {\n switch (animateFrom) {\n case AnimateOverlayFrom.Bottom:\n return { initial: 'bottom', on: 'top', off: 'bottom' };\n case AnimateOverlayFrom.Left:\n return { initial: 'left', on: 'right', off: 'left' };\n default:\n return null;\n }\n }\n\n dispose(overlay: OverlayRef | null) {\n overlay?.dispose();\n\n for (const [key, value] of this.overlayReferences.entries()) {\n if (value === overlay) {\n this.overlayReferences.delete(key);\n this.overlayReferencesSubject.next(this.overlayReferences);\n }\n }\n }\n}\n"],"names":["AnimateOverlayFrom","OverlayFactory","overlayRefs","overlayReferences","overlayRefsSubject","overlayReferencesSubject","scrollStrategies","overlay","position","constructor","Map","BehaviorSubject","create","overlayConfig","backdropClass","hasBackdrop","undefined","config","__spreadValues","__spreadProps","scrollStrategy","block","positionStrategy","global","centerHorizontally","centerVertically","panelClass","overlayRef","overlayClass","Array","isArray","set","next","createAnimatedOverlayStates","animateFrom","Bottom","initial","on","off","Left","dispose","key","value","entries","delete","ɵɵinject","Overlay","factory","ɵfac","providedIn","_OverlayFactory"],"mappings":"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"}