aiflowy-ui-admin/node_modules/.vite/deps/chunk-SMVFL2UA.js

62 lines
1.5 KiB
JavaScript

import {
init_shared_esm_bundler,
isFunction
} from "./chunk-OWZYVOTZ.js";
// ../node_modules/.pnpm/element-plus@2.11.7_vue@3.5.24_typescript@5.9.3_/node_modules/element-plus/es/directives/repeat-click/index.mjs
init_shared_esm_bundler();
var REPEAT_INTERVAL = 100;
var REPEAT_DELAY = 600;
var SCOPE = "_RepeatClick";
var vRepeatClick = {
beforeMount(el, binding) {
const value = binding.value;
const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction(value) ? {} : value;
let intervalId;
let delayId;
const handler = () => isFunction(value) ? value() : value.handler();
const clear = () => {
if (delayId) {
clearTimeout(delayId);
delayId = void 0;
}
if (intervalId) {
clearInterval(intervalId);
intervalId = void 0;
}
};
const start = (evt) => {
if (evt.button !== 0)
return;
clear();
handler();
document.addEventListener("mouseup", clear, { once: true });
delayId = setTimeout(() => {
intervalId = setInterval(() => {
handler();
}, interval);
}, delay);
};
el[SCOPE] = { start, clear };
el.addEventListener("mousedown", start);
},
unmounted(el) {
if (!el[SCOPE])
return;
const { start, clear } = el[SCOPE];
if (start) {
el.removeEventListener("mousedown", start);
}
if (clear) {
clear();
document.removeEventListener("mouseup", clear);
}
el[SCOPE] = null;
}
};
export {
vRepeatClick
};
//# sourceMappingURL=chunk-SMVFL2UA.js.map