27 lines
984 B
TypeScript
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);
|