@nanogiants/vue3-longpress
Version:
This package contains a Vue 3 directive which adds the `@longpress` event to an element.
2 lines (1 loc) • 1 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var v=function(e,n,t){var r;t.preventDefault();var i=(r=n.value)!==null&&r!==void 0?r:500,u=o(n);u.timeout=setTimeout(function(){return e.dispatchEvent(new CustomEvent("longpress"))},i)},p=function(e,n){n.preventDefault();var t=o(e);t.timeout!==null&&clearTimeout(t.timeout)},o=function(e){return e.dir},a={pointerdownEvent:function(){return{}},pointerupEvent:function(){return{}},timeout:null,mounted:function(e,n){var t=o(n);t.pointerdownEvent=function(r){return v(e,n,r)},t.pointerupEvent=function(r){return p(n,r)},e.addEventListener("pointerdown",t.pointerdownEvent),e.addEventListener("pointerup",t.pointerupEvent),e.addEventListener("pointermove",t.pointerupEvent)},beforeUnmount:function(e,n){var t=o(n);e.removeEventListener("pointerdown",t.pointerdownEvent),e.removeEventListener("pointerup",t.pointerupEvent),e.removeEventListener("pointermove",t.pointerupEvent)}};exports.vLongpress=a;