scandit-web-datacapture-core
Version:
Scandit Data Capture SDK for the Web
6 lines (3 loc) • 2 kB
JavaScript
import { a as a$1 } from './chunk-BTXDPF7O.js';
var a=class n{constructor(){this.type="singleImageUploader";this._settings=new a$1(null);this._desiredState="off";this.listeners=[];this._context=null;this._view=void 0;}static get default(){return new n}get desiredState(){return this._desiredState}get settings(){return this._settings}get context(){return this._context}set context(e){this._context=e;}set currentState(e){e!==this._currentState&&(this._currentState=e,this.notifyListeners(),this.notifyContext({type:"frameSourceState",newValue:e}));}get currentState(){return this._currentState}async switchToDesiredState(e){if(e==="on"){if(this.currentState==="on"||this.currentState==="starting")return}else if(this.currentState==="off"||this.currentState==="stopping")return;return this._desiredState=e,this.setCurrentState(e==="on"?"starting":"off")}addListener(e){e!=null&&(this.listeners.includes(e)||this.listeners.push(e));}removeListener(e){e!=null&&this.listeners.includes(e)&&this.listeners.splice(this.listeners.indexOf(e),1);}async applySettings(e){return this._settings=e,this.notifyContext({type:"singleImageModeUploaderSettings",newValue:this._settings})}toJSONObject(){return {type:this.type,settings:this.settings.toJSONObject(),desiredState:this.desiredState}}getCurrentState(){return this._currentState}getLastUploadedImage(){var e,t;return (t=(e=this._view)==null?void 0:e.getLastUploadedImage())!=null?t:null}async setCurrentState(e){if(e!==this._currentState)return this._currentState=e,this.notifyListeners(),this.notifyContext({type:"frameSourceState",newValue:e})}async notifyContext(e){if(this._context)return this._context.update([e])}notifyListeners(){for(let e of this.listeners)e.didChangeState&&e.didChangeState(this,this.currentState);}async processUploadedFileCapture(e){var t,r;await((t=this._context)==null?void 0:t.sendFrameToProcessor(e)),this.currentState="starting",(r=this._view)==null||r.onAfterImageProcessed();}addView(e){this._view=e;}};
export { a };