mirror of https://github.com/rancher/ui.git
39 lines
735 B
JavaScript
39 lines
735 B
JavaScript
import { later, cancel } from '@ember/runloop';
|
|
import Service, { inject as service } from '@ember/service';
|
|
import { get } from '@ember/object';
|
|
|
|
const DELAY = 250;
|
|
|
|
export default Service.extend({
|
|
app: service(),
|
|
|
|
mouseLeaveTimer: null,
|
|
requireClick: false,
|
|
tooltipOpts: null,
|
|
openedViaContextClick: false,
|
|
childOpened: false,
|
|
|
|
startTimer() {
|
|
this.set('mouseLeaveTimer', later(() => {
|
|
this.hide();
|
|
}, DELAY));
|
|
},
|
|
|
|
cancelTimer() {
|
|
cancel(this.get('mouseLeaveTimer'));
|
|
},
|
|
|
|
hide() {
|
|
if (!get(this, 'childOpened')) {
|
|
this.set('tooltipOpts', null);
|
|
}
|
|
},
|
|
|
|
leave() {
|
|
if ( !this.get('requireClick') ) {
|
|
this.startTimer();
|
|
}
|
|
},
|
|
|
|
});
|