import e from"../core/Interaction.prod.js";import t from"./PointerEvent.prod.js";import n from"./base.prod.js";function o({interaction:e}){e.holdIntervalHandle&&(clearInterval(e.holdIntervalHandle),e.holdIntervalHandle=null)}const r={id:"pointer-events/holdRepeat",install(e){e.usePlugin(n);const{pointerEvents:t}=e;t.defaults.holdRepeatInterval=0,t.types.holdrepeat=e.actions.phaselessTypes.holdrepeat=!0},listeners:["move","up","cancel","endall"].reduce(((e,t)=>(e["pointerEvents:"+t]=o,e)),{"pointerEvents:new"({pointerEvent:e}){"hold"===e.type&&(e.count=(e.count||0)+1)},"pointerEvents:fired"({interaction:e,pointerEvent:t,eventTarget:n,targets:o},r){if("hold"!==t.type||!o.length)return;const l=o[0].eventable.options.holdRepeatInterval;l<=0||(e.holdIntervalHandle=setTimeout((()=>{r.pointerEvents.fire({interaction:e,eventTarget:n,type:"hold",pointer:t,event:t},r)}),l))}})};export default r; //# sourceMappingURL=holdRepeat.prod.js.map