{"version":3,"file":"ironsource-fusion-ui-components-tooltip-v3.mjs","sources":["../../../projects/fusion-ui/components/tooltip/v3/tooltip.content.component.ts","../../../projects/fusion-ui/components/tooltip/v3/tooltip-content.directive.ts","../../../projects/fusion-ui/components/tooltip/v3/tooltip.directive.ts","../../../projects/fusion-ui/components/tooltip/v3/tooltip.component.ts","../../../projects/fusion-ui/components/tooltip/v3/tooltip.module.ts","../../../projects/fusion-ui/components/tooltip/v3/ironsource-fusion-ui-components-tooltip-v3.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ElementRef, Input, Renderer2, TemplateRef} from '@angular/core';\nimport {TooltipComponentStyleConfiguration, TooltipPosition} from '@ironsource/fusion-ui/components/tooltip/common/base';\n\n@Component({\n    selector: 'fusion-tooltip-content',\n    template: ` <div class=\"fu-tooltip-component\">\n        <ng-container *ngIf=\"!tooltipInnerText\" [ngTemplateOutlet]=\"temp\"></ng-container>\n        <span *ngIf=\"tooltipInnerText\">{{ tooltipInnerText }}</span>\n    </div>`,\n    styleUrls: ['./tooltip.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipContentComponent {\n    /** @internal */\n    tooltipInnerText: string;\n    /** @internal */\n    position: string;\n    /** @internal */\n    temp: TemplateRef<any>;\n\n    @Input() set tooltipTextContent(text: string) {\n        if (text) {\n            this.tooltipInnerText = text;\n        }\n    }\n\n    /** @internal */\n    @Input() set templateRef(template: TemplateRef<any>) {\n        this.temp = template;\n    }\n\n    @Input() set tooltipPositionClass(pos: TooltipPosition) {\n        this.position = TooltipPosition[pos]?.toLowerCase();\n        this.renderer.addClass(this.elementRef.nativeElement, 'fu-tooltip-' + this.position);\n    }\n\n    @Input() set tooltipStyleConfiguration(config: TooltipComponentStyleConfiguration) {\n        if (config) {\n            this.setTooltipStyle(config);\n        }\n    }\n\n    constructor(\n        /** @internal */\n        public elementRef: ElementRef,\n        private renderer: Renderer2\n    ) {}\n\n    private setTooltipStyle(propertyValue: {[key: string]: string}) {\n        Object.keys(propertyValue).forEach(val => {\n            if (val === 'backgroundColor' && !!propertyValue[val]) {\n                this.elementRef.nativeElement.style.setProperty('--fu-tooltip-background-color', propertyValue[val]);\n            } else {\n                this.renderer.setStyle(this.elementRef.nativeElement, val, propertyValue[val]);\n            }\n        });\n    }\n}\n","import {ComponentRef, Directive, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {TooltipContentComponent} from './tooltip.content.component';\n\n@Directive({\n    selector: `[fusionTooltipContent]`\n})\nexport class TooltipContentDirective {\n    private componentRef: ComponentRef<TooltipContentComponent>;\n\n    constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) {}\n\n    get tooltipComponentRef() {\n        return this.componentRef;\n    }\n\n    create() {\n        if (!this.componentRef) {\n            this.componentRef = this.viewContainerRef.createComponent(TooltipContentComponent);\n            this.componentRef.instance.templateRef = this.templateRef;\n        }\n    }\n\n    destroy() {\n        this.componentRef.destroy();\n        this.componentRef = null;\n    }\n}\n","import {\n    Input,\n    Renderer2,\n    Directive,\n    ElementRef,\n    ContentChild,\n    OnDestroy,\n    AfterViewInit,\n    ComponentRef,\n    ViewContainerRef\n} from '@angular/core';\nimport {TooltipContentComponent} from './tooltip.content.component';\nimport {IShiftPosition, tooltipConfiguration, TooltipPosition} from '@ironsource/fusion-ui/components/tooltip/common/base';\nimport {fromEvent, Observable, of, Subject} from 'rxjs';\nimport {switchMap, takeUntil} from 'rxjs/operators';\nimport {TooltipContentDirective} from './tooltip-content.directive';\n\n@Directive({selector: '[fusionTooltip]'})\nexport class TooltipDirective implements OnDestroy, AfterViewInit {\n    //todo: Fix React not passing configuration for static mode\n    @ContentChild(TooltipContentDirective, {static: true}) directiveRef!: TooltipContentDirective;\n    @ContentChild('tooltipTriggerElement', {static: true}) tooltipTriggerElement!: ElementRef;\n    @ContentChild('tooltipTriggerElement', {static: true, read: ViewContainerRef}) viewTriggerContainer!: ViewContainerRef;\n\n    @Input() fusionTooltip = '';\n    @Input() set configuration(config: tooltipConfiguration) {\n        if (config) {\n            this.width = config?.width;\n            this.height = config?.height;\n            this.backgroundColor = config?.backgroundColor;\n            this.preventTooltipToClose = config?.preventTooltipToClose;\n        }\n    }\n\n    width: number;\n    height: number;\n    backgroundColor: string;\n    preventTooltipToClose: boolean = false;\n\n    private visible = false;\n    private onDestroy$ = new Subject<void>();\n    private tooltipElement: HTMLElement;\n    private position = TooltipPosition.Top;\n    private tooltipPosition: {\n        position: TooltipPosition;\n        left: number;\n        top: number;\n    };\n    private viewContainerRef: ViewContainerRef;\n    private tooltipComponentRef: ComponentRef<TooltipContentComponent>;\n\n    constructor(private renderer: Renderer2, private elementRef: ElementRef, private vcr: ViewContainerRef) {}\n\n    ngAfterViewInit() {\n        this.viewContainerRef = this.viewTriggerContainer ? this.viewTriggerContainer : this.vcr;\n        this.tooltipElement = this.preventTooltipToClose\n            ? this.elementRef.nativeElement\n            : !!this.tooltipTriggerElement?.nativeElement\n            ? this.tooltipTriggerElement?.nativeElement\n            : this.elementRef.nativeElement;\n        this.initListeners();\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    initListeners() {\n        fromEvent(this.tooltipElement, 'mouseenter').pipe(takeUntil(this.onDestroy$)).subscribe(this.showTooltip.bind(this));\n\n        fromEvent(this.tooltipElement, 'mouseleave')\n            .pipe(\n                takeUntil(this.onDestroy$),\n                switchMap((event: MouseEvent) => {\n                    return this.haveToBeClosed(event);\n                })\n            )\n            .subscribe(this.hideTooltip.bind(this));\n    }\n\n    private showTooltip(): void {\n        const needToShow = this.calcTruncate();\n        if (!needToShow || this.visible) {\n            return;\n        }\n        if (this.directiveRef && !this.fusionTooltip) {\n            this.directiveRef.create();\n            this.tooltipComponentRef = this.directiveRef.tooltipComponentRef;\n        } else if (this.fusionTooltip) {\n            this.tooltipComponentRef = this.viewContainerRef.createComponent(TooltipContentComponent);\n            this.tooltipComponentRef.instance.tooltipTextContent = this.fusionTooltip;\n        } else {\n            return;\n        }\n\n        this.tooltipComponentRef.changeDetectorRef.detectChanges();\n        const rectTooltip = this.tooltipComponentRef.instance.elementRef.nativeElement.getBoundingClientRect();\n        this.setTooltipPosition(this.position, rectTooltip);\n        this.setTooltipConfiguration();\n        this.visible = true;\n    }\n\n    private hideTooltip(): void {\n        if (!this.visible) {\n            return;\n        }\n        if (this.directiveRef && !this.fusionTooltip) {\n            this.directiveRef.destroy();\n            this.tooltipComponentRef = null;\n        } else if (this.fusionTooltip) {\n            this.tooltipComponentRef.destroy();\n            this.tooltipComponentRef = null;\n        } else {\n            return;\n        }\n        this.visible = false;\n    }\n\n    private adjustTooltipPosition(position: TooltipPosition, tooltipWidth: number, tooltipHeight: number, hostRect: any): TooltipPosition {\n        if (position === TooltipPosition.TopFixed) {\n            return TooltipPosition.Top;\n        }\n\n        const isTopPosNegative = hostRect.top + this.elementRef.nativeElement.offsetHeight / 2 - tooltipHeight / 2 >= 0;\n        if (window.innerWidth - tooltipWidth - hostRect.left <= 0 && isTopPosNegative) {\n            position = TooltipPosition.Left;\n        } else if (hostRect.left - tooltipWidth <= 0 && isTopPosNegative) {\n            position = TooltipPosition.Right;\n        } else if (hostRect.top - tooltipHeight <= 0) {\n            position = hostRect.left - tooltipWidth <= 0 && isTopPosNegative ? TooltipPosition.Right : TooltipPosition.Bottom;\n        }\n        return position;\n    }\n\n    private setTooltipPosition(position: TooltipPosition, tooltipElement: any): void {\n        let shiftPosition: IShiftPosition;\n        const tooltipWidth = this.width || tooltipElement.width;\n        const tooltipHeight = this.height || tooltipElement.height;\n        const rect = this.elementRef.nativeElement.getBoundingClientRect();\n        position = this.adjustTooltipPosition(position, tooltipWidth, tooltipHeight, rect);\n        switch (position) {\n            case TooltipPosition.Left:\n                shiftPosition = {...this.setPositionLeftRight('left', tooltipWidth, tooltipHeight)};\n                break;\n            case TooltipPosition.Right:\n                shiftPosition = {...this.setPositionLeftRight('right', tooltipWidth, tooltipHeight)};\n                break;\n            case TooltipPosition.Bottom:\n                shiftPosition = {...this.setPositionBottomTop('bottom', tooltipWidth, tooltipHeight)};\n                break;\n            default:\n                shiftPosition = {...this.setPositionBottomTop('top', tooltipWidth, tooltipHeight)};\n                break;\n        }\n        const {tooltipLeft, pos} = this.adjustArrowPos(shiftPosition.left, rect.left, position, tooltipWidth);\n        this.tooltipPosition = {\n            position: pos,\n            left: tooltipLeft,\n            top: shiftPosition.top + rect.top\n        };\n    }\n\n    private setTooltipConfiguration(): void {\n        this.tooltipComponentRef.instance.tooltipStyleConfiguration = {\n            top: this.tooltipPosition.top.toString() + 'px',\n            left: this.tooltipPosition.left.toString() + 'px',\n            width: this.width?.toString() + 'px',\n            height: this.height?.toString() + 'px',\n            backgroundColor: this.backgroundColor\n        };\n        this.tooltipComponentRef.instance.tooltipPositionClass = this.tooltipPosition.position;\n    }\n\n    private setPositionLeftRight(pos: 'left' | 'right', tooltipWidth: number, tooltipHeight: number): {top: number; left: number} {\n        const position = {\n            top: this.elementRef.nativeElement.offsetHeight / 2 - tooltipHeight / 2,\n            left: 0\n        };\n        if (pos === 'left') {\n            position.left = 0 - tooltipWidth - 6;\n        } else {\n            position.left = this.elementRef.nativeElement.offsetWidth + 6;\n        }\n        return position;\n    }\n\n    private setPositionBottomTop(pos: 'bottom' | 'top', tooltipWidth: number, tooltipHeight: number): {top: number; left: number} {\n        const position = {\n            top: 0,\n            left: this.elementRef.nativeElement.offsetWidth / 2 - tooltipWidth / 2\n        };\n        if (pos === 'bottom') {\n            position.top = this.elementRef.nativeElement.offsetHeight + 6;\n        } else {\n            position.top = 0 - tooltipHeight - 6;\n        }\n        return position;\n    }\n\n    private calcTruncate(): boolean {\n        const nativeElement = this.elementRef.nativeElement;\n        return !(nativeElement.className.includes('truncate') && nativeElement.clientWidth >= nativeElement.scrollWidth);\n    }\n\n    private adjustArrowPos(\n        tooltipLeft: number,\n        rectLeft: number,\n        position: TooltipPosition,\n        tooltipWidth: number\n    ): {tooltipLeft: number; pos: TooltipPosition} {\n        let posLeft = tooltipLeft + rectLeft;\n        let newPosition: TooltipPosition = position;\n\n        if (posLeft < 0 && (position === TooltipPosition.Top || position === TooltipPosition.Bottom)) {\n            newPosition = position === TooltipPosition.Top ? TooltipPosition.TopLeft : TooltipPosition.BottomLeft;\n            posLeft = rectLeft + this.elementRef.nativeElement.offsetWidth / 2 - 20;\n        } else if (\n            window.innerWidth - Math.round(rectLeft + this.elementRef.nativeElement.offsetWidth) <= 0 &&\n            (position === TooltipPosition.Top || position === TooltipPosition.Bottom)\n        ) {\n            newPosition = position === TooltipPosition.Top ? TooltipPosition.TopRight : TooltipPosition.BottomRight;\n            posLeft = rectLeft + this.elementRef.nativeElement.offsetWidth / 2 - tooltipWidth + 20;\n        }\n\n        return {tooltipLeft: posLeft, pos: newPosition};\n    }\n\n    haveToBeClosed(event: MouseEvent): Observable<Event> {\n        const marginSize = 10;\n        let haveToBeClosed = true;\n        const tooltipEl = this.elementRef.nativeElement.querySelector('fusion-tooltip-content');\n        if (this.preventTooltipToClose && this.visible && !!tooltipEl) {\n            const rectTooltip = tooltipEl.getBoundingClientRect();\n            haveToBeClosed = !(\n                event.x >= rectTooltip.left - marginSize &&\n                event.x <= rectTooltip.right + marginSize &&\n                event.y >= rectTooltip.top - marginSize &&\n                event.y <= rectTooltip.bottom + marginSize\n            );\n        }\n        return haveToBeClosed ? of(event) : fromEvent(tooltipEl, 'mouseleave');\n    }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tooltipConfiguration} from '@ironsource/fusion-ui/components/tooltip/common/base';\n\n@Component({\n    selector: 'fusion-tooltip',\n    template: `\n        <div class=\"tooltip-container\" [fusionTooltip]=\"tooltipText\" [configuration]=\"tooltipConfig\">\n            <div #tooltipTriggerElement>\n                <ng-content select=\".fusionTooltipTrigger\"></ng-content>\n            </div>\n            <div *fusionTooltipContent>\n                <ng-content select=\".fusionTooltipContent\"></ng-content>\n            </div>\n        </div>\n    `,\n    styles: [\n        `\n            .tooltip-container {\n                display: inline-block;\n                position: relative;\n            }\n        `\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipComponent {\n    /** @internal */\n    @Input() set fusionTooltipText(value: string) {\n        this.tooltipText = value;\n    }\n    /** @internal */\n    @Input() set tooltipConfiguration(value: tooltipConfiguration) {\n        this.tooltipConfig = {...value};\n    }\n\n    /** @internal */\n    tooltipConfig: tooltipConfiguration;\n    /** @internal */\n    tooltipText: string = '';\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TooltipDirective} from './tooltip.directive';\nimport {TooltipContentComponent} from './tooltip.content.component';\nimport {TooltipContentDirective} from './tooltip-content.directive';\nimport {TooltipComponent} from './tooltip.component';\n\n@NgModule({\n    declarations: [TooltipDirective, TooltipContentDirective, TooltipContentComponent, TooltipComponent],\n    exports: [TooltipDirective, TooltipContentDirective, TooltipContentComponent, TooltipComponent],\n    imports: [CommonModule]\n})\nexport class TooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}