StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StackGenVis/frontend/node_modules/@interactjs/pointer-events/holdRepeat.js

76 lines
1.7 KiB

4 years ago
import basePlugin from "./base.js";
import PointerEvent from "./PointerEvent.js";
function install(scope) {
scope.usePlugin(basePlugin);
const {
pointerEvents
} = scope; // don't repeat by default
pointerEvents.defaults.holdRepeatInterval = 0;
pointerEvents.types.push('holdrepeat');
}
function onNew({
pointerEvent
}) {
if (pointerEvent.type !== 'hold') {
return;
}
pointerEvent.count = (pointerEvent.count || 0) + 1;
}
function onFired({
interaction,
pointerEvent,
eventTarget,
targets
}, scope) {
if (pointerEvent.type !== 'hold' || !targets.length) {
return;
} // get the repeat interval from the first eventable
const interval = targets[0].eventable.options.holdRepeatInterval; // don't repeat if the interval is 0 or less
if (interval <= 0) {
return;
} // set a timeout to fire the holdrepeat event
interaction.holdIntervalHandle = setTimeout(() => {
scope.pointerEvents.fire({
interaction,
eventTarget,
type: 'hold',
pointer: pointerEvent,
event: pointerEvent
}, scope);
}, interval);
}
function endHoldRepeat({
interaction
}) {
// set the interaction's holdStopTime property
// to stop further holdRepeat events
if (interaction.holdIntervalHandle) {
clearInterval(interaction.holdIntervalHandle);
interaction.holdIntervalHandle = null;
}
}
const holdRepeat = {
id: 'pointer-events/holdRepeat',
install,
listeners: ['move', 'up', 'cancel', 'endall'].reduce((acc, enderTypes) => {
acc[`pointerEvents:${enderTypes}`] = endHoldRepeat;
return acc;
}, {
'pointerEvents:new': onNew,
'pointerEvents:fired': onFired
})
};
export default holdRepeat;
//# sourceMappingURL=holdRepeat.js.map