import { on } from '@ember/modifier'; import { action } from '@ember/object'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import onEscapeAction from '../modifiers/on-escape-action'; export default class PixTooltip extends Component { @tracked isTooltipVisible = false; get position() { const correctsPosition = [ 'top', 'right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'top-left', 'top-right', ]; return correctsPosition.includes(this.args.position) ? this.args.position : 'top'; } get display() { return typeof this.args.hide === 'undefined' || !this.args.hide; } @action showTooltip() { this.isTooltipVisible = true; } @action hideTooltip() { setTimeout(() => (this.isTooltipVisible = false)); } @action hideTooltipOnMouseOut(event) { const isFocused = event.target.contains(document.activeElement); if (isFocused) { return; } this.hideTooltip(event); } }