dootask/public/js/build/longpress.43ca7fd9.js
2023-06-16 18:38:10 +08:00

2 lines
1.4 KiB
JavaScript
Vendored

const c="ontouchend"in document,a={bind:function(e,_){let r=500,s=_.value;if($A.isJson(_.value)&&(r=_.value.delay||500,s=_.value.callback),typeof s!="function")throw"callback must be a function";if(e.__longpressContextmenu__=t=>{t.preventDefault(),t.stopPropagation(),s(t,e)},e.addEventListener("contextmenu",e.__longpressContextmenu__),!c)return;let n=null,o=!1;e.__longpressStart__=t=>{t.type==="click"&&t.button!==0||(o=!1,n===null&&(n=setTimeout(()=>{o=!0,s(t.touches[0],e)},r)))},e.__longpressCancel__=t=>{n!==null&&(clearTimeout(n),n=null)},e.__longpressClick__=t=>{o&&(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__,c&&(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{a as l};