{"version":3,"file":"verben-ng-ui-src-lib-components-tooltip.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/tooltip/tooltip.component.ts","../../../projects/verben-ng-ui/src/lib/components/tooltip/tooltip.component.html","../../../projects/verben-ng-ui/src/lib/components/tooltip/tooltip.module.ts","../../../projects/verben-ng-ui/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.ts"],"sourcesContent":["import { Component, Input, HostListener, TemplateRef, ElementRef, Renderer2 } from '@angular/core';\n\n@Component({\n  selector: 'verben-tooltip',\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.css']\n})\nexport class TooltipComponent {\n  @Input() tooltipContent!: TemplateRef<any>;\n  @Input() customClass: string = '';   \n  @Input() backgroundColor: string = 'black'; \n  @Input() textColor: string = 'white'; \n  @Input() padding: string = '5px 10px'; \n  @Input() borderRadius: string = '4px'; \n  @Input() zIndex: string = ''; \n  @Input() border: string = '';\n  @Input() width: string = '';\n  @Input() top?: string; \n  @Input() bottom?: string; \n  @Input() left?: string; \n  @Input() right?: string; \n  visible = false;\n\n  tooltipPosition = { top: '', left: '' };\n\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n  onMouseEnter(event: MouseEvent) {\n    this.visible = true;\n    this.updateTooltipPosition(event);\n  }\n\n  onMouseLeave() {\n    this.visible = false;\n  }\n\n  private updateTooltipPosition(event: MouseEvent) {\n    const tooltipElement = this.elementRef.nativeElement.querySelector('.tooltip-box');\n    const triggerElement = event.target as HTMLElement;\n\n    if (tooltipElement && triggerElement) {\n\n      const triggerRect = triggerElement.getBoundingClientRect();\n\n      const tooltipRect = tooltipElement.getBoundingClientRect();\n\n      const availableSpaceAbove = triggerRect.top;\n      const availableSpaceBelow = window.innerHeight - triggerRect.bottom;\n      const availableSpaceLeft = triggerRect.left;\n      const availableSpaceRight = window.innerWidth - triggerRect.right;\n\n      let top = triggerRect.bottom + 'px';\n      let left = (triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2) + 'px'; \n\n      if (availableSpaceBelow < tooltipRect.height && availableSpaceAbove >= tooltipRect.height) {\n        top = (triggerRect.top - tooltipRect.height) + 'px';\n      }\n\n      if (availableSpaceRight < tooltipRect.width && availableSpaceLeft >= tooltipRect.width) {\n        left = (triggerRect.left - tooltipRect.width) + 'px';\n      } else if (availableSpaceLeft < tooltipRect.width && availableSpaceRight >= tooltipRect.width) {\n        left = (triggerRect.right) + 'px';\n      }\n\n      this.tooltipPosition = { top, left };\n    }\n  }\n\n  get tooltipStyles() {\n    return {\n      'background-color':this.backgroundColor,\n      'width': this.width,\n      'color': this.textColor,\n      'padding': this.padding,\n      'border-radius': this.borderRadius,\n      'border': this.border,\n      'position': 'absolute',\n      'z-index': this.zIndex || '9999',\n      'top':  this.top || this.tooltipPosition.top,\n      'left': this.left || this.tooltipPosition.left,\n      'right': this.right,\n      'bottom': this.bottom,\n    };\n  }\n}\n","<span class=\"tooltip-container\" \n(mouseenter)=\"onMouseEnter($event)\" \n(mouseleave)=\"onMouseLeave()\"\n>\n  <ng-content></ng-content>\n  <div [ngStyle]=\"tooltipStyles\" [ngClass]=\"customClass\" *ngIf=\"visible\">\n    <ng-container *ngIf=\"tooltipContent\" >\n      <ng-template [ngTemplateOutlet]=\"tooltipContent\"></ng-template>\n    </ng-container>\n  </div>\n</span>\n\n\n","import { NgModule } from '@angular/core';\nimport { TooltipComponent } from './tooltip.component';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  declarations: [TooltipComponent],\n  imports: [SvgModule, CommonModule],\n  exports: [TooltipComponent],\n})\nexport class TooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}