Sha256: bbef413cf6ec1728e955be9970ddcf2f2ef5c45f47562a6029fb6db3df3400b7

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

import { Controller } from '@hotwired/stimulus';

import PopoverController from './popover_controller';

export default class extends Controller {
    static outlets = ['fox-tail--popover'];

    static values = {
        delay: {
            type: Number,
            default: 300,
        },
    };

    declare readonly delayValue: number;

    declare readonly foxTailPopoverOutlet: PopoverController;
    declare readonly foxTailPopoverOutletElement: HTMLElement;

    show(): void {
        this.foxTailPopoverOutlet.show();
    }

    hoverShow(): void {
        setTimeout(
            () => this.foxTailPopoverOutlet.hoverShow(),
            this.delayValue,
        );
    }

    hide(): void {
        this.foxTailPopoverOutlet.hide();
    }

    hoverHide(): void {
        setTimeout(() => {
            if (!this.foxTailPopoverOutletElement.matches(':hover')) {
                this.foxTailPopoverOutlet.hoverHide();
            }
        }, this.delayValue);
    }

    toggle(): void {
        this.foxTailPopoverOutlet.toggle();
    }

    toggleWithDelay(): void {
        setTimeout(() => this.toggle(), this.delayValue);
    }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fox_tail-0.2.1 app/components/fox_tail/popover_trigger_controller.ts
fox_tail-0.2.0 app/components/fox_tail/popover_trigger_controller.ts
fox_tail-0.1.1 app/components/fox_tail/popover_trigger_controller.ts
fox_tail-0.1.0 app/components/fox_tail/popover_trigger_controller.ts