UNPKG

@scandit/web-datacapture-core

Version:

Scandit Data Capture SDK for the Web

1 lines 2.81 kB
import {a as a$1}from'./chunk-YRQ34YNY.js';import {a}from'./chunk-EP3GI7KA.js';import {a as a$2}from'./chunk-KAFNKP6O.js';var v=class extends a{constructor(e){super();this.isHover=false;this._onTouchStart=this.onTouchStart.bind(this);this._onTouchEnd=this.onTouchEnd.bind(this);this._onPointerDown=this.onPointerDown.bind(this);this._onPointerUp=this.onPointerUp.bind(this);this._onPointerEnter=this.onPointerEnter.bind(this);this._onPointerLeave=this.onPointerLeave.bind(this);a$1.detect(),this.element=e,this.setupEventListeners();}removeAllListeners(){this.element.removeEventListener("pointerenter",this._onPointerEnter),this.element.removeEventListener("pointerleave",this._onPointerLeave),a$1.hasApi?(this.element.removeEventListener(a$1.prefixIfNeeded("pointerdown"),this._onPointerDown),this.element.removeEventListener(a$1.prefixIfNeeded("pointerup"),this._onPointerUp)):a$1.hasTouch?(this.element.removeEventListener("touchstart",this._onTouchStart),this.element.removeEventListener("touchend",this._onTouchEnd)):(this.element.removeEventListener("mousedown",this._onPointerDown),this.element.removeEventListener("mouseup",this._onPointerUp)),this._listeners.clear();}setupEventListeners(){a$1.hasApi?(this.element.addEventListener(a$1.prefixIfNeeded("pointerdown"),this._onPointerDown),this.element.addEventListener(a$1.prefixIfNeeded("pointerup"),this._onPointerUp),this.element.addEventListener("pointerenter",this._onPointerEnter),this.element.addEventListener("pointerleave",this._onPointerLeave)):a$1.hasTouch?(this.element.addEventListener("touchstart",this._onTouchStart),this.element.addEventListener("touchend",this._onTouchEnd)):(this.element.addEventListener("mousedown",this._onPointerDown),this.element.addEventListener("mouseup",this._onPointerUp));}onPointerDown(e){let{clientX:t,clientY:n,button:i,currentTarget:h=this.element}=e;i===0&&(this.notifyPress(),this.onTap(this.pointRelativeToElement({clientX:t,clientY:n,rect:h.getBoundingClientRect()}),e));}onPointerUp(e){this.notifyRelease();}onTouchStart(e){let[t]=e.touches,{clientX:n,clientY:i}=t;this.notifyPress(),this.onTap(this.pointRelativeToElement({clientX:n,clientY:i,rect:this.element.getBoundingClientRect()}),e);}onTouchEnd(e){this.notifyRelease();}notifyPress(){var e;for(let t of this.listeners)(e=t.onPress)==null||e.call(t);}notifyRelease(){var e;for(let t of this.listeners)(e=t.onRelease)==null||e.call(t);}onPointerEnter(e){this.isHover=true,this.notifyHover(this.isHover);}onPointerLeave(e){this.isHover=false,this.notifyHover(this.isHover);}notifyHover(e){var t;for(let n of this.listeners)(t=n.onHover)==null||t.call(n,e);}pointRelativeToElement({clientX:e,clientY:t,rect:n}){return new a$2(e-n.left,t-n.top)}onTap(e,t){var n;for(let i of this.listeners)(n=i.onTap)==null||n.call(i,e,t);}};export{v as a};