UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.83 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/repeat-click/index.ts"],"sourcesContent":["import type { DirectiveBinding, ObjectDirective } from 'vue'\n\nconst RepeatClick: ObjectDirective = {\n beforeMount(el: HTMLElement, binding: DirectiveBinding) {\n let interval: ReturnType<typeof setInterval> | null = null\n let isHandlerCalled = false\n\n const handler = () => binding.value && binding.value()\n\n const clear = () => {\n clearInterval(interval!)\n interval = null\n\n if (!isHandlerCalled) {\n handler()\n }\n isHandlerCalled = false\n }\n\n el.addEventListener('mousedown', (e: MouseEvent) => {\n if (e.button !== 0) return\n\n document.addEventListener('mouseup', clear, { once: true })\n\n clearInterval(interval!)\n interval = setInterval(() => {\n isHandlerCalled = true\n handler()\n }, 100)\n })\n },\n}\n\nexport default RepeatClick\n"],"names":[],"mappings":"AAAK,MAAC,WAAW,GAAG;AACpB,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE;AAC3B,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;AAC3D,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK;AAC5C,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AACxB,QAAQ,OAAO;AACf,MAAM,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM;AACnC,QAAQ,eAAe,GAAG,IAAI,CAAC;AAC/B,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO,EAAE,GAAG,CAAC,CAAC;AACd,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}