@scandit/web-datacapture-barcode
Version:
Scandit Data Capture SDK for the Web
1 lines • 2.12 kB
JavaScript
import{SparkScan as e}from"../SparkScan.js";import"../SparkScanPreviewBehavior.js";import{Camera as t,CameraPosition as n,FrameSourceState as r,isCameraFrameSource as i}from"@scandit/web-datacapture-core";var a=class{constructor(){this.toggleCameraPosition={[n.WorldFacing]:n.UserFacing,[n.UserFacing]:n.WorldFacing}}get camera(){var e;return(e=this.context)==null?void 0:e.frameSource}async prepareScanning(n,a){this.context=n;let o=i(n.frameSource)?n.frameSource:t.pickBestGuessForPosition(a.defaultCameraPosition);return await n.setFrameSource(o),await o.applySettings(e.recommendedCameraSettings),await o.switchToDesiredState(r.Standby),{isTorchAvailable:await o.isTorchAvailable(),isZoomAvailable:o.isZoomAvailable(),cameraPosition:o.position}}async onSwitchToActiveState(e){var t,n;await((t=this.camera)==null?void 0:t.switchToDesiredState(r.On)),await((n=this.camera)==null?void 0:n.setDesiredTorchState(e))}async onSwitchToInactiveState(e){if(e!==`persistent`){var t;await((t=this.camera)==null?void 0:t.switchToDesiredState(r.Standby))}}async onSwitchToIdleState(){var e;await((e=this.camera)==null?void 0:e.switchToDesiredState(r.Standby))}async onSwitchToErrorState(){var e;await((e=this.camera)==null?void 0:e.switchToDesiredState(r.Standby))}async stopScanning(){var e;await((e=this.camera)==null?void 0:e.switchToDesiredState(r.Off))}async onTorchButtonTap(e){var t;if(((t=this.camera)==null?void 0:t.getCurrentState())===r.On){var n;await((n=this.camera)==null?void 0:n.setDesiredTorchState(e))}}async onCameraSwitchButtonTap(){var e;if(!this.camera)return;let n=this.camera,i=n.settings,a=this.toggleCameraPosition[this.camera.position],o=t.pickBestGuessForPosition(a);return await n.switchToDesiredState(r.Off),await o.applySettings(i),await((e=this.context)==null?void 0:e.setFrameSource(o)),await o.switchToDesiredState(r.On),{isTorchAvailable:await o.isTorchAvailable(),isZoomAvailable:o.isZoomAvailable(),cameraPosition:a}}async onMiniPreviewZoomButtonTap(e){this.camera&&(this.camera.settings.zoomFactor=e,await this.camera.applySettings(this.camera.settings))}};export{a as SparkScanCameraManager};