@scandit/web-datacapture-barcode
Version:
Scandit Data Capture SDK for the Web
1 lines • 19.8 kB
JavaScript
import {a as a$3}from'./chunk-3MEAY6PU.js';import {a as a$4}from'./chunk-6KWMOMD7.js';import {b}from'./chunk-4UNEYE55.js';import {a as a$6}from'./chunk-NZCSU4S2.js';import {h}from'./chunk-4PYZSS3H.js';import {a as a$5,c as c$1,e,f as f$1,g,h as h$1,i as i$1,j as j$1,k as k$1,b as b$1,d as d$2}from'./chunk-DVHTYKDX.js';import {d,c,f,i,j,k,l,m,n,b as b$2,e as e$1,g as g$1}from'./chunk-4JEIREAU.js';import {d as d$1}from'./chunk-YBD5JYCX.js';import {a as a$2}from'./chunk-TYWXGGDK.js';import {a as a$1}from'./chunk-AYZEMPSP.js';import {a}from'./chunk-PMTVYYAY.js';import {Logger,Point,CameraPosition,Color}from'@scandit/web-datacapture-core';import {OrientationObserver,orientationChangeEvent}from'@scandit/web-datacapture-core/build/js/private/OrientationObserver.js';import {ScanditHTMLElement,Timeout,defineCustomElements,css,clamp}from'@scandit/web-datacapture-core/build/js/private/utils/index.js';var W=class l$1 extends ScanditHTMLElement{constructor(){super(...arguments);this._targetModeButtonVisible=false;this._scanningBehaviorButtonVisible=false;this._torchControlVisible=true;this._zoomSwitchControlVisible=true;this._previewSizeControlVisible=true;this._barcodeFindButtonVisible=false;this._labelCaptureButtonVisible=false;this._cameraSwitchButtonVisible=false;this._previewCloseControlVisible=true;this._triggerButtonVisible=true;this._isTorchAvailable=true;this._isZoomAvailable=true;this._isConnected=false;this._sizingMode="constrained";this.feedbackDelegate={getFeedbackForBarcode:()=>a.success()};this.resizeObserver=null;this.onResizeHandler=this.onResize.bind(this);this.settings=new a$1;this.presenter=a$2.forView(this,this.settings);this.miniPreview=b.create();this.triggerButton=a$3.create();this.visualFeedback=a$4.create();this.miniPreviewTimeout=new Timeout(500,this.onMiniPreviewTimeoutFinished.bind(this));this.orientationObserver=new OrientationObserver;this.miniPreviewPointerUpListener=this.onMiniPreviewPointerUp.bind(this);this.miniPreviewPointerMoveListener=this.onMiniPreviewPointerMove.bind(this);this.miniPreviewButtonTapListener=this.onMiniPreviewButtonTap.bind(this);this.miniPreviewDragListener=this.onMiniPreviewDrag.bind(this);this.miniPreviewDragEndListener=this.onMiniPreviewDragEnd.bind(this);this.miniPreviewVisibilityChangeListener=this.onMiniPreviewVisibilityChange.bind(this);this.triggerButtonPointerDownListener=this.onTriggerButtonPointerDown.bind(this);this.triggerButtonTapListener=this.onTriggerButtonTap.bind(this);this.triggerButtonLongPressStartListener=this.onTriggerButtonLongPressStart.bind(this);this.triggerButtonLongPressEndListener=this.onTriggerButtonLongPressEnd.bind(this);this.triggerButtonDragListener=this.onTriggerButtonDrag.bind(this);this.toolbarButtonTapListener=this.onToolbarButtonTap.bind(this);this.clickOutsideListener=this.onClickOutside.bind(this);this.visibilityChangeListener=this.onVisibilityChange.bind(this);this.orientationChangeListener=this.onOrientationChange.bind(this);this.holdingToScan=false;this.miniPreviewListeners=[["pointerup",this.miniPreviewPointerUpListener],["pointermove",this.miniPreviewPointerMoveListener],["minipreviewbuttontap",this.miniPreviewButtonTapListener],["toolbarbuttontap",this.toolbarButtonTapListener],["drag",this.miniPreviewDragListener],["dragend",this.miniPreviewDragEndListener],[h,this.miniPreviewVisibilityChangeListener]];this.triggerButtonListeners=[["pointerdown",this.triggerButtonPointerDownListener],["tap",this.triggerButtonTapListener],["longpressstart",this.triggerButtonLongPressStartListener],["longpressend",this.triggerButtonLongPressEndListener],["drag",this.triggerButtonDragListener]];}get targetModeButtonVisible(){return this._targetModeButtonVisible}set targetModeButtonVisible(e){var i;this._targetModeButtonVisible=e,(i=this.miniPreview)!=null&&i.toolbar&&(this.miniPreview.toolbar[d]=e);}get scanningBehaviorButtonVisible(){return this._scanningBehaviorButtonVisible}set scanningBehaviorButtonVisible(e){var i;this._scanningBehaviorButtonVisible=e,(i=this.miniPreview)!=null&&i.toolbar&&(this.miniPreview.toolbar[c]=e);}get torchControlVisible(){return this._torchControlVisible}set torchControlVisible(e){this._torchControlVisible=e,this.miniPreview&&(this.miniPreview[f]=e&&this._isTorchAvailable);}get zoomSwitchControlVisible(){return this._zoomSwitchControlVisible}set zoomSwitchControlVisible(e){this._zoomSwitchControlVisible=e,this.miniPreview&&(this.miniPreview[i]=e&&this._isZoomAvailable);}get previewSizeControlVisible(){return this._previewSizeControlVisible}set previewSizeControlVisible(e){this._previewSizeControlVisible=e,this.miniPreview&&(this.miniPreview[j]=e);}get barcodeFindButtonVisible(){return this._barcodeFindButtonVisible}set barcodeFindButtonVisible(e){var i;this._barcodeFindButtonVisible=e,(i=this.miniPreview)!=null&&i.toolbar&&(this.miniPreview.toolbar[k]=e);}get labelCaptureButtonVisible(){return this._labelCaptureButtonVisible}set labelCaptureButtonVisible(e){var i;this._labelCaptureButtonVisible=e,(i=this.miniPreview)!=null&&i.toolbar&&(this.miniPreview.toolbar[l]=e);}get cameraSwitchButtonVisible(){return this._cameraSwitchButtonVisible}set cameraSwitchButtonVisible(e){var i;this._cameraSwitchButtonVisible=e,(i=this.miniPreview)!=null&&i.toolbar&&(this.miniPreview.toolbar[m]=e);}get previewCloseControlVisible(){return this._previewCloseControlVisible}set previewCloseControlVisible(e){this._previewCloseControlVisible=e,this.miniPreview&&(this.miniPreview[n]=e);}get triggerButtonVisible(){return this._triggerButtonVisible}set triggerButtonVisible(e){this._triggerButtonVisible=e,this.triggerButton&&(this.triggerButton.visible=e);}get dataCaptureContext(){return this.presenter.context}set dataCaptureContext(e){this.presenter.context!==e&&(this.presenter.context=e,this._maybeAutoPrepareScanning());}get sparkScan(){return this.presenter.sparkScan}set sparkScan(e){this.presenter.sparkScan!==e&&(this.presenter.sparkScan=e,this._maybeAutoPrepareScanning());}get _targetModeEnabledMessage(){var e;return (e=this.settings.toastSettings.targetModeEnabledMessage)!=null?e:"Aimer on"}get _targetModeDisabledMessage(){var e;return (e=this.settings.toastSettings.targetModeDisabledMessage)!=null?e:"Aimer off"}get _continuousModeEnabledMessage(){var e;return (e=this.settings.toastSettings.continuousModeEnabledMessage)!=null?e:"Continuous mode on"}get _continuousModeDisabledMessage(){var e;return (e=this.settings.toastSettings.continuousModeDisabledMessage)!=null?e:"Continuous mode off"}get _scanPausedMessage(){var e;return (e=this.settings.toastSettings.scanPausedMessage)!=null?e:"Scan paused"}get _torchEnabledMessage(){var e;return (e=this.settings.toastSettings.torchEnabledMessage)!=null?e:"Torch on"}get _torchDisabledMessage(){var e;return (e=this.settings.toastSettings.torchDisabledMessage)!=null?e:"Torch off"}get _zoomedInMessage(){var e;return (e=this.settings.toastSettings.zoomedInMessage)!=null?e:"2x zoom"}get _zoomedOutMessage(){var e;return (e=this.settings.toastSettings.zoomedOutMessage)!=null?e:"1x zoom"}set sparkScanViewSettings(e){let i=e!=null?e:new a$1;this.settings=i,this.presenter.setSparkScanViewSettings(i);}get sparkScanViewSettings(){return this.settings}static forElement(e,i,t,r){let n=l$1.create();return r&&(n.sparkScanViewSettings=r),n.dataCaptureContext=i,n.sparkScan=t,e.append(n),n}static register(){defineCustomElements({[d$1]:l$1});}static create(){return l$1.register(),document.createElement("spark-scan-view")}static createStyleElement(){return css`:root{${a$5}:#12161966;${c$1}:#12161966;${e}:#5b707f4d;${f$1}:#fff;${g}:#121619cc;${h$1}:#fbc02c;${i$1}:#fff;${j$1}:#0ff;${k$1}:#fa4446}${d$1}{position:relative}`}async prepareScanning(){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({sessionStopReason:"user"});}showToast(e){this.miniPreview.showToast("info",e,1e3);}setListener(e){this.presenter.setListener(e);}setTriggerButtonImage(e){this.triggerButton.setImage(e);}get miniPreviewSize(){return this.miniPreview.size}set miniPreviewSize(e){this.miniPreview.size=e;}setWidthAndHeightCssStyleProperties(){var t,r,n,a,o,s;let e,i;this._sizingMode==="unconstrained"?(e=(r=(t=globalThis.window.visualViewport)==null?void 0:t.width)!=null?r:globalThis.window.innerWidth,i=(a=(n=globalThis.window.visualViewport)==null?void 0:n.height)!=null?a:globalThis.window.innerHeight):(e=((o=this.parentElement)==null?void 0:o.clientWidth)||document.body.clientWidth,i=((s=this.parentElement)==null?void 0:s.clientHeight)||document.body.clientHeight),this.style.setProperty("--dvw",`${e}px`),this.style.setProperty("--dvh",`${i}px`),this.style.setProperty("--dvw-half","calc(var(--dvw) / 2)"),this.style.setProperty("--dvh-half","calc(var(--dvh) / 2)");}onResize(){this.updateSizingMode(),this.setWidthAndHeightCssStyleProperties(),this.repositionElementsIfOutOfBounds();}updateSizingMode(){var r,n,a,o;let e=(n=(r=this.parentElement)==null?void 0:r.clientWidth)!=null?n:0,t=((o=(a=this.parentElement)==null?void 0:a.clientHeight)!=null?o:0)<236||e<236?"unconstrained":"constrained";if(this._sizingMode!==t){this._sizingMode=t;let s=t==="unconstrained";this.toggleAttribute("unconstrained",s),this.miniPreview.toggleAttribute("unconstrained",s),this.triggerButton.toggleAttribute("unconstrained",s),this.miniPreview.useViewportBounds=s,this.triggerButton.useViewportBounds=s,this.repositionElementsIfOutOfBounds();}}_maybeAutoPrepareScanning(){this._isConnected&&this.presenter.context&&this.presenter.sparkScan&&this.prepareScanning().catch(e=>{Logger.warn("Auto prepareScanning failed:",e);});}connectedCallback(){var e$1;this.append(l$1.createStyleElement().cloneNode(true),this.miniPreview,this.triggerButton,this.visualFeedback),this.resizeObserver=new ResizeObserver(this.onResizeHandler),this.resizeObserver.observe(this.parentElement),this.previewCloseControlVisible=this._previewCloseControlVisible,this.previewSizeControlVisible=this._previewSizeControlVisible,this.zoomSwitchControlVisible=this._zoomSwitchControlVisible,this.torchControlVisible=this._torchControlVisible,this.miniPreview.size=this.settings.defaultMiniPreviewSize,this.targetModeButtonVisible=this._targetModeButtonVisible,this.scanningBehaviorButtonVisible=this._scanningBehaviorButtonVisible,this.barcodeFindButtonVisible=this._barcodeFindButtonVisible,this.labelCaptureButtonVisible=this._labelCaptureButtonVisible,this.cameraSwitchButtonVisible=this._cameraSwitchButtonVisible,this.triggerButtonVisible=this._triggerButtonVisible;for(let[i,t]of [[this.triggerButtonCollapsedColor,a$5],[this.triggerButtonExpandedColor,c$1],[this.triggerButtonAnimationColor,e],[this.triggerButtonTintColor,f$1],[this.toolbarBackgroundColor,g],[this.toolbarIconActiveTintColor,h$1],[this.toolbarIconInactiveTintColor,i$1]])i&&this.style.setProperty(t,`#${i.toJSON()}`);this.setTriggerButtonPressedColor("triggerButtonCollapsedColor",a$5,b$1),this.setTriggerButtonPressedColor("triggerButtonExpandedColor",c$1,d$2),this.addMiniPreviewListeners(),this.addTriggerButtonListeners(),this.orientationObserver.register(),document.addEventListener("pointerup",this.clickOutsideListener),document.addEventListener("visibilitychange",this.visibilityChangeListener),this.orientationObserver.addEventListener(orientationChangeEvent,this.orientationChangeListener),this.orientationObserver.dispatchOrientationChangeEvent(this.orientationObserver.orientation),this.updateSizingMode(),this.setWidthAndHeightCssStyleProperties(),(e$1=window.visualViewport)==null||e$1.addEventListener("resize",this.onResizeHandler),this._isConnected=true,this._maybeAutoPrepareScanning();}disconnectedCallback(){var e,i;this.miniPreviewTimeout.stop(),(e=this.resizeObserver)==null||e.disconnect(),this.orientationObserver.unregister(),this.orientationObserver.removeEventListener(orientationChangeEvent,this.orientationChangeListener),this.removeMiniPreviewListeners(),this.removeTriggerButtonListeners(),document.removeEventListener("pointerup",this.clickOutsideListener),document.removeEventListener("visibilitychange",this.visibilityChangeListener),(i=window.visualViewport)==null||i.removeEventListener("resize",this.onResizeHandler);for(let t of Array.from(this.children))t.remove();this._isConnected=false;}setTorchAvailable(e){this._isTorchAvailable=e,this.torchControlVisible=this._torchControlVisible;}setZoomAvailable(e){this._isZoomAvailable=e,this.zoomSwitchControlVisible=this._zoomSwitchControlVisible;}switchToIdleState(){this.miniPreview.darkened=false,this.miniPreview.visible=false,this.miniPreview.hideToast(),this.triggerButton.expanded=false,this.triggerButton.stopPulsating();}async switchToActiveState(e,i,t,r){this.miniPreviewTimeout.stop(),this.miniPreview.hideToast(),this.miniPreview.cancelFadeOut(),this.miniPreview.darkened=false,this.miniPreview.visible=true,this.triggerButton.expanded=true,this.triggerButton.startPulsating(),this.miniPreview.toolbar&&(this.miniPreview.toolbar[b$2]=i),e&&(t&&this.style.setProperty(j$1,`#${t.toJSON()}`),await this.visualFeedback.emitSuccessFeedback()),r===true&&this.miniPreview.showToast("warning",this._zoomedInMessage,1e3);}async switchToInactiveState(e,i,t,r){this.miniPreview.darkened=t==="persistent"||e,this.miniPreview.visible=t==="persistent"||e,this.triggerButton.expanded=true,this.triggerButton.stopPulsating(),this.miniPreview.toolbar&&(this.miniPreview.toolbar[b$2]=i),e&&(r&&this.style.setProperty(j$1,`#${r.toJSON()}`),await this.visualFeedback.emitSuccessFeedback(),t==="default"&&this.miniPreviewTimeout.start()),t==="persistent"&&this.miniPreview.showToast("warning",this._scanPausedMessage,Number.POSITIVE_INFINITY);}async switchToErrorState(e,i){e.resumeCapturingDelay>0&&(this.triggerButton.stopPulsating(),this.miniPreview.showToast("error",e.message,e.resumeCapturingDelay)),i&&(this.style.setProperty(k$1,`#${e.visualFeedbackColor.toJSON()}`),await this.visualFeedback.emitErrorFeedback());}async onMiniPreviewPointerUp(){await this.presenter.onMiniPreviewPointerUp();}onMiniPreviewPointerMove(){this.presenter.onMiniPreviewPointerMove();}async onMiniPreviewButtonTap(e){switch(e.detail.tapped){case "torchButton":{await this.presenter.onTorchButtonTap(e.detail.enabled);break}case "closeButton":{await this.presenter.onMiniPreviewCloseButtonTap();break}case "resizeButton":{this.presenter.onMiniPreviewResizeButtonTap();break}case "zoomButton":{await this.presenter.onMiniPreviewZoomButtonTap(e.detail.zoomFactor);break}}this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}async onMiniPreviewDrag(e){e instanceof a$6&&await this.presenter.onMiniPreviewDrag(e.point,this.orientationObserver.orientation.type);}async onMiniPreviewDragEnd(e){e instanceof a$6&&await this.presenter.onMiniPreviewDragEnd();}async onMiniPreviewVisibilityChange(e){await this.presenter.onMiniPreviewVisibilityChange(e.detail.visible);}async onTriggerButtonPointerDown(){await this.presenter.onTriggerButtonPointerDown();}async onTriggerButtonTap(){await this.presenter.onTriggerButtonTap();}async onTriggerButtonLongPressStart(){this.holdingToScan||(this.holdingToScan=true,await this.presenter.onTriggerButtonLongPressStart());}async onTriggerButtonLongPressEnd(){this.holdingToScan&&(this.holdingToScan=false,await this.presenter.onTriggerButtonLongPressEnd());}onTriggerButtonDrag(e){e instanceof a$6&&this.presenter.onTriggerButtonDrag(e.point,this.orientationObserver.orientation.type);}async onToolbarButtonTap(e){switch(this.miniPreview.rewindAnimation(),e.detail.tapped){case "targetModeButton":{await this.onTargetModeButtonTap(e);return}case "scanningBehaviorButton":{await this.onScanningBehaviorButtonTap(e);return}case "barcodeFindButton":{await this.onBarcodeFindButtonTap();return}case "labelCaptureButton":{await this.onLabelCaptureButtonTap();return}case "cameraSwitchButton":await this.onCameraSwitchButtonTap();}}async onClickOutside(e){e.composedPath().includes(this)||await this.presenter.onClickOutside();}async onVisibilityChange(){document.visibilityState==="hidden"&&await this.presenter.onVisibilityChange();}async onTargetModeButtonTap(e){await this.presenter.onTargetModeButtonTap(e.detail.enabled);}async onScanningBehaviorButtonTap(e){await this.presenter.onScanningBehaviorButtonTap(e.detail.enabled);}async onBarcodeFindButtonTap(){await this.presenter.onBarcodeFindButtonTap();}async onLabelCaptureButtonTap(){await this.presenter.onLabelCaptureButtonTap();}async onCameraSwitchButtonTap(){this.torchControlVisible=false,await this.presenter.onCameraSwitchButtonTap();}async onTorchButtonTap(e){await this.presenter.onTorchButtonTap(e.detail.enabled);}async onMiniPreviewTimeoutFinished(){await this.miniPreview.fadeOut();}async onOrientationChange(e){this.updateSizingMode(),this.setWidthAndHeightCssStyleProperties(),this.miniPreview.orientation=e.detail.type;let i,t,r,n;switch(e.detail.type){case "landscape-primary":case "landscape-secondary":{i=this.presenter.landscapeOrientationTriggerButtonTranslateX,t=this.presenter.landscapeOrientationTriggerButtonTranslateY,r=this.presenter.landscapeOrientationMiniPreviewTranslateX,n=this.presenter.landscapeOrientationMiniPreviewTranslateY;break}case "portrait-primary":case "portrait-secondary":{i=this.presenter.portraitOrientationTriggerButtonTranslateX,t=this.presenter.portraitOrientationTriggerButtonTranslateY,r=this.presenter.portraitOrientationMiniPreviewTranslateX,n=this.presenter.portraitOrientationMiniPreviewTranslateY;break}}this.triggerButton.translateTo(new Point(i,t)),this.miniPreview.translateTo(new Point(r,n)),await this.presenter.onOrientationChange();}targetModeButtonTapped(e,i=true){if(i){let t=e?"warning":"info",r=e?this._targetModeEnabledMessage:this._targetModeDisabledMessage;this.miniPreview.showToast(t,r,1e3);}this.miniPreview.toolbar&&(this.miniPreview.toolbar[e$1]=e),this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}scanningBehaviorButtonTapped(e,i=true){if(i){let t=e?"warning":"info",r=e?this._continuousModeEnabledMessage:this._continuousModeDisabledMessage;this.miniPreview.showToast(t,r,1e3);}this.miniPreview.toolbar&&(this.miniPreview.toolbar[b$2]=e?"continuous":"single"),this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}torchButtonTapped(e,i=true){if(i){let t=e?"warning":"info",r=e?this._torchEnabledMessage:this._torchDisabledMessage;this.miniPreview.showToast(t,r,1e3);}this.miniPreview.toolbar&&(this.miniPreview[g$1]=e),this.miniPreviewTimeout.running&&this.miniPreviewTimeout.start();}cameraSwitchButtonTapped(e,i){var t;this.torchControlVisible=e,(t=this.miniPreview.toolbar)==null||t.enableCameraSwitchButton(i===CameraPosition.UserFacing);}getDefaultCssVariableValue(e){return window.getComputedStyle(this).getPropertyValue(e)}setTriggerButtonPressedColor(e,i,t){var o;let r=(o=this[e])!=null?o:Color.fromHex(this.getDefaultCssVariableValue(i)),n=clamp(r.alpha+r.alpha*.25,r.alpha,255),a=r.withAlpha(n);this.style.setProperty(t,`#${a.toJSON()}`);}addMiniPreviewListeners(){for(let[e,i]of this.miniPreviewListeners)this.miniPreview.addEventListener(e,i);}removeMiniPreviewListeners(){for(let[e,i]of this.miniPreviewListeners)this.miniPreview.removeEventListener(e,i);}addTriggerButtonListeners(){for(let[e,i]of this.triggerButtonListeners)this.triggerButton.addEventListener(e,i);}removeTriggerButtonListeners(){for(let[e,i]of this.triggerButtonListeners)this.triggerButton.removeEventListener(e,i);}repositionElementsIfOutOfBounds(){this.triggerButton.repositionIfOutOfBounds(),this.miniPreview.repositionIfOutOfBounds();}repositionMiniPreviewIfOutOfBounds(){this.miniPreview.repositionIfOutOfBounds();}repositionTriggerButtonIfOutOfBounds(){this.triggerButton.repositionIfOutOfBounds();}};export{W as a};