UNPKG

scandit-web-datacapture-barcode

Version:

Scandit Data Capture SDK for the Web

53 lines (45 loc) 19.6 kB
import { a as a$1 } from './chunk-PHOPZVUK.js'; import { a as a$2 } from './chunk-QSYOCNRC.js'; import { d as d$2 } from './chunk-PAN64WCM.js'; import { b } from './chunk-5IXMCEBQ.js'; import { a as a$3 } from './chunk-2K2VOLVA.js'; import { a as a$4 } from './chunk-V2W736IV.js'; import { a as a$5 } from './chunk-X5OCPHEX.js'; import { a as a$6, b as b$2, c, d as d$1, e, f as f$1, g, h as h$1 } from './chunk-UPU6UZ2N.js'; import { b as b$1, q, p, k, h as h$2, j, e as e$1, c as c$1, m, g as g$1, f as f$2, l, n, i, d as d$3 } from './chunk-4DWE45HU.js'; import { f, d, h } from './chunk-5QURV46Q.js'; import { a } from './chunk-6YEQCTNO.js'; import { BrowserHelper } from 'scandit-web-datacapture-core'; import { ScanditHTMLElement, Timeout, defineCustomElements, css } from 'scandit-web-datacapture-core/build/js/private/utils/index.js'; var Z=class d$4 extends ScanditHTMLElement{constructor(){super(...arguments);this.targetModeButtonVisible=!0;this.scanningBehaviorButtonVisible=!1;this.torchButtonVisible=!0;this.soundModeButtonVisible=!1;this.hapticModeButtonVisible=!1;this.handModeButtonVisible=!1;this.zoomSwitchControlVisible=!0;this.previewSizeControlVisible=!0;this.feedbackDelegate={getFeedbackForBarcode:()=>a.success()};this.miniPreview=b.create();this.triggerButton=a$1.create();this.visualFeedback=a$2.create();this.miniPreviewTimeout=new Timeout(500,this.onMiniPreviewTimeoutFinished.bind(this));this.triggerButtonRepositioningTimeout=new Timeout(500,this.onTriggerButtonRepositioningTimeoutFinished.bind(this));this.triggerButtonTranslateY=window.innerHeight/2;this.triggerButtonTranslateYOffset=0;this.gestureManagers=[];this.orientationManager=new a$3;this.miniPreviewButtonTapListener=this.onMiniPreviewButtonTap.bind(this);this.miniPreviewSwipeUpListener=this.onMiniPreviewSwipeUp.bind(this);this.miniPreviewSwipeDownListener=this.onMiniPreviewSwipeDown.bind(this);this.triggerButtonTapListener=this.onTriggerButtonTap.bind(this);this.triggerButtonHoldStartListener=this.onTriggerButtonHoldStart.bind(this);this.triggerButtonHoldEndListener=this.onTriggerButtonHoldEnd.bind(this);this.triggerButtonVerticalSwipeStartListener=this.onTriggerButtonVerticalSwipeStart.bind(this);this.triggerButtonVerticalSwipeListener=this.onTriggerButtonVerticalSwipe.bind(this);this.triggerButtonVerticalSwipeEndListener=this.onTriggerButtonVerticalSwipeEnd.bind(this);this.triggerButtonSwipeLeftListener=this.onTriggerButtonSwipeLeft.bind(this);this.triggerButtonSwipeRightListener=this.onTriggerButtonSwipeRight.bind(this);this.sidebarButtonTapListener=this.onSidebarButtonTap.bind(this);this.clickOutsideListener=this.onClickOutside.bind(this);this.visibilityChangeListener=this.onVisibilityChange.bind(this);this.orientationChangeListener=this.onOrientationChange.bind(this);this.swipingVertically=!1;this.holdingToScan=!1;}get[b$1](){var t;return (t=this.getAttribute(b$1))!=null?t:"right"}set[b$1](t){this.setAttribute(b$1,t);}get _startCapturingText(){return this.startCapturingText!=null?this.startCapturingText:this.settings.holdToScanEnabled?"Tap or hold to scan":"Tap to scan"}get _resumeCapturingText(){var t;return (t=this.resumeCapturingText)!=null?t:"Resume scanning"}get _scanningCapturingText(){return this.scanningCapturingText!=null?this.scanningCapturingText:this.settings.holdToScanEnabled?"Hold to scan continuously":"Scanning"}get _stopCapturingText(){return this.stopCapturingText!=null?this.stopCapturingText:this.settings.holdToScanEnabled?"Release to stop scanning":"Stop scanning"}get _targetModeEnabledMessage(){var t;return (t=this.settings.toastSettings.targetModeEnabledMessage)!=null?t:"Aimer on"}get _targetModeDisabledMessage(){var t;return (t=this.settings.toastSettings.targetModeDisabledMessage)!=null?t:"Aimer off"}get _continuousModeEnabledMessage(){var t;return (t=this.settings.toastSettings.continuousModeEnabledMessage)!=null?t:"Continuous mode on"}get _continuousModeDisabledMessage(){var t;return (t=this.settings.toastSettings.continuousModeDisabledMessage)!=null?t:"Continuous mode off"}get _scanPausedMessage(){var t;return (t=this.settings.toastSettings.scanPausedMessage)!=null?t:"Scan paused"}get _torchEnabledMessage(){var t;return (t=this.settings.toastSettings.torchEnabledMessage)!=null?t:"Torch on"}get _torchDisabledMessage(){var t;return (t=this.settings.toastSettings.torchDisabledMessage)!=null?t:"Torch off"}get _zoomedInMessage(){var t;return (t=this.settings.toastSettings.zoomedInMessage)!=null?t:"2x zoom"}get _zoomedOutMessage(){var t;return (t=this.settings.toastSettings.zoomedOutMessage)!=null?t:"1x zoom"}static forElement(t,e,i,n){let r=d$4.create();return r.presenter=a$4.forView(r,e,i,n!=null?n:new a$5),r.settings=r.presenter.sparkScanViewSettings,r.append(r.miniPreview,r.triggerButton,r.visualFeedback,d$4.createStyleElement().cloneNode(!0)),r.setTranslateYForOrientation(r.orientationManager.orientation),r.hidden=!0,t.append(r),r}static create(){return defineCustomElements({[f]:d$4}),document.createElement("spark-scan-view")}static createStyleElement(){return css` ${d} { z-index: 10; } ${h} { position: fixed; top: 0; transform: translateY(${window.innerHeight/2}px); z-index: 10; } ${h}[bouncing] { transition: 0.5s cubic-bezier(0.47, 1.24, 0.51, 1); } ${f}:not([${b$1}]) ${h}, ${f}[${b$1}="${"right"}"] ${h} { right: 0; } ${f}[${b$1}="${"left"}"] ${h} { left: 0; } :root { ${a$6}: #12161999; ${b$2}: #12161966; ${c}: #FFFFFF; ${d$1}: #121619CC; ${e}: #FBC02C; ${f$1}: #FFFFFF; ${g}: #2EC1CE; ${h$1}: #FA4446; } `}async prepareScanning(){this.mount(),this.hidden=!1,await this.presenter.prepareScanning(this.miniPreview.host);}async startScanning(){await this.presenter.startScanning();}async pauseScanning(){await this.presenter.pauseScanning();}async stopScanning(){await this.presenter.stopScanning();}showToast(t){this.miniPreview.showToast("info",t,1e3);}mount(){this.unmount(),this.miniPreview[q]=this.previewSizeControlVisible,this.miniPreview[p]=this.zoomSwitchControlVisible,this.triggerButton.sidebar[k]=this.targetModeButtonVisible,this.triggerButton.sidebar[h$2]=this.scanningBehaviorButtonVisible,this.triggerButton.sidebar[j]=this.soundModeButtonVisible,this.triggerButton.sidebar[e$1]=BrowserHelper.isVibrationAvailable()&&this.hapticModeButtonVisible,this.triggerButton.sidebar[c$1]=this.handModeButtonVisible,this.triggerButton.sidebar.addEventListener("sidebarbuttontap",this.sidebarButtonTapListener),this.triggerButton.rounded=this.triggerButton.sidebar.allButtonsHidden,this.captureButtonBackgroundColor&&this.style.setProperty(a$6,`#${this.captureButtonBackgroundColor.toJSON()}`),this.captureButtonActiveBackgroundColor&&this.style.setProperty(b$2,`#${this.captureButtonActiveBackgroundColor.toJSON()}`),this.captureButtonTintColor&&this.style.setProperty(c,`#${this.captureButtonTintColor.toJSON()}`),this.toolbarBackgroundColor&&this.style.setProperty(d$1,`#${this.toolbarBackgroundColor.toJSON()}`),this.toolbarIconActiveTintColor&&this.style.setProperty(e,`#${this.toolbarIconActiveTintColor.toJSON()}`),this.toolbarIconInactiveTintColor&&this.style.setProperty(f$1,`#${this.toolbarIconInactiveTintColor.toJSON()}`),this.miniPreview.addEventListener("minipreviewbuttontap",this.miniPreviewButtonTapListener),this.miniPreview.addEventListener("minipreviewswipeup",this.miniPreviewSwipeUpListener),this.miniPreview.addEventListener("minipreviewswipedown",this.miniPreviewSwipeDownListener);for(let t of [this.triggerButton.collapsedTriggerButton,this.triggerButton.expandedTriggerButton])t.addEventListener("tap",this.triggerButtonTapListener),t.addEventListener("holdstart",this.triggerButtonHoldStartListener),t.addEventListener("holdend",this.triggerButtonHoldEndListener),t.addEventListener("swipeupstart",this.triggerButtonVerticalSwipeStartListener),t.addEventListener("swipedownstart",this.triggerButtonVerticalSwipeStartListener),t.addEventListener("swipeup",this.triggerButtonVerticalSwipeListener),t.addEventListener("swipedown",this.triggerButtonVerticalSwipeListener),t.addEventListener("swipeupend",this.triggerButtonVerticalSwipeEndListener),t.addEventListener("swipedownend",this.triggerButtonVerticalSwipeEndListener),t.addEventListener("swipeleft",this.triggerButtonSwipeLeftListener),t.addEventListener("swiperight",this.triggerButtonSwipeRightListener);this.gestureManagers=[d$2.forElement(this.triggerButton.collapsedTriggerButton,this.settings.holdToScanEnabled),d$2.forElement(this.triggerButton.expandedTriggerButton,this.settings.holdToScanEnabled)];for(let t of this.gestureManagers)t.connect();this.orientationManager.connectedCallback(),this.orientationManager.addEventListener("orientationchange",this.orientationChangeListener),this.orientationManager.dispatchOrientationChangeEvent(this.orientationManager.orientation),document.addEventListener("pointerup",this.clickOutsideListener),document.addEventListener("visibilitychange",this.visibilityChangeListener);}unmount(){this.miniPreview.removeEventListener("minipreviewbuttontap",this.miniPreviewButtonTapListener),this.miniPreview.removeEventListener("minipreviewswipeup",this.miniPreviewSwipeUpListener),this.miniPreview.removeEventListener("minipreviewswipedown",this.miniPreviewSwipeDownListener),this.triggerButton.sidebar.removeEventListener("sidebarbuttontap",this.sidebarButtonTapListener);for(let t of this.gestureManagers)t.disconnect();for(let t of [this.triggerButton.collapsedTriggerButton,this.triggerButton.expandedTriggerButton])t.removeEventListener("tap",this.triggerButtonTapListener),t.removeEventListener("holdstart",this.triggerButtonHoldStartListener),t.removeEventListener("holdend",this.triggerButtonHoldEndListener),t.removeEventListener("swipeupstart",this.triggerButtonVerticalSwipeStartListener),t.removeEventListener("swipedownstart",this.triggerButtonVerticalSwipeStartListener),t.removeEventListener("swipeup",this.triggerButtonVerticalSwipeListener),t.removeEventListener("swipedown",this.triggerButtonVerticalSwipeListener),t.removeEventListener("swipeupend",this.triggerButtonVerticalSwipeEndListener),t.removeEventListener("swipedownend",this.triggerButtonVerticalSwipeEndListener),t.removeEventListener("swipeleft",this.triggerButtonSwipeLeftListener),t.removeEventListener("swiperight",this.triggerButtonSwipeRightListener);this.orientationManager.disconnectedCallback(),this.orientationManager.removeEventListener("orientationchange",this.orientationChangeListener),document.removeEventListener("pointerup",this.clickOutsideListener),document.removeEventListener("visibilitychange",this.visibilityChangeListener),this.miniPreviewTimeout.stop(),this.triggerButtonRepositioningTimeout.stop();}connectedCallback(){this.mount();}disconnectedCallback(){this.unmount();}setTorchAvailable(t){this.triggerButton.sidebar[m]=t;}switchToIdleState(){this.miniPreview.darkened=!1,this.miniPreview.visible=!1,this.triggerButton.expanded=!1,this.triggerButton.message="";}async switchToActiveState(t,e,i,n){this.miniPreviewTimeout.stop(),this.miniPreview.hideToast(),this.miniPreview.cancelFadeOut(),this.miniPreview.darkened=!1,this.miniPreview.visible=!0,this.triggerButton.expanded=!0,this.triggerButton.message=e==="continuous"?this._stopCapturingText:this._scanningCapturingText,this.triggerButton.expandedTriggerButton.active=!0,this.triggerButton.sidebar[g$1]=e,t&&(i&&this.style.setProperty(g,`#${i.toJSON()}`),await this.visualFeedback.emitSuccessFeedback()),n===!0&&this.miniPreview.showToast("warning",this._zoomedInMessage,1e3),await this.positionTriggerButtonBasedOnAvailableSpace();}async switchToInactiveState(t,e,i,n){this.miniPreview.darkened=t||i==="persistent",this.miniPreview.visible=t||i==="persistent",this.triggerButton.expanded=!0,this.triggerButton.message=this._startCapturingText,this.triggerButton.expandedTriggerButton.active=!1,this.triggerButton.sidebar[g$1]=e,t&&(n&&this.style.setProperty(g,`#${n.toJSON()}`),await this.visualFeedback.emitSuccessFeedback(),i==="default"&&this.miniPreviewTimeout.start()),i==="persistent"&&this.miniPreview.showToast("warning",this._scanPausedMessage,Number.POSITIVE_INFINITY),await this.positionTriggerButtonBasedOnAvailableSpace();}async switchToErrorState(t,e){t.resumeCapturingDelay>0&&(this.miniPreview.showToast("error",t.message,t.resumeCapturingDelay),this.triggerButton.message=this._resumeCapturingText),e&&(this.style.setProperty(h$1,`#${t.visualFeedbackColor.toJSON()}`),await this.visualFeedback.emitErrorFeedback());}setTriggerButtonTranslateY(t){this.triggerButtonTranslateY=t,this.triggerButton.style.transform=`translateY(${this.triggerButtonTranslateY}px)`;}async bounceTriggerButtonTranslateY(t){return new Promise(e=>{this.triggerButton.toggleAttribute("bouncing",!0),this.triggerButton.addEventListener("transitionend",()=>{this.triggerButton.toggleAttribute("bouncing",!1),e();},{once:!0}),this.setTriggerButtonTranslateY(t);})}setTranslateYForOrientation(t){switch(t){case"landscape-primary":case"landscape-secondary":{this.setTriggerButtonTranslateY(this.presenter.landscapeOrientationTriggerButtonTranslateY);break}case"portrait-primary":case"portrait-secondary":this.setTriggerButtonTranslateY(this.presenter.portraitOrientationTriggerButtonTranslateY);}}async onMiniPreviewButtonTap(t){t.detail.tapped==="resizeButton"&&this.isTriggerButtonOverlappingMiniPreview()?(await this.bounceTriggerButtonTranslateY(this.miniPreview.clientHeight+32),this.presenter.onMiniPreviewResizeButtonTap()):t.detail.tapped==="zoomButton"&&await this.presenter.onMiniPreviewZoomButtonTap(t.detail.zoomFactor),this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}async onMiniPreviewSwipeUp(){this.miniPreviewTimeout.running||await this.presenter.onMiniPreviewSwipeUp();}async onMiniPreviewSwipeDown(){this.miniPreviewTimeout.running||await this.presenter.onMiniPreviewSwipeDown();}async onTriggerButtonTap(){await this.presenter.onTriggerButtonTap();}async onTriggerButtonHoldStart(){this.holdingToScan||(this.holdingToScan=!0,await this.presenter.onTriggerButtonHoldStart());}async onTriggerButtonHoldEnd(){this.holdingToScan&&(this.holdingToScan=!1,await this.presenter.onTriggerButtonHoldEnd());}onTriggerButtonVerticalSwipeStart(t){this.swipingVertically=!0,this.triggerButtonTranslateYOffset=this.triggerButtonTranslateY-t.detail.y;}onTriggerButtonVerticalSwipe(t){this.setTriggerButtonTranslateY(this.triggerButtonTranslateYOffset+t.detail.y);}async onTriggerButtonVerticalSwipeEnd(){if(this.swipingVertically=!1,this.isTriggerButtonOverlappingMiniPreview())await this.bounceTriggerButtonTranslateY(this.miniPreview.clientHeight+32);else if(this.isTriggerButtonAboveScreenStart()){let t=this.triggerButton.expanded?16:-68;await this.bounceTriggerButtonTranslateY(t);}else if(this.isTriggerButtonBelowScreenEnd()){let t=this.triggerButton.expanded?window.innerHeight-220-16:window.innerHeight-42-110;await this.bounceTriggerButtonTranslateY(t);}this.presenter.onTriggerButtonVerticalSwipeEnd(this.triggerButtonTranslateY,this.orientationManager.orientation);}async onTriggerButtonSwipeLeft(){this.swipingVertically||await this.presenter.onTriggerButtonSwipeLeft();}async onTriggerButtonSwipeRight(){this.swipingVertically||await this.presenter.onTriggerButtonSwipeRight();}async onSidebarButtonTap(t){switch(this.miniPreview.rewindAnimation(),t.detail.tapped){case"targetModeButton":{await this.onTargetModeButtonTap(t);return}case"scanningBehaviorButton":{await this.onScanningBehaviorButtonTap(t);return}case"torchButton":{await this.onTorchButtonTap(t);return}case"soundModeButton":{this.onSoundModeButtonTap(t);return}case"hapticModeButton":{this.onHapticModeButtonTap(t);return}case"handModeButton":this.onHandModeButtonTap(t);}}async onClickOutside(t){t.composedPath().includes(this)||await this.presenter.onClickOutside();}async onVisibilityChange(){document.visibilityState==="hidden"&&await this.presenter.onVisibilityChange();}async onTargetModeButtonTap(t){await this.presenter.onTargetModeButtonTap(t.detail.enabled);}async onScanningBehaviorButtonTap(t){await this.presenter.onScanningBehaviorButtonTap(t.detail.enabled);}async onTorchButtonTap(t){await this.presenter.onTorchButtonTap(t.detail.enabled);}onSoundModeButtonTap(t){this.presenter.onSoundModeButtonTap(t.detail.enabled);}onHapticModeButtonTap(t){this.presenter.onHapticModeButtonTap(t.detail.enabled);}onHandModeButtonTap(t){this.presenter.onHandModeButtonTap(t.detail.enabled);}async onMiniPreviewTimeoutFinished(){await this.miniPreview.fadeOut();}async onTriggerButtonRepositioningTimeoutFinished(){await this.positionTriggerButtonBasedOnAvailableSpace();}async onOrientationChange(t){this.triggerButtonRepositioningTimeout.stop();let e=t;this.miniPreview.orientation=e.detail,this.triggerButtonRepositioningTimeout.start(),this[b$1]=(()=>{switch(e.detail){case"landscape-primary":return "right";case"landscape-secondary":return "left";default:return this.presenter.handMode}})(),this.triggerButton[f$2]=this[b$1]==="left",this.setTranslateYForOrientation(e.detail),await this.presenter.onOrientationChange();}targetModeButtonTapped(t,e,i=!0){var n;if(i){let r=t?"warning":"info",W=t?this._targetModeEnabledMessage:this._targetModeDisabledMessage;this.miniPreview.showToast(r,W,1e3);}this.triggerButton.sidebar[l]=t,this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start(),(n=this.didChangeScanningMode)==null||n.call(this,e);}scanningBehaviorButtonTapped(t,e=!0){if(e){let i=t?"warning":"info",n=t?this._continuousModeEnabledMessage:this._continuousModeDisabledMessage;this.miniPreview.showToast(i,n,1e3);}this.triggerButton.sidebar[g$1]=t?"continuous":"single",this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}torchButtonTapped(t,e=!0){if(e){let i=t?"warning":"info",n=t?this._torchEnabledMessage:this._torchDisabledMessage;this.miniPreview.showToast(i,n,1e3);}this.triggerButton.sidebar[n]=t,this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}soundModeButtonTapped(t){this.triggerButton.sidebar[i]=t,this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}hapticModeButtonTapped(t){this.triggerButton.sidebar[d$3]=t,this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}handModeButtonTapped(t){this[b$1]=t?"left":"right",this.triggerButton[f$2]=t,this.triggerButton.sidebar[b$1]=t?"left":"right",this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}miniPreviewSwipedUp(){this.miniPreview.zoomIn();}miniPreviewSwipedDown(){this.miniPreview.zoomOut();}isTriggerButtonOverlappingMiniPreview(){return this.orientationManager.orientation.startsWith("portrait")&&this.miniPreview.visible&&this.triggerButtonTranslateY<this.miniPreview.clientHeight+32}isTriggerButtonAboveScreenStart(){return this.triggerButton.expanded?this.triggerButtonTranslateY<0:this.triggerButtonTranslateY<-68}isTriggerButtonBelowScreenEnd(){return this.triggerButton.expanded?this.triggerButtonTranslateY>=window.innerHeight-220:this.triggerButtonTranslateY>window.innerHeight-42-110}async positionTriggerButtonBasedOnAvailableSpace(){this.isTriggerButtonOverlappingMiniPreview()?await this.bounceTriggerButtonTranslateY(this.miniPreview.clientHeight+32):this.isTriggerButtonAboveScreenStart()?await this.bounceTriggerButtonTranslateY(16):this.isTriggerButtonBelowScreenEnd()&&await this.bounceTriggerButtonTranslateY(window.innerHeight-220-16),this.presenter.onTriggerButtonVerticalSwipeEnd(this.triggerButtonTranslateY,this.orientationManager.orientation);}}; export { Z as a };