{"version":3,"file":"moxa-formoxa-mx-rich-tooltip.mjs","sources":["../../../../libs/formoxa/mx-rich-tooltip/src/lib/components/mx-rich-tooltip.component.ts","../../../../libs/formoxa/mx-rich-tooltip/src/lib/components/mx-rich-tooltip.component.html","../../../../libs/formoxa/mx-rich-tooltip/src/lib/directives/mx-rich-tooltip.directive.ts","../../../../libs/formoxa/mx-rich-tooltip/src/moxa-formoxa-mx-rich-tooltip.ts"],"sourcesContent":["import { OverlayModule } from '@angular/cdk/overlay';\n\nimport { AfterViewInit, Component, ElementRef, output, signal, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'mx-rich-tooltip-panel',\n  imports: [OverlayModule],\n  templateUrl: './mx-rich-tooltip.component.html',\n  styleUrls: ['./mx-rich-tooltip.component.scss'],\n  host: {\n    class: 'mx-rich-tooltip-panel'\n  }\n})\nexport class MxRichTooltipComponent implements AfterViewInit {\n  title = signal('');\n  hasContent = signal(false);\n  hasFooter = signal(false);\n\n  viewInitialized = output();\n\n  @ViewChild('contentContainer', { read: ElementRef }) private _contentContainer?: ElementRef<HTMLElement>;\n  @ViewChild('footerContainer', { read: ElementRef }) private _footerContainer?: ElementRef<HTMLElement>;\n\n  getContentContainer(): HTMLElement {\n    if (!this._contentContainer) {\n      throw new Error('Content container not available');\n    }\n    this.hasContent.set(true);\n    return this._contentContainer.nativeElement;\n  }\n\n  getFooterContainer(): HTMLElement {\n    if (!this._footerContainer) {\n      throw new Error('Footer container not available');\n    }\n    this.hasFooter.set(true);\n    return this._footerContainer.nativeElement;\n  }\n\n  ngAfterViewInit(): void {\n    this.viewInitialized.emit();\n  }\n}\n","<div class=\"mx-rich-tooltip\">\n  @if (title()) {\n    <div class=\"mx-rich-tooltip__title\">{{ title() }}</div>\n  }\n  <div class=\"mx-rich-tooltip__content\" #contentContainer [hidden]=\"!hasContent()\"></div>\n  <div class=\"mx-rich-tooltip__footer\" #footerContainer [hidden]=\"!hasFooter()\"></div>\n</div>\n","import { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  AfterContentInit,\n  Directive,\n  ElementRef,\n  OnDestroy,\n  Renderer2,\n  ViewContainerRef,\n  contentChild,\n  effect,\n  inject,\n  input,\n  signal\n} from '@angular/core';\nimport { MxRichTooltipComponent } from '../components/mx-rich-tooltip.component';\nimport { MxRichTooltipTrigger } from '../models/mx-rich-tooltip.model';\n\n@Directive({\n  selector: '[mxRichTooltip]',\n  standalone: true,\n  exportAs: 'mxRichTooltip'\n})\nexport class MxRichTooltipDirective implements AfterContentInit, OnDestroy {\n  #overlay = inject(Overlay);\n  #overlayPositionBuilder = inject(OverlayPositionBuilder);\n  #elementRef = inject(ElementRef);\n  #viewContainerRef = inject(ViewContainerRef);\n  #renderer = inject(Renderer2);\n\n  mxRichTooltipTitle = input('');\n  mxRichTooltipTrigger = input<MxRichTooltipTrigger>('hover');\n  mxRichTooltipCloseOnOutsideClick = input(true);\n\n  contentElement = contentChild('mxRichTooltipContent', { read: ElementRef<HTMLElement> });\n  footerElement = contentChild('mxRichTooltipFooter', { read: ElementRef<HTMLElement> });\n\n  #overlayRef?: OverlayRef;\n  #tooltipInstance?: MxRichTooltipComponent;\n  #originalContentParent?: HTMLElement;\n  #originalFooterParent?: HTMLElement;\n\n  #isOpenSignal = signal(false);\n  #eventListenerCleanupFns: (() => void)[] = [];\n\n  constructor() {\n    effect(() => {\n      this.mxRichTooltipTrigger();\n      this.#removeEventListeners();\n      if (this.#elementRef?.nativeElement) {\n        this.#setupEventListeners();\n      }\n    });\n  }\n\n  ngAfterContentInit(): void {\n    this.#createOverlay();\n    this.#hideContentElements();\n    this.#setupCloseButtons();\n  }\n\n  ngOnDestroy(): void {\n    this.#restoreContentElements();\n    this.#removeEventListeners();\n    this.#overlayRef?.dispose();\n  }\n\n  /**\n   * Public method to open the tooltip programmatically\n   */\n  open(): void {\n    this.#showTooltip();\n  }\n\n  /**\n   * Public method to close the tooltip programmatically\n   */\n  close(): void {\n    this.#hideTooltip();\n  }\n\n  /**\n   * Public method to toggle the tooltip programmatically\n   */\n  toggle(): void {\n    this.#toggleTooltip();\n  }\n\n  #hideContentElements(): void {\n    if (this.contentElement()) {\n      this.#renderer.setStyle(this.contentElement()!.nativeElement, 'display', 'none');\n    }\n    if (this.footerElement()) {\n      this.#renderer.setStyle(this.footerElement()!.nativeElement, 'display', 'none');\n    }\n  }\n\n  #setupEventListeners(): void {\n    const element = this.#elementRef.nativeElement;\n\n    if (this.mxRichTooltipTrigger() === 'hover') {\n      this.#setupHoverListeners(element);\n    } else if (this.mxRichTooltipTrigger() === 'click') {\n      this.#setupClickListeners(element);\n    }\n  }\n\n  #setupHoverListeners(element: HTMLElement): void {\n    this.#eventListenerCleanupFns.push(\n      this.#renderer.listen(element, 'mouseenter', () => this.#showTooltip()),\n      this.#renderer.listen(element, 'mouseleave', () => this.#hideTooltip()),\n      this.#renderer.listen(element, 'focus', () => this.#showTooltip()),\n      this.#renderer.listen(element, 'blur', () => this.#hideTooltip())\n    );\n  }\n\n  #setupClickListeners(element: HTMLElement): void {\n    this.#eventListenerCleanupFns.push(\n      this.#renderer.listen(element, 'click', (event) => {\n        event.stopPropagation();\n        this.#toggleTooltip();\n      })\n    );\n\n    // Close on document click (outside click) - only if enabled\n    this.#eventListenerCleanupFns.push(\n      this.#renderer.listen('document', 'click', (event: Event) => {\n        if (this.#isOpenSignal() && this.mxRichTooltipCloseOnOutsideClick() && !this.#isClickInsideTooltip(event)) {\n          this.#hideTooltip();\n        }\n      })\n    );\n  }\n\n  #removeEventListeners(): void {\n    this.#eventListenerCleanupFns.forEach((cleanup) => cleanup());\n    this.#eventListenerCleanupFns = [];\n  }\n\n  #isClickInsideTooltip(event: Event): boolean {\n    if (!this.#overlayRef?.overlayElement) {\n      return false;\n    }\n\n    const target = event.target as HTMLElement;\n    return this.#overlayRef.overlayElement.contains(target);\n  }\n\n  #toggleTooltip(): void {\n    if (this.#isOpenSignal()) {\n      this.#hideTooltip();\n    } else {\n      this.#showTooltip();\n    }\n  }\n\n  #createOverlay(): void {\n    const positionStrategy = this.#overlayPositionBuilder\n      .flexibleConnectedTo(this.#elementRef)\n      .withPositions([\n        // Preferred: Right bottom (bottom-right corner)\n        {\n          originX: 'end',\n          originY: 'bottom',\n          overlayX: 'start',\n          overlayY: 'top',\n          offsetX: 8,\n          offsetY: 8\n        },\n        // Fallback: Right top (top-right corner)\n        {\n          originX: 'end',\n          originY: 'top',\n          overlayX: 'start',\n          overlayY: 'bottom',\n          offsetX: 8,\n          offsetY: -8\n        },\n        // Fallback: Left bottom (bottom-left corner)\n        {\n          originX: 'start',\n          originY: 'bottom',\n          overlayX: 'end',\n          overlayY: 'top',\n          offsetX: -8,\n          offsetY: 8\n        },\n        // Fallback: Left top (top-left corner)\n        {\n          originX: 'start',\n          originY: 'top',\n          overlayX: 'end',\n          overlayY: 'bottom',\n          offsetX: -8,\n          offsetY: -8\n        },\n        // Fallback: Bottom center\n        {\n          originX: 'center',\n          originY: 'bottom',\n          overlayX: 'center',\n          overlayY: 'top',\n          offsetY: 8\n        },\n        // Fallback: Top center\n        {\n          originX: 'center',\n          originY: 'top',\n          overlayX: 'center',\n          overlayY: 'bottom',\n          offsetY: -8\n        },\n        // Fallback: Right center\n        {\n          originX: 'end',\n          originY: 'center',\n          overlayX: 'start',\n          overlayY: 'center',\n          offsetX: 8\n        },\n        // Fallback: Left center\n        {\n          originX: 'start',\n          originY: 'center',\n          overlayX: 'end',\n          overlayY: 'center',\n          offsetX: -8\n        }\n      ])\n      .withFlexibleDimensions(true)\n      .withPush(true)\n      .withGrowAfterOpen(true)\n      .withViewportMargin(8);\n\n    this.#overlayRef = this.#overlay.create({\n      positionStrategy,\n      scrollStrategy: this.#overlay.scrollStrategies.reposition(),\n      hasBackdrop: false\n    });\n  }\n\n  #showTooltip(): void {\n    if (!this.#overlayRef || this.#tooltipInstance) {\n      return;\n    }\n    this.#isOpenSignal.set(true);\n\n    const portal = new ComponentPortal(MxRichTooltipComponent, this.#viewContainerRef);\n    const componentRef = this.#overlayRef.attach(portal);\n    this.#tooltipInstance = componentRef.instance;\n\n    this.#tooltipInstance.title.set(this.mxRichTooltipTitle());\n\n    // Subscribe to view initialization event to move elements when ready\n    this.#tooltipInstance.viewInitialized.subscribe(() => {\n      this.#moveContentElements();\n    });\n  }\n\n  #moveContentElements(): void {\n    if (!this.#tooltipInstance) return;\n\n    // Move the actual DOM elements to the tooltip\n    if (this.contentElement()) {\n      this.#originalContentParent = this.contentElement()!.nativeElement.parentElement!;\n      const contentContainer = this.#tooltipInstance.getContentContainer();\n      this.#renderer.removeStyle(this.contentElement()!.nativeElement, 'display');\n      this.#renderer.appendChild(contentContainer, this.contentElement()!.nativeElement);\n    }\n\n    if (this.footerElement()) {\n      this.#originalFooterParent = this.footerElement()!.nativeElement.parentElement!;\n      const footerContainer = this.#tooltipInstance.getFooterContainer();\n      this.#renderer.removeStyle(this.footerElement()!.nativeElement, 'display');\n      this.#renderer.appendChild(footerContainer, this.footerElement()!.nativeElement);\n    }\n  }\n\n  #hideTooltip(): void {\n    this.#isOpenSignal.set(false);\n    this.#restoreContentElements();\n\n    this.#overlayRef?.detach();\n    this.#tooltipInstance = undefined;\n  }\n\n  #setupCloseButtons(): void {\n    // Find all elements with mxRichTooltipClose attribute in content and footer\n    const closeButtons: HTMLElement[] = [];\n\n    if (this.contentElement()) {\n      const contentCloseButtons = this.contentElement()!.nativeElement.querySelectorAll('[mxRichTooltipClose]');\n      closeButtons.push(...(Array.from(contentCloseButtons) as HTMLElement[]));\n    }\n\n    if (this.footerElement()) {\n      const footerCloseButtons = this.footerElement()!.nativeElement.querySelectorAll('[mxRichTooltipClose]');\n      closeButtons.push(...(Array.from(footerCloseButtons) as HTMLElement[]));\n    }\n\n    // Add click listeners to close buttons\n    closeButtons.forEach((button) => {\n      this.#eventListenerCleanupFns.push(\n        this.#renderer.listen(button, 'click', (event: Event) => {\n          event.stopPropagation();\n          this.close();\n        })\n      );\n    });\n  }\n\n  #restoreContentElements(): void {\n    if (this.contentElement() && this.#originalContentParent) {\n      this.#renderer.setStyle(this.contentElement()!.nativeElement, 'display', 'none');\n      this.#renderer.appendChild(this.#originalContentParent, this.contentElement()!.nativeElement);\n      this.#originalContentParent = undefined;\n    }\n\n    if (this.footerElement() && this.#originalFooterParent) {\n      this.#renderer.setStyle(this.footerElement()!.nativeElement, 'display', 'none');\n      this.#renderer.appendChild(this.#originalFooterParent, this.footerElement()!.nativeElement);\n      this.#originalFooterParent = undefined;\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}