{"version":3,"file":"index.mjs","sources":["../../../../packages/directives/repeat-click/index.ts"],"sourcesContent":["import { on, once } from '@element-ultra/utils'\n\nimport type { ObjectDirective, DirectiveBinding } from 'vue'\n\nexport default {\n  beforeMount(el: HTMLElement, binding: DirectiveBinding) {\n    let interval = null\n    let startTime: number\n    const handler = () => binding.value && binding.value()\n    const clear = () => {\n      if (Date.now() - startTime < 100) {\n        handler()\n      }\n      clearInterval(interval)\n      interval = null\n    }\n\n    on(el, 'mousedown', (e: MouseEvent) => {\n      if ((e as any).button !== 0) return\n      startTime = Date.now()\n      once(document as any, 'mouseup', clear)\n      clearInterval(interval)\n      interval = setInterval(handler, 100)\n    })\n  },\n} as ObjectDirective\n"],"names":[],"mappings":";;;AAIA,YAAe;AAAA,EACb,WAAA,CAAY,IAAiB,OAA2B,EAAA;AACtD,IAAA,IAAI,QAAW,GAAA,IAAA,CAAA;AACf,IAAI,IAAA,SAAA,CAAA;AACJ,IAAA,MAAM,OAAU,GAAA,MAAM,OAAQ,CAAA,KAAA,IAAS,QAAQ,KAAM,EAAA,CAAA;AACrD,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,IAAI,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA,GAAY,GAAK,EAAA;AAChC,QAAQ,OAAA,EAAA,CAAA;AAAA,OACV;AACA,MAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AACtB,MAAW,QAAA,GAAA,IAAA,CAAA;AAAA,KACb,CAAA;AAEA,IAAG,EAAA,CAAA,EAAA,EAAI,WAAa,EAAA,CAAC,CAAkB,KAAA;AACrC,MAAA,IAAK,EAAU,MAAW,KAAA,CAAA;AAAG,QAAA,OAAA;AAC7B,MAAA,SAAA,GAAY,KAAK,GAAI,EAAA,CAAA;AACrB,MAAK,IAAA,CAAA,QAAA,EAAiB,WAAW,KAAK,CAAA,CAAA;AACtC,MAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AACtB,MAAW,QAAA,GAAA,WAAA,CAAY,SAAS,GAAG,CAAA,CAAA;AAAA,KACpC,CAAA,CAAA;AAAA,GACH;AACF,CAAA;;;;"}