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.

1 lines
3.9 KiB

{"ast":null,"code":"import { isFunction } from '@vue/shared';\nconst REPEAT_INTERVAL = 100;\nconst REPEAT_DELAY = 600;\nconst vRepeatClick = {\n beforeMount(el, binding) {\n const value = binding.value;\n const {\n interval = REPEAT_INTERVAL,\n delay = REPEAT_DELAY\n } = isFunction(value) ? {} : value;\n let intervalId;\n let delayId;\n const handler = () => isFunction(value) ? value() : value.handler();\n const clear = () => {\n if (delayId) {\n clearTimeout(delayId);\n delayId = void 0;\n }\n if (intervalId) {\n clearInterval(intervalId);\n intervalId = void 0;\n }\n };\n el.addEventListener(\"mousedown\", evt => {\n if (evt.button !== 0) return;\n clear();\n handler();\n document.addEventListener(\"mouseup\", () => clear(), {\n once: true\n });\n delayId = setTimeout(() => {\n intervalId = setInterval(() => {\n handler();\n }, interval);\n }, delay);\n });\n }\n};\nexport { REPEAT_DELAY, REPEAT_INTERVAL, vRepeatClick };","map":{"version":3,"names":["REPEAT_INTERVAL","REPEAT_DELAY","vRepeatClick","beforeMount","el","binding","value","interval","delay","isFunction","intervalId","delayId","handler","clear","clearTimeout","clearInterval","addEventListener","evt","button","document","once","setTimeout","setInterval"],"sources":["../../../../../packages/directives/repeat-click/index.ts"],"sourcesContent":["import { isFunction } from '@element-plus/utils'\n\nimport type { ObjectDirective } from 'vue'\n\nexport const REPEAT_INTERVAL = 100\nexport const REPEAT_DELAY = 600\n\nexport interface RepeatClickOptions {\n interval?: number\n delay?: number\n handler: (...args: unknown[]) => unknown\n}\n\nexport const vRepeatClick: ObjectDirective<\n HTMLElement,\n RepeatClickOptions | RepeatClickOptions['handler']\n> = {\n beforeMount(el, binding) {\n const value = binding.value\n const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction(\n value\n )\n ? {}\n : value\n\n let intervalId: ReturnType<typeof setInterval> | undefined\n let delayId: ReturnType<typeof setTimeout> | undefined\n\n const handler = () => (isFunction(value) ? value() : value.handler())\n\n const clear = () => {\n if (delayId) {\n clearTimeout(delayId)\n delayId = undefined\n }\n if (intervalId) {\n clearInterval(intervalId)\n intervalId = undefined\n }\n }\n\n el.addEventListener('mousedown', (evt: MouseEvent) => {\n if (evt.button !== 0) return\n clear()\n handler()\n\n document.addEventListener('mouseup', () => clear(), {\n once: true,\n })\n\n delayId = setTimeout(() => {\n intervalId = setInterval(() => {\n handler()\n }, interval)\n }, delay)\n })\n },\n}\n"],"mappings":";AACY,MAACA,eAAe,GAAG;AACnB,MAACC,YAAY,GAAG;AAChB,MAACC,YAAY,GAAG;EAC1BC,WAAWA,CAACC,EAAE,EAAEC,OAAO,EAAE;IACvB,MAAMC,KAAK,GAAGD,OAAO,CAACC,KAAK;IAC3B,MAAM;MAAEC,QAAQ,GAAGP,eAAe;MAAEQ,KAAK,GAAGP;IAAY,CAAE,GAAGQ,UAAU,CAACH,KAAK,CAAC,GAAG,EAAE,GAAGA,KAAK;IAC3F,IAAII,UAAU;IACd,IAAIC,OAAO;IACX,MAAMC,OAAO,GAAGA,CAAA,KAAMH,UAAU,CAACH,KAAK,CAAC,GAAGA,KAAK,EAAE,GAAGA,KAAK,CAACM,OAAO,EAAE;IACnE,MAAMC,KAAK,GAAGA,CAAA,KAAM;MAClB,IAAIF,OAAO,EAAE;QACXG,YAAY,CAACH,OAAO,CAAC;QACrBA,OAAO,GAAG,KAAK,CAAC;MACxB;MACM,IAAID,UAAU,EAAE;QACdK,aAAa,CAACL,UAAU,CAAC;QACzBA,UAAU,GAAG,KAAK,CAAC;MAC3B;IACA,CAAK;IACDN,EAAE,CAACY,gBAAgB,CAAC,WAAW,EAAGC,GAAG,IAAK;MACxC,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAClB;MACFL,KAAK,EAAE;MACPD,OAAO,EAAE;MACTO,QAAQ,CAACH,gBAAgB,CAAC,SAAS,EAAE,MAAMH,KAAK,EAAE,EAAE;QAClDO,IAAI,EAAE;MACd,CAAO,CAAC;MACFT,OAAO,GAAGU,UAAU,CAAC,MAAM;QACzBX,UAAU,GAAGY,WAAW,CAAC,MAAM;UAC7BV,OAAO,EAAE;QACnB,CAAS,EAAEL,QAAQ,CAAC;MACpB,CAAO,EAAEC,KAAK,CAAC;IACf,CAAK,CAAC;EACN;AACA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}