{"version":3,"file":"uib-angular-components-floating-overlay.mjs","sources":["../../../../libs/angular-components/components/floating-overlay/src/lib/floating-overlay.config.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/helpers/get-opposite-overlay-side.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/helpers/get-overlay-side.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/helpers/compute-overlay-position.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/floating-overlay.component.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/floating-overlay.component.html","../../../../libs/angular-components/components/floating-overlay/src/lib/floating-overlay.module.ts","../../../../libs/angular-components/components/floating-overlay/src/lib/floating-overlay.service.ts","../../../../libs/angular-components/components/floating-overlay/src/uib-angular-components-floating-overlay.ts"],"sourcesContent":["import { Injector, ViewContainerRef } from '@angular/core';\nimport { Placement, Side, Strategy } from '@floating-ui/dom';\nimport { DynamicContent } from '@uib/angular/components/dynamic-view';\nimport { Observable } from 'rxjs';\n\nexport type FloatingOverlayPlacement = Placement;\nexport type FloatingOverlaySide = Side;\n\nexport interface FloatingOverlayOptions {\n  content?: DynamicContent | null;\n  context?: Record<string, unknown>;\n  containerClass?: string | null;\n  delayIn: number;\n  delayOut: number;\n  enableArrow: boolean;\n  enableFallback: boolean;\n  isDismissable?: boolean;\n  matchReferenceWidth: boolean;\n  minHeight?: number | null;\n  offset: number;\n  outerPadding: number;\n  placement: FloatingOverlayPlacement;\n  strategy: Strategy;\n}\n\nexport interface FloatingOverlayRenderingOptions {\n  injector: Injector;\n  viewContainer?: ViewContainerRef;\n}\n\nexport interface FloatingOverlayRef {\n  element: Element;\n  onClose$: Observable<void>;\n  updateOptions: (options: Partial<FloatingOverlayOptions>) => void;\n  close: () => void;\n  destroy: () => Promise<void>;\n}\n\nexport const defaultFloationOverlayOptions: FloatingOverlayOptions = {\n  delayIn: 0,\n  delayOut: 0,\n  enableArrow: false,\n  enableFallback: false,\n  matchReferenceWidth: false,\n  offset: 0,\n  outerPadding: 8,\n  placement: 'bottom',\n  isDismissable: true,\n  strategy: 'fixed',\n};\n","import { FloatingOverlaySide } from '../floating-overlay.config';\n\nconst OVERLAY_SIDE_MAPPING: Record<FloatingOverlaySide, FloatingOverlaySide> = {\n  top: 'bottom',\n  right: 'left',\n  bottom: 'top',\n  left: 'right',\n};\n\nexport function getOppositeOverlaySide(overlaySide: FloatingOverlaySide): FloatingOverlaySide {\n  return OVERLAY_SIDE_MAPPING[overlaySide];\n}\n","import { FloatingOverlayPlacement, FloatingOverlaySide } from '../floating-overlay.config';\n\nexport function getOverlaySide(placement: FloatingOverlayPlacement): FloatingOverlaySide {\n  return placement.split('-')[0] as FloatingOverlaySide;\n}\n","import { arrow, computePosition, ComputePositionReturn, flip, hide, offset as withOffset, shift, size } from '@floating-ui/dom';\nimport { px } from '@uib/angular/utils';\nimport { FloatingOverlayOptions } from '../floating-overlay.config';\nimport { getOppositeOverlaySide } from './get-opposite-overlay-side';\nimport { getOverlaySide } from './get-overlay-side';\n\nfunction applyOverlayStyles(overlayElement: HTMLElement): (value: ComputePositionReturn) => void {\n  return ({ x, y }: ComputePositionReturn) => {\n    Object.assign(overlayElement.style, {\n      top: '0',\n      left: '0',\n      transform: `translate(${px(Math.round(x))}, ${px(Math.round(y))})`,\n    });\n  };\n}\n\nfunction applyArrowStyles(arrowElement: HTMLElement, arrowSize: number): (value: ComputePositionReturn) => void {\n  return ({ placement, middlewareData }: ComputePositionReturn) => {\n    const arrowX = px(middlewareData.arrow?.x);\n    const arrowY = px(middlewareData.arrow?.y);\n    const overlaySide = getOverlaySide(placement);\n    const arrowSide = getOppositeOverlaySide(overlaySide);\n\n    Object.assign(arrowElement.style, {\n      left: arrowX,\n      top: arrowY,\n      [arrowSide]: px(-arrowSize / 2),\n    });\n  };\n}\n\nfunction applyHiddenStyles(overlayElement: HTMLElement): (value: ComputePositionReturn) => void {\n  return ({ middlewareData }: ComputePositionReturn) => {\n    overlayElement.classList.toggle('is-hidden', !!middlewareData.hide?.referenceHidden);\n  };\n}\n\nexport function computeOverlayPosition(\n  referenceElement: HTMLElement,\n  overlayElement: HTMLElement,\n  innerElement: HTMLElement,\n  arrowElement: HTMLElement | null,\n  { placement, offset, outerPadding, matchReferenceWidth: useReferenceWidth, enableFallback, strategy }: FloatingOverlayOptions,\n): Promise<void> {\n  const arrowSize = arrowElement?.offsetWidth ?? 0;\n  const calculatedOffset = Math.max(offset, arrowSize);\n  const arrowMiddleware = arrowElement ? [arrow({ element: arrowElement })] : [];\n  const flipMiddleWare = enableFallback ? [flip()] : [];\n\n  return computePosition(referenceElement, overlayElement, {\n    strategy,\n    placement,\n    middleware: [\n      withOffset(calculatedOffset),\n      shift({ padding: outerPadding }),\n      ...flipMiddleWare,\n      size({\n        padding: outerPadding,\n        apply: ({ availableHeight, availableWidth, rects }) => {\n          Object.assign(innerElement.style, {\n            maxHeight: px(availableHeight),\n            maxWidth: px(availableWidth),\n            minWidth: useReferenceWidth ? px(rects.reference.width) : 'auto',\n          });\n        },\n      }),\n      ...arrowMiddleware,\n      hide(),\n    ],\n  }).then((result) => {\n    applyOverlayStyles(overlayElement)(result);\n    applyHiddenStyles(overlayElement)(result);\n    if (arrowElement) {\n      applyArrowStyles(arrowElement, arrowSize)(result);\n    }\n  });\n}\n","import { AnimationEvent, group, transition, trigger, useAnimation } from '@angular/animations';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  Renderer2,\n  RendererStyleFlags2,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { autoUpdate } from '@floating-ui/dom';\nimport {\n  fadeIn,\n  fadeOut,\n  slideInLeft,\n  slideInRight,\n  slideInUp,\n  slideOutDown,\n  slideOutLeft,\n  slideOutRight,\n  slideOutUp,\n  waitForChildAnimations,\n} from '@uib/angular/animations';\nimport { WindowRef } from '@uib/angular/common';\nimport { AnimatedComponent } from '@uib/angular/components/dynamic-view';\nimport { hasChanged, NgChanges, px } from '@uib/angular/utils';\nimport { Subject } from 'rxjs';\nimport { defaultFloationOverlayOptions, FloatingOverlayOptions, FloatingOverlaySide } from './floating-overlay.config';\nimport { computeOverlayPosition, getOverlaySide } from './helpers';\n\n@Component({\n  selector: 'uib-floating-overlay',\n  templateUrl: 'floating-overlay.component.html',\n  styleUrls: ['floating-overlay.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '[@hostAnimation]': 'true',\n    '[class.uib-floating-overlay]': 'true',\n  },\n  animations: [\n    trigger('hostAnimation', [waitForChildAnimations]),\n    trigger('contentAnimation', [\n      transition(\n        'void => top',\n        group([\n          useAnimation(slideInUp, {\n            params: { from: '-8px', delay: '{{ delayIn }}ms' },\n          }),\n          useAnimation(fadeIn, { params: { delay: '{{ delayIn }}ms' } }),\n        ]),\n      ),\n      transition(\n        'top => void',\n        group([\n          useAnimation(slideOutUp, {\n            params: { to: '-8px', delay: '{{ delayOut }}ms' },\n          }),\n          useAnimation(fadeOut, { params: { delay: '{{ delayOut }}ms' } }),\n        ]),\n      ),\n      transition(\n        'void => right',\n        group([\n          useAnimation(slideInLeft, {\n            params: { from: '8px', delay: '{{ delayIn }}ms' },\n          }),\n          useAnimation(fadeIn, { params: { delay: '{{ delayIn }}ms' } }),\n        ]),\n      ),\n      transition(\n        'right => void',\n        group([\n          useAnimation(slideOutRight, {\n            params: { to: '8px', delay: '{{ delayOut }}ms' },\n          }),\n          useAnimation(fadeOut, { params: { delay: '{{ delayOut }}ms' } }),\n        ]),\n      ),\n      transition(\n        'void => bottom',\n        group([\n          useAnimation(slideInUp, {\n            params: { from: '8px', delay: '{{ delayIn }}ms' },\n          }),\n          useAnimation(fadeIn, { params: { delay: '{{ delayIn }}ms' } }),\n        ]),\n      ),\n      transition(\n        'bottom => void',\n        group([\n          useAnimation(slideOutDown, {\n            params: { to: '8px', delay: '{{ delayOut }}ms' },\n          }),\n          useAnimation(fadeOut, { params: { delay: '{{ delayOut }}ms' } }),\n        ]),\n      ),\n      transition(\n        'void => left',\n        group([\n          useAnimation(slideInRight, {\n            params: { from: '-8px', delay: '{{ delayIn }}ms' },\n          }),\n          useAnimation(fadeIn, { params: { delay: '{{ delayIn }}ms' } }),\n        ]),\n      ),\n      transition(\n        'left => void',\n        group([\n          useAnimation(slideOutLeft, {\n            params: { to: '-8px', delay: '{{ delayOut }}ms' },\n          }),\n          useAnimation(fadeOut, { params: { delay: '{{ delayOut }}ms' } }),\n        ]),\n      ),\n    ]),\n  ],\n})\nexport class FloatingOverlayComponent implements AnimatedComponent, OnChanges, OnDestroy {\n  private destroyOverlay: (() => void) | null = null;\n\n  public readonly ngAnimationsDone$ = new Subject<void>();\n  public overlaySide: FloatingOverlaySide;\n\n  @Input()\n  public referenceElement: HTMLElement;\n\n  @Input()\n  public options: FloatingOverlayOptions = defaultFloationOverlayOptions;\n\n  @Output()\n  public closed = new EventEmitter<void>();\n\n  @ViewChild('innerElement', { static: true })\n  public innerElement: ElementRef<HTMLElement>;\n\n  @ViewChild('arrowElement')\n  public arrowElement: ElementRef<HTMLElement>;\n\n  constructor(\n    private readonly element: ElementRef<HTMLElement>,\n    private readonly renderer: Renderer2,\n    private readonly windowRef: WindowRef,\n  ) {}\n\n  public async ngOnChanges(changes: NgChanges<FloatingOverlayComponent>): Promise<void> {\n    if (hasChanged(changes, ['options'], false)) {\n      this.overlaySide = getOverlaySide(this.options.placement);\n      this.renderer.setStyle(this.innerElement.nativeElement, 'height', px(this.options.minHeight));\n    }\n    if (hasChanged(changes, ['referenceElement', 'options'])) {\n      this.ngOnDestroy();\n      this.destroyOverlay = autoUpdate(this.referenceElement, this.element.nativeElement, () => {\n        this.windowRef.nativeWindow.requestAnimationFrame(() => {\n          computeOverlayPosition(\n            this.referenceElement,\n            this.element.nativeElement,\n            this.innerElement.nativeElement,\n            this.arrowElement?.nativeElement ?? null,\n            this.options,\n          );\n        });\n      });\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.destroyOverlay?.();\n    this.destroyOverlay = null;\n  }\n\n  public close(): void {\n    this.closed.next();\n  }\n\n  public onAnimationStart({ fromState }: AnimationEvent): void {\n    if (fromState === 'void') {\n      this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n    }\n  }\n\n  public onAnimationDone({ fromState, toState }: AnimationEvent): void {\n    if (fromState === 'void') {\n      this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');\n    } else if (toState === 'void') {\n      this.ngAnimationsDone$.next();\n      this.ngAnimationsDone$.complete();\n    }\n  }\n}\n","<div [@contentAnimation]=\"{ value: overlaySide, params: options }\" (@contentAnimation.start)=\"onAnimationStart($event)\" (@contentAnimation.done)=\"onAnimationDone($event)\" class=\"uib-floating-overlay__inner\">\n  <div class=\"uib-floating-overlay__content {{ options.containerClass }}\" [clickOutsideActive]=\"!!options.isDismissable\" (clickOutside)=\"close()\" #innerElement>\n    <ng-template [uibDynamicView]=\"options.content\" [uibDynamicViewContext]=\"options.context\"></ng-template>\n  </div>\n  <div class=\"uib-floating-overlay__arrow\" *ngIf=\"options.enableArrow\" #arrowElement></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@uib/angular/common';\nimport { DynamicViewModule } from '@uib/angular/components/dynamic-view';\nimport { FloatingOverlayComponent } from './floating-overlay.component';\n\n@NgModule({\n  imports: [CommonModule, DynamicViewModule],\n  declarations: [FloatingOverlayComponent],\n})\nexport class FloatingOverlayModule {}\n","import { Injectable, Injector } from '@angular/core';\nimport { ComponentRef, DynamicViewService } from '@uib/angular/components/dynamic-view';\nimport { share } from 'rxjs';\nimport { FloatingOverlayComponent } from './floating-overlay.component';\nimport {\n  defaultFloationOverlayOptions,\n  FloatingOverlayOptions,\n  FloatingOverlayRef,\n  FloatingOverlayRenderingOptions,\n} from './floating-overlay.config';\n\n@Injectable({ providedIn: 'root' })\nexport class FloatingOverlayService {\n  constructor(private readonly dynamicViewService: DynamicViewService, private readonly injector: Injector) {}\n\n  public createOverlay(\n    referenceElement: HTMLElement,\n    options: Partial<FloatingOverlayOptions> = {},\n    { injector, viewContainer }: Partial<FloatingOverlayRenderingOptions> = {},\n  ): FloatingOverlayRef {\n    const componentRef = this.dynamicViewService.createComponent(FloatingOverlayComponent, {\n      vcr: viewContainer,\n      inputs: {\n        referenceElement,\n        options: this.mergeOptions(options),\n      },\n      injector: injector ?? this.injector,\n    });\n\n    return this.createOverlayRef(componentRef);\n  }\n\n  private mergeOptions(options: Partial<FloatingOverlayOptions>): FloatingOverlayOptions {\n    return {\n      ...defaultFloationOverlayOptions,\n      ...options,\n    };\n  }\n\n  private createOverlayRef(componentRef: ComponentRef<FloatingOverlayComponent>): FloatingOverlayRef {\n    return {\n      element: componentRef.getElement(),\n      updateOptions: (options: Partial<FloatingOverlayOptions>) => {\n        componentRef.update({ options: this.mergeOptions(options) });\n      },\n      onClose$: componentRef.instance.closed.pipe(share()),\n      close: () => componentRef.instance.close(),\n      destroy: async () => {\n        await componentRef.destroy();\n      },\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["offset","withOffset","i2","i1"],"mappings":"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"}