{"version":3,"file":"bootkit-angular-components-tooltip.mjs","sources":["../../../projects/bootkit/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.ts","../../../projects/bootkit/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.html","../../../projects/bootkit/components/tooltip/tooltip.directive.ts","../../../projects/bootkit/components/tooltip/bootkit-angular-components-tooltip.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TooltipPlacement } from '../types';\r\n\r\n/**\r\n * @private\r\n */\r\n@Component({\r\n    selector: 'bk-tooltip-wrapper',\r\n    exportAs: 'bkTooltipWrapper',\r\n    styleUrls: ['./tooltip-wrapper.component.scss'],\r\n    templateUrl: './tooltip-wrapper.component.html',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: true,\r\n    imports: [CommonModule]\r\n})\r\nexport class TooltipWrapperComponent implements OnInit {\r\n    placement!: TooltipPlacement;\r\n    content!: any;\r\n    protected _hasTemplate!: boolean;\r\n\r\n    constructor(private _elementRef: ElementRef,private _renderer: Renderer2) {\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this._hasTemplate = this.content instanceof TemplateRef;\r\n        const elm = this._elementRef.nativeElement;\r\n        this._renderer.setAttribute(elm, 'role', 'tooltip');\r\n        ['tooltip', 'fade', 'show', 'bs-tooltip-' + this.placement].forEach(c => this._renderer.addClass(elm, c));\r\n    }\r\n}\r\n","<div class=\"tooltip-arrow\"></div>\r\n<div class=\"tooltip-inner\">\r\n    @if(_hasTemplate) {\r\n        <ng-container [ngTemplateOutlet]=\"content!\"></ng-container>\r\n    }@else{\r\n        {{content}}\r\n    }\r\n</div>","import {\r\n    Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\r\n    input\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\n// import { Placement } from '../../../src/lib';\r\nimport { TooltipWrapperComponent } from './tooltip-wrapper/tooltip-wrapper.component';\r\nimport { TooltipPlacement } from './types';\r\n\r\n@Directive({\r\n    selector: '[bkTooltip]',\r\n    exportAs: 'bkTooltip',\r\n    standalone: true\r\n})\r\nexport class TooltipDirective implements OnInit, OnDestroy {\r\n    public content = input<string | TemplateRef<any> | undefined | null>(undefined, { alias: 'bkTooltip' });\r\n    public placement = input<TooltipPlacement>('bottom');\r\n    private _portal!: ComponentPortal<TooltipWrapperComponent>;\r\n    private _overlayRef?: OverlayRef;\r\n\r\n    constructor(\r\n        private _overlayService: Overlay,\r\n        private _elementRef: ElementRef,\r\n        private _viewRef: ViewContainerRef) {\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this._portal = new ComponentPortal(TooltipWrapperComponent, this._viewRef);\r\n    }\r\n\r\n    @HostListener('mouseenter') private _onMouseEnter(): void {\r\n        this._createOverlay();\r\n    }\r\n\r\n    @HostListener('mouseleave') private _onMouseLeave(): void {\r\n        this._disposeOverlay();\r\n    }\r\n\r\n    private _createOverlay(): void {\r\n        let wrapperInstance: TooltipWrapperComponent;\r\n\r\n        const scrollStrategy = this._overlayService.scrollStrategies.reposition();\r\n        const positionStrategy = this._overlayService.position().flexibleConnectedTo(this._elementRef).withPositions(this._getPositions());\r\n\r\n        positionStrategy.positionChanges.subscribe(p => {\r\n            // wrapperInstance.placement = (p.connectionPair as any).key;\r\n        });\r\n\r\n        this._overlayRef = this._overlayService.create({ scrollStrategy, positionStrategy });\r\n        let wrapperRef = this._overlayRef.attach(this._portal);\r\n        wrapperRef.instance.content = this.content();\r\n        wrapperRef.instance.placement = this.placement();\r\n    }\r\n\r\n    private _disposeOverlay(): void {\r\n        if (this._overlayRef) {\r\n            this._overlayRef.dispose();\r\n            this._overlayRef = undefined;\r\n        }\r\n    }\r\n\r\n    private _getPositions(): any[] {\r\n        const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\r\n        const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\r\n        const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\r\n        const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\r\n        const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\r\n\r\n        let positions: Array<any>;\r\n\r\n        switch (this.placement()) {\r\n            case 'bottom':\r\n                positions = [bottom, top];\r\n                break;\r\n            case 'start':\r\n                positions = [start, start];\r\n                break;\r\n            case 'end':\r\n                positions = [end, start];\r\n                break;\r\n            case 'top':\r\n                positions = [top, bottom];\r\n                break;\r\n            default:\r\n                positions = [bottom, top];\r\n        }\r\n\r\n        return positions;\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this._disposeOverlay();\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}