@scandit/web-datacapture-barcode
Version:
Scandit Data Capture SDK for the Web
18 lines (15 loc) • 14.4 kB
JavaScript
import { a as a$1 } from './chunk-YVLXLEDF.js';
import { a as a$2 } from './chunk-TBXQSBKX.js';
import { b } from './chunk-NL3O64AI.js';
import { a as a$6 } from './chunk-FJ4SOETD.js';
import { a as a$5, c, e, f, g, h, i, j, k, b as b$1, d as d$2 } from './chunk-DVHTYKDX.js';
import { m, j as j$1, i as i$1, d as d$1, c as c$1, k as k$1, l, f as f$1, b as b$2, e as e$1, g as g$1 } from './chunk-Y6DC25EF.js';
import { d } from './chunk-YBD5JYCX.js';
import { a as a$3 } from './chunk-5AWKCU7L.js';
import { a as a$4 } from './chunk-4EGODYYJ.js';
import { a } from './chunk-PTJJ3JDE.js';
import { 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 $=class v extends ScanditHTMLElement{constructor(){super(...arguments);this.targetModeButtonVisible=!1;this.scanningBehaviorButtonVisible=!1;this.torchControlVisible=!0;this.zoomSwitchControlVisible=!0;this.previewSizeControlVisible=!0;this.barcodeFindButtonVisible=!1;this.cameraSwitchButtonVisible=!1;this.previewCloseControlVisible=!0;this.triggerButtonVisible=!0;this.feedbackDelegate={getFeedbackForBarcode:()=>a.success()};this.torchButtonVisible=!0;this.handModeButtonVisible=!1;this.miniPreview=b.create();this.triggerButton=a$1.create();this.visualFeedback=a$2.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.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=!1;}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"}static forElement(e,i,t,r){let n=v.create();return n.presenter=a$3.forView(n,i,t,r!=null?r:new a$4),n.settings=n.presenter.sparkScanViewSettings,n.append(n.miniPreview,n.triggerButton,n.visualFeedback,v.createStyleElement().cloneNode(!0)),n.hidden=!0,e.append(n),n}static create(){return defineCustomElements({[d]:v}),document.createElement("spark-scan-view")}static createStyleElement(){return css`:root{${a$5}:#12161966;${c}:#12161966;${e}:#5b707f4d;${f}:#fff;${g}:#121619cc;${h}:#fbc02c;${i}:#fff;${j}:#2ec1ce;${k}:#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({sessionStopReason:"user"});}showToast(e){this.miniPreview.showToast("info",e,1e3);}setListener(e){this.presenter.setListener(e);}setTriggerButtonImage(e){this.triggerButton.setImage(e);}mount(){this.unmount(),this.miniPreview[m]=this.previewCloseControlVisible,this.miniPreview[j$1]=this.previewSizeControlVisible,this.miniPreview[i$1]=this.zoomSwitchControlVisible,this.miniPreview.size=this.settings.defaultMiniPreviewSize,this.miniPreview.toolbar&&(this.miniPreview.toolbar[d$1]=this.targetModeButtonVisible,this.miniPreview.toolbar[c$1]=this.scanningBehaviorButtonVisible,this.miniPreview.toolbar[k$1]=this.barcodeFindButtonVisible,this.miniPreview.toolbar[l]=this.cameraSwitchButtonVisible),this.triggerButton.visible=this.triggerButtonVisible;for(let[e$1,i$1]of [[this.triggerButtonCollapsedColor,a$5],[this.triggerButtonExpandedColor,c],[this.triggerButtonAnimationColor,e],[this.triggerButtonTintColor,f],[this.toolbarBackgroundColor,g],[this.toolbarIconActiveTintColor,h],[this.toolbarIconInactiveTintColor,i]])e$1&&this.style.setProperty(i$1,`#${e$1.toJSON()}`);this.setTriggerButtonPressedColor("triggerButtonCollapsedColor",a$5,b$1),this.setTriggerButtonPressedColor("triggerButtonExpandedColor",c,d$2),this.miniPreview.addEventListener("pointerup",this.miniPreviewPointerUpListener),this.miniPreview.addEventListener("pointermove",this.miniPreviewPointerMoveListener),this.miniPreview.addEventListener("minipreviewbuttontap",this.miniPreviewButtonTapListener),this.miniPreview.addEventListener("toolbarbuttontap",this.toolbarButtonTapListener),this.miniPreview.addEventListener("drag",this.miniPreviewDragListener),this.miniPreview.addEventListener("dragend",this.miniPreviewDragEndListener),this.triggerButton.addEventListener("tap",this.triggerButtonTapListener),this.triggerButton.addEventListener("longpressstart",this.triggerButtonLongPressStartListener),this.triggerButton.addEventListener("longpressend",this.triggerButtonLongPressEndListener),this.triggerButton.addEventListener("drag",this.triggerButtonDragListener),this.orientationObserver.register(),this.orientationObserver.addEventListener(orientationChangeEvent,this.orientationChangeListener),this.orientationObserver.dispatchOrientationChangeEvent(this.orientationObserver.orientation),document.addEventListener("pointerup",this.clickOutsideListener),document.addEventListener("visibilitychange",this.visibilityChangeListener);}unmount(){this.miniPreview.removeEventListener("pointerup",this.miniPreviewPointerUpListener),this.miniPreview.removeEventListener("pointermove",this.miniPreviewPointerMoveListener),this.miniPreview.removeEventListener("minipreviewbuttontap",this.miniPreviewButtonTapListener),this.miniPreview.removeEventListener("toolbarbuttontap",this.toolbarButtonTapListener),this.miniPreview.removeEventListener("drag",this.miniPreviewDragListener),this.miniPreview.removeEventListener("dragend",this.miniPreviewDragEndListener),this.triggerButton.removeEventListener("tap",this.triggerButtonTapListener),this.triggerButton.removeEventListener("holdstart",this.triggerButtonLongPressStartListener),this.triggerButton.removeEventListener("holdend",this.triggerButtonLongPressEndListener),this.triggerButton.removeEventListener("drag",this.triggerButtonDragListener),this.orientationObserver.unregister(),this.orientationObserver.removeEventListener(orientationChangeEvent,this.orientationChangeListener),document.removeEventListener("pointerup",this.clickOutsideListener),document.removeEventListener("visibilitychange",this.visibilityChangeListener),this.miniPreviewTimeout.stop();}connectedCallback(){this.mount();}disconnectedCallback(){this.unmount();}setTorchAvailable(e){this.miniPreview.toolbar&&(this.miniPreview[f$1]=this.torchControlVisible&&e);}setZoomAvailable(e){this.miniPreview[i$1]=this.zoomSwitchControlVisible&&e;}switchToIdleState(){this.miniPreview.darkened=!1,this.miniPreview.visible=!1,this.miniPreview.hideToast(),this.triggerButton.expanded=!1,this.triggerButton.stopPulsating();}async switchToActiveState(e,i,t,r){this.miniPreviewTimeout.stop(),this.miniPreview.hideToast(),this.miniPreview.cancelFadeOut(),this.miniPreview.darkened=!1,this.miniPreview.visible=!0,this.triggerButton.expanded=!0,this.triggerButton.startPulsating(),this.miniPreview.toolbar&&(this.miniPreview.toolbar[b$2]=i),e&&(t&&this.style.setProperty(j,`#${t.toJSON()}`),await this.visualFeedback.emitSuccessFeedback()),r===!0&&this.miniPreview.showToast("warning",this._zoomedInMessage,1e3);}async switchToInactiveState(e,i,t,r){this.miniPreview.darkened=e||t==="persistent",this.miniPreview.visible=e||t==="persistent",this.triggerButton.expanded=!0,this.triggerButton.stopPulsating(),this.miniPreview.toolbar&&(this.miniPreview.toolbar[b$2]=i),e&&(r&&this.style.setProperty(j,`#${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,`#${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 onTriggerButtonTap(){await this.presenter.onTriggerButtonTap();}async onTriggerButtonLongPressStart(){this.holdingToScan||(this.holdingToScan=!0,await this.presenter.onTriggerButtonLongPressStart());}async onTriggerButtonLongPressEnd(){this.holdingToScan&&(this.holdingToScan=!1,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"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 onCameraSwitchButtonTap(){this.miniPreview[f$1]=!1,await this.presenter.onCameraSwitchButtonTap();}async onTorchButtonTap(e){await this.presenter.onTorchButtonTap(e.detail.enabled);}async onMiniPreviewTimeoutFinished(){await this.miniPreview.fadeOut();}async onOrientationChange(e){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=!0){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=!0){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=!0){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.miniPreview[f$1]=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 P;let r=(P=this[e])!=null?P:Color.fromHex(this.getDefaultCssVariableValue(i)),n=clamp(r.alpha+r.alpha*.25,r.alpha,255),U=r.withAlpha(n);this.style.setProperty(t,`#${U.toJSON()}`);}};
export { $ as a };