{"version":3,"file":"acorex-components-tooltip.mjs","sources":["../../../../packages/components/tooltip/src/lib/tooltip.component.ts","../../../../packages/components/tooltip/src/lib/tooltip.component.html","../../../../packages/components/tooltip/src/lib/tooltip.directive.ts","../../../../packages/components/tooltip/src/lib/tooltip.module.ts","../../../../packages/components/tooltip/src/acorex-components-tooltip.ts"],"sourcesContent":["import { AXComponent, AXPlacement, MXBaseComponent } from '@acorex/cdk/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying tooltips with additional information or context when hovering over elements.\n * @category Components\n */\n@Component({\n  selector: 'ax-tooltip',\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.css'],\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }],\n})\nexport class AXTooltipComponent extends MXBaseComponent {\n  /**\n   * The text content displayed in the tooltip.\n   * @defaultValue 'string'\n   */\n  @Input()\n  text: string;\n\n  /**\n   * Specifies the position of the tooltip relative to the target element.\n   *\n   * @type {AXPlacement}\n   */\n  @Input()\n  position: AXPlacement;\n}\n","<div class=\"ax-tooltip-container\">\n  <div class=\"ax-tooltip\">\n    {{ text }}\n  </div>\n  <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n","import { AXPlacementType, convertToPlacement } from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { Directive, effect, ElementRef, inject, input, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\n//prettier-ignore\n// import { AXDragDirective } from '@acorex/cdk/drag-drop';\n\n@Directive({ selector: '[axTooltip]' })\nexport class AXTooltipDirective {\n  private vc = inject(ViewContainerRef);\n  private elementRef = inject(ElementRef);\n  // private dragRef = inject(AXDragDirective, { optional: true });\n\n  axTooltipDisabled = input(false);\n  content = input<string | TemplateRef<unknown>>('', { alias: 'axTooltip' });\n  context = input<unknown>({}, { alias: 'axTooltipContext' });\n\n  private _placement: AXPlacementType = convertToPlacement('top');\n  @Input('axTooltipPlacement')\n  public get placement(): AXPlacementType {\n    return this._placement;\n  }\n  public set placement(v: AXPlacementType) {\n    this._placement = v;\n    if (this.popoverRef) {\n      this.popoverRef.placement = v;\n    }\n  }\n\n  private _offsetX = 0;\n  @Input('axTooltipOffsetX')\n  public get offsetX(): number {\n    return this._offsetX;\n  }\n  public set offsetX(v: number) {\n    this._offsetX = v;\n    if (this.popoverRef) {\n      this.popoverRef.offsetX = v;\n    }\n  }\n\n  private _offsetY = 0;\n  @Input('axTooltipOffsetY')\n  public get offsetY(): number {\n    return this._offsetY;\n  }\n  public set offsetY(v: number) {\n    this._offsetY = v;\n    if (this.popoverRef) {\n      this.popoverRef.offsetY = v;\n    }\n  }\n\n  private _openAfter = 100;\n  @Input('axTooltipOpenAfter')\n  public get openAfter(): number {\n    return this._openAfter;\n  }\n  public set openAfter(v: number) {\n    this._openAfter = v;\n    if (this.popoverRef) {\n      this.popoverRef.openAfter = v;\n    }\n  }\n\n  private _closeAfter = 100;\n  @Input('axTooltipCloseAfter')\n  public get closeAfter(): number {\n    return this._closeAfter;\n  }\n  public set closeAfter(v: number) {\n    this._closeAfter = v;\n    if (this.popoverRef) {\n      this.popoverRef.closeAfter = v;\n    }\n  }\n\n  private popoverRef: AXPopoverComponent;\n\n  private ensurePopover(): void {\n    if (this.popoverRef) return;\n    this.popoverRef = this.vc.createComponent(AXPopoverComponent).instance;\n    this.popoverRef.target = this.elementRef.nativeElement;\n    this.popoverRef.openOn = 'hover';\n    this.popoverRef.closeOn = 'leave';\n    this.popoverRef.placement = this.placement;\n    this.popoverRef.offsetX = this.offsetX;\n    this.popoverRef.offsetY = this.offsetY;\n    this.popoverRef.openAfter = this.openAfter;\n    this.popoverRef.closeAfter = this.closeAfter;\n    this.popoverRef.disabled = this.axTooltipDisabled();\n  }\n\n  #contentEff = effect(() => {\n    const content = this.content();\n    const disabled = this.axTooltipDisabled();\n\n    if (!content || disabled) {\n      if (this.popoverRef?.isOpen) {\n        this.popoverRef.close();\n      }\n      if (this.popoverRef) {\n        this.popoverRef.disabled = true;\n      }\n      return;\n    }\n\n    this.ensurePopover();\n    this.popoverRef.disabled = false;\n\n    if (typeof content === 'string') {\n      this.popoverRef.content = AXTooltipComponent;\n      this.popoverRef.context = { text: content };\n    } else if (content instanceof TemplateRef) {\n      this.popoverRef.content = content as TemplateRef<unknown>;\n      this.popoverRef.context = this.context();\n    } else {\n      this.popoverRef.context = { text: '' };\n      this.popoverRef.content = null;\n    }\n  });\n\n  public close() {\n    this.popoverRef?.close();\n  }\n\n  #dragWatchEff = effect(() => {\n    // if (this.dragRef?.isMoving()) {\n    //   this.popoverRef.close();\n    // }\n  });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\nimport { AXTooltipDirective } from './tooltip.directive';\n\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n})\nexport class AXTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}