element-plus
Version:
A Component Library for Vue 3
39 lines (37 loc) • 1.37 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
let _vueuse_core = require("@vueuse/core");
//#region ../../packages/components/color-picker-panel/src/utils/draggable.ts
let isDragging = false;
function draggable(element, options) {
if (!_vueuse_core.isClient) return;
const moveFn = function(event) {
options.drag?.(event);
};
const upFn = function(event) {
document.removeEventListener("mousemove", moveFn);
document.removeEventListener("mouseup", upFn);
document.removeEventListener("touchmove", moveFn);
document.removeEventListener("touchend", upFn);
document.onselectstart = null;
document.ondragstart = null;
isDragging = false;
options.end?.(event);
};
const downFn = function(event) {
if (isDragging) return;
document.onselectstart = () => false;
document.ondragstart = () => false;
document.addEventListener("mousemove", moveFn);
document.addEventListener("mouseup", upFn);
document.addEventListener("touchmove", moveFn);
document.addEventListener("touchend", upFn);
isDragging = true;
options.start?.(event);
};
element.addEventListener("mousedown", downFn);
element.addEventListener("touchstart", downFn, { passive: false });
}
//#endregion
exports.draggable = draggable;
//# sourceMappingURL=draggable.js.map