{"version":3,"file":"realsoft-reusable-components-tooltip.mjs","sources":["../../../src/reusable-components/tooltip/src/tooltip-component.ts","../../../src/reusable-components/tooltip/src/tooltip.ts","../../../src/reusable-components/tooltip/realsoft-reusable-components-tooltip.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'realsoft-tooltip',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  template: `\r\n    <div class=\"tooltip-container\">\r\n      {{ text }}\r\n    </div>\r\n  `,\r\n  styleUrl: './tooltip.scss',\r\n})\r\nexport class RealsoftTooltipComponent {\r\n  @Input() text = '';\r\n}","import { Directive, ElementRef, Input, OnDestroy, OnInit, booleanAttribute, inject } from '@angular/core';\r\nimport { Overlay, OverlayRef, OverlayPositionBuilder, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { RealsoftTooltipComponent } from './tooltip-component';\r\n\r\nexport type RealsoftTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\r\n\r\n@Directive({\r\n  selector: '[realsoftTooltip]',\r\n  exportAs: 'realsoftTooltip',\r\n  standalone: true\r\n})\r\nexport class RealsoftTooltip implements OnInit, OnDestroy {\r\n    @Input('realsoftTooltip') text = '';\r\n    @Input('realsoftTooltipPosition') tooltipPosition: RealsoftTooltipPosition = 'bottom';\r\n    @Input('realsoftTooltipShowDelay') showDelay = 100;\r\n    @Input('realsoftTooltipHideDelay') hideDelay = 100;\r\n    @Input({alias: `realsoftTooltipDisabled`, transform: booleanAttribute}) tooltipDisabled = false;\r\n  \r\n    private overlay = inject(Overlay);\r\n    private elementRef = inject(ElementRef);\r\n    private overlayPositionBuilder = inject(OverlayPositionBuilder);\r\n    \r\n    private overlayRef: OverlayRef | null = null;\r\n    private subscription = new Subscription();\r\n    private showTimeoutId: any = null;\r\n    private hideTimeoutId: any = null;\r\n    ngOnInit(): void {\r\n        // Monitor for mouseenter events\r\n        this.subscription.add(\r\n          fromEvent(this.elementRef.nativeElement, 'mouseenter').subscribe(() => {\r\n            if (this.tooltipDisabled) return;\r\n            \r\n            this.cancelHideTooltip();\r\n            this.showTimeoutId = setTimeout(() => this.show(), this.showDelay);\r\n          })\r\n        );\r\n    \r\n        // Monitor for mouseleave events\r\n        this.subscription.add(\r\n          fromEvent(this.elementRef.nativeElement, 'mouseleave').subscribe(() => {\r\n            this.cancelShowTooltip();\r\n            this.hideTimeoutId = setTimeout(() => this.hide(), this.hideDelay);\r\n          })\r\n        );\r\n      }\r\n    \r\n      ngOnDestroy(): void {\r\n        this.subscription.unsubscribe();\r\n        this.cancelShowTooltip();\r\n        this.cancelHideTooltip();\r\n        this.hide();\r\n      }\r\n\r\n\r\n    private cancelShowTooltip(): void {\r\n        if (this.showTimeoutId) {\r\n          clearTimeout(this.showTimeoutId);\r\n          this.showTimeoutId = null;\r\n        }\r\n      }\r\n    \r\n      private cancelHideTooltip(): void {\r\n        if (this.hideTimeoutId) {\r\n          clearTimeout(this.hideTimeoutId);\r\n          this.hideTimeoutId = null;\r\n        }\r\n      }\r\n    \r\n        show(): void {\r\n        // Check if disabled or if tooltip is empty\r\n        if (this.tooltipDisabled || !this.text || this.overlayRef) return;\r\n    \r\n        const positionStrategy = this.getPositionStrategy();\r\n        this.overlayRef = this.overlay.create({\r\n          positionStrategy,\r\n          scrollStrategy: this.overlay.scrollStrategies.close()\r\n        });\r\n    \r\n        const tooltipPortal = new ComponentPortal(RealsoftTooltipComponent);\r\n        const tooltipRef = this.overlayRef.attach(tooltipPortal);\r\n        \r\n        if (tooltipRef.instance) {\r\n          tooltipRef.instance.text = this.text;\r\n        }\r\n      }\r\n    \r\n       hide(): void {\r\n        if (this.overlayRef) {\r\n          this.overlayRef.detach();\r\n          this.overlayRef.dispose();\r\n          this.overlayRef = null;\r\n        }\r\n      }\r\n  private getPositionStrategy(): PositionStrategy {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPush(true);\r\n\r\n    switch (this.tooltipPosition) {\r\n      case 'top':\r\n        return positionStrategy.withPositions([\r\n          {\r\n            originX: 'center',\r\n            originY: 'top',\r\n            overlayX: 'center',\r\n            overlayY: 'bottom',\r\n            offsetY: -8\r\n          }\r\n        ]);\r\n      case 'bottom':\r\n        return positionStrategy.withPositions([\r\n          {\r\n            originX: 'center',\r\n            originY: 'bottom',\r\n            overlayX: 'center',\r\n            overlayY: 'top',\r\n            offsetY: 8\r\n          }\r\n        ]);\r\n      case 'left':\r\n        return positionStrategy.withPositions([\r\n          {\r\n            originX: 'start',\r\n            originY: 'center',\r\n            overlayX: 'end',\r\n            overlayY: 'center',\r\n            offsetX: -8\r\n          }\r\n        ]);\r\n      case 'right':\r\n        return positionStrategy.withPositions([\r\n          {\r\n            originX: 'end',\r\n            originY: 'center',\r\n            overlayX: 'start',\r\n            overlayY: 'center',\r\n            offsetX: 8\r\n          }\r\n        ]);\r\n      default:\r\n        return positionStrategy.withPositions([\r\n          {\r\n            originX: 'center',\r\n            originY: 'top',\r\n            overlayX: 'center',\r\n            overlayY: 'bottom',\r\n            offsetY: -8\r\n          }\r\n        ]);\r\n    }\r\n  }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}