{"version":3,"file":"koobiq-components-tooltip.mjs","sources":["../../../packages/components/tooltip/tooltip.animations.ts","../../../packages/components/tooltip/tooltip.component.ts","../../../packages/components/tooltip/tooltip.component.html","../../../packages/components/tooltip/tooltip.module.ts","../../../packages/components/tooltip/koobiq-components-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, keyframes, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by KbqTooltip.\n * @docs-private\n */\nexport const kbqTooltipAnimations: {\n    readonly tooltipState: AnimationTriggerMetadata;\n} = {\n    /** Animation that transitions a tooltip in and out. */\n    tooltipState: trigger('state', [\n        state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n        state('visible', style({ transform: 'scale(0.99)' })),\n        transition(\n            '* => visible',\n            animate(\n                '200ms cubic-bezier(0, 0, 0.2, 1)',\n                keyframes([\n                    style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n                    style({ opacity: 0.5, transform: 'scale(0.9)', offset: 0.5 }),\n                    style({ opacity: 1, transform: 'scale(0.99)', offset: 1 })\n                ])\n            )\n        ),\n        transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n    ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Point } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    InjectionToken,\n    Input,\n    OnDestroy,\n    Output,\n    Renderer2,\n    TemplateRef,\n    Type,\n    ViewChild,\n    ViewEncapsulation,\n    WritableSignal,\n    booleanAttribute,\n    effect,\n    inject,\n    input,\n    numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n    KBQ_PARENT_POPUP,\n    KbqComponentColors,\n    KbqParentPopup,\n    KbqPopUp,\n    KbqPopUpPlacementValues,\n    KbqPopUpTrigger,\n    POSITION_TO_CSS_MAP,\n    PopUpPlacements,\n    PopUpTriggers,\n    applyPopupMargins\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\nexport enum TooltipModifier {\n    Default = 'default',\n    Warning = 'warning',\n    Extended = 'extended'\n}\n\nexport const KBQ_TOOLTIP_OPEN_TIME = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-open-time');\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_OPEN_TIME_PROVIDER = {\n    provide: KBQ_TOOLTIP_OPEN_TIME,\n    useValue: { value: 0 }\n};\n\nexport const MIN_TIME_FOR_DELAY = 2000;\n\n@Component({\n    selector: 'kbq-tooltip-component',\n    imports: [\n        NgClass,\n        NgTemplateOutlet\n    ],\n    templateUrl: './tooltip.component.html',\n    styleUrls: ['./tooltip.scss', './tooltip-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    animations: [kbqTooltipAnimations.tooltipState],\n    providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER]\n})\nexport class KbqTooltipComponent extends KbqPopUp {\n    prefix = 'kbq-tooltip';\n\n    @ViewChild('tooltip') elementRef: ElementRef;\n\n    constructor(@Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime) {\n        super();\n    }\n\n    show(delay: number) {\n        if (!this.content) {\n            return;\n        }\n\n        super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\n\n        if (this.offset !== null) {\n            applyPopupMargins(\n                this.renderer,\n                this.elementRef.nativeElement,\n                this.prefix,\n                `${this.offset!.toString()}px`\n            );\n        }\n\n        this.openTime.value = Date.now();\n    }\n\n    updateClassMap(placement: string, customClass: string, { modifier }) {\n        const classMap = {\n            [`${this.prefix}_${modifier}`]: true\n        };\n\n        super.updateClassMap(placement, customClass, classMap);\n    }\n}\n\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function kbqTooltipScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n    return () => overlay.scrollStrategies.close();\n}\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n    provide: KBQ_TOOLTIP_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: kbqTooltipScrollStrategyFactory\n};\n\n@Directive({\n    selector: '[kbqTooltip]',\n    exportAs: 'kbqTooltip',\n    host: {\n        '[class.kbq-tooltip_open]': 'isOpen',\n\n        '(keydown)': 'keydownHandler($event)',\n        '(touchend)': 'touchendHandler()'\n    }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnDestroy {\n    protected scrollStrategy: () => ScrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);\n    protected parentPopup = inject<KbqParentPopup>(KBQ_PARENT_POPUP, { optional: true });\n    protected focusMonitor: FocusMonitor = inject(FocusMonitor);\n    /** @docs-private */\n    protected renderer: Renderer2 = inject(Renderer2);\n\n    /**\n     * Input for controlling the disabled state of a component.\n     *\n     * The input expects a component containing `disabledSignal` property, which is\n     * a writable signal emitting boolean values.\n     */\n    readonly forDisabledComponent = input<Record<'disabledSignal', WritableSignal<boolean>>>();\n\n    /**\n     * Determines whether pointer events should be ignored on tooltips.\n     *\n     * When set to `true`, tooltip elements will not receive pointer events,\n     * allowing interactions to pass through to underlying elements.\n     * Defaults to `true`.\n     */\n    readonly ignoreTooltipPointerEvents = input<boolean>(true);\n\n    /**\n     * Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.\n     * Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger\n     * to tooltip.\n     */\n    @Input({ transform: booleanAttribute }) hideWithTimeout: boolean = false;\n\n    @Input('kbqVisible')\n    get tooltipVisible(): boolean {\n        return this.visible;\n    }\n\n    set tooltipVisible(value: boolean) {\n        super.updateVisible(value);\n    }\n\n    @Input('kbqPlacement')\n    get tooltipPlacement(): KbqPopUpPlacementValues {\n        return this.placement;\n    }\n\n    /**\n     * Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.\n     * Does not work with kbqPlacementPriority.\n     */\n    @Input({ alias: 'kbqRelativeToPointer', transform: booleanAttribute }) relativeToPointer: boolean = false;\n\n    set tooltipPlacement(value: KbqPopUpPlacementValues) {\n        super.updatePlacement(value);\n    }\n\n    @Input('kbqPlacementPriority')\n    get tooltipPlacementPriority() {\n        return this.placementPriority;\n    }\n\n    set tooltipPlacementPriority(value) {\n        super.updatePlacementPriority(value);\n    }\n\n    @Input('kbqTooltip')\n    get content(): string | TemplateRef<any> {\n        return this._content;\n    }\n\n    set content(content: string | TemplateRef<any>) {\n        this._content = content;\n\n        this.updateData();\n    }\n\n    @Input('kbqTooltipDisabled')\n    get disabled(): boolean {\n        return this._disabled;\n    }\n\n    set disabled(value) {\n        this._disabled = coerceBooleanProperty(value);\n\n        if (this._disabled) {\n            this.hide();\n        }\n    }\n\n    @Input('kbqEnterDelay') enterDelay = 400;\n    @Input('kbqLeaveDelay') leaveDelay = 0;\n\n    @Input('kbqTrigger')\n    get trigger(): string {\n        return this._trigger;\n    }\n\n    set trigger(value: string) {\n        if (value) {\n            this._trigger = value;\n        } else {\n            this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n        }\n\n        this.initListeners();\n    }\n\n    protected _trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n\n    @Input('kbqTooltipClass')\n    get customClass(): string {\n        return this._customClass || '';\n    }\n\n    set customClass(value: string) {\n        if (value) {\n            this._customClass = value;\n\n            this.updateClassMap();\n        } else {\n            this._customClass = '';\n        }\n    }\n\n    @Input('kbqTooltipContext')\n    get context() {\n        return this._context;\n    }\n\n    set context(ctx) {\n        this._context = ctx;\n        this.updateData();\n    }\n\n    private _context: any = null;\n\n    @Input('kbqTooltipColor')\n    get color(): string {\n        return `kbq-${this._color}`;\n    }\n\n    set color(value: KbqComponentColors | string) {\n        this._color = value || KbqComponentColors.Contrast;\n    }\n\n    private _color: KbqComponentColors | string = KbqComponentColors.Contrast;\n\n    @Input({ alias: 'kbqTooltipArrow', transform: booleanAttribute }) arrow: boolean = false;\n    @Input({ alias: 'kbqTooltipOffset', transform: numberAttribute }) offset: number | null = null;\n\n    @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n    @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n    private get hasClickInTrigger(): boolean {\n        return this.trigger.includes(PopUpTriggers.Click);\n    }\n\n    protected originSelector = '.kbq-tooltip';\n\n    protected overlayConfig: OverlayConfig = {\n        panelClass: ['kbq-tooltip-panel']\n    };\n\n    protected modifier: TooltipModifier = TooltipModifier.Default;\n\n    constructor() {\n        super();\n\n        effect(() => {\n            if (!this.forDisabledComponent()) return;\n\n            const disabled = this.forDisabledComponent()!.disabledSignal();\n\n            if (disabled) {\n                this.renderer.setAttribute(this.getNativeElement(), 'tabindex', '0');\n                this.renderer.setStyle(this.getNativeElement(), 'outline-color', 'var(--kbq-states-line-focus-theme)');\n            } else {\n                this.renderer.setAttribute(this.getNativeElement(), 'tabindex', '-1');\n            }\n\n            this.disabled = !disabled;\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.parentPopup?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.hide());\n\n        this.focusMonitor.monitor(this.elementRef.nativeElement);\n\n        if (this.ignoreTooltipPointerEvents() && Array.isArray(this.overlayConfig.panelClass)) {\n            this.overlayConfig.panelClass.push('cdk-overlay-pane_ignore-pointer-events');\n        }\n    }\n\n    ngOnDestroy() {\n        this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n\n        super.ngOnDestroy();\n    }\n\n    show(delay: number = this.enterDelay) {\n        if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {\n            return;\n        }\n\n        super.show(delay);\n\n        if (this.relativeToPointer) {\n            this.applyRelativeToPointer();\n        }\n    }\n\n    /** method allows to show the tooltip relative to the given mouse event. */\n    showForMouseEvent(event: MouseEvent) {\n        if (!(event.currentTarget instanceof HTMLElement)) return;\n\n        this.triggerName = 'mouseenter';\n        this.mouseEvent = event;\n        this.setExternalNativeElement(event.currentTarget);\n\n        super.show();\n\n        this.applyRelativeToPointer();\n    }\n\n    /**\n     * method allows to show the tooltip relative to the element\n     * Use this approach when it is not possible to define a trigger in the template.\n     *\n     * For example:\n     * const tooltip = new KbqTooltipTrigger();\n     * tooltip.showForElement(element);\n     */\n    showForElement(element: HTMLElement) {\n        this.show();\n        this.strategy.setOrigin(element);\n    }\n\n    updateData() {\n        if (!this.instance) {\n            return;\n        }\n\n        this.instance.content = this.content;\n        this.instance.context = this.context && { $implicit: this.context };\n        this.instance.arrow = this.arrow;\n        this.instance.offset = this.offset;\n        this.instance.detectChanges();\n        this.updatePosition(true);\n    }\n\n    closingActions() {\n        return merge(\n            this.hasClickInTrigger ? this.overlayRef!.outsidePointerEvents() : EMPTY,\n            this.overlayRef!.detachments()\n        );\n    }\n\n    getOverlayHandleComponentType(): Type<KbqTooltipComponent> {\n        return KbqTooltipComponent;\n    }\n\n    updateClassMap(newPlacement: string = this.placement) {\n        if (!this.instance) {\n            return;\n        }\n\n        this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, {\n            modifier: this.modifier\n        });\n        this.instance.markForCheck();\n    }\n\n    protected applyRelativeToPointer() {\n        if (\n            !this.strategy ||\n            ![PopUpPlacements.Top, PopUpPlacements.Bottom].includes(this.placement as PopUpPlacements) ||\n            this.triggerName !== 'mouseenter'\n        ) {\n            this.resetOrigin();\n\n            return;\n        }\n\n        const triggerRects = this.getNativeElement().getBoundingClientRect();\n        const point: Point = { x: 0, y: 0 };\n\n        this.placementPriority = null;\n\n        if (this.placement === PopUpPlacements.Top) {\n            point.x = this.mouseEvent!.x;\n            point.y = triggerRects.y;\n        } else if (this.placement === PopUpPlacements.Bottom) {\n            point.x = this.mouseEvent!.x;\n            point.y = triggerRects.y + triggerRects.height;\n        }\n\n        this.strategy.setOrigin(point);\n    }\n}\n\n/**\n * @docs-private\n * @deprecated Will be removed in next major release\n */\n@Directive({\n    selector: '[kbqWarningTooltip]',\n    exportAs: 'kbqWarningTooltip',\n    host: {\n        '[class.kbq-tooltip_open]': 'isOpen',\n\n        '(keydown)': 'keydownHandler($event)',\n        '(touchend)': 'touchendHandler()'\n    }\n})\nexport class KbqWarningTooltipTrigger extends KbqTooltipTrigger {\n    @Input('kbqWarningTooltip')\n    get content(): string | TemplateRef<any> {\n        return this._content;\n    }\n\n    set content(content: string | TemplateRef<any>) {\n        this._content = content;\n\n        this.updateData();\n    }\n\n    protected modifier: TooltipModifier = TooltipModifier.Warning;\n}\n\n/**\n * @docs-private\n * @deprecated Will be removed in next major release\n */\n@Directive({\n    selector: '[kbqExtendedTooltip]',\n    exportAs: 'kbqExtendedTooltip',\n    host: {\n        '[class.kbq-tooltip_open]': 'isOpen',\n\n        '(keydown)': 'keydownHandler($event)',\n        '(touchend)': 'touchendHandler()'\n    }\n})\nexport class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {\n    @Input('kbqExtendedTooltip')\n    get content(): string | TemplateRef<any> {\n        return this._content;\n    }\n\n    set content(content: string | TemplateRef<any>) {\n        this._content = content;\n\n        this.updateData();\n    }\n\n    @Input('kbqTooltipHeader')\n    get header(): string | TemplateRef<any> {\n        return this._header;\n    }\n\n    set header(header: string | TemplateRef<any>) {\n        this._header = header;\n\n        this.updateData();\n    }\n\n    private _header: string | TemplateRef<any>;\n\n    protected modifier: TooltipModifier = TooltipModifier.Extended;\n\n    updateData() {\n        if (!this.instance) {\n            return;\n        }\n\n        super.updateData();\n        this.instance.header = this.header;\n    }\n}\n","<div\n    #tooltip\n    class=\"kbq-tooltip\"\n    [class.kbq-tooltip_arrowless]=\"!arrow\"\n    [ngClass]=\"classMap\"\n    [@state]=\"visibility\"\n    (@state.done)=\"animationDone($event)\"\n    (@state.start)=\"animationStart()\"\n>\n    <div class=\"kbq-tooltip__inner\">\n        @if (arrow) {\n            <div class=\"kbq-tooltip__arrow\"></div>\n        }\n\n        @if (header) {\n            <div class=\"kbq-tooltip__header\">\n                @if (isTemplateRef(header)) {\n                    <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n                }\n                @if (!isTemplateRef(header)) {\n                    <div>{{ header }}</div>\n                }\n            </div>\n        }\n        <div class=\"kbq-tooltip__content\">\n            @if (isTemplateRef(content)) {\n                <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n            }\n            @if (!isTemplateRef(content)) {\n                <div>{{ content }}</div>\n            }\n        </div>\n    </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n    KBQ_TOOLTIP_OPEN_TIME_PROVIDER,\n    KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n    KbqExtendedTooltipTrigger,\n    KbqTooltipComponent,\n    KbqTooltipTrigger,\n    KbqWarningTooltipTrigger\n} from './tooltip.component';\n\nconst COMPONENTS = [\n    KbqTooltipComponent,\n    KbqTooltipTrigger,\n    KbqExtendedTooltipTrigger,\n    KbqWarningTooltipTrigger\n];\n\n@NgModule({\n    imports: COMPONENTS,\n    exports: COMPONENTS,\n    providers: [\n        KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n        KBQ_TOOLTIP_OPEN_TIME_PROVIDER\n    ]\n})\nexport class KbqToolTipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}