czydojade/resources/ts/components/tooltip.ts
2020-01-26 22:43:26 +01:00

27 lines
984 B
TypeScript

import Vue from 'vue';
import Component from "vue-class-component";
import { Prop } from "vue-property-decorator";
@Component({ template: require('../../components/tooltip.html') })
export class TooltipComponent extends Vue {
@Prop({ type: String, default: "auto" }) public placement: string;
public show: boolean = false;
public element: Element = null;
private _events: { [event: string]: any };
mounted() {
this.$el.parentElement.addEventListener('mouseenter', this._events['mouseenter'] = () => this.show = true);
this.$el.parentElement.addEventListener('mouseleave', this._events['mouseleave'] = () => this.show = false);
this.element = this.$el.parentElement;
}
beforeDestroy() {
this.$el.parentElement.removeEventListener('mouseenter', this._events['mouseenter']);
this.$el.parentElement.removeEventListener('mouseleave', this._events['mouseleave']);
}
}
Vue.component('Tooltip', TooltipComponent);