12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { isFunction } from '@vue/shared';
- const REPEAT_INTERVAL = 100;
- const REPEAT_DELAY = 600;
- const 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;
- }
- };
- el.addEventListener("mousedown", (evt) => {
- if (evt.button !== 0)
- return;
- clear();
- handler();
- document.addEventListener("mouseup", () => clear(), {
- once: true
- });
- delayId = setTimeout(() => {
- intervalId = setInterval(() => {
- handler();
- }, interval);
- }, delay);
- });
- }
- };
- export { REPEAT_DELAY, REPEAT_INTERVAL, vRepeatClick };
- //# sourceMappingURL=index.mjs.map
|