dootask/public/js/build/longpress.6c9d7403.js
2025-04-07 08:49:39 +08:00

2 lines
1.4 KiB
JavaScript
Vendored

const a="ontouchend"in document,u={bind:function(e,_){let c=500,s="default",r=!1,n=null,o=_.value;if($A.isJson(_.value)&&(c=_.value.delay||500,o=_.value.callback),typeof o!="function")throw"callback must be a function";e.__longpressContextmenu__=t=>{t.preventDefault(),t.stopPropagation(),s==="default"&&o(t,e)},e.addEventListener("contextmenu",e.__longpressContextmenu__),a&&(e.__longpressStart__=t=>{t.type==="click"&&t.button!==0||(s="touch",r=!1,n===null&&(n=setTimeout(()=>{s==="touch"&&(r=!0,o(t.touches[0],e))},c)))},e.__longpressCancel__=t=>{n!==null&&(clearTimeout(n),n=null),s="default"},e.__longpressClick__=t=>{r&&(t.preventDefault(),t.stopPropagation()),e.__longpressCancel__(t)},e.addEventListener("touchstart",e.__longpressStart__),e.addEventListener("click",e.__longpressClick__),e.addEventListener("touchmove",e.__longpressCancel__),e.addEventListener("touchend",e.__longpressCancel__),e.addEventListener("touchcancel",e.__longpressCancel__))},unbind(e){e.removeEventListener("contextmenu",e.__longpressContextmenu__),delete e.__longpressContextmenu__,a&&(e.removeEventListener("touchstart",e.__longpressStart__),e.removeEventListener("click",e.__longpressClick__),e.removeEventListener("touchmove",e.__longpressCancel__),e.removeEventListener("touchend",e.__longpressCancel__),e.removeEventListener("touchcancel",e.__longpressCancel__),delete e.__longpressStart__,delete e.__longpressClick__,delete e.__longpressCancel__)}};export{u as l};