{"version":3,"file":"ionic-adv-tooltip.mjs","sources":["../../../projects/ionic-adv-tooltip/src/lib/ionic-adv-tooltip.ts","../../../projects/ionic-adv-tooltip/src/lib/adv-tooltip-popover/adv-tooltip-popover.component.ts","../../../projects/ionic-adv-tooltip/src/lib/adv-tooltip-popover/adv-tooltip-popover.component.html","../../../projects/ionic-adv-tooltip/src/lib/adv-tooltip.directive.ts","../../../projects/ionic-adv-tooltip/src/lib/adv-tooltip.module.ts","../../../projects/ionic-adv-tooltip/src/public-api.ts","../../../projects/ionic-adv-tooltip/src/ionic-adv-tooltip.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ionic-adv-tooltip',\r\n  imports: [],\r\n  template: `\r\n    <p>\r\n      Testing ionic-adv-tooltip!\r\n    </p>\r\n  `,\r\n  styles: ``,\r\n})\r\nexport class IonicAdvTooltip {\r\n\r\n}\r\n","import {\r\n  Component, Input, TemplateRef, ChangeDetectionStrategy,\r\n  ViewChild, ViewContainerRef, Type, Injector, AfterViewInit\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'iat-popover',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './adv-tooltip-popover.component.html',\r\n  styleUrls: ['./adv-tooltip-popover.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdvTooltipPopoverComponent implements AfterViewInit {\r\n  /** Template content (rich HTML) */\r\n  @Input() template?: TemplateRef<any>;\r\n  /** Plain text fallback */\r\n  @Input() text?: string;\r\n  /** Max width in px (kept for backward compatibility with existing demos) */\r\n  @Input() maxWidth = 280;\r\n\r\n  /** Optional: live component preview */\r\n  @Input() componentType?: Type<any>;\r\n  @Input() componentInputs?: Record<string, any>;\r\n\r\n  /** Optional: background override coming from directive (CSS color string) */\r\n  @Input() bg?: string;\r\n\r\n  //  with @if, the #host template is conditional → static: false\r\n  @ViewChild('host', { read: ViewContainerRef, static: false })\r\n  hostVcr?: ViewContainerRef;\r\n\r\n  constructor(private injector: Injector) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.componentType && this.hostVcr) {\r\n      const ref = this.hostVcr.createComponent(this.componentType, { injector: this.injector });\r\n      if (this.componentInputs && ref.instance) {\r\n        Object.assign(ref.instance as any, this.componentInputs);\r\n      }\r\n    }\r\n  }\r\n}\r\n","<div\r\n  class=\"tooltip-wrap\"\r\n  [style.maxWidth.px]=\"maxWidth\"\r\n  [style.background]=\"bg || null\"\r\n>\r\n  @if (componentType) {\r\n    <ng-template #host></ng-template>\r\n  } @else {\r\n    @if (template) {\r\n      <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\r\n    } @else {\r\n      <div class=\"tooltip-text\">{{ text }}</div>\r\n    }\r\n  }\r\n</div>\r\n","import {\r\n  Directive, Input, TemplateRef, ElementRef, NgZone, OnDestroy,\r\n  HostListener, Type\r\n} from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { AdvTooltipPopoverComponent } from './adv-tooltip-popover/adv-tooltip-popover.component';\r\n\r\ntype TooltipSide = 'auto' | 'top' | 'bottom' | 'left' | 'right';\r\ntype TooltipAlign = 'start' | 'center' | 'end';\r\n\r\n/* Animations catalogue (5 enter + 5 exit) */\r\ntype IatEnter = 'fade' | 'scale' | 'up' | 'right' | 'pop';\r\ntype IatExit  = 'fade' | 'scale' | 'down' | 'left' | 'shrink';\r\n\r\n@Directive({\r\n  selector: '[iatTooltip],[iatTooltipText],[appTooltip],[appTooltipText],[iatEnableComponent],[iatComponent]',\r\n  standalone: true,\r\n  providers: [PopoverController]\r\n})\r\nexport class AdvTooltipDirective implements OnDestroy {\r\n  /** Rich content via ng-template */\r\n  @Input('iatTooltip') template?: TemplateRef<any>;\r\n  /** Plain text content */\r\n  @Input('iatTooltipText') text?: string;\r\n\r\n  /** Optional: render a live Angular component inside the tooltip */\r\n  @Input() iatEnableComponent = false;\r\n  @Input() iatComponent?: Type<any> | null;\r\n  @Input() iatComponentInputs?: Record<string, any> | null;\r\n\r\n  /** Interactive tooltip (clickable) vs hover/focus preview (pointer-events: none) */\r\n  @Input() iatInteractive = false;\r\n\r\n  /** Timings (ms) */\r\n  @Input() iatOpenDelay = 150;\r\n  @Input() iatCloseDelay = 0;\r\n  @Input() iatAutoHideMs = 1800;\r\n\r\n  /** Legacy sizing (kept): forwarded to component maxWidth binding */\r\n  @Input() iatMaxWidth = 280;\r\n\r\n  /** Positioning */\r\n  @Input() iatDirection: TooltipSide = 'auto';\r\n  @Input() iatAlign: TooltipAlign = 'center';\r\n\r\n  @Input() iatPopoverBg?: string;               // CSS color (e.g., '#222', 'rgba(...)', 'var(--ion-color-light)')\r\n  @Input() iatPopoverWidth?: number | string;   // number => px, or CSS string (e.g., '28rem', '80vw')\r\n  @Input() iatPopoverMinWidth?: number | string;\r\n  @Input() iatPopoverMaxWidth?: number | string;\r\n  @Input() iatPopoverHeight?: number | string;\r\n  @Input() iatPopoverMinHeight?: number | string;\r\n  @Input() iatPopoverMaxHeight?: number | string;\r\n\r\n  /** NEW: Animations */\r\n  @Input() iatEnter?: IatEnter;                 // 'fade' | 'scale' | 'up' | 'right' | 'pop'\r\n  @Input() iatExit?: IatExit;                   // 'fade' | 'scale' | 'down' | 'left' | 'shrink'\r\n  @Input() iatAnimDurationMs?: number = 180;    // optional override for both enter/exit\r\n  @Input() iatAnimEasing?: string;              // e.g., 'cubic-bezier(.2,.8,.2,1)'\r\n\r\n  // Back-compat aliases\r\n  @Input('appTooltip') set appTooltipAlias(tpl: TemplateRef<any> | null) { this.template = tpl ?? undefined; }\r\n  @Input('appTooltipText') set appTooltipTextAlias(txt: string | null) { this.text = (txt ?? undefined) as any; }\r\n  @Input() set appTooltipDelay(v: number | null) { if (typeof v === 'number') this.iatOpenDelay = v; }\r\n  @Input() set appTooltipCloseDelay(v: number | null) { if (typeof v === 'number') this.iatCloseDelay = v; }\r\n  @Input() set appTooltipAutoHideMs(v: number | null) { if (typeof v === 'number') this.iatAutoHideMs = v; }\r\n  @Input() set appTooltipMaxWidth(v: number | null) { if (typeof v === 'number') this.iatMaxWidth = v; }\r\n  @Input() set appTooltipDirection(v: TooltipSide) { if (v) this.iatDirection = v; }\r\n  @Input() set appTooltipAlign(v: TooltipAlign) { if (v) this.iatAlign = v; }\r\n\r\n  private popover?: HTMLIonPopoverElement | null = null;\r\n  private openTimer?: any;\r\n  private closeTimer?: any;\r\n\r\n  constructor(\r\n    private popoverCtrl: PopoverController,\r\n    private host: ElementRef<HTMLElement>,\r\n    private zone: NgZone\r\n  ) {}\r\n\r\n  ngOnDestroy(): void { this.clearTimers(); this.dismiss(true); }\r\n\r\n  // ---- Host interactions ----\r\n  @HostListener('mouseenter', ['$event']) onMouseEnter(ev: MouseEvent) { this.queueOpen(ev); }\r\n  @HostListener('mouseleave') onMouseLeave() { this.queueClose(); }\r\n  @HostListener('focus') onFocus() {\r\n    const r = this.host.nativeElement.getBoundingClientRect();\r\n    const fake = new MouseEvent('focus', { clientX: r.left + r.width/2, clientY: r.top });\r\n    this.queueOpen(fake);\r\n  }\r\n  @HostListener('blur') onBlur() { this.queueClose(); }\r\n\r\n  @HostListener('touchstart', ['$event'])\r\n  onTouchStart(ev: TouchEvent) {\r\n    const t = ev.touches[0];\r\n    const fake = new MouseEvent('touch', { clientX: t.clientX, clientY: t.clientY });\r\n    this.queueOpen(fake);\r\n    if (this.iatAutoHideMs > 0) this.queueClose(this.iatAutoHideMs);\r\n  }\r\n\r\n  @HostListener('click') onClick() { this.dismiss(); }\r\n  @HostListener('window:scroll') onWindowScroll() { this.queueClose(0); }\r\n  @HostListener('window:resize') onWindowResize() { this.queueClose(0); }\r\n\r\n  // ---- Timers ----\r\n  private queueOpen(ev: MouseEvent) {\r\n    this.clearTimers();\r\n    this.openTimer = setTimeout(() => this.zone.run(() => this.present(ev)), this.iatOpenDelay);\r\n  }\r\n  private queueClose(delay = this.iatCloseDelay) {\r\n    this.clearTimers();\r\n    this.closeTimer = setTimeout(() => this.zone.run(() => this.dismiss()), delay);\r\n  }\r\n  private clearTimers() {\r\n    if (this.openTimer) clearTimeout(this.openTimer);\r\n    if (this.closeTimer) clearTimeout(this.closeTimer);\r\n    this.openTimer = this.closeTimer = undefined;\r\n  }\r\n\r\n  // ---- Utils ----\r\n  private toCss(v?: number | string): string | undefined {\r\n    if (v === null || v === undefined || v === '') return undefined;\r\n    return typeof v === 'number' ? `${v}px` : String(v);\r\n  }\r\n\r\n  // ---- Popover lifecycle ----\r\n  private async present(ev: MouseEvent) {\r\n    if (this.popover) return;\r\n    if (!this.template && !this.text && !this.iatComponent) return;\r\n\r\n    const cssClasses: string[] = ['app-tooltip-popover'];\r\n    if (this.iatEnter) cssClasses.push(`iat-enter-${this.iatEnter}`);\r\n\r\n    const opts: any = {\r\n      component: AdvTooltipPopoverComponent,\r\n      componentProps: {\r\n        componentType: this.iatEnableComponent ? this.iatComponent : undefined,\r\n        componentInputs: this.iatEnableComponent ? (this.iatComponentInputs || {}) : undefined,\r\n        template: !this.iatEnableComponent ? this.template : undefined,\r\n        text: (!this.iatEnableComponent && !this.template) ? this.text : undefined,\r\n        maxWidth: this.iatMaxWidth,\r\n        bg: this.iatPopoverBg                      // pass bg override to component\r\n      },\r\n      event: ev,\r\n      showBackdrop: false,\r\n      backdropDismiss: false,\r\n      translucent: true,\r\n      cssClass: cssClasses,\r\n      keyboardClose: false\r\n    };\r\n\r\n    if (this.iatDirection !== 'auto') opts.side = this.iatDirection;\r\n    if (this.iatAlign) opts.alignment = this.iatAlign;\r\n\r\n    this.popover = await this.popoverCtrl.create(opts);\r\n\r\n    // Apply size vars to the <ion-popover> host only if provided (no breaks otherwise)\r\n    const setVar = (n: string, v?: number | string) => {\r\n      const css = this.toCss(v);\r\n      if (css) this.popover!.style.setProperty(n, css);\r\n    };\r\n    setVar('--width',      this.iatPopoverWidth);\r\n    setVar('--min-width',  this.iatPopoverMinWidth);\r\n    setVar('--max-width',  this.iatPopoverMaxWidth);\r\n    setVar('--height',     this.iatPopoverHeight);\r\n    setVar('--min-height', this.iatPopoverMinHeight);\r\n    setVar('--max-height', this.iatPopoverMaxHeight);\r\n\r\n    // Optional animation tuning via CSS vars\r\n    if (this.iatAnimDurationMs) this.popover.style.setProperty('--iat-anim-dur', `${this.iatAnimDurationMs}ms`);\r\n    if (this.iatAnimEasing)     this.popover.style.setProperty('--iat-anim-ease', this.iatAnimEasing);\r\n\r\n    // Pointer events off for non-interactive preview\r\n    if (!this.iatInteractive) {\r\n      try {\r\n        (this.popover as any).style.pointerEvents = 'none';\r\n        const content = (this.popover as any).shadowRoot?.querySelector('[part=\"content\"]') as HTMLElement | null;\r\n        if (content) content.style.pointerEvents = 'none';\r\n      } catch {}\r\n    }\r\n\r\n    await this.popover.present();\r\n  }\r\n\r\n  private async dismiss(force = false) {\r\n    if (!this.popover) return;\r\n\r\n    // If an exit animation is provided, play it before dismiss\r\n    if (!force && this.iatExit) {\r\n      const cls = `iat-exit-${this.iatExit}`;\r\n      this.popover.classList.add(cls);\r\n\r\n      // Wait for animation end or timeout as fallback\r\n      const done = await new Promise<void>((resolve) => {\r\n        let resolved = false;\r\n        const to = setTimeout(() => { if (!resolved) { resolved = true; resolve(); } }, Math.max(120, this.iatAnimDurationMs ?? 150) + 40);\r\n        this.popover!.addEventListener('animationend', () => {\r\n          if (!resolved) { clearTimeout(to); resolved = true; resolve(); }\r\n        }, { once: true });\r\n      });\r\n      // no-op 'done', then actually dismiss\r\n    }\r\n\r\n    try { await this.popover.dismiss(); } catch {}\r\n    this.popover = null;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { AdvTooltipDirective } from './adv-tooltip.directive';\r\nimport { AdvTooltipPopoverComponent } from './adv-tooltip-popover/adv-tooltip-popover.component';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    AdvTooltipDirective,          \r\n    AdvTooltipPopoverComponent\r\n  ],\r\n  exports: [AdvTooltipDirective]\r\n})\r\nexport class IonicAdvancedTooltipModule {}\r\n","/*\r\n * Public API Surface of ionic-adv-tooltip\r\n */\r\n\r\nexport * from './lib/ionic-adv-tooltip';\r\nexport * from './lib/adv-tooltip.module';\r\nexport * from './lib/adv-tooltip.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}