33 lines
719 B
JavaScript
33 lines
719 B
JavaScript
export function uPlotTooltipPlugin (onHover) {
|
|
let element
|
|
|
|
return {
|
|
hooks: {
|
|
init: u => {
|
|
element = u.root.querySelector('.over')
|
|
|
|
element.onmouseenter = () => onHover()
|
|
element.onmouseleave = () => onHover()
|
|
},
|
|
setCursor: u => {
|
|
const { left, top, idx } = u.cursor
|
|
|
|
if (idx === null) {
|
|
onHover()
|
|
} else {
|
|
const bounds = element.getBoundingClientRect()
|
|
|
|
onHover({
|
|
left: bounds.left + left + window.pageXOffset,
|
|
top: bounds.top + top + window.pageYOffset
|
|
}, {
|
|
idx,
|
|
x: u.data[0][idx],
|
|
y: u.data[1][idx]
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|