(config)
| 20946 | this.delayHide(); |
| 20947 | } |
| 20948 | attach(config) { |
| 20949 | let root = document.body; |
| 20950 | const scheduler2 = this._scheduler; |
| 20951 | const domHelpers = scheduler2.$domHelpers; |
| 20952 | if (!config.global) { |
| 20953 | root = scheduler2.$root; |
| 20954 | } |
| 20955 | let watchableTarget = null; |
| 20956 | const handler = (event2) => { |
| 20957 | const eventTarget = domHelpers.getTargetNode(event2); |
| 20958 | const targetNode = domHelpers.closest(eventTarget, config.selector); |
| 20959 | if (domHelpers.isChildOf(eventTarget, this.tooltip.getNode())) { |
| 20960 | return; |
| 20961 | } |
| 20962 | const doOnMouseEnter = () => { |
| 20963 | watchableTarget = targetNode; |
| 20964 | config.onmouseenter(event2, targetNode); |
| 20965 | }; |
| 20966 | if (scheduler2._mobile && scheduler2.config.touch_tooltip) { |
| 20967 | if (targetNode) { |
| 20968 | doOnMouseEnter(); |
| 20969 | } else { |
| 20970 | config.onmouseleave(event2, targetNode); |
| 20971 | } |
| 20972 | } |
| 20973 | if (watchableTarget) { |
| 20974 | if (targetNode && targetNode === watchableTarget) { |
| 20975 | config.onmousemove(event2, targetNode); |
| 20976 | } else { |
| 20977 | config.onmouseleave(event2, watchableTarget); |
| 20978 | watchableTarget = null; |
| 20979 | if (targetNode && targetNode !== watchableTarget) { |
| 20980 | doOnMouseEnter(); |
| 20981 | } |
| 20982 | } |
| 20983 | } else { |
| 20984 | if (targetNode) { |
| 20985 | doOnMouseEnter(); |
| 20986 | } |
| 20987 | } |
| 20988 | }; |
| 20989 | this.detach(config.selector); |
| 20990 | this._domEvents.attach(root, "mousemove", handler); |
| 20991 | this._listeners[config.selector] = { node: root, handler }; |
| 20992 | } |
| 20993 | detach(selector) { |
| 20994 | const listener = this._listeners[selector]; |
| 20995 | if (listener) { |
no test coverage detected