2021-07-05 05:19:04 +02:00
|
|
|
import { registerResizeListener, unregisterResizeListener } from './resize.js'
|
2019-07-07 09:14:19 +02:00
|
|
|
|
2018-02-09 07:29:29 +01:00
|
|
|
export function mouseover (node, callback) {
|
|
|
|
function onMouseEnter () {
|
|
|
|
callback(true) // eslint-disable-line
|
2018-02-01 03:20:30 +01:00
|
|
|
}
|
2018-02-09 07:29:29 +01:00
|
|
|
function onMouseLeave () {
|
|
|
|
callback(false) // eslint-disable-line
|
2018-02-01 03:20:30 +01:00
|
|
|
}
|
|
|
|
node.addEventListener('mouseenter', onMouseEnter)
|
|
|
|
node.addEventListener('mouseleave', onMouseLeave)
|
|
|
|
return {
|
2018-04-30 07:13:41 +02:00
|
|
|
destroy () {
|
2018-02-01 03:20:30 +01:00
|
|
|
node.removeEventListener('mouseenter', onMouseEnter)
|
|
|
|
node.removeEventListener('mouseleave', onMouseLeave)
|
|
|
|
}
|
|
|
|
}
|
2018-02-09 07:29:29 +01:00
|
|
|
}
|
2018-02-10 22:57:04 +01:00
|
|
|
|
2018-03-25 03:04:54 +02:00
|
|
|
export function selectionChange (node, callback) {
|
2019-08-03 22:49:37 +02:00
|
|
|
const events = ['keyup', 'click', 'focus', 'blur']
|
|
|
|
const listener = () => {
|
2018-03-25 03:04:54 +02:00
|
|
|
callback(node.selectionStart)
|
|
|
|
}
|
2019-08-03 22:49:37 +02:00
|
|
|
for (const event of events) {
|
2018-03-25 03:04:54 +02:00
|
|
|
node.addEventListener(event, listener)
|
|
|
|
}
|
|
|
|
return {
|
2018-04-30 07:13:41 +02:00
|
|
|
destroy () {
|
2019-08-03 22:49:37 +02:00
|
|
|
for (const event of events) {
|
2018-03-25 03:04:54 +02:00
|
|
|
node.removeEventListener(event, listener)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-02-23 21:50:56 +01:00
|
|
|
|
2019-07-07 09:14:19 +02:00
|
|
|
export function resize (node, callback) {
|
|
|
|
registerResizeListener(callback)
|
|
|
|
|
|
|
|
return {
|
|
|
|
destroy () {
|
|
|
|
unregisterResizeListener(callback)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-04-11 18:58:32 +02:00
|
|
|
|
|
|
|
export function documentKeydown (node, callback) {
|
|
|
|
document.addEventListener('keydown', callback)
|
|
|
|
return {
|
|
|
|
destroy () {
|
|
|
|
document.removeEventListener('keydown', callback)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|