2018-02-09 06:29:29 +00:00
|
|
|
export function mouseover (node, callback) {
|
|
|
|
function onMouseEnter () {
|
|
|
|
callback(true) // eslint-disable-line
|
2018-02-01 02:20:30 +00:00
|
|
|
}
|
2018-02-09 06:29:29 +00:00
|
|
|
function onMouseLeave () {
|
|
|
|
callback(false) // eslint-disable-line
|
2018-02-01 02:20:30 +00:00
|
|
|
}
|
|
|
|
node.addEventListener('mouseenter', onMouseEnter)
|
|
|
|
node.addEventListener('mouseleave', onMouseLeave)
|
|
|
|
return {
|
2018-04-30 05:13:41 +00:00
|
|
|
destroy () {
|
2018-02-01 02:20:30 +00:00
|
|
|
node.removeEventListener('mouseenter', onMouseEnter)
|
|
|
|
node.removeEventListener('mouseleave', onMouseLeave)
|
|
|
|
}
|
|
|
|
}
|
2018-02-09 06:29:29 +00:00
|
|
|
}
|
2018-02-10 21:57:04 +00:00
|
|
|
|
|
|
|
export function focusWithCapture (node, callback) {
|
|
|
|
node.addEventListener('focus', callback, true)
|
|
|
|
return {
|
2018-04-30 05:13:41 +00:00
|
|
|
destroy () {
|
2018-02-10 21:57:04 +00:00
|
|
|
node.removeEventListener('focus', callback, true)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export function blurWithCapture (node, callback) {
|
|
|
|
node.addEventListener('blur', callback, true)
|
|
|
|
return {
|
2018-04-30 05:13:41 +00:00
|
|
|
destroy () {
|
2018-02-10 21:57:04 +00:00
|
|
|
node.removeEventListener('blur', callback, true)
|
|
|
|
}
|
|
|
|
}
|
2018-02-11 17:37:13 +00:00
|
|
|
}
|
2018-03-25 01:04:54 +00:00
|
|
|
|
|
|
|
export function selectionChange (node, callback) {
|
|
|
|
let events = ['keyup', 'click', 'focus', 'blur']
|
|
|
|
let listener = () => {
|
|
|
|
callback(node.selectionStart)
|
|
|
|
}
|
|
|
|
for (let event of events) {
|
|
|
|
node.addEventListener(event, listener)
|
|
|
|
}
|
|
|
|
return {
|
2018-04-30 05:13:41 +00:00
|
|
|
destroy () {
|
2018-03-25 01:04:54 +00:00
|
|
|
for (let event of events) {
|
|
|
|
node.removeEventListener(event, listener)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|