{"version":3,"file":"ngx-popovers-tooltip.mjs","sources":["../../../../packages/tooltip/src/lib/tooltip/core/tooltip-base.component.ts","../../../../packages/tooltip/src/lib/tooltip/core/tooltip-config.ts","../../../../packages/tooltip/src/lib/tooltip/core/tooltip.injections.ts","../../../../packages/tooltip/src/lib/tooltip/template/tooltip-template.component.ts","../../../../packages/tooltip/src/lib/tooltip/template/tooltip-template.component.html","../../../../packages/tooltip/src/lib/tooltip/tooltip.ts","../../../../packages/tooltip/src/lib/tooltip/tooltip.html","../../../../packages/tooltip/src/ngx-popovers-tooltip.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n\n/**\n * Default tooltip component.\n *\n * It can be replaced with DI\n */\n@Component({\n  standalone: true,\n  styles: `\n    .ngx-tooltip {\n      padding: 4px 10px;\n      background: #FFFFFF;\n      border: 1px solid #DDDDDD;\n      border-radius: 4px;\n    }\n  `,\n  template: `\n    <div class=\"ngx-tooltip\">\n      {{ text }}\n    </div>\n  `\n})\nexport class TooltipBase {\n  @Input()\n  text = '';\n}\n","import { flip, FloatingConfig, MiddlewareList, NgxFloatingConfig, offset } from '@ngx-popovers/core';\n\nexport interface TooltipConfig extends FloatingConfig {\n  debounce: number;\n  arrow: boolean;\n  arrowPadding: number;\n}\n\nexport class NgxTooltipConfig extends NgxFloatingConfig implements TooltipConfig {\n  debounce = 100;\n  arrow = false;\n  arrowPadding = 2;\n\n  override middleware: MiddlewareList = [\n    offset(8),\n    flip()\n  ];\n\n  constructor(\n    config: Partial<TooltipConfig> = {}\n  ) {\n    super();\n    Object.assign(this, config);\n  }\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { TooltipBase } from './tooltip-base.component';\nimport { NgxTooltipConfig } from './tooltip-config';\n\nexport const NGX_TOOLTIP_CONFIG = new InjectionToken<NgxTooltipConfig>('NGX_TOOLTIP_CONFIG', {\n  providedIn: 'root',\n  factory: () => new NgxTooltipConfig()\n});\n\nexport const NGX_TOOLTIP_COMPONENT = new InjectionToken<Type<any>>('NGX-TOOLTIP_COMPONENT', {\n  providedIn: 'root',\n  factory: () => TooltipBase\n});\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  HostListener,\n  inject,\n  Input,\n  Output,\n  signal,\n  TemplateRef\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NGX_TOOLTIP_COMPONENT } from '../core/tooltip.injections';\n\n@Component({\n  selector: 'ngx-tooltip-template',\n  imports: [CommonModule],\n  templateUrl: './tooltip-template.component.html',\n  styleUrl: './tooltip-template.component.css',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipTemplate {\n  @Input()\n  text = '';\n\n  @Input()\n  component = inject(NGX_TOOLTIP_COMPONENT);\n\n  @Input()\n  template?: TemplateRef<void>;\n\n  @Output()\n  hovered = new EventEmitter<boolean>();\n\n  isHovered = signal(false);\n\n  @HostListener('mousemove', ['$event'])\n  onMousemove() {\n    if (!this.isHovered()) {\n      this.isHovered.set(true);\n      this.hovered.emit(true);\n    }\n  }\n\n  @HostListener('mouseleave', ['$event'])\n  onMouseleave() {\n    if (this.isHovered()) {\n      this.isHovered.set(false);\n      this.hovered.emit(false);\n    }\n  }\n}\n","@if (template) {\n  <ng-template\n    [ngTemplateOutlet]=\"template\"\n  />\n} @else {\n  <ng-template\n    [ngComponentOutlet]=\"component\"\n    [ngComponentOutletInputs]=\"{text: text}\"\n  />\n}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  inject,\n  input,\n  Input,\n  numberAttribute,\n  OnChanges,\n  Output,\n  signal,\n  TemplateRef\n} from '@angular/core';\nimport { Arrow, FloatingComponent, MiddlewareList, Placement, PlatformService } from '@ngx-popovers/core';\nimport { debounceTime, filter, fromEvent, Subscription, tap } from 'rxjs';\nimport { TooltipTemplate } from './template/tooltip-template.component';\nimport { NGX_TOOLTIP_COMPONENT, NGX_TOOLTIP_CONFIG } from './core/tooltip.injections';\nimport { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { ComputePosition } from './types';\n\n@Component({\n  selector: '[ngxTooltip]',\n  imports: [\n    TooltipTemplate,\n    FloatingComponent,\n    CommonModule,\n    Arrow\n  ],\n  providers: [PlatformService],\n  templateUrl: './tooltip.html',\n  styleUrl: './tooltip.css',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('fadeInOut', [\n      transition(':enter', [\n        style({ opacity: 0, transform: 'scale(0.9)' }),\n        animate(140, style({ opacity: 1, transform: 'scale(1)' }))\n      ]),\n      transition(':leave', [\n        animate(100, style({ opacity: 0 }))\n      ])\n    ])\n  ]\n})\nexport class NgxTooltip implements OnChanges {\n  config = inject(NGX_TOOLTIP_CONFIG);\n  cdRef = inject(ChangeDetectorRef);\n\n  @Input('ngxTooltip')\n  tooltipText = '';\n\n  @Input()\n  tooltipComponent = inject(NGX_TOOLTIP_COMPONENT);\n\n  @Input()\n  template?: TemplateRef<void>;\n\n  @Input()\n  placement: Placement = this.config.placement;\n\n  @Input()\n  middleware: MiddlewareList = this.config.middleware;\n\n  strategy = input(this.config.strategy);\n\n  private _ngxValue = false;\n\n  @Input()\n  set ngxValue(value: boolean) {\n    this._ngxValue = value;\n    if (value) {\n      this.onShow();\n    } else {\n      this.onHide();\n    }\n  }\n\n  get ngxValue() {\n    return this._ngxValue;\n  }\n\n  @Output()\n  ngxValueChange = new EventEmitter<boolean>();\n\n  /**\n   * Time delay before the tooltip is displayed\n   */\n  @Input({ transform: numberAttribute })\n  debounce = this.config.debounce;\n\n  /**\n   * Show arrow or not\n   */\n  @Input({ transform: booleanAttribute })\n  arrow = this.config.arrow;\n\n  /**\n   * Show arrow or not\n   */\n  @Input({ transform: numberAttribute })\n  arrowPadding = this.config.arrowPadding;\n\n  /**\n   * Updates floating element automatically\n   */\n  @Input({ transform: booleanAttribute })\n  autoUpdate = this.config.autoUpdate;\n\n  /**\n   * HTMLElement where floating renders\n   */\n  @Input()\n  bindTo = this.config.bindTo;\n\n  @Input({ transform: booleanAttribute })\n  tooltipDisabled = false;\n\n  @Input({ transform: booleanAttribute })\n  animationDisabled = false;\n\n  /**\n   * Emits when tooltip shows\n   */\n  @Output()\n  showEnd = new EventEmitter();\n\n  /**\n   * Emits when tooltip hides\n   */\n  @Output()\n  hideEnd = new EventEmitter();\n\n  @Output()\n  animationStart = new EventEmitter<AnimationEvent>();\n\n  @Output()\n  animationDone = new EventEmitter<AnimationEvent>();\n\n  @Output()\n  clickedOutside = new EventEmitter<Element>();\n\n  @Output()\n  clickedInside = new EventEmitter<Element>();\n\n  @Output()\n  computePosition = new EventEmitter<ComputePosition>();\n\n  isTooltipCreated = signal(false);\n  isReferenceHovered = signal(false);\n  isTooltipHovered = signal(false);\n  isAnimating = signal(false);\n\n  get reference() {\n    return this.el.nativeElement as HTMLElement;\n  }\n\n  get fixedDebounce() {\n    return this.fixDebounce(this.debounce);\n  }\n\n  constructor(\n    private el: ElementRef\n  ) {\n  }\n\n  ngOnChanges() {\n    this.initListeners();\n  }\n\n  initListeners() {\n    this.mouseMoveListener();\n    this.mouseleaveListener();\n    this.focusListener();\n    this.blurListener();\n  }\n\n  private moveSubscriber$?: Subscription;\n\n  mouseMoveListener() {\n    this.moveSubscriber$?.unsubscribe();\n\n    this.moveSubscriber$ = fromEvent(this.reference, 'mousemove').pipe(\n      filter(() => !this.tooltipDisabled),\n      tap(() => this.isReferenceHovered.set(true)),\n      filter(() => !this.isTooltipCreated()),\n      debounceTime(this.fixedDebounce),\n      filter(() => this.isReferenceHovered())\n    ).subscribe(() => {\n      this.ngxValue = true;\n      this.cdRef.detectChanges();\n    });\n  }\n\n  private focusListener$?: Subscription;\n\n  focusListener() {\n    this.focusListener$?.unsubscribe();\n\n    this.focusListener$ = fromEvent(this.reference, 'focus').pipe(\n      filter(() => !this.tooltipDisabled),\n      filter(() => !this.isTooltipCreated()),\n      debounceTime(this.fixedDebounce)\n    ).subscribe(() => {\n      this.ngxValue = true;\n    });\n  }\n\n  private leaveSubscriber$?: Subscription;\n\n  mouseleaveListener() {\n    this.leaveSubscriber$?.unsubscribe();\n\n    this.leaveSubscriber$ = fromEvent(this.reference, 'mouseleave').pipe(\n      filter(() => !this.tooltipDisabled),\n      tap(() => this.isReferenceHovered.set(false)),\n      filter(() => this.isTooltipCreated()),\n      debounceTime(this.fixedDebounce),\n      filter(() => !this.isTooltipHovered())\n    ).subscribe(() => {\n      this.ngxValue = false;\n      this.cdRef.detectChanges();\n    });\n  }\n\n  private blurListener$?: Subscription;\n\n  blurListener() {\n    this.blurListener$?.unsubscribe();\n\n    this.blurListener$ = fromEvent(this.reference, 'blur').pipe(\n      filter(() => !this.tooltipDisabled),\n      filter(() => this.isTooltipCreated()),\n      debounceTime(this.fixedDebounce),\n      filter(() => !this.isTooltipHovered())\n    ).subscribe(() => {\n      this.ngxValue = false;\n    });\n  }\n\n  onShow() {\n    if (this.isTooltipCreated()) {\n      return;\n    }\n\n    this.show();\n  }\n\n  onHide() {\n    if (!this.isTooltipCreated()) {\n      return;\n    }\n\n    this.hide();\n  }\n\n  show() {\n    this.isAnimating.set(true);\n    this.isTooltipCreated.set(true);\n    this.showEnd.emit();\n    this.ngxValueChange.emit(true);\n  }\n\n  hide() {\n    this.isAnimating.set(true);\n    this.isTooltipCreated.set(false);\n    this.hideEnd.emit();\n    this.ngxValueChange.emit(false);\n  }\n\n  setTooltipHovered($event: boolean) {\n    if (!$event) {\n      this.hide();\n    }\n    this.isTooltipHovered.set($event);\n  }\n\n  onClickedInside(element: Element) {\n    this.clickedInside.emit(element);\n  }\n\n  /**\n   * Check if user clicked outside the reference and the tooltip element.\n   * Close tooltip if user clicks outside (actually for touch devices)\n   */\n  onClickedOutside(element: Element) {\n    if (element !== this.reference) {\n      this.ngxValue = false;\n    }\n\n    this.clickedOutside.emit(element);\n  }\n\n  onAnimationStart(event: AnimationEvent) {\n    this.isAnimating.set(true);\n    this.animationStart.emit(event);\n  }\n\n  onAnimationDone(event: AnimationEvent) {\n    this.isAnimating.set(false);\n    this.animationDone.emit(event);\n  }\n\n  onPositionReturn($event: ComputePosition) {\n    this.computePosition.emit($event);\n  }\n\n  private fixDebounce(time: unknown) {\n    if (typeof time === 'number') {\n      return time >= 0 ? time : 0;\n    }\n    return 0;\n  }\n}\n","<ng-content />\n\n@if ((isTooltipCreated() || isAnimating()) && reference.isConnected) {\n  <ngx-floating\n    [reference]=\"reference\"\n    [placement]=\"placement\"\n    [middleware]=\"middleware\"\n    [autoUpdate]=\"autoUpdate\"\n    [bindTo]=\"bindTo\"\n    [strategy]=\"strategy()\"\n\n    (clickedInside)=\"onClickedInside($event)\"\n    (clickedOutside)=\"onClickedOutside($event)\"\n    (computePositionReturn)=\"onPositionReturn($event)\"\n  >\n    @if (isTooltipCreated()) {\n      <div\n        @fadeInOut\n        (@fadeInOut.start)=\"onAnimationStart($event)\"\n        (@fadeInOut.done)=\"onAnimationDone($event)\"\n        [@.disabled]=\"animationDisabled\"\n      >\n        <ngx-tooltip-template\n          [template]=\"template\"\n          [component]=\"tooltipComponent\"\n          [text]=\"tooltipText\"\n          (hovered)=\"setTooltipHovered($event)\"\n        />\n\n        @if (arrow) {\n          <ngx-arrow [padding]=\"arrowPadding\" />\n        }\n      </div>\n    }\n  </ngx-floating>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}