UNPKG

scandit-web-datacapture-barcode

Version:

Scandit Data Capture SDK for the Web

15 lines (12 loc) 15.2 kB
import { a as a$3 } from './chunk-HDNSAPIH.js'; import { a as a$1 } from './chunk-UFZLAQSA.js'; import { a } from './chunk-FDZTF4HW.js'; import { a as a$4 } from './chunk-L5UNNJKX.js'; import { a as a$2, c, b as b$1 } from './chunk-6YEQCTNO.js'; import { a as a$5 } from './chunk-Y7BQ5MN7.js'; import { b as b$2, c as c$1 } from './chunk-VHBZ4AGM.js'; import { b as b$3 } from './chunk-TRWFJYCT.js'; import { DataCaptureView, Anchor, LogoStyle, isCameraFrameSource, Camera, FrameSourceState, Color, TorchState, Logger, NumberWithUnit, RadiusLocationSelection } from 'scandit-web-datacapture-core'; import { Timeout } from 'scandit-web-datacapture-core/build/js/private/utils/timeout.js'; var b=class B{constructor(t,a$4,e,i){this.feedbackManager=a.withDefaults(!0,!0);this.preferenceManager=new a$1(localStorage);this.defaultErrorBrush=a$2.defaultErrorBrush();this.sparkScanView=t,this.context=a$4,this.sparkScan=e,this.sparkScanViewSettings=i,this.stateManager=new a$3(this.sparkScanViewSettings,this.preferenceManager),this.stateManager.handMode=i.defaultHandMode,this.triggerButtonCollapseTimeout=new Timeout(this.sparkScanViewSettings.triggerButtonCollapseTimeout,async()=>{this.stateManager.state!=="idle"&&await this.switchToIdleState();}),this.inactiveStateTimeout=new Timeout(this.sparkScanViewSettings.inactiveStateTimeout,async()=>{this.stateManager.state!=="inactive"&&!this.stateManager.holdingToScan&&await this.switchToInactiveState();});}get handMode(){return this.stateManager.handMode}get portraitOrientationTriggerButtonTranslateY(){var t;return (t=this.stateManager.portraitOrientationTriggerButtonTranslateY)!=null?t:window.innerHeight/2}get landscapeOrientationTriggerButtonTranslateY(){var t;return (t=this.stateManager.landscapeOrientationTriggerButtonTranslateY)!=null?t:window.innerHeight/2}static forView(t,a,e,i){return new B(t,a,e,i)}async prepareScanning(t){this.context.addListener(this),this.dataCaptureView=await DataCaptureView.forContext(this.context),this.dataCaptureView.logoAnchor=Anchor.TopLeft,this.dataCaptureView.logoStyle=LogoStyle.Minimal,this.dataCaptureView.setHiddenProperty("stopVideoTracksOnVisibilityChange",!1),this.dataCaptureView.connectToElement(t),this.camera=isCameraFrameSource(this.context.frameSource)?this.context.frameSource:Camera.default,await this.camera.applySettings(a$4.recommendedCameraSettings),await this.context.setFrameSource(this.camera),await this.camera.switchToDesiredState(FrameSourceState.Standby),this.sparkScanView.setTorchAvailable(await this.camera.isTorchAvailable()),await this.context.addMode(this.sparkScan),this.sparkScan.addListener(this),this.sparkScanOverlay=await a$5.withSparkScanForView(this.sparkScan,this.dataCaptureView),await this.sparkScanOverlay.setShouldRemoveLocationsAfterScan(this.stateManager.scanningBehavior==="continuous"),await this.applyPreferences();}async startScanning(){await this.switchToActiveState();}async pauseScanning(){await this.switchToInactiveState();}async stopScanning(){var t;await this.sparkScan.setEnabled(!1),this.sparkScan.removeListener(this),await((t=this.camera)==null?void 0:t.switchToDesiredState(FrameSourceState.Off)),await this.context.dispose(),this.dataCaptureView.detachFromElement(),this.context.removeListener(this),await this.context.dispose();}async onTriggerButtonTap(){switch(this.stateManager.state){case"idle":case"inactive":case"error":{await this.switchToActiveState(new c(Color.fromRGBA(0,0,0,0),this.feedbackManager.tapFeedback));return}case"active":await(this.stateManager.continuousModeEnabled?this.switchToInactiveState(new c(Color.fromRGBA(0,0,0,0),this.feedbackManager.tapFeedback)):this.switchToActiveState(new c(Color.fromRGBA(0,0,0,0),this.feedbackManager.tapFeedback)));}}async onTriggerButtonHoldStart(){var t;this.sparkScanViewSettings.holdToScanEnabled&&(this.scanningBehaviorCache=this.stateManager.scanningBehavior,this.stateManager.scanningBehavior="continuous",this.stateManager.holdingToScan=!0,await((t=this.sparkScanOverlay)==null?void 0:t.setShouldRemoveLocationsAfterScan(!0)),await this.switchToActiveState(new c(Color.fromRGBA(0,0,0,0),this.feedbackManager.tapFeedback)));}async onTriggerButtonHoldEnd(){var t,a;this.sparkScanViewSettings.holdToScanEnabled&&this.stateManager.state!=="error"&&(this.stateManager.scanningBehavior=(t=this.scanningBehaviorCache)!=null?t:"single",this.stateManager.holdingToScan=!1,await((a=this.sparkScanOverlay)==null?void 0:a.setShouldRemoveLocationsAfterScan(this.stateManager.continuousModeEnabled)),await this.switchToInactiveState(new b$1("",0,Color.fromRGBA(0,0,0,0),this.defaultErrorBrush,this.feedbackManager.noFeedback)));}async onClickOutside(){this.stateManager.idleState||await this.switchToIdleState();}async onVisibilityChange(){await this.switchToIdleState();}async onTargetModeButtonTap(t,a=this.feedbackManager.tapFeedback,e=!0){var c;let i=String(t);(({true:t&&this.stateManager.scanningMode instanceof b$2,false:!t&&this.stateManager.scanningMode instanceof c$1}))[i]&&(this.stateManager.scanningMode=this.stateManager.scanningMode.changeMode()),this.enableTargetMode(t,this.stateManager.zoomFactor),await((c=this.sparkScanOverlay)==null?void 0:c.setShouldDrawViewfinder(t)),a.emit(),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.targetModeButtonTapped(t,this.stateManager.scanningMode,e);}async onScanningBehaviorButtonTap(t,a=this.feedbackManager.tapFeedback,e=!0){var i;a.emit(),this.stateManager.scanningMode=this.stateManager.scanningMode.copyWith(t?"continuous":"single"),await((i=this.sparkScanOverlay)==null?void 0:i.setShouldRemoveLocationsAfterScan(t)),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.scanningBehaviorButtonTapped(t,e);}async onTorchButtonTap(t,a=this.feedbackManager.tapFeedback,e=!0){var i;a.emit(),this.stateManager.torchState=t?TorchState.On:TorchState.Off,((i=this.camera)==null?void 0:i.getCurrentState())===FrameSourceState.On&&await this.camera.setDesiredTorchState(this.stateManager.torchState),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.torchButtonTapped(t,e);}onSoundModeButtonTap(t,a=this.feedbackManager.tapFeedback){a.emit(),this.stateManager.soundEnabled=t,this.feedbackManager.setSoundEnabled(t),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.soundModeButtonTapped(t);}onHapticModeButtonTap(t,a=this.feedbackManager.tapFeedback){this.stateManager.hapticEnabled=t,this.feedbackManager.setHapticEnabled(t),a.emit(),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.hapticModeButtonTapped(t);}onHandModeButtonTap(t,a=this.feedbackManager.tapFeedback){this.stateManager.handMode=t?"left":"right",a.emit(),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.handModeButtonTapped(t);}onMiniPreviewResizeButtonTap(){this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.feedbackManager.emitTapFeedback(),this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start());}async onMiniPreviewZoomButtonTap(t){this.feedbackManager.emitTapFeedback(),this.stateManager.zoomFactor=t,this.camera&&(this.camera.settings.zoomFactor=t,await this.camera.applySettings(this.camera.settings)),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.enableTargetModeHiddenProperties(this.stateManager.targetModeEnabled,t);}async onMiniPreviewSwipeUp(){var t;this.stateManager.zoomedOut&&(this.stateManager.zoomFactor=this.sparkScanViewSettings.zoomFactorIn,this.camera&&(this.camera.settings.zoomFactor=this.stateManager.zoomFactor),await((t=this.camera)==null?void 0:t.applySettings(this.camera.settings)),this.enableTargetModeHiddenProperties(this.stateManager.targetModeEnabled,this.stateManager.zoomFactor),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.miniPreviewSwipedUp());}async onMiniPreviewSwipeDown(){this.stateManager.zoomedIn&&(this.stateManager.zoomFactor=this.sparkScanViewSettings.zoomFactorOut,this.camera&&(this.camera.settings.zoomFactor=this.stateManager.zoomFactor,await this.camera.applySettings(this.camera.settings)),this.enableTargetModeHiddenProperties(this.stateManager.targetModeEnabled,this.stateManager.zoomFactor),this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),this.sparkScanView.miniPreviewSwipedDown());}async onTriggerButtonSwipeLeft(){this.stateManager.rightHandModeEnabled&&this.stateManager.idleState&&await this.switchToInactiveState(new b$1("",0,Color.fromRGBA(0,0,0,0),this.defaultErrorBrush,this.feedbackManager.noFeedback));}async onTriggerButtonSwipeRight(){this.stateManager.leftHandModeEnabled&&this.stateManager.idleState&&await this.switchToInactiveState(new b$1("",0,Color.fromRGBA(0,0,0,0),this.defaultErrorBrush,this.feedbackManager.noFeedback));}onTriggerButtonVerticalSwipeEnd(t,a){switch(a){case"landscape-primary":case"landscape-secondary":{this.stateManager.landscapeOrientationTriggerButtonTranslateY=t;break}case"portrait-primary":case"portrait-secondary":this.stateManager.portraitOrientationTriggerButtonTranslateY=t;}this.stateManager.state!=="idle"&&this.stateManager.state!=="error"&&!this.stateManager.holdingToScan&&(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start());}async onOrientationChange(){this.stateManager.state==="error"&&await this.switchToInactiveState();}async didScan(t,a){if(!a.newlyRecognizedBarcode)return;let e=this.sparkScanView.feedbackDelegate.getFeedbackForBarcode(a.newlyRecognizedBarcode);if(e instanceof b$1){await this.switchToErrorState(e);return}e instanceof c&&await(this.stateManager.continuousModeEnabled?this.switchToActiveState(e):this.switchToInactiveState(e));}didChangeFrameSource(t,a){var e;if(isCameraFrameSource(a))this.camera=a;else {let i=(e=a==null?void 0:a.toJSONObject().type)!=null?e:"unknown";Logger.log(Logger.Level.Warn,`SparkScanView instances require a camera frame source to work, but a frame source of type "${i}" was found.`);}}async switchToIdleState(){var t,a;this.feedbackManager.emitTapFeedback(),this.stateManager.state="idle",await this.sparkScan.setEnabled(!1),await((t=this.camera)==null?void 0:t.switchToDesiredState(FrameSourceState.Standby)),this.triggerButtonCollapseTimeout.stop(),this.inactiveStateTimeout.stop(),(a=this.resumeCapturingTimeout)==null||a.stop(),this.sparkScanView.switchToIdleState();}async switchToActiveState(t){var e,i,s,c$1;let a=this.stateManager.state;this.stateManager.state="active",await((e=this.camera)==null?void 0:e.switchToDesiredState(FrameSourceState.On)),await((i=this.camera)==null?void 0:i.setDesiredTorchState(this.stateManager.torchState)),await this.sparkScan.setEnabled(!0),await((s=this.sparkScanOverlay)==null?void 0:s.setShouldRemoveLocationsAfterScan(this.stateManager.continuousModeEnabled)),this.feedbackManager.emitBarcodeFeedback(t),this.stateManager.holdingToScan||(this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.start()),(c$1=this.resumeCapturingTimeout)==null||c$1.stop(),await this.sparkScanView.switchToActiveState(this.sparkScanViewSettings.visualFeedbackEnabled&&t instanceof c,this.stateManager.scanningBehavior,t==null?void 0:t.visualFeedbackColor,this.stateManager.zoomedIn&&a!=="active");}async switchToInactiveState(t){var a,e,i;this.stateManager.state="inactive",await this.sparkScan.setEnabled(!1),await(t instanceof c&&this.stateManager.scanningMode.previewBehavior==="persistent"?(a=this.sparkScanOverlay)==null?void 0:a.setShouldRemoveLocationsAfterScan(!0):(e=this.camera)==null?void 0:e.switchToDesiredState(FrameSourceState.Standby)),this.feedbackManager.emitBarcodeFeedback(t),this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.stop(),(i=this.resumeCapturingTimeout)==null||i.stop(),await this.sparkScanView.switchToInactiveState(this.sparkScanViewSettings.visualFeedbackEnabled&&t instanceof c,this.stateManager.scanningBehavior,this.stateManager.previewBehavior,t==null?void 0:t.visualFeedbackColor);}async switchToErrorState(t){var e,i,s;let a=t.resumeCapturingDelay>0;a&&(this.stateManager.state="error",this.stateManager.scanningBehavior="single",await this.sparkScan.setEnabled(!1),await((e=this.camera)==null?void 0:e.switchToDesiredState(FrameSourceState.Standby)),this.resumeCapturingTimeout=new Timeout(t.resumeCapturingDelay,async()=>{this.stateManager.state!=="active"&&await this.switchToActiveState();}),this.resumeCapturingTimeout.start()),await((i=this.sparkScanOverlay)==null?void 0:i.setErrorBrush(t.brush)),await((s=this.sparkScanOverlay)==null?void 0:s.setShouldRemoveLocationsAfterScan(t.resumeCapturingDelay===0)),await this.sparkScan.workerCommand("sparkScanEmitErrorFeedback",{shouldRemoveBrush:!a}),this.feedbackManager.emitBarcodeFeedback(t),this.triggerButtonCollapseTimeout.start(),this.inactiveStateTimeout.stop(),await this.sparkScanView.switchToErrorState(t,this.sparkScanViewSettings.visualFeedbackEnabled);}enableTargetModeLocationSelection(t){var s;let a=t?b$3.SparkScan.SparkScanSettings.targetModeLocationSelection.radius:b$3.SparkScan.SparkScanSettings.locationSelection.radius,e=t?b$3.SparkScan.SparkScanSettings.targetModeLocationSelection.unit:b$3.SparkScan.SparkScanSettings.locationSelection.unit,i=new NumberWithUnit(a,e);this.sparkScan.settings.locationSelection=new RadiusLocationSelection(i),(s=this.sparkScanOverlay)==null||s.setRadius(i);}enableTargetModeScanIntention(t){this.sparkScan.settings.scanIntention=t?"manual":"smart";}enableTargetModeHiddenProperties(t,a){t?this.sparkScan.settings.enableTargetModeHiddenProperties(a===this.sparkScanViewSettings.zoomFactorOut?1:2):this.sparkScan.settings.disableTargetModeHiddenProperties();}enableTargetMode(t,a){this.enableTargetModeLocationSelection(t),this.enableTargetModeScanIntention(t),this.enableTargetModeHiddenProperties(t,a);}async applyPreferences(){await this.onTargetModeButtonTap(this.stateManager.targetModeEnabled,this.feedbackManager.noFeedback,!1),await this.onScanningBehaviorButtonTap(this.stateManager.continuousModeEnabled,this.feedbackManager.noFeedback,!1),await this.onTorchButtonTap(this.stateManager.torchEnabled,this.feedbackManager.noFeedback,!1),this.onSoundModeButtonTap(this.stateManager.soundEnabled,this.feedbackManager.noFeedback),this.onHapticModeButtonTap(this.stateManager.hapticEnabled,this.feedbackManager.noFeedback),this.onHandModeButtonTap(this.stateManager.leftHandModeEnabled,this.feedbackManager.noFeedback);}}; export { b as a };