{"version":3,"file":"clr-angular-popover-common.mjs","sources":["../../../projects/angular/popover/common/providers/popover.service.ts","../../../projects/angular/popover/common/utils/popover-positions.ts","../../../projects/angular/popover/common/popover-content.ts","../../../projects/angular/popover/common/popover-origin.ts","../../../projects/angular/popover/common/popover-host-origin.token.ts","../../../projects/angular/popover/common/stop-escape-propagation.directive.ts","../../../projects/angular/popover/common/popover-host.directive.ts","../../../projects/angular/popover/common/if-open.directive.ts","../../../projects/angular/popover/common/popover-close-button.ts","../../../projects/angular/popover/common/popover-open-close-button.ts","../../../projects/angular/popover/common/popover.module.ts","../../../projects/angular/popover/common/index.ts","../../../projects/angular/popover/common/clr-angular-popover-common.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { FlexibleConnectedPositionStrategyOrigin } from '@angular/cdk/overlay';\nimport { ElementRef, Injectable } from '@angular/core';\nimport { preventArrowKeyScroll } from '@clr/angular/utils';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ClrPopoverPosition } from '../utils/popover-positions';\n\nexport interface ClrPopoverPoint {\n  x: number;\n  y: number;\n}\n\n@Injectable()\nexport class ClrPopoverService {\n  pointTargetElement: HTMLElement | undefined;\n  origin: FlexibleConnectedPositionStrategyOrigin;\n  closeButtonRef: ElementRef;\n  panelClass: string[] = [];\n\n  private _open = false;\n  private _openChange = new Subject<boolean>();\n  private _openEvent: Event;\n  private _openEventChange = new Subject<Event>();\n  private _positionChange = new Subject<string>();\n  private _resetPositions = new Subject<void>();\n  private _updatePosition = new Subject<void>();\n  private _popoverVisible = new Subject<boolean>();\n\n  get originElement(): ElementRef<HTMLElement> | null {\n    return this.origin instanceof ElementRef ? this.origin : null;\n  }\n\n  get originPoint(): ClrPopoverPoint | null {\n    return this.origin && 'x' in this.origin && 'y' in this.origin ? (this.origin as ClrPopoverPoint) : null;\n  }\n\n  get openChange(): Observable<boolean> {\n    return this._openChange.asObservable();\n  }\n\n  get popoverVisible(): Observable<boolean> {\n    return this._popoverVisible.asObservable();\n  }\n\n  get openEvent(): Event {\n    return this._openEvent;\n  }\n  set openEvent(event: Event) {\n    this._openEvent = event;\n    this._openEventChange.next(event);\n  }\n\n  get open(): boolean {\n    return this._open;\n  }\n  set open(value: boolean) {\n    value = !!value;\n    if (this._open !== value) {\n      this._open = value;\n      this._openChange.next(value);\n    }\n  }\n\n  get resetPositionsChange(): Observable<void> {\n    return this._resetPositions.asObservable();\n  }\n\n  positionChange(position: ClrPopoverPosition) {\n    this._positionChange.next(position);\n  }\n\n  updatePositionChange(): Observable<void> {\n    return this._updatePosition.asObservable();\n  }\n\n  getPositionChange(): Observable<string> {\n    return this._positionChange.asObservable();\n  }\n\n  getEventChange(): Observable<Event> {\n    return this._openEventChange.asObservable();\n  }\n\n  /**\n   * Sometimes, we need to remember the event that triggered the toggling to avoid loops.\n   * This is for instance the case of components that open on a click, but close on a click outside.\n   */\n  toggleWithEvent(event: any) {\n    preventArrowKeyScroll(event);\n\n    this.openEvent = event;\n    this.open = !this.open;\n  }\n\n  /**\n   * Opens the popover at a specific screen coordinate.\n   * Useful for context menus where the popover should appear at the cursor position.\n   */\n  openAtPoint(point: ClrPopoverPoint, targetElement?: HTMLElement) {\n    if (this._open) {\n      this._open = false;\n      this._openChange.next(false);\n    }\n\n    this.origin = point;\n    this.pointTargetElement = targetElement;\n    this.open = true;\n  }\n\n  popoverVisibleEmit(visible: boolean) {\n    this._popoverVisible.next(visible);\n  }\n\n  resetPositions() {\n    this._resetPositions.next();\n  }\n\n  updatePosition() {\n    this._updatePosition.next();\n  }\n\n  focusCloseButton(): void {\n    this.closeButtonRef.nativeElement?.focus();\n  }\n\n  focusOrigin(): void {\n    this.originElement?.nativeElement?.focus({ preventScroll: true });\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { ClrPosition } from '@clr/angular/utils';\n\nexport enum ClrPopoverType {\n  SIGNPOST,\n  TOOLTIP,\n  DROPDOWN,\n  DEFAULT,\n}\n\nexport enum ClrPopoverPosition {\n  TOP_RIGHT = 'top-right',\n  TOP_MIDDLE = 'top-middle',\n  TOP_LEFT = 'top-left',\n  RIGHT = 'right',\n  RIGHT_TOP = 'right-top',\n  RIGHT_MIDDLE = 'right-middle',\n  RIGHT_BOTTOM = 'right-bottom',\n  LEFT = 'left',\n  LEFT_TOP = 'left-top',\n  LEFT_MIDDLE = 'left-middle',\n  LEFT_BOTTOM = 'left-bottom',\n  BOTTOM_RIGHT = 'bottom-right',\n  BOTTOM_MIDDLE = 'bottom-middle',\n  BOTTOM_LEFT = 'bottom-left',\n}\n\nexport const TOOLTIP_POSITIONS: ClrPopoverPosition[] = [\n  ClrPopoverPosition.RIGHT, // default. must be at index 0\n  ClrPopoverPosition.LEFT,\n  ClrPopoverPosition.BOTTOM_RIGHT,\n  ClrPopoverPosition.BOTTOM_LEFT,\n  ClrPopoverPosition.TOP_RIGHT,\n  ClrPopoverPosition.TOP_LEFT,\n];\n\nexport const DROPDOWN_POSITIONS: ClrPopoverPosition[] = [\n  ClrPopoverPosition.BOTTOM_LEFT, // default. must be at index 0\n  ClrPopoverPosition.BOTTOM_RIGHT,\n  ClrPopoverPosition.TOP_LEFT,\n  ClrPopoverPosition.TOP_RIGHT,\n  ClrPopoverPosition.RIGHT_TOP,\n  ClrPopoverPosition.RIGHT_BOTTOM,\n  ClrPopoverPosition.LEFT_TOP,\n  ClrPopoverPosition.LEFT_BOTTOM,\n];\n\nexport const SIGNPOST_POSITIONS: ClrPopoverPosition[] = [\n  ClrPopoverPosition.RIGHT_MIDDLE, // default. must be at index 0\n  ClrPopoverPosition.RIGHT_TOP,\n  ClrPopoverPosition.RIGHT_BOTTOM,\n  ClrPopoverPosition.TOP_RIGHT,\n  ClrPopoverPosition.TOP_LEFT,\n  ClrPopoverPosition.TOP_MIDDLE,\n  ClrPopoverPosition.BOTTOM_RIGHT,\n  ClrPopoverPosition.BOTTOM_MIDDLE,\n  ClrPopoverPosition.BOTTOM_LEFT,\n  ClrPopoverPosition.LEFT_BOTTOM,\n  ClrPopoverPosition.LEFT_MIDDLE,\n  ClrPopoverPosition.LEFT_TOP,\n];\n\nexport function getPositionsArray(type: ClrPopoverType) {\n  switch (type) {\n    case ClrPopoverType.TOOLTIP:\n      return TOOLTIP_POSITIONS;\n    case ClrPopoverType.DROPDOWN:\n      return DROPDOWN_POSITIONS;\n    case ClrPopoverType.SIGNPOST:\n    case ClrPopoverType.DEFAULT:\n    default:\n      return SIGNPOST_POSITIONS;\n  }\n}\n\nexport function getConnectedPositions(type: ClrPopoverType): ConnectedPosition[] {\n  const result: ConnectedPosition[] = [];\n\n  getPositionsArray(type).forEach(position => {\n    result.push(mapPopoverKeyToPosition(position, type));\n  });\n\n  return result;\n}\n\nconst POPOVER_OFFSETS: Record<ClrPopoverType, number> = {\n  [ClrPopoverType.SIGNPOST]: 16,\n  [ClrPopoverType.TOOLTIP]: 21,\n  [ClrPopoverType.DROPDOWN]: 2,\n  [ClrPopoverType.DEFAULT]: 0,\n};\n\nfunction getOffset(key: ClrPopoverPosition, type: ClrPopoverType): Partial<ConnectedPosition> {\n  const offset = POPOVER_OFFSETS[type] || 0;\n\n  switch (key) {\n    // TOP\n    case ClrPopoverPosition.TOP_LEFT:\n    case ClrPopoverPosition.TOP_MIDDLE:\n    case ClrPopoverPosition.TOP_RIGHT:\n      return {\n        offsetY: -offset,\n        offsetX: 0,\n      } as ConnectedPosition;\n\n    // LEFT\n    case ClrPopoverPosition.LEFT_TOP:\n    case ClrPopoverPosition.LEFT_MIDDLE:\n    case ClrPopoverPosition.LEFT:\n    case ClrPopoverPosition.LEFT_BOTTOM:\n      return {\n        offsetY: 0,\n        offsetX: -offset,\n      } as ConnectedPosition;\n\n    // RIGHT\n    case ClrPopoverPosition.RIGHT_TOP:\n    case ClrPopoverPosition.RIGHT_MIDDLE:\n    case ClrPopoverPosition.RIGHT:\n    case ClrPopoverPosition.RIGHT_BOTTOM:\n      return {\n        offsetY: 0,\n        offsetX: offset,\n      } as ConnectedPosition;\n\n    // BOTTOM and DEFAULT\n    case ClrPopoverPosition.BOTTOM_RIGHT:\n    case ClrPopoverPosition.BOTTOM_MIDDLE:\n    case ClrPopoverPosition.BOTTOM_LEFT:\n    default:\n      return {\n        offsetY: offset,\n        offsetX: 0,\n      } as ConnectedPosition;\n  }\n}\n\nconst STANDARD_ORIGINS = {\n  // TOP\n  [ClrPopoverPosition.TOP_RIGHT]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_LEFT },\n  [ClrPopoverPosition.TOP_MIDDLE]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_CENTER },\n  [ClrPopoverPosition.TOP_LEFT]: { origin: ClrPosition.TOP_CENTER, content: ClrPosition.BOTTOM_RIGHT },\n\n  // LEFT\n  [ClrPopoverPosition.LEFT]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_TOP },\n  [ClrPopoverPosition.LEFT_TOP]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_BOTTOM },\n  [ClrPopoverPosition.LEFT_MIDDLE]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_CENTER },\n  [ClrPopoverPosition.LEFT_BOTTOM]: { origin: ClrPosition.LEFT_CENTER, content: ClrPosition.RIGHT_TOP },\n\n  // RIGHT\n  [ClrPopoverPosition.RIGHT]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_TOP },\n  [ClrPopoverPosition.RIGHT_TOP]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_BOTTOM },\n  [ClrPopoverPosition.RIGHT_MIDDLE]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_CENTER },\n  [ClrPopoverPosition.RIGHT_BOTTOM]: { origin: ClrPosition.RIGHT_CENTER, content: ClrPosition.LEFT_TOP },\n\n  // BOTTOM\n  [ClrPopoverPosition.BOTTOM_RIGHT]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_LEFT },\n  [ClrPopoverPosition.BOTTOM_MIDDLE]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_CENTER },\n  [ClrPopoverPosition.BOTTOM_LEFT]: { origin: ClrPosition.BOTTOM_CENTER, content: ClrPosition.TOP_RIGHT },\n};\n\nconst DROPDOWN_ORIGINS = {\n  // TOP\n  [ClrPopoverPosition.TOP_RIGHT]: { origin: ClrPosition.TOP_RIGHT, content: ClrPosition.BOTTOM_RIGHT },\n  [ClrPopoverPosition.TOP_LEFT]: { origin: ClrPosition.TOP_LEFT, content: ClrPosition.BOTTOM_LEFT },\n\n  // LEFT\n  [ClrPopoverPosition.LEFT_TOP]: { origin: ClrPosition.LEFT_TOP, content: ClrPosition.TOP_RIGHT },\n  [ClrPopoverPosition.LEFT_BOTTOM]: { origin: ClrPosition.LEFT_BOTTOM, content: ClrPosition.BOTTOM_RIGHT },\n\n  // RIGHT\n  [ClrPopoverPosition.RIGHT_TOP]: { origin: ClrPosition.RIGHT_TOP, content: ClrPosition.LEFT_TOP },\n  [ClrPopoverPosition.RIGHT_BOTTOM]: { origin: ClrPosition.RIGHT_BOTTOM, content: ClrPosition.LEFT_BOTTOM },\n\n  // BOTTOM\n  [ClrPopoverPosition.BOTTOM_RIGHT]: { origin: ClrPosition.BOTTOM_LEFT, content: ClrPosition.TOP_RIGHT },\n  [ClrPopoverPosition.BOTTOM_LEFT]: { origin: ClrPosition.BOTTOM_RIGHT, content: ClrPosition.TOP_LEFT },\n};\n\nexport function mapPopoverKeyToPosition(key: ClrPopoverPosition, type: ClrPopoverType): ConnectedPosition {\n  let offset = getOffset(key, type);\n\n  const defaultPosition = { origin: ClrPosition.BOTTOM_LEFT, content: ClrPosition.TOP_LEFT };\n  const { origin, content } =\n    (type === ClrPopoverType.DROPDOWN ? DROPDOWN_ORIGINS[key] : STANDARD_ORIGINS[key]) ?? defaultPosition;\n\n  return {\n    ...getOriginPosition(origin),\n    ...getContentPosition(content),\n    ...offset,\n    panelClass: key,\n  } as ConnectedPosition;\n}\n\nexport function getOriginPosition(key: ClrPosition): Partial<ConnectedPosition> {\n  switch (key) {\n    // TOP Positions\n    case ClrPosition.TOP_LEFT:\n      return {\n        originX: 'start',\n        originY: 'top',\n      };\n    case ClrPosition.TOP_CENTER:\n      return {\n        originX: 'center',\n        originY: 'top',\n      };\n    case ClrPosition.TOP_RIGHT:\n      return {\n        originX: 'end',\n        originY: 'top',\n      };\n    // LEFT Positions\n    case ClrPosition.LEFT_TOP:\n      return {\n        originX: 'start',\n        originY: 'top',\n      };\n    case ClrPosition.LEFT_CENTER:\n      return {\n        originX: 'start',\n        originY: 'center',\n      };\n    case ClrPosition.LEFT_BOTTOM:\n      return {\n        originX: 'start',\n        originY: 'bottom',\n      };\n    // RIGHT Positions\n    case ClrPosition.RIGHT_TOP:\n      return {\n        originX: 'end',\n        originY: 'top',\n      };\n    case ClrPosition.RIGHT_CENTER:\n      return {\n        originX: 'end',\n        originY: 'center',\n      };\n    case ClrPosition.RIGHT_BOTTOM:\n      return {\n        originX: 'end',\n        originY: 'bottom',\n      };\n    // BOTTOM positions and default\n    case ClrPosition.BOTTOM_LEFT:\n      return {\n        originX: 'end',\n        originY: 'bottom',\n      };\n    case ClrPosition.BOTTOM_CENTER:\n      return {\n        originX: 'center',\n        originY: 'bottom',\n      };\n    case ClrPosition.BOTTOM_RIGHT:\n    default:\n      return {\n        originX: 'start',\n        originY: 'bottom',\n      };\n  }\n}\n\nexport function getContentPosition(key: ClrPosition): Partial<ConnectedPosition> {\n  switch (key) {\n    // TOP Positions\n    case ClrPosition.TOP_LEFT:\n      return {\n        overlayX: 'start',\n        overlayY: 'top',\n      };\n    case ClrPosition.TOP_CENTER:\n      return {\n        overlayX: 'center',\n        overlayY: 'top',\n      };\n    case ClrPosition.TOP_RIGHT:\n      return {\n        overlayX: 'end',\n        overlayY: 'top',\n      };\n\n    // LEFT Positions\n    case ClrPosition.LEFT_TOP:\n      return {\n        overlayX: 'start',\n        overlayY: 'top',\n      };\n    case ClrPosition.LEFT_CENTER:\n      return {\n        overlayX: 'start',\n        overlayY: 'center',\n      };\n    case ClrPosition.LEFT_BOTTOM:\n      return {\n        overlayX: 'start',\n        overlayY: 'bottom',\n      };\n\n    // RIGHT Positions\n    case ClrPosition.RIGHT_TOP:\n      return {\n        overlayX: 'end',\n        overlayY: 'top',\n      };\n    case ClrPosition.RIGHT_CENTER:\n      return {\n        overlayX: 'end',\n        overlayY: 'center',\n      };\n    case ClrPosition.RIGHT_BOTTOM:\n      return {\n        overlayX: 'end',\n        overlayY: 'bottom',\n      };\n\n    // BOTTOM positions and default\n    case ClrPosition.BOTTOM_LEFT:\n      return {\n        overlayX: 'start',\n        overlayY: 'bottom',\n      };\n    case ClrPosition.BOTTOM_CENTER:\n      return {\n        overlayX: 'center',\n        overlayY: 'bottom',\n      };\n    case ClrPosition.BOTTOM_RIGHT:\n    default:\n      return {\n        overlayX: 'end',\n        overlayY: 'bottom',\n      };\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n  ConnectedPosition,\n  FlexibleConnectedPositionStrategyOrigin,\n  Overlay,\n  OverlayConfig,\n  OverlayContainer,\n  OverlayRef,\n} from '@angular/cdk/overlay';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  PLATFORM_ID,\n  SkipSelf,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Keys } from '@clr/angular/utils';\nimport { fromEvent, merge, Subscription, switchMap, timer } from 'rxjs';\n\nimport { ClrPopoverService } from './providers/popover.service';\nimport {\n  ClrPopoverPosition,\n  ClrPopoverType,\n  getConnectedPositions,\n  mapPopoverKeyToPosition,\n} from './utils/popover-positions';\n\n/** @dynamic */\n@Directive({\n  selector: '[clrPopoverContent]',\n})\nexport class ClrPopoverContent implements OnDestroy, AfterViewInit {\n  private _outsideClickClose = true;\n  private _scrollToClose = false;\n  private view: EmbeddedViewRef<void>;\n  private elementRef: ElementRef;\n  private overlayRef: OverlayRef;\n  private popoverType: ClrPopoverType = ClrPopoverType.DEFAULT;\n  private _availablePositions: ConnectedPosition[] = [];\n  private _position = ClrPopoverPosition.BOTTOM_LEFT;\n\n  private subscriptions: Subscription[] = [];\n  private openCloseSubscription: Subscription;\n  private domPortal: DomPortal;\n  private preferredPositionIsSet = false;\n  private availablePositionsAreSet = false;\n  private _preferredPosition: ConnectedPosition = {\n    originX: 'start',\n    originY: 'top',\n    overlayX: 'end',\n    overlayY: 'top',\n    panelClass: ClrPopoverPosition.LEFT_TOP,\n  };\n  private intersectionObserver: IntersectionObserver;\n\n  constructor(\n    element: ElementRef,\n    private container: ViewContainerRef,\n    @Optional() private template: TemplateRef<any>,\n    overlayContainer: OverlayContainer,\n\n    @Optional() @SkipSelf() private parent: ClrPopoverContent,\n    private overlay: Overlay,\n    @Inject(ClrPopoverService) private popoverService: ClrPopoverService,\n    private zone: NgZone,\n    @Inject(PLATFORM_ID) private platformId: any\n  ) {\n    popoverService.panelClass.push('clr-popover-content');\n\n    overlayContainer.getContainerElement().classList.add('clr-overlay-container');\n\n    if (!template) {\n      this.elementRef = element;\n    }\n  }\n\n  @Input('clrPopoverContent')\n  set open(value: boolean) {\n    this.popoverService.open = !!value;\n  }\n\n  @Input('clrPopoverContentAt')\n  get contentAt(): string | ClrPopoverPosition | ConnectedPosition {\n    return this.preferredPositionIsSet ? this._preferredPosition : this._position;\n  }\n  set contentAt(position: string | ClrPopoverPosition | ConnectedPosition) {\n    if (typeof position === 'string') {\n      if (!position || Object.values(ClrPopoverPosition).indexOf(position as ClrPopoverPosition) === -1) {\n        return;\n      }\n\n      // set the popover values based on menu position\n      this._position = position as ClrPopoverPosition;\n      this.popoverService.positionChange(this._position);\n    } else {\n      this.preferredPositionIsSet = true;\n      this._preferredPosition = position;\n    }\n  }\n\n  @Input('clrPopoverContentAvailablePositions')\n  set availablePositions(positions: ConnectedPosition[]) {\n    this.availablePositionsAreSet = true;\n\n    this._availablePositions = positions;\n  }\n\n  @Input('clrPopoverContentType')\n  set contentType(type: ClrPopoverType) {\n    this.popoverType = type;\n\n    if (!this.availablePositionsAreSet) {\n      this._availablePositions = getConnectedPositions(type);\n    }\n  }\n\n  @Input('clrPopoverContentOutsideClickToClose')\n  get outsideClickClose() {\n    return this._outsideClickClose;\n  }\n  set outsideClickClose(clickToClose: boolean) {\n    this._outsideClickClose = !!clickToClose;\n  }\n\n  @Input('clrPopoverContentScrollToClose')\n  get scrollToClose() {\n    return this._scrollToClose;\n  }\n  set scrollToClose(scrollToClose: boolean) {\n    this._scrollToClose = !!scrollToClose;\n  }\n\n  @Input('clrPopoverContentOrigin')\n  set contentOrigin(origin: FlexibleConnectedPositionStrategyOrigin) {\n    if (origin instanceof Element) {\n      this.popoverService.origin = new ElementRef(origin as HTMLElement);\n    } else {\n      this.popoverService.origin = origin;\n    }\n  }\n\n  private get positionStrategy() {\n    return this.overlay\n      .position()\n      .flexibleConnectedTo(this.popoverService.origin)\n      .setOrigin(this.popoverService.origin)\n      .withPush(true)\n      .withPositions([this.preferredPosition, ...this._availablePositions])\n      .withFlexibleDimensions(true);\n  }\n\n  private get preferredPosition(): ConnectedPosition {\n    if (this.preferredPositionIsSet) {\n      return this._preferredPosition;\n    }\n\n    // Default position is \"bottom-left\"\n    return mapPopoverKeyToPosition(this._position, this.popoverType);\n  }\n\n  ngAfterViewInit() {\n    if (this.popoverService.open) {\n      this.showOverlay();\n    }\n\n    this.openCloseSubscription = this.popoverService.openChange.subscribe(change => {\n      if (change) {\n        this.showOverlay();\n      } else {\n        this.closePopover();\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    this.removeOverlay();\n    this.openCloseSubscription?.unsubscribe();\n  }\n\n  private _createOverlayRef() {\n    this.overlayRef = this.overlay.create(\n      new OverlayConfig({\n        // This is where we can pass externally facing inputs into the angular overlay API, and essentially proxy behaviors our users want directly to the CDK if they have them.\n        positionStrategy: this.positionStrategy,\n        // the scrolling behaviour is controlled by this popover content directive\n        scrollStrategy: this.overlay.scrollStrategies.noop(),\n        panelClass: this.popoverService.panelClass,\n        hasBackdrop: false,\n      })\n    );\n\n    this.subscriptions.push(\n      merge(this.popoverService.resetPositionsChange, this.popoverService.getPositionChange()).subscribe(() => {\n        this.resetPosition();\n      }),\n      this.popoverService.updatePositionChange().subscribe(() => {\n        this.overlayRef?.updatePosition();\n      }),\n      this.overlayRef.keydownEvents().subscribe(event => {\n        if (event && event.key && event.key === Keys.Escape && !hasModifierKey(event)) {\n          event.preventDefault();\n          this.closePopover();\n        }\n      }),\n\n      this.popoverService.originPoint\n        ? this.createPointBasedOutsideClickSubscription()\n        : this.createElementBasedOutsideClickSubscription()\n    );\n  }\n\n  /**\n   * Point-based origins (context menus) delay the subscription to avoid the\n   * mouseup from the same right-click that opened the popover.\n   */\n  private createPointBasedOutsideClickSubscription(): Subscription {\n    return timer(500)\n      .pipe(switchMap(() => this.overlayRef.outsidePointerEvents()))\n      .subscribe(event => {\n        if (this.elementRef?.nativeElement?.contains(event.target)) {\n          return;\n        }\n\n        if (this._outsideClickClose) {\n          this.closePopover();\n        }\n      });\n  }\n\n  /**\n   * Element-based origins close on outside clicks and suppress toggle-button\n   * re-clicks so the popover doesn't immediately reopen.\n   */\n  private createElementBasedOutsideClickSubscription(): Subscription {\n    return this.overlayRef.outsidePointerEvents().subscribe(event => {\n      // web components (cds-icon) register as outside pointer events, so if the event target is inside the content panel return early\n      if (this.elementRef?.nativeElement?.contains(event.target)) {\n        return;\n      }\n\n      // Check if the same element that opened the popover is the same element triggering the outside pointer events (toggle button)\n      const isToggleButton =\n        this.popoverService.openEvent &&\n        ((this.popoverService.openEvent.target as Element).contains(event.target as Element) ||\n          (this.popoverService.openEvent.target as Element).parentElement.contains(event.target as Element) ||\n          this.popoverService.openEvent.target === event.target);\n\n      if (isToggleButton) {\n        event.stopPropagation();\n      }\n\n      if (this._outsideClickClose || isToggleButton) {\n        this.closePopover();\n      }\n    });\n  }\n\n  private resetPosition() {\n    if (this.overlayRef) {\n      this.overlayRef.updatePositionStrategy(this.positionStrategy);\n      this.overlayRef.updatePosition();\n    }\n  }\n\n  private closePopover() {\n    if (!this.overlayRef) {\n      return;\n    }\n\n    this.removeOverlay();\n    this.popoverService.open = false;\n\n    if (this.popoverService.originElement) {\n      const shouldFocusTrigger =\n        this.popoverType !== ClrPopoverType.TOOLTIP &&\n        (document.activeElement === document.body ||\n          document.activeElement === this.popoverService.originElement.nativeElement);\n\n      if (shouldFocusTrigger) {\n        this.popoverService.focusOrigin();\n      }\n    }\n  }\n\n  private showOverlay() {\n    if (!this.overlayRef) {\n      this._createOverlayRef();\n    }\n\n    if (!this.view && this.template) {\n      this.view = this.container.createEmbeddedView(this.template);\n\n      if (!this.elementRef) {\n        const [rootNode] = this.view.rootNodes;\n        this.elementRef = new ElementRef(rootNode); // So we know where/what to set close focus on\n      }\n    }\n\n    if (!this.domPortal) {\n      this.domPortal = new DomPortal<HTMLElement>(this.elementRef);\n      this.overlayRef.attach(this.domPortal);\n    }\n\n    if (this.popoverService.originElement) {\n      this.popoverService.originElement.nativeElement.scrollIntoView({\n        behavior: 'instant',\n        block: 'nearest',\n        inline: 'nearest',\n      });\n\n      this.setupIntersectionObserver();\n    }\n\n    setTimeout(() => {\n      // Get Scrollable Parents\n      this.listenToScrollEvents();\n\n      this.popoverService.popoverVisibleEmit(true);\n\n      if (this.elementRef?.nativeElement?.focus) {\n        this.elementRef.nativeElement.focus();\n      }\n    });\n  }\n\n  private removeOverlay(): void {\n    this.subscriptions.forEach(s => s.unsubscribe());\n    this.subscriptions = [];\n\n    if (this.overlayRef?.hasAttached()) {\n      this.overlayRef.detach();\n      this.overlayRef.dispose();\n    }\n\n    if (this.domPortal?.isAttached) {\n      this.domPortal.detach();\n    }\n\n    if (this.view) {\n      this.view.destroy();\n    }\n\n    this.overlayRef = null;\n    this.domPortal = null;\n    if (this.template) {\n      this.elementRef = null;\n    }\n    this.view = null;\n\n    this.intersectionObserver?.disconnect();\n    this.intersectionObserver = null;\n\n    this.popoverService.popoverVisibleEmit(false);\n  }\n\n  private getScrollableParents(node: HTMLElement) {\n    let parent = node;\n    const overflowScrollKeys = ['auto', 'scroll', 'clip'];\n    const scrollableParents: (HTMLDocument | HTMLElement)[] = [window.document];\n\n    while (parent && !(parent instanceof HTMLHtmlElement)) {\n      if (parent instanceof ShadowRoot) {\n        parent = parent.host as HTMLElement;\n      }\n\n      const { overflowY, overflowX } = window.getComputedStyle(parent);\n\n      if (overflowScrollKeys.includes(overflowY) || overflowScrollKeys.includes(overflowX)) {\n        scrollableParents.push(parent);\n      }\n\n      parent = parent.parentNode as HTMLElement;\n    }\n\n    return scrollableParents;\n  }\n\n  /**\n   * Uses IntersectionObserver to detect when the origin element leaves the screen.\n   * This handles the \"Close on Scroll\" logic much cheaper than getBoundingClientRect.\n   */\n  private setupIntersectionObserver() {\n    if (!this.popoverService.originElement || this.intersectionObserver) {\n      return;\n    }\n\n    this.intersectionObserver = new IntersectionObserver(\n      entries => {\n        entries.forEach(entry => {\n          // If the origin is no longer visible (scrolled out of view)\n          if (!entry.isIntersecting && this.popoverService.open) {\n            this.zone.run(() => this.closePopover());\n          }\n        });\n      },\n      { root: null, threshold: 0.8 }\n    );\n\n    this.intersectionObserver.observe(this.popoverService.originElement.nativeElement);\n  }\n\n  private listenToScrollEvents() {\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n\n    const originEl = this.popoverService.originPoint\n      ? this.popoverService.pointTargetElement\n      : this.getRootPopover(this)?.popoverService?.originElement?.nativeElement;\n\n    this.listenToScrollForElementOrigin(originEl);\n  }\n\n  // Element origins track ancestor scroll containers to reposition or close.\n  private listenToScrollForElementOrigin(originEl: HTMLElement) {\n    const scrollableParents = this.getScrollableParents(originEl);\n\n    this.zone.runOutsideAngular(() => {\n      this.subscriptions.push(\n        merge(...scrollableParents.map(parent => fromEvent(parent, 'scroll', { passive: true }))).subscribe(() => {\n          if (this._scrollToClose) {\n            this.zone.run(() => this.closePopover());\n            return;\n          }\n\n          this.overlayRef?.updatePosition();\n        })\n      );\n    });\n  }\n\n  private getRootPopover(popover: ClrPopoverContent): ClrPopoverContent {\n    if (popover && popover.parent) {\n      return this.getRootPopover(popover.parent);\n    }\n\n    return popover;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { ClrPopoverService } from './providers/popover.service';\n\n@Directive({\n  selector: '[clrPopoverOrigin]',\n  host: {\n    '[class.clr-popover-origin]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrPopoverOrigin {\n  constructor(popoverService: ClrPopoverService, element: ElementRef<HTMLButtonElement>) {\n    popoverService.origin = element;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ElementRef, InjectionToken } from '@angular/core';\n\nexport const POPOVER_HOST_ORIGIN = new InjectionToken<ElementRef>('POPOVER_HOST_ORIGIN');\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ClrPopoverService } from './providers/popover.service';\n\n@Directive({\n  standalone: true,\n})\nexport class ClrStopEscapePropagationDirective implements OnInit, OnDestroy {\n  private subscription: Subscription;\n  private lastOpenChange: boolean | null = null;\n\n  constructor(private popoverService: ClrPopoverService) {}\n\n  ngOnInit() {\n    this.subscription = this.popoverService.openChange.subscribe(open => {\n      this.lastOpenChange = open;\n    });\n  }\n\n  ngOnDestroy() {\n    this.subscription?.unsubscribe();\n  }\n\n  @HostListener('keyup.escape', ['$event'])\n  onEscapeKey(event: KeyboardEvent) {\n    if (this.lastOpenChange !== null) {\n      if (this.lastOpenChange === false) {\n        event.stopPropagation();\n      }\n\n      this.lastOpenChange = null;\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { POPOVER_HOST_ORIGIN } from './popover-host-origin.token';\nimport { ClrPopoverService } from './providers/popover.service';\nimport { ClrStopEscapePropagationDirective } from './stop-escape-propagation.directive';\n\n@Directive({\n  standalone: true,\n  providers: [ClrPopoverService, { provide: POPOVER_HOST_ORIGIN, useExisting: ElementRef }],\n  hostDirectives: [ClrStopEscapePropagationDirective],\n})\nexport class ClrPopoverHostDirective {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ClrPopoverService } from './providers/popover.service';\n\n/**********\n *\n * @class ClrIfOpen\n *\n * @description\n * A structural directive that controls whether or not the associated TemplateRef is instantiated or not.\n * It makes use of a Component instance level service: ClrPopoverService to maintain state between itself and the component\n * using it in the component template.\n *\n */\n@Directive({\n  selector: '[clrIfOpen]',\n})\nexport class ClrIfOpen implements OnDestroy {\n  static ngAcceptInputType_open: boolean | '';\n\n  /**********\n   * @property openChange\n   *\n   * @description\n   * An event emitter that emits when the open property is set to allow for 2way binding when the directive is\n   * used with de-structured / de-sugared syntax.\n   */\n  @Output('clrIfOpenChange') openChange = new EventEmitter<boolean>(false);\n\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    private popoverService: ClrPopoverService,\n    private template: TemplateRef<any>,\n    private container: ViewContainerRef\n  ) {\n    this.subscriptions.push(\n      popoverService.openChange.subscribe(change => {\n        // OPEN before overlay is built\n        if (change) {\n          container.createEmbeddedView(template);\n          this.openChange.emit(change);\n        }\n      }),\n      popoverService.popoverVisible.subscribe(change => {\n        // CLOSE after overlay is destroyed\n        if (!change) {\n          container.clear();\n          this.openChange.emit(change);\n        }\n      })\n    );\n  }\n\n  /**\n   * @description\n   * A property that gets/sets ClrPopoverService.open with value.\n   */\n  @Input('clrIfOpen')\n  get open() {\n    return this.popoverService.open;\n  }\n  set open(value: boolean | string) {\n    this.popoverService.open = value as boolean;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n\n  /**\n   * @description\n   * Function that takes a boolean value and either created an embedded view for the associated ViewContainerRef or,\n   * Clears all views from the ViewContainerRef\n   *\n   * @param value\n   */\n  updateView(value: boolean) {\n    if (value) {\n      this.container.createEmbeddedView(this.template);\n    } else {\n      this.container.clear();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, OnDestroy, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ClrPopoverService } from './providers/popover.service';\n\n@Directive({\n  selector: '[clrPopoverCloseButton]',\n  host: {\n    '[class.clr-smart-close-button]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrPopoverCloseButton implements OnDestroy, AfterViewInit {\n  @Output('clrPopoverOnCloseChange') closeChange = new EventEmitter<void>();\n\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    private elementRef: ElementRef<HTMLButtonElement>,\n    private popoverService: ClrPopoverService\n  ) {\n    this.subscriptions.push(\n      popoverService.openChange.pipe(filter(value => !value)).subscribe(() => {\n        this.closeChange.emit();\n      })\n    );\n  }\n\n  @HostListener('click', ['$event'])\n  handleClick(event: MouseEvent) {\n    this.popoverService.toggleWithEvent(event);\n    this.popoverService.focusOrigin();\n  }\n\n  ngAfterViewInit() {\n    this.popoverService.closeButtonRef = this.elementRef;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EventEmitter, HostListener, OnDestroy, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ClrPopoverService } from './providers/popover.service';\n\n@Directive({\n  selector: '[clrPopoverOpenCloseButton]',\n  host: {\n    '[class.clr-smart-open-close]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrPopoverOpenCloseButton implements OnDestroy {\n  @Output('clrPopoverOpenCloseChange') openCloseChange = new EventEmitter<boolean>();\n\n  private subscriptions: Subscription[] = [];\n\n  constructor(private popoverService: ClrPopoverService) {\n    this.subscriptions.push(\n      popoverService.openChange.subscribe(change => {\n        this.openCloseChange.emit(change);\n      })\n    );\n  }\n\n  @HostListener('click', ['$event'])\n  handleClick(event: MouseEvent) {\n    this.popoverService.toggleWithEvent(event);\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { ClrIfOpen } from './if-open.directive';\nimport { ClrPopoverCloseButton } from './popover-close-button';\nimport { ClrPopoverContent } from './popover-content';\nimport { ClrPopoverOpenCloseButton } from './popover-open-close-button';\nimport { ClrPopoverOrigin } from './popover-origin';\n\n@NgModule({\n  imports: [ClrPopoverContent, ClrIfOpen],\n  declarations: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton],\n  exports: [ClrPopoverOrigin, ClrPopoverCloseButton, ClrPopoverOpenCloseButton, ClrPopoverContent, ClrIfOpen],\n})\nexport class ClrPopoverModuleNext {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './popover-content';\nexport * from './providers/popover.service';\nexport * from './popover-origin';\nexport * from './popover-host.directive';\nexport * from './stop-escape-propagation.directive';\nexport * from './popover-host-origin.token';\nexport * from './if-open.directive';\nexport * from './utils/popover-positions';\n\nexport { ClrPopoverModuleNext } from './popover.module';\nexport { ClrPopoverCloseButton } from './popover-close-button';\nexport { ClrPopoverOpenCloseButton } from './popover-open-close-button';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ClrPopoverService","i1.ClrStopEscapePropagationDirective"],"mappings":"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"}