dynamsoft-javascript-barcode
Version:
Dynamsoft Barcode Reader JS is a recognition SDK which enables you to embed barcode reading functionality in your web, desktop, and mobile applications. With a few lines of JavaScript code, you can develop a robust application to scan a linear barcode, QR
11 lines • 99.5 kB
JavaScript
/*!
* Dynamsoft JavaScript Library
* @product Dynamsoft Barcode Reader JS Edition
* @website http://www.dynamsoft.com
* @copyright Copyright 2024, Dynamsoft Corporation
* @author Dynamsoft
* @version 9.6.42 (js 20240426)
* @fileoverview Dynamsoft JavaScript Library for Barcode Reader
* More info on DBR JS: https://www.dynamsoft.com/barcode-reader/sdk-javascript/
*/
import{Howl as e}from"dm-howler";import{CameraEnhancer as t,DrawingItem as i}from"dynamsoft-camera-enhancer";const s="undefined"==typeof self,a=s?{}:self;let r,o,n,c,d;"undefined"!=typeof navigator&&(r=navigator,o=r.userAgent,n=r.platform,c=r.mediaDevices),function(){if(!s){const e={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:r.vendor,search:"Apple",verSearch:["Version","iPhone OS","CPU OS"]},Firefox:null,Explorer:{search:"MSIE",verSearch:"MSIE"}},t={HarmonyOS:null,Android:null,iPhone:null,iPad:null,Windows:{str:n,search:"Win"},Mac:{str:n},Linux:{str:n}};let i="unknownBrowser",s=0,a="unknownOS";for(let t in e){const a=e[t]||{};let r=a.str||o,n=a.search||t,c=a.verStr||o,d=a.verSearch||t;if(d instanceof Array||(d=[d]),-1!=r.indexOf(n)){i=t;for(let e of d){let t=c.indexOf(e);if(-1!=t){s=parseFloat(c.substring(t+e.length+1));break}}break}}for(let e in t){const i=t[e]||{};let s=i.str||o,r=i.search||e;if(-1!=s.indexOf(r)){a=e;break}}"Linux"==a&&-1!=o.indexOf("Windows NT")&&(a="HarmonyOS"),d={browser:i,version:s,OS:a}}s&&(d={browser:"ssr",version:0,OS:"ssr"})}();const l="undefined"!=typeof WebAssembly&&o&&!(/Safari/.test(o)&&!/Chrome/.test(o)&&/\(.+\s11_2_([2-6]).*\)/.test(o)),h=!("undefined"==typeof Worker),_=!(!c||!c.getUserMedia),u=async()=>{let e=!1;if(_)try{(await c.getUserMedia({video:!0})).getTracks().forEach((e=>{e.stop()})),e=!0}catch(e){}return e};"Chrome"===d.browser&&d.version>66||"Safari"===d.browser&&d.version>13||"OPR"===d.browser&&d.version>43||"Edge"===d.browser&&d.version;const g=(()=>{if(!s&&document.currentScript){let e=document.currentScript.src,t=e.indexOf("?");if(-1!=t)e=e.substring(0,t);else{let t=e.indexOf("#");-1!=t&&(e=e.substring(0,t))}return e.substring(0,e.lastIndexOf("/")+1)}return"./"})(),m=" is not allowed to change after `createInstance` or `loadWasm` is called.",R=!s&&document.currentScript&&(document.currentScript.getAttribute("data-license")||document.currentScript.getAttribute("data-productKeys")||document.currentScript.getAttribute("data-licenseKey")||document.currentScript.getAttribute("data-handshakeCode")||document.currentScript.getAttribute("data-organizationID"))||"",I=!s&&document.currentScript&&document.currentScript.getAttribute("data-sessionPassword")||"",S=e=>{if(null==e)e=[];else{e=e instanceof Array?[...e]:[e];for(let t=0;t<e.length;++t){if(!s){let i=document.createElement("a");i.href=e[t],e[t]=i.href}e[t].endsWith("/")||(e[t]+="/")}}return e};var E,A,f,T,D;!function(e){e[e.IPF_Binary=0]="IPF_Binary",e[e.IPF_BinaryInverted=1]="IPF_BinaryInverted",e[e.IPF_GrayScaled=2]="IPF_GrayScaled",e[e.IPF_NV21=3]="IPF_NV21",e[e.IPF_RGB_565=4]="IPF_RGB_565",e[e.IPF_RGB_555=5]="IPF_RGB_555",e[e.IPF_RGB_888=6]="IPF_RGB_888",e[e.IPF_ARGB_8888=7]="IPF_ARGB_8888",e[e.IPF_RGB_161616=8]="IPF_RGB_161616",e[e.IPF_ARGB_16161616=9]="IPF_ARGB_16161616",e[e.IPF_ABGR_8888=10]="IPF_ABGR_8888",e[e.IPF_ABGR_16161616=11]="IPF_ABGR_16161616",e[e.IPF_BGR_888=12]="IPF_BGR_888"}(E||(E={})),function(e){e[e.DBR_SYSTEM_EXCEPTION=1]="DBR_SYSTEM_EXCEPTION",e[e.DBR_SUCCESS=0]="DBR_SUCCESS",e[e.DBR_UNKNOWN=-1e4]="DBR_UNKNOWN",e[e.DBR_NO_MEMORY=-10001]="DBR_NO_MEMORY",e[e.DBR_NULL_REFERENCE=-10002]="DBR_NULL_REFERENCE",e[e.DBR_LICENSE_INVALID=-10003]="DBR_LICENSE_INVALID",e[e.DBR_LICENSE_EXPIRED=-10004]="DBR_LICENSE_EXPIRED",e[e.DBR_FILE_NOT_FOUND=-10005]="DBR_FILE_NOT_FOUND",e[e.DBR_FILETYPE_NOT_SUPPORTED=-10006]="DBR_FILETYPE_NOT_SUPPORTED",e[e.DBR_BPP_NOT_SUPPORTED=-10007]="DBR_BPP_NOT_SUPPORTED",e[e.DBR_INDEX_INVALID=-10008]="DBR_INDEX_INVALID",e[e.DBR_BARCODE_FORMAT_INVALID=-10009]="DBR_BARCODE_FORMAT_INVALID",e[e.DBR_CUSTOM_REGION_INVALID=-10010]="DBR_CUSTOM_REGION_INVALID",e[e.DBR_MAX_BARCODE_NUMBER_INVALID=-10011]="DBR_MAX_BARCODE_NUMBER_INVALID",e[e.DBR_IMAGE_READ_FAILED=-10012]="DBR_IMAGE_READ_FAILED",e[e.DBR_TIFF_READ_FAILED=-10013]="DBR_TIFF_READ_FAILED",e[e.DBR_QR_LICENSE_INVALID=-10016]="DBR_QR_LICENSE_INVALID",e[e.DBR_1D_LICENSE_INVALID=-10017]="DBR_1D_LICENSE_INVALID",e[e.DBR_DIB_BUFFER_INVALID=-10018]="DBR_DIB_BUFFER_INVALID",e[e.DBR_PDF417_LICENSE_INVALID=-10019]="DBR_PDF417_LICENSE_INVALID",e[e.DBR_DATAMATRIX_LICENSE_INVALID=-10020]="DBR_DATAMATRIX_LICENSE_INVALID",e[e.DBR_PDF_READ_FAILED=-10021]="DBR_PDF_READ_FAILED",e[e.DBR_PDF_DLL_MISSING=-10022]="DBR_PDF_DLL_MISSING",e[e.DBR_PAGE_NUMBER_INVALID=-10023]="DBR_PAGE_NUMBER_INVALID",e[e.DBR_CUSTOM_SIZE_INVALID=-10024]="DBR_CUSTOM_SIZE_INVALID",e[e.DBR_CUSTOM_MODULESIZE_INVALID=-10025]="DBR_CUSTOM_MODULESIZE_INVALID",e[e.DBR_RECOGNITION_TIMEOUT=-10026]="DBR_RECOGNITION_TIMEOUT",e[e.DBR_JSON_PARSE_FAILED=-10030]="DBR_JSON_PARSE_FAILED",e[e.DBR_JSON_TYPE_INVALID=-10031]="DBR_JSON_TYPE_INVALID",e[e.DBR_JSON_KEY_INVALID=-10032]="DBR_JSON_KEY_INVALID",e[e.DBR_JSON_VALUE_INVALID=-10033]="DBR_JSON_VALUE_INVALID",e[e.DBR_JSON_NAME_KEY_MISSING=-10034]="DBR_JSON_NAME_KEY_MISSING",e[e.DBR_JSON_NAME_VALUE_DUPLICATED=-10035]="DBR_JSON_NAME_VALUE_DUPLICATED",e[e.DBR_TEMPLATE_NAME_INVALID=-10036]="DBR_TEMPLATE_NAME_INVALID",e[e.DBR_JSON_NAME_REFERENCE_INVALID=-10037]="DBR_JSON_NAME_REFERENCE_INVALID",e[e.DBR_PARAMETER_VALUE_INVALID=-10038]="DBR_PARAMETER_VALUE_INVALID",e[e.DBR_DOMAIN_NOT_MATCHED=-10039]="DBR_DOMAIN_NOT_MATCHED",e[e.DBR_RESERVEDINFO_NOT_MATCHED=-10040]="DBR_RESERVEDINFO_NOT_MATCHED",e[e.DBR_AZTEC_LICENSE_INVALID=-10041]="DBR_AZTEC_LICENSE_INVALID",e[e.DBR_LICENSE_DLL_MISSING=-10042]="DBR_LICENSE_DLL_MISSING",e[e.DBR_LICENSEKEY_NOT_MATCHED=-10043]="DBR_LICENSEKEY_NOT_MATCHED",e[e.DBR_REQUESTED_FAILED=-10044]="DBR_REQUESTED_FAILED",e[e.DBR_LICENSE_INIT_FAILED=-10045]="DBR_LICENSE_INIT_FAILED",e[e.DBR_PATCHCODE_LICENSE_INVALID=-10046]="DBR_PATCHCODE_LICENSE_INVALID",e[e.DBR_POSTALCODE_LICENSE_INVALID=-10047]="DBR_POSTALCODE_LICENSE_INVALID",e[e.DBR_DPM_LICENSE_INVALID=-10048]="DBR_DPM_LICENSE_INVALID",e[e.DBR_FRAME_DECODING_THREAD_EXISTS=-10049]="DBR_FRAME_DECODING_THREAD_EXISTS",e[e.DBR_STOP_DECODING_THREAD_FAILED=-10050]="DBR_STOP_DECODING_THREAD_FAILED",e[e.DBR_SET_MODE_ARGUMENT_ERROR=-10051]="DBR_SET_MODE_ARGUMENT_ERROR",e[e.DBR_LICENSE_CONTENT_INVALID=-10052]="DBR_LICENSE_CONTENT_INVALID",e[e.DBR_LICENSE_KEY_INVALID=-10053]="DBR_LICENSE_KEY_INVALID",e[e.DBR_LICENSE_DEVICE_RUNS_OUT=-10054]="DBR_LICENSE_DEVICE_RUNS_OUT",e[e.DBR_GET_MODE_ARGUMENT_ERROR=-10055]="DBR_GET_MODE_ARGUMENT_ERROR",e[e.DBR_IRT_LICENSE_INVALID=-10056]="DBR_IRT_LICENSE_INVALID",e[e.DBR_MAXICODE_LICENSE_INVALID=-10057]="DBR_MAXICODE_LICENSE_INVALID",e[e.DBR_GS1_DATABAR_LICENSE_INVALID=-10058]="DBR_GS1_DATABAR_LICENSE_INVALID",e[e.DBR_GS1_COMPOSITE_LICENSE_INVALID=-10059]="DBR_GS1_COMPOSITE_LICENSE_INVALID",e[e.DBR_PANORAMA_LICENSE_INVALID=-10060]="DBR_PANORAMA_LICENSE_INVALID",e[e.DBR_DOTCODE_LICENSE_INVALID=-10061]="DBR_DOTCODE_LICENSE_INVALID",e[e.DBR_PHARMACODE_LICENSE_INVALID=-10062]="DBR_PHARMACODE_LICENSE_INVALID",e[e.DBR_IMAGE_ORIENTATION_INVALID=-10063]="DBR_IMAGE_ORIENTATION_INVALID",e[e.DMERR_NO_LICENSE=-2e4]="DMERR_NO_LICENSE",e[e.DMERR_LICENSE_SYNC_FAILED=-20003]="DMERR_LICENSE_SYNC_FAILED",e[e.DMERR_TRIAL_LICENSE=-20010]="DMERR_TRIAL_LICENSE",e[e.DMERR_FAILED_TO_REACH_LTS=-20200]="DMERR_FAILED_TO_REACH_LTS"}(A||(A={})),function(e){e[e.IMRDT_IMAGE=1]="IMRDT_IMAGE",e[e.IMRDT_CONTOUR=2]="IMRDT_CONTOUR",e[e.IMRDT_LINESEGMENT=4]="IMRDT_LINESEGMENT",e[e.IMRDT_LOCALIZATIONRESULT=8]="IMRDT_LOCALIZATIONRESULT",e[e.IMRDT_REGIONOFINTEREST=16]="IMRDT_REGIONOFINTEREST",e[e.IMRDT_QUADRILATERAL=32]="IMRDT_QUADRILATERAL"}(f||(f={})),function(e){e[e.BF_ALL=-29360129]="BF_ALL",e[e.BF_ONED=3147775]="BF_ONED",e[e.BF_GS1_DATABAR=260096]="BF_GS1_DATABAR",e[e.BF_CODE_39=1]="BF_CODE_39",e[e.BF_CODE_128=2]="BF_CODE_128",e[e.BF_CODE_93=4]="BF_CODE_93",e[e.BF_CODABAR=8]="BF_CODABAR",e[e.BF_ITF=16]="BF_ITF",e[e.BF_EAN_13=32]="BF_EAN_13",e[e.BF_EAN_8=64]="BF_EAN_8",e[e.BF_UPC_A=128]="BF_UPC_A",e[e.BF_UPC_E=256]="BF_UPC_E",e[e.BF_INDUSTRIAL_25=512]="BF_INDUSTRIAL_25",e[e.BF_CODE_39_EXTENDED=1024]="BF_CODE_39_EXTENDED",e[e.BF_GS1_DATABAR_OMNIDIRECTIONAL=2048]="BF_GS1_DATABAR_OMNIDIRECTIONAL",e[e.BF_GS1_DATABAR_TRUNCATED=4096]="BF_GS1_DATABAR_TRUNCATED",e[e.BF_GS1_DATABAR_STACKED=8192]="BF_GS1_DATABAR_STACKED",e[e.BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL=16384]="BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL",e[e.BF_GS1_DATABAR_EXPANDED=32768]="BF_GS1_DATABAR_EXPANDED",e[e.BF_GS1_DATABAR_EXPANDED_STACKED=65536]="BF_GS1_DATABAR_EXPANDED_STACKED",e[e.BF_GS1_DATABAR_LIMITED=131072]="BF_GS1_DATABAR_LIMITED",e[e.BF_PATCHCODE=262144]="BF_PATCHCODE",e[e.BF_PDF417=33554432]="BF_PDF417",e[e.BF_QR_CODE=67108864]="BF_QR_CODE",e[e.BF_DATAMATRIX=134217728]="BF_DATAMATRIX",e[e.BF_AZTEC=268435456]="BF_AZTEC",e[e.BF_MAXICODE=536870912]="BF_MAXICODE",e[e.BF_MICRO_QR=1073741824]="BF_MICRO_QR",e[e.BF_MICRO_PDF417=524288]="BF_MICRO_PDF417",e[e.BF_GS1_COMPOSITE=-2147483648]="BF_GS1_COMPOSITE",e[e.BF_MSI_CODE=1048576]="BF_MSI_CODE",e[e.BF_CODE_11=2097152]="BF_CODE_11",e[e.BF_NULL=0]="BF_NULL"}(T||(T={})),function(e){e[e.IRT_NO_RESULT=0]="IRT_NO_RESULT",e[e.IRT_ORIGINAL_IMAGE=1]="IRT_ORIGINAL_IMAGE",e[e.IRT_COLOUR_CLUSTERED_IMAGE=2]="IRT_COLOUR_CLUSTERED_IMAGE",e[e.IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE=4]="IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE",e[e.IRT_TRANSFORMED_GRAYSCALE_IMAGE=8]="IRT_TRANSFORMED_GRAYSCALE_IMAGE",e[e.IRT_PREDETECTED_REGION=16]="IRT_PREDETECTED_REGION",e[e.IRT_PREPROCESSED_IMAGE=32]="IRT_PREPROCESSED_IMAGE",e[e.IRT_BINARIZED_IMAGE=64]="IRT_BINARIZED_IMAGE",e[e.IRT_TEXT_ZONE=128]="IRT_TEXT_ZONE",e[e.IRT_CONTOUR=256]="IRT_CONTOUR",e[e.IRT_LINE_SEGMENT=512]="IRT_LINE_SEGMENT",e[e.IRT_FORM=1024]="IRT_FORM",e[e.IRT_SEGMENTATION_BLOCK=2048]="IRT_SEGMENTATION_BLOCK",e[e.IRT_TYPED_BARCODE_ZONE=4096]="IRT_TYPED_BARCODE_ZONE",e[e.IRT_PREDETECTED_QUADRILATERAL=8192]="IRT_PREDETECTED_QUADRILATERAL"}(D||(D={}));const C=e=>e&&"object"==typeof e&&"function"==typeof e.then;class y extends Promise{constructor(e){let t,i;super(((e,s)=>{t=e,i=s})),this._s="pending",this.resolve=e=>{this.isPending&&(C(e)?this.task=e:(this._s="fulfilled",t(e)))},this.reject=e=>{this.isPending&&(this._s="rejected",i(e))},this.task=e}get status(){return this._s}get isPending(){return"pending"===this._s}get isFulfilled(){return"fulfilled"===this._s}get isRejected(){return"rejected"===this._s}get task(){return this._task}set task(e){let t;this._task=e,C(e)?t=e:"function"==typeof e&&(t=new Promise(e)),t&&(async()=>{try{const i=await t;e===this._task&&this.resolve(i)}catch(t){e===this._task&&this.reject(t)}})()}get isEmpty(){return null==this._task}}const p=["iPhone","iPad","Android","HarmonyOS"].includes(d.OS)?2048:4096;class L{static get version(){return this._version}static get license(){return this._license}static set license(e){((e,t)=>{const i=e;if(!i._pLoad.isEmpty)throw new Error("`license`"+m);i._license=t})(L,e)}static get productKeys(){return this._license}static set productKeys(e){L.license=e}static get handshakeCode(){return this._license}static set handshakeCode(e){L.license=e}static get organizationID(){return this._license}static set organizationID(e){L.license=e}static set sessionPassword(e){((e,t)=>{const i=e;if(!i._pLoad.isEmpty)throw new Error("`sessionPassword`"+m);i._sessionPassword=t})(L,e)}static get sessionPassword(){return this._sessionPassword}static async detectEnvironment(){return await(async()=>({wasm:l,worker:h,getUserMedia:_,camera:await u(),browser:d.browser,version:d.version,OS:d.OS}))()}static get engineResourcePath(){return this._engineResourcePath}static set engineResourcePath(e){if(!this._pLoad.isEmpty)throw new Error("`engineResourcePath` is not allowed to change after `createInstance` or `loadWasm` is called.");L._engineResourcePath=(e=>{if(null==e&&(e="./"),s);else{let t=document.createElement("a");t.href=e,e=t.href}return e.endsWith("/")||(e+="/"),e})(e)}static get licenseServer(){return this._licenseServer}static set licenseServer(e){((e,t)=>{const i=e;if(!i._pLoad.isEmpty)throw new Error("`licenseServer`"+m);i._licenseServer=S(t)})(L,e)}static get deviceFriendlyName(){return this._deviceFriendlyName}static set deviceFriendlyName(e){((e,t)=>{const i=e;if(!i._pLoad.isEmpty)throw new Error("`deviceFriendlyName`"+m);i._deviceFriendlyName=t||""})(L,e)}static get _bUseFullFeature(){return this.__bUseFullFeature}static set _bUseFullFeature(e){if(!this._pLoad.isEmpty)throw new Error("`_bUseFullFeature` is not allowed to change after `createInstance` or `loadWasm` is called.");L.__bUseFullFeature=e}static isImageSource(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&"getImage"in e}static isDSImage(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&("data"in e&&("width"in e&&("height"in e&&"pixelFormat"in e)))}static isDCEFrame(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&("data"in e&&("region"in e&&("sx"in e&&("sy"in e&&("width"in e&&("height"in e&&(("colorMode"in e||"pixelFormat"in e)&&("timeSpent"in e&&("timeStamp"in e&&("isCropped"in e&&("toCanvas"in e&&("_sWidth"in e&&("_sHeight"in e&&"_bUseWebGL"in e)))))))))))))}get ifSaveOriginalImageInACanvas(){return this._ifSaveOriginalImageInACanvas}set ifSaveOriginalImageInACanvas(e){this._ifSaveOriginalImageInACanvas=e}getOriginalImageInACanvas(){return!this.oriCanvas&&this.oriCanvasData?this.oriCanvasData.toCanvas():this.oriCanvas}set region(e){this._region=e,this.array_decodeFrameTimeCost.length=0,this.array_getFrameTimeCost.length=0,this._intervalGetVideoFrame=0}get region(){return this._region}static isWasmLoaded(){return this._pLoad.isFulfilled}isContextDestroyed(){return this.bDestroyed}static get lastErrorCode(){return this._lastErrorCode}static get lastErrorString(){return this._lastErrorString}get lastErrorCode(){return this._lastErrorCode}get lastErrorString(){return this._lastErrorString}static get defaultUIElementURL(){var e;return null===(e=L._defaultUIElementURL)||void 0===e?void 0:e.replace("@engineResourcePath/",L.engineResourcePath)}static set defaultUIElementURL(e){L._defaultUIElementURL=e}static _fireHTTPSWarnning(){L.onWarning&&location&&"https:"!==location.protocol&&setTimeout((()=>{L.onWarning&&L.onWarning({id:2,message:"Not connected via SSL (HTTPS), the SDK may not work correctly."})}),0)}get soundSource(){return this._soundSource}set soundSource(t){this._soundSource=t,this.beepSound=new e({src:[this._soundSource],onplayerror:(e,t)=>{console.warn(`Sound '${e}' playback failure: ${t}`)}})}get whenToPlaySoundforSuccessfulRead(){return!0===this.bPlaySoundOnSuccessfulRead?"frame":this.bPlaySoundOnSuccessfulRead?this.bPlaySoundOnSuccessfulRead:"never"}set whenToPlaySoundforSuccessfulRead(e){this.bPlaySoundOnSuccessfulRead="never"!==e&&e}get whenToVibrateforSuccessfulRead(){return!0===this.bVibrateOnSuccessfulRead?"frame":this.bVibrateOnSuccessfulRead?this.bVibrateOnSuccessfulRead:"never"}set whenToVibrateforSuccessfulRead(e){this.bVibrateOnSuccessfulRead="never"!==e&&e}set dce(e){this._dce=e}get dce(){return!this._dce||this._dce.isDisposed||this._dce.disposed?null:this._dce}set maxCvsSideLength(e){this._maxCvsSideLength=e,this._dceControler&&this._dceControler.setDisiredValue(this,"maxCvsSideLength",e)}get maxCvsSideLength(){return this._maxCvsSideLength}async _registerDCEControler(){if(!this.dce)return;L._onLog&&L._onLog("_registerDCEControler()");const e=this.dce;this._dceControler=e._createControler();const t=this._dceControler;t.register(this),t.setDisiredValue(this,"refreshInterval",200),t.setDisiredValue(this,"maxCvsSideLength",this._maxCvsSideLength),this._styleIdBeforeVerification=this.dce.createDrawingStyle({fillStyle:"rgba(248,252,0,0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill"});try{ResizeObserver}catch(e){"ReferenceError"===e.name&&window&&(window.ResizeObserver=void 0)}const i=e.getUIElement(),s=this.dce.constructor;if("@engineResourcePath/dce.ui.html"===s._defaultUIElementURL)try{i?i===t._innerSetUI&&(await e.setUIElement(`${s.engineResourcePath}dce.ui.html`),t._innerSetUI=e.getUIElement()):(await e.setUIElement(`${s.engineResourcePath}dbr.ui.html`),t._innerSetUI=e.getUIElement())}catch(t){await e.setUIElement(s.defaultUIElementURL)}else i||await e.setUIElement(s.defaultUIElementURL);this.callbackCameraChange=()=>{this._clearResultsCanvasTimeoutId&&clearTimeout(this._clearResultsCanvasTimeoutId),this._drawResults(null),this.array_decodeFrameTimeCost.length=0,this.array_getFrameTimeCost.length=0,this._intervalGetVideoFrame=0},this.callbackResolutionChange=()=>{this._clearResultsCanvasTimeoutId&&clearTimeout(this._clearResultsCanvasTimeoutId),this._drawResults(null),this.array_decodeFrameTimeCost.length=0,this.array_getFrameTimeCost.length=0,this._intervalGetVideoFrame=0},this.callbackCameraClose=()=>{this.stopScanning(!0),this.array_decodeFrameTimeCost.length=0,this.array_getFrameTimeCost.length=0,this._intervalGetVideoFrame=0,this._bPauseScan=!1},this.callbackSingleFrameAcquired=async e=>{this._clearResultsCanvasTimeoutId&&clearTimeout(this._clearResultsCanvasTimeoutId),this._drawResults(null);let t=await this._decode_DCEFrame(e,{bCopyData:!1}),i=null;if(t&&t.length){const{sx:s,sy:a,width:r,height:o,_sWidth:n,_sHeight:c}=e;i=t.map((e=>({localizationResult:JSON.parse(JSON.stringify(e.localizationResult))}))),L.recalculateResultLocation(i,s,a,n,c,r,o)}if(this._drawResults(i,t),await this.clearMapDecodeRecord(),this.onImageRead&&this.dce.isOpen()&&!this._bPauseScan){let e=this._cloneDecodeResults(t);this.onImageRead(e)}if(this.onUniqueRead&&this.dce.isOpen()&&!this._bPauseScan)for(let e of t)this.onUniqueRead(e.barcodeText,this._cloneDecodeResults(e))},e.on("cameraChange",this.callbackCameraChange),e.on("resolutionChange",this.callbackResolutionChange),e.on("cameraClose",this.callbackCameraClose),e.on("singleFrameAcquired",this.callbackSingleFrameAcquired)}_logoutDCEControler(){this.dce&&this._dceControler&&(L._onLog&&L._onLog("_logoutDCEControler()"),this._dceControler.logout(this),this.dce.off("cameraChange",this.callbackCameraChange),this.dce.off("resolutionChange",this.callbackResolutionChange),this.dce.off("cameraClose",this.callbackCameraClose),this.dce.off("singleFrameAcquired",this.callbackSingleFrameAcquired),this._dceControler=null,this.dce=null)}async setImageSource(e,t){if(null==e)return this._imgSource=null,this._logoutDCEControler(),void(this._drawingItemNamespace=null);if(e&&e.isCameraEnhancer)this.dce=e,await this._registerDCEControler(),this._imgSource=null;else{if(!L.isImageSource(e))throw new Error("Invalid value.");this._logoutDCEControler(),this._imgSource=e}t&&t.resultsHighlightBaseShapes&&(this._drawingItemNamespace=t.resultsHighlightBaseShapes)}static async loadWasm(){if(this._pLoad.isEmpty){let{lt:e,l:t,ls:i,sp:s,rmk:r}=((e,t=!1)=>{const i=e;if(i._pLoad.isEmpty){let e,s,r,o=i._license||"",n=JSON.parse(JSON.stringify(i._licenseServer)),c=i._sessionPassword,d=0;if(o.startsWith("t")||o.startsWith("f"))d=0;else if(0===o.length||o.startsWith("P")||o.startsWith("L")||o.startsWith("Y")||o.startsWith("A"))d=1;else{d=2;const t=o.indexOf(":");-1!=t&&(o=o.substring(t+1));const i=o.indexOf("?");if(-1!=i&&(s=o.substring(i+1),o=o.substring(0,i)),o.startsWith("DLC2"))d=0;else{if(o.startsWith("DLS2")){let t;try{let e=o.substring(4);e=atob(e),t=JSON.parse(e)}catch(e){throw new Error("Format Error: The license string you specified is invalid, please check to make sure it is correct.")}if(o=t.handshakeCode?t.handshakeCode:t.organizationID?t.organizationID:"","number"==typeof o&&(o=JSON.stringify(o)),0===n.length){let e=[];t.mainServerURL&&(e[0]=t.mainServerURL),t.standbyServerURL&&(e[1]=t.standbyServerURL),n=S(e)}!c&&t.sessionPassword&&(c=t.sessionPassword),e=t.remark}o&&"200001"!==o&&!o.startsWith("200001-")||(d=1)}}if(d&&(t||(a.crypto||(r="Please upgrade your browser to support online key."),a.crypto.subtle||(r="Require https to use online key in this browser."))),r){if(1!==d)throw new Error(r);d=0,console.warn(r),i._lastErrorCode=-1,i._lastErrorString=r}return 1===d&&(o="",console.warn("Applying for a public trial license ...")),{lt:d,l:o,ls:n,sp:c,rmk:e,cv:s}}throw new Error("Can't preprocess license again"+m)})(L);this._pLoad.task=async(a,o)=>{let n=L.engineResourcePath+L._workerName;L.engineResourcePath.startsWith(location.origin)||(n=await fetch(n).then((e=>e.blob())).then((e=>URL.createObjectURL(e)))),L._dbrWorker=new Worker(n),URL.revokeObjectURL(n),L._dbrWorker.onerror=e=>{let t=new Error(e.message);o(t)},L._dbrWorker.onmessage=async t=>{let i=t.data?t.data:t;switch(i.type){case"log":L._onLog&&L._onLog(i.message);break;case"load":{i.message&&(i.message=i.message.replace("(https://www.dynamsoft.com/purchase-center/)","(https://www.dynamsoft.com/store/dynamsoft-barcode-reader/#javascript)"));let t,s=!1;1===e&&(s=!0,i.message||(i.message="Using a temporary license. [Register for a 30-day trial license >>>](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&deploymenttype=browser)")),i.success?(L._dbrWorker.onerror=null,L._version=i.version+"(JS "+L._jsVersion+"."+L._jsEditVersion+")",L._onLog&&L._onLog("load dbr worker success"),i.message&&console.warn(i.message)):(t=new Error(i.message),t.stack=i.stack+"\n"+t.stack,t.ltsErrorCode=i.ltsErrorCode,s||111==i.ltsErrorCode&&-1!=i.message.toLowerCase().indexOf("trial license")&&(s=!0)),s&&L.showDialog(i.success?"warn":"error",i.message),i.success?a():o(t);break}case"task":{let e=i.id,t=i.body;try{L._taskCallbackMap.get(e)(t),L._taskCallbackMap.delete(e)}catch(t){throw L._taskCallbackMap.delete(e),t}break}default:L._onLog&&L._onLog(t)}},L._dbrWorker.postMessage({type:"loadWasm",engineResourcePath:L.engineResourcePath,bUseFullFeature:L._bUseFullFeature,bd:L._bWasmDebug,v:L._jsVersion,brtk:!!e,bptk:1===e,l:t,dm:location.origin.startsWith("http")?location.origin:"https://localhost",os:d,cv:L.authCacheVersion,fn:L.deviceFriendlyName,ls:i,sp:s,rmk:r})}}await this._pLoad}static async showDialog(e,t){await(async(e,t,i)=>{if(!e._bNeverShowDialog)try{let s=await fetch(e.engineResourcePath+"dls.license.dialog.html");if(!s.ok)throw Error("Get license dialog fail. Network Error: "+s.statusText);let a=await s.text();if(!a.trim().startsWith("<"))throw Error("Get license dialog fail. Can't get valid HTMLElement.");let r=document.createElement("div");r.innerHTML=a;let o=[];for(let e=0;e<r.childElementCount;++e){let t=r.children[e];t instanceof HTMLStyleElement&&(o.push(t),document.head.append(t))}let n=1==r.childElementCount?r.children[0]:r;n.remove();let c,d,l,h,_,u=[n],g=n.children;for(let e of g)u.push(e);for(let e=0;e<u.length;++e)for(let t of u[e].children)u.push(t);for(let e of u)if(!c&&e.classList.contains("dls-license-mask"))c=e,e.addEventListener("click",(t=>{if(e==t.target){n.remove();for(let e of o)e.remove()}}));else if(!d&&e.classList.contains("dls-license-icon-close"))d=e,e.addEventListener("click",(()=>{n.remove();for(let e of o)e.remove()}));else if(!l&&e.classList.contains("dls-license-icon-error"))l=e,"error"!=t&&e.remove();else if(!h&&e.classList.contains("dls-license-icon-warn"))h=e,"warn"!=t&&e.remove();else if(!_&&e.classList.contains("dls-license-msg-content")){_=e;let t=i;for(;t;){let i=t.indexOf("["),s=t.indexOf("]",i),a=t.indexOf("(",s),r=t.indexOf(")",a);if(-1==i||-1==s||-1==a||-1==r){e.appendChild(new Text(t));break}i>0&&e.appendChild(new Text(t.substring(0,i)));let o=document.createElement("a"),n=t.substring(i+1,s);o.innerText=n;let c=t.substring(a+1,r);o.setAttribute("href",c),o.setAttribute("target","_blank"),e.appendChild(o),t=t.substring(r+1)}}document.body.appendChild(n)}catch(t){e._onLog&&e._onLog(t.message||t)}})(this,e,t)}static async createInstanceInWorker(e=!1){return await L.loadWasm(),await new Promise(((t,i)=>{let s=L._nextTaskID++;L._taskCallbackMap.set(s,(e=>{if(e.success)return t(e.instanceID);{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,i(t)}})),L._dbrWorker.postMessage({type:"createInstance",id:s,bScanner:e})}))}constructor(){this._instanceID=void 0,this._ifSaveOriginalImageInACanvas=!1,this.oriCanvas=null,this.oriCanvasData=null,this.canvas=null,this.bFilterRegionInJs=!1,this._region=null,this._timeStartDecode=null,this._timeEnterInnerDBR=null,this._timeGetMessage=null,this.decodeRecords={},this.bDestroyed=!1,this._lastErrorCode=0,this._lastErrorString="",this._lastInnerDecodeDuration=0,this.intervalTime=0,this._intervalGetVideoFrame=0,this.array_getFrameTimeCost=[],this.array_decodeFrameTimeCost=[],this._indexCurrentDecodingFrame=0,this._arrPolygons=[],this._bPauseScan=!1,this._intervalDetectVideoPause=1e3,this._soundSource="data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAABQAAAkAAgICAgICAgICAgICAgICAgICAgKCgoKCgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4ODg4P//////////////////////////AAAAAExhdmM1OC41NAAAAAAAAAAAAAAAACQEUQAAAAAAAAJAk0uXRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAANQAbGeUEQAAHZYZ3fASqD4P5TKBgocg+Bw/8+CAYBA4XB9/4EBAEP4nB9+UOf/6gfUCAIKyjgQ/Kf//wfswAAAwQA/+MYxAYOqrbdkZGQAMA7DJLCsQxNOij///////////+tv///3RWiZGBEhsf/FO/+LoCSFs1dFVS/g8f/4Mhv0nhqAieHleLy/+MYxAYOOrbMAY2gABf/////////////////usPJ66R0wI4boY9/8jQYg//g2SPx1M0N3Z0kVJLIs///Uw4aMyvHJJYmPBYG/+MYxAgPMALBucAQAoGgaBoFQVBUFQWDv6gZBUFQVBUGgaBr5YSgqCoKhIGg7+IQVBUFQVBoGga//SsFSoKnf/iVTEFNRTMu/+MYxAYAAANIAAAAADEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",this.bPlaySoundOnSuccessfulRead=!1,this.bVibrateOnSuccessfulRead=!1,this.vibrateDuration=300,this.captureAndDecodeInParallel=!0,this.autoSuggestTip=!1,this.suggestTipFrameArray=[],this.suggestTipFrameLimit=[5,3],this.noIntermediateResultsCount=0,this.noIntermediateResultsTipLimit=100,this.tinyBarcodeTipModuleSizeLimit=3,this.hugeBarcodeTipLimit=.9,this.autoZoomInFrameArray=[],this.autoZoomInFrameLimit=[5,3],this.autoZoomInStepRate=1/3,this.autoZoomInMaxStep=1.5,this.autoZoomInMaxTimes=5,this.autoZoomInMinStep=Math.pow(10,1/this.autoZoomInMaxTimes),this.autoZoomInIdealModuleSize=6,this.autoZoomOutFrameCount=0,this.autoZoomOutFrameLimit=3,this.autoZoomOutStepRate=1/3,this.autoZoomOutMinValue=1,this.autoZoomOutMinStep=2,this.autoZoomOutStepRate_2=.05,this.autoZoomOutMinValue_2=2,this.frameArrayInIdealZoom=[],this.frameLimitInIdealZoom=[5,3],this.enableZoomOutInIdealZoom=!1,this.nextActionInIdealZoom="focus",this.autoFocusFrameArray=[],this.autoFocusFrameLimit=[5,3],this.autoZoomIdealArea=[0,.05],this.autoZoomTargetBorder=.9,this.autoZoomDetectionArea=.5,this.autoZoom=!1,this.autoFocus=!1,this._resultHighlightingDuration=-1,this._dce=null,this._imgSource=null,this._maxCvsSideLength=p,this._promiseStartScan=null,this.beepSound=new e({src:[this._soundSource],onplayerror:(e,t)=>{console.warn(`Sound '${e}' playback failure: ${t}`)}})}static async createInstance(){const e=new L;return e._instanceID=await L.createInstanceInWorker(),L._fireHTTPSWarnning(),e}async clearMapDecodeRecord(){return await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success)return e();{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"clearMapDecodeRecord",id:i,instanceID:this._instanceID})}))}async decode(e){L._onLog&&L._onLog("decode(source: any)"),L._onLog&&(this._timeStartDecode=Date.now());let t={};return!this.region||this.region instanceof Array||(t.region=JSON.parse(JSON.stringify(this.region))),e instanceof Blob?await this._decode_Blob(e,t):e instanceof ArrayBuffer?await this._decode_ArrayBuffer(e,t):e instanceof Uint8Array||e instanceof Uint8ClampedArray?await this._decode_Uint8Array(e,t):e instanceof HTMLImageElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap?await this._decode_Image(e,t):e instanceof HTMLCanvasElement?await this._decode_Canvas(e,t):e instanceof HTMLVideoElement?await this._decode_Video(e,t):"string"==typeof e?"data:image/"==e.substring(0,11)?await this._decode_Base64(e,t):await this._decode_Url(e,t):L.isDCEFrame(e)?(t.bCopyData=!0,await this._decode_DCEFrame(e,t)):L.isDSImage(e)?(t.bCopyData=!0,await this._decode_DSImage(e,t)):await Promise.reject(TypeError("'_decode(source, config)': Type of 'source' should be 'Blob', 'ArrayBuffer', 'Uint8Array', 'HTMLImageElement', 'HTMLCanvasElement', 'HTMLVideoElement', 'String(base64 with image mime)' or 'String(url)'."))}async decodeBase64String(e){let t={};return!this.region||this.region instanceof Array||(t.region=JSON.parse(JSON.stringify(this.region))),this._decode_Base64(e,t)}async decodeUrl(e){let t={};return!this.region||this.region instanceof Array||(t.region=JSON.parse(JSON.stringify(this.region))),this._decode_Url(e,t)}async _decodeBuffer_Uint8Array(e,t,i,s,a,r,o){return await new Promise(((n,c)=>{let d=L._nextTaskID++;L._taskCallbackMap.set(d,(e=>{if(e.success){let t,i=L._onLog?Date.now():0;L._onLog&&L._onLog("worker return result: "+i),this._lastInnerDecodeDuration=e.duration;try{t=this._handleRetJsonString(e.decodeReturn)}catch(e){return c(e)}if(L._onLog){let e=Date.now();L._onLog("DBR getting message from worker timestamp: "+i),L._onLog("From DBR staring decoding to entering worker costs: "+(this._timeEnterInnerDBR-this._timeStartDecode)),L._onLog("From DBR entering worker to returning message from worker costs: "+(i-this._timeEnterInnerDBR)),L._onLog("Handling results from DBR worker costs: "+(e-i)),L._onLog("Total decoding image costs: "+(e-this._timeStartDecode))}return n(t)}{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,c(t)}})),this._timeEnterInnerDBR=Date.now(),L._onLog&&L._onLog("Sending buffer to worker timestamp:"+this._timeEnterInnerDBR),L._dbrWorker.postMessage({type:"decodeBuffer",id:d,instanceID:this._instanceID,body:{buffer:e,width:t,height:i,stride:s,format:a,orientation:r,config:o}},[e.buffer]),L._onLog&&o&&o.timeStamp&&L._onLog("Delay of decoding image: "+(this._timeEnterInnerDBR-o.timeStamp))}))}async _decodeBuffer_Blob(e,t,i,s,a,r,o){L._onLog&&L._onLog("_decodeBuffer_Blob(buffer,width,height,stride,format)");const n=e.arrayBuffer?await e.arrayBuffer():await new Promise(((t,i)=>{let s=new FileReader;s.readAsArrayBuffer(e),s.onload=()=>{t(s.result)},s.onerror=()=>{i(s.error)}}));return await this._decodeBuffer_Uint8Array(new Uint8Array(n),t,i,s,a,r,o)}async decodeBuffer(e,t,i,s,a,r,o){let n;return L._onLog&&L._onLog("decodeBuffer(buffer,width,height,stride,format)"),L._onLog&&(this._timeStartDecode=Date.now()),e instanceof Uint8Array||e instanceof Uint8ClampedArray?n=await this._decodeBuffer_Uint8Array(e,t,i,s,a,r,o):e instanceof ArrayBuffer?n=await this._decodeBuffer_Uint8Array(new Uint8Array(e),t,i,s,a,r,o):e instanceof Blob&&(n=await this._decodeBuffer_Blob(e,t,i,s,a,r,o)),n}async _decodeFileInMemory_Uint8Array(e){return await new Promise(((t,i)=>{let s=L._nextTaskID++;L._taskCallbackMap.set(s,(e=>{if(e.success){let s;this._lastInnerDecodeDuration=e.duration;try{s=this._handleRetJsonString(e.decodeReturn)}catch(e){return i(e)}return t(s)}{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,i(t)}})),L._dbrWorker.postMessage({type:"decodeFileInMemory",id:s,instanceID:this._instanceID,body:{bytes:e}})}))}async getRuntimeSettings(){return await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success){let t=JSON.parse(i.results);return null!=this.userDefinedRegion&&(t.region=JSON.parse(JSON.stringify(this.userDefinedRegion))),e(t)}{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"getRuntimeSettings",id:i,instanceID:this._instanceID})}))}async updateRuntimeSettings(e){let t;if("string"==typeof e)if("speed"==e){let e=await this.getRuntimeSettings();await this.resetRuntimeSettings(),t=await this.getRuntimeSettings(),t.barcodeFormatIds=e.barcodeFormatIds,t.barcodeFormatIds_2=e.barcodeFormatIds_2,t.region=e.region,t.deblurLevel=3,t.expectedBarcodesCount=0,t.localizationModes=[2,0,0,0,0,0,0,0]}else if("balance"==e){let e=await this.getRuntimeSettings();await this.resetRuntimeSettings(),t=await this.getRuntimeSettings(),t.barcodeFormatIds=e.barcodeFormatIds,t.barcodeFormatIds_2=e.barcodeFormatIds_2,t.region=e.region,t.deblurLevel=5,t.expectedBarcodesCount=512,t.localizationModes=[2,16,0,0,0,0,0,0]}else if("coverage"==e){let e=await this.getRuntimeSettings();await this.resetRuntimeSettings(),t=await this.getRuntimeSettings(),t.barcodeFormatIds=e.barcodeFormatIds,t.barcodeFormatIds_2=e.barcodeFormatIds_2,t.region=e.region}else if("dense"==e){let e=await this.getRuntimeSettings();await this.resetRuntimeSettings(),this.maxCvsSideLength=4096,t=await this.getRuntimeSettings(),t.barcodeFormatIds=e.barcodeFormatIds,t.barcodeFormatIds_2=e.barcodeFormatIds_2,t.region=e.region,t.deblurLevel=9,t.expectedBarcodesCount=0,t.localizationModes=[2,8,0,0,0,0,0,0]}else if("distance"==e){let e=await this.getRuntimeSettings();await this.resetRuntimeSettings(),this.maxCvsSideLength=4096,t=await this.getRuntimeSettings(),t.barcodeFormatIds=e.barcodeFormatIds,t.barcodeFormatIds_2=e.barcodeFormatIds_2,t.region=e.region,t.deblurLevel=3,t.expectedBarcodesCount=0,t.localizationModes=[2,8,0,0,0,0,0,0]}else t=JSON.parse(e);else{if("object"!=typeof e)throw TypeError("'UpdateRuntimeSettings(settings)': Type of 'settings' should be 'string' or 'PlainObject'.");if(t=JSON.parse(JSON.stringify(e)),t.region instanceof Array){let e=t.region;[e.regionLeft,e.regionTop,e.regionLeft,e.regionBottom,e.regionMeasuredByPercentage].some((e=>void 0!==e))&&(t.region={regionLeft:e.regionLeft||0,regionTop:e.regionTop||0,regionRight:e.regionRight||0,regionBottom:e.regionBottom||0,regionMeasuredByPercentage:e.regionMeasuredByPercentage||0})}}if(!L._bUseFullFeature){if(t.barcodeFormatIds&~(T.BF_ONED|T.BF_QR_CODE|T.BF_PDF417|T.BF_DATAMATRIX)||0!=t.barcodeFormatIds_2)throw Error("Some of the specified barcode formats are not supported in the compact version. Please try the full-featured version.");if(0!=t.intermediateResultTypes)throw Error("Intermediate results is not supported in the compact version. Please try the full-featured version.")}if(this.bFilterRegionInJs){let e=t.region;if(e instanceof Array)throw Error("The `region` of type `Array` is only allowed in `BarcodeScanner`.");this.userDefinedRegion=JSON.parse(JSON.stringify(e)),(e.regionLeft||e.regionTop||e.regionRight||e.regionBottom||e.regionMeasuredByPercentage)&&(e.regionLeft||e.regionTop||100!=e.regionRight||100!=e.regionBottom||!e.regionMeasuredByPercentage)?this.region=e:this.region=null,t.region={regionLeft:0,regionTop:0,regionRight:0,regionBottom:0,regionMeasuredByPercentage:0}}else this.userDefinedRegion=null,this.region=null;return(this.autoZoom||this.autoFocus)&&(t.intermediateResultTypes|=D.IRT_TYPED_BARCODE_ZONE),await new Promise(((e,i)=>{let s=L._nextTaskID++;L._taskCallbackMap.set(s,(t=>{if(t.success){try{this._handleRetJsonString(t.updateReturn)}catch(e){i(e)}return e()}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}})),L._dbrWorker.postMessage({type:"updateRuntimeSettings",id:s,instanceID:this._instanceID,body:{settings:JSON.stringify(t)}})}))}async resetRuntimeSettings(){return this.userDefinedRegion=null,this.region=null,this.maxCvsSideLength=p,await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success)return e();{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"resetRuntimeSettings",id:i,instanceID:this._instanceID})}))}async _resetRuntimeSettingsToCppDefault(){return this.userDefinedRegion=null,this.region=null,this.maxCvsSideLength=p,await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success)return e();{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"resetRuntimeSettingsToCppDefault",id:i,instanceID:this._instanceID})}))}async outputRuntimeSettingsToString(){if(!L._bUseFullFeature)throw Error("outputRuntimeSettingsToString() is not supported in the compact version. Please try the full-featured version.");return await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success)return e(i.results);{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"outputRuntimeSettingsToString",id:i,instanceID:this._instanceID})}))}async initRuntimeSettingsWithString(e){if(!L._bUseFullFeature)throw Error("initRuntimeSettingsWithString() is not supported in the compact version. Please try the full-featured version.");if("string"==typeof e);else{if("object"!=typeof e)throw TypeError("'initRuntimeSettingstWithString(settings)': Type of 'settings' should be 'string' or 'PlainObject'.");e=JSON.stringify(e)}return await new Promise(((t,i)=>{let s=L._nextTaskID++;L._taskCallbackMap.set(s,(e=>{if(e.success){try{this._handleRetJsonString(e.initReturn)}catch(e){i(e)}return t()}{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,i(t)}})),L._dbrWorker.postMessage({type:"initRuntimeSettingsWithString",id:s,instanceID:this._instanceID,body:{settings:e}})}))}async _decode_Blob(e,t){L._onLog&&L._onLog("_decode_Blob(blob: Blob)");let i=null,s=null;if("undefined"!=typeof createImageBitmap)try{i=await createImageBitmap(e)}catch(e){}i||(s=await function(e){return new Promise(((t,i)=>{let s=URL.createObjectURL(e),a=new Image;a.src=s,a.onload=()=>{URL.revokeObjectURL(a.src),t(a)},a.onerror=e=>{i(new Error("Can't convert blob to image : "+(e instanceof Event?e.type:e)))}}))}(e));let a=await this._decode_Image(i||s,t);return i&&i.close(),a}async _decode_ArrayBuffer(e,t){return await this._decode_Blob(new Blob([e]),t)}async _decode_Uint8Array(e,t){return await this._decode_Blob(new Blob([e]),t)}async _decode_Image(e,t){L._onLog&&L._onLog("_decode_Image(image: HTMLImageElement|ImageBitmap)"),t=t||{};let i,s,a=e instanceof HTMLImageElement?e.naturalWidth:e.width,r=e instanceof HTMLImageElement?e.naturalHeight:e.height,o=Math.max(a,r);if(o>this._maxCvsSideLength){let e=this._maxCvsSideLength/o;i=Math.round(a*e),s=Math.round(r*e)}else i=a,s=r;this.canvas||(this.canvas=document.createElement("canvas"));const n=this.canvas;n.width===i&&n.height===s||(n.width=i,n.height=s),n.ctx2d||(n.ctx2d=n.getContext("2d",{willReadFrequently:!0}));n.ctx2d.drawImage(e,0,0,a,r,0,0,i,s);let c=await this._decode_Canvas(n,t);if(this.ifSaveOriginalImageInACanvas){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;t.getContext("2d").drawImage(e,0,0),this.oriCanvas=t,this.oriCanvasData=null}return L.recalculateResultLocation(c,0,0,a,r,i,s),c}async _decode_Canvas(e,t){if(L._onLog&&L._onLog("_decode_Canvas(canvas:HTMLCanvasElement)"),e.crossOrigin&&"anonymous"!=e.crossOrigin)throw"cors";if(0===e.width||0===e.height)throw Error("The width or height of the 'canvas' is 0.");this.ifSaveOriginalImageInACanvas&&(this.oriCanvas=e,this.oriCanvasData=null);let i=(e.ctx2d||e.getContext("2d",{willReadFrequently:!0})).getImageData(0,0,e.width,e.height).data;return await this._decodeBuffer_Uint8Array(i,e.width,e.height,4*e.width,E.IPF_ABGR_8888,0,t)}async _decode_Video(e,t){if(L._onLog&&L._onLog("_decode_Video(video)"),!(e instanceof HTMLVideoElement))throw TypeError("'_decode_Video(video [, config] )': Type of 'video' should be 'HTMLVideoElement'.");if(e.crossOrigin&&"anonymous"!=e.crossOrigin)throw"cors";t=t||{};let i,s,a=e.videoWidth,r=e.videoHeight,o=Math.max(a,r);if(o>this._maxCvsSideLength){let e=this._maxCvsSideLength/o;i=Math.round(a*e),s=Math.round(r*e)}else i=a,s=r;this.canvas||(this.canvas=document.createElement("canvas"));const n=this.canvas;n.width===i&&n.height===s||(n.width=i,n.height=s),n.ctx2d||(n.ctx2d=n.getContext("2d",{willReadFrequently:!0}));n.ctx2d.drawImage(e,0,0,a,r,0,0,i,s);let c=await this._decode_Canvas(n,t);if(this.ifSaveOriginalImageInACanvas){const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;t.getContext("2d").drawImage(e,0,0),this.oriCanvas=t,this.oriCanvasData=null}return L.recalculateResultLocation(c,0,0,a,r,i,s),c}async _decode_DCEFrame(e,t){if(L._onLog&&L._onLog("_decode_DCEFrame(dceFrame)"),!L.isDCEFrame(e))return[];let i=[];this.ifSaveOriginalImageInACanvas&&(this.oriCanvas=null,this.oriCanvasData={width:e.width,height:e.height,colorMode:e.colorMode,pixelFormat:e.pixelFormat,data:new Uint8Array(e.data),toCanvas:e.toCanvas});const{width:s,height:a,colorMode:r,pixelFormat:o,stride:n,timeStamp:c}=e;let d;d=t&&t.bCopyData?new Uint8Array(e.data):e.data;let l=null;if(t?(l=JSON.parse(JSON.stringify(t)),l.timeStamp=c):l={timeStamp:c},o&&n)if("grey"===o)i=await this._decodeBuffer_Uint8Array(d,s,a,n,E.IPF_GrayScaled,0,l);else if("rgba"===o)i=await this._decodeBuffer_Uint8Array(d,s,a,n,E.IPF_ABGR_8888,0,l);else{if("bgra"!==o)throw new Error(`Pixel format '${o}' is not supported to decode.`);i=await this._decodeBuffer_Uint8Array(d,s,a,n,E.IPF_ARGB_8888,0,l)}else if("grey"===r)i=await this._decodeBuffer_Uint8Array(d,s,a,s,E.IPF_GrayScaled,0,l);else if("rgba"===r)i=await this._decodeBuffer_Uint8Array(d,s,a,4*s,E.IPF_ABGR_8888,0,l);else{if("bgra"!==r)throw new Error(`Color mode '${r}' is not supported to decode.`);i=await this._decodeBuffer_Uint8Array(d,s,a,4*s,E.IPF_ARGB_8888,0,l)}return i}async _decode_DSImage(e,t){if(L._onLog&&L._onLog("_decode_DSImage(dsImage)"),!L.isDSImage(e))return null;this.ifSaveOriginalImageInACanvas&&(this.oriCanvas=null,this.oriCanvasData={width:e.width,height:e.height,pixelFormat:e.pixelFormat.toLowerCase(),data:new Uint8Array(e.data),toCanvas:function(){const e=document.createElement("canvas");let t;switch(e.width=this.width,e.height=this.height,this.pixelFormat){case"grey":t=new Uint8ClampedArray(this.width*this.height*4);for(let e=0;e<t.length;e+=4)t[e]=this.data[e/4],t[e+1]=this.data[e/4],t[e+2]=this.data[e/4],t[e+3]=255;break;case"rgb":t=new Uint8ClampedArray(this.width*this.height*4);for(let e=0;e<t.length;e+=4)t[e]=this.data[e],t[e+1]=this.data[e+1],t[e+2]=this.data[e+2],t[e+3]=255;break;case"bgr":t=new Uint8ClampedArray(this.width*this.height*4);for(let e=0;e<t.length;e+=4)t[e]=this.data[e],t[e+1]=this.data[e+1],t[e+2]=this.data[e+2],t[e+3]=255;break;case"rgba":case"bgra":t=new Uint8ClampedArray(this.data);break;default:throw new Error("The content of 2D Canvas is currently limited to the sRGB color space.")}const i=new ImageData(t,this.width,this.height);return e.getContext("2d").putImageData(i,0,0),e}});const{width:i,height:s}=e;let a,r,o,n=e.pixelFormat.toLowerCase();switch(a=t&&t.bCopyData?new Uint8Array(e.data):e.data,n){case"grey":o=E.IPF_GrayScaled,r=i;break;case"rgb":o=E.IPF_BGR_888,r=3*i;break;case"bgr":o=E.IPF_RGB_888,r=3*i;break;case"rgba":o=E.IPF_ABGR_8888,r=4*i;break;case"bgra":o=E.IPF_ARGB_8888,r=4*i;break;default:throw new Error("The pixel format is not supported to decode.")}return await this._decodeBuffer_Uint8Array(a,i,s,r,o,0,t)}async _decode_Base64(e,t){if(L._onLog&&L._onLog("_decode_Base64(base64Str)"),"string"!=typeof e)return Promise.reject("'_decode_Base64(base64Str, config)': Type of 'base64Str' should be 'string'.");"data:image/"==e.substring(0,11)&&(e=e.substring(e.indexOf(",")+1));let i=atob(e),s=i.length,a=new Uint8Array(s);for(;s--;)a[s]=i.charCodeAt(s);return await this._decode_Blob(new Blob([a]),t)}async _decode_Url(e,t){if(L._onLog&&L._onLog("_decode_Url(url)"),"string"!=typeof e)throw TypeError("'_decode_Url(url, config)': Type of 'url' should be 'string'.");let i=await new Promise(((t,i)=>{let s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="blob",s.send(),s.onloadend=async()=>{t(s.response)},s.onerror=()=>{i(new Error("Network Error: "+s.statusText))}}));return await this._decode_Blob(i,t)}static recalculateResultLocation(e,t,i,s,a,r,o){if(e.length>0)for(let n of e){let e=n.localizationResult;2==e.resultCoordinateType&&(e.x1*=.01*r,e.x2*=.01*r,e.x3*=.01*r,e.x4*=.01*r,e.y1*=.01*o,e.y2*=.01*o,e.y3*=.01*o,e.y4*=.01*o);let c=r/s,d=o/a;e.x1=e.x1/c+t,e.x2=e.x2/c+t,e.x3=e.x3/c+t,e.x4=e.x4/c+t,e.y1=e.y1/d+i,e.y2=e.y2/d+i,e.y3=e.y3/d+i,e.y4=e.y4/d+i,2==e.resultCoordinateType&&(e.x1*=100/s,e.x2*=100/s,e.x3*=100/s,e.x4*=100/s,e.y1*=100/a,e.y2*=100/a,e.y3*=100/a,e.y4*=100/a),e.x1=Math.round(e.x1),e.x2=Math.round(e.x2),e.x3=Math.round(e.x3),e.x4=Math.round(e.x4),e.y1=Math.round(e.y1),e.y2=Math.round(e.y2),e.y3=Math.round(e.y3),e.y4=Math.round(e.y4)}}static BarcodeReaderException(e,t){let i,s=A.DBR_UNKNOWN;return"number"==typeof e?(s=e,i=new Error(t)):i=new Error(e),i.code=s,i}_handleRetJsonString(e){let t=A;if(e.textResults){for(let t=0;t<e.textResults.length;t++){let i=e.textResults[t];try{let e=i.barcodeText,t="";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);try{i.barcodeText=decodeURIComponent(escape(t))}catch(e){i.barcodeText=t}}catch(e){i.barcodeText=""}if(null!=i.exception){L._setWarnnedEx.has(i.exception)||(L._setWarnnedEx.add(i.exception),console.warn(i.exception));let e={};i.exception.split(";").forEach((t=>{let i=t.indexOf(":");e[t.substring(0,i)]=t.substring(i+1)})),i.exception=e}}return e.decodeRecords?this.decodeRecords=e.decodeRecords:this.decodeRecords={},this._lastErrorCode=e.exception,this._lastErrorString=e.description,e.exception&&!L._setWarnnedEx.has(e.description)&&(L._setWarnnedEx.add(e.description),console.warn(e.description)),e.textResults}if(e.exception==t.DBR_SUCCESS)return e.data;throw L.BarcodeReaderException(e.exception,e.description)}async setModeArgument(e,t,i,s){return await new Promise(((a,r)=>{let o=L._nextTaskID++;L._taskCallbackMap.set(o,(e=>{if(e.success){try{this._handleRetJsonString(e.setReturn)}catch(e){return r(e)}return a()}{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,r(t)}})),L._dbrWorker.postMessage({type:"setModeArgument",id:o,instanceID:this._instanceID,body:{modeName:e,index:t,argumentName:i,argumentValue:s}})}))}async getModeArgument(e,t,i){return await new Promise(((s,a)=>{let r=L._nextTaskID++;L._taskCallbackMap.set(r,(e=>{if(e.success){let t;try{t=this._handleRetJsonString(e.getReturn)}catch(e){return a(e)}return s(t)}{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,a(t)}})),L._dbrWorker.postMessage({type:"getModeArgument",id:r,instanceID:this._instanceID,body:{modeName:e,index:t,argumentName:i}})}))}async getIntermediateResults(){return await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success)return e(i.results);{let e=new Error(i.message);return e.stack=i.stack+"\n"+e.stack,t(e)}})),L._dbrWorker.postMessage({type:"getIntermediateResults",id:i,instanceID:this._instanceID,body:{isCharge:!0}})}))}async getIntermediateCanvas(){let e=await this.getIntermediateResults(),t=[];for(let i of e)if(i.dataType==f.IMRDT_IMAGE)for(let e of i.results){const i=e.bytes;let s;switch(L._onLog&&L._onLog(" "+i.length+" "+i.byteLength+" "+e.width+" "+e.height+" "+e.stride+" "+e.format),e.format){case E.IPF_ABGR_8888:s=new Uint8ClampedArray(i);break;case E.IPF_RGB_888:{const e=i.length/3;s=new Uint8ClampedArray(4*e);for(let t=0;t<e;++t)s[4*t]=i[3*t+2],s[4*t+1]=i[3*t+1],s[4*t+2]=i[3*t],s[4*t+3]=255;break}case E.IPF_GrayScaled:{const e=i.length;s=new Uint8ClampedArray(4*e);for(let t=0;t<e;t++)s[4*t]=s[4*t+1]=s[4*t+2]=i[t],s[4*t+3]=255;break}case E.IPF_Binary:case E.IPF_BinaryInverted:{const t=i.length,a=e.width,r=e.height,o=e.stride;s=new Uint8ClampedArray(a*r*4);for(let e=0;e<t;e++){let t=i[e],r=e%o*8,n=Math.floor(e/o);for(let e=0;e<8;e++){let i=r+e,o=4*(n*a+i);if(i>=a)break;s[o]=s[o+1]=s[o+2]=(128&t)/128*255,s[o+3]=255,t<<=1}}break}default:console.warn("unknow intermediate image",e)}if(!s)continue;let a=new ImageData(s,e.width,e.height),r=document.createElement("canvas");r.width=e.width,r.height=e.height,r.getContext("2d").putImageData(a,0,0),t.push(r)}return t}async getScanSettings(){return await new Promise(((e,t)=>{let i=L._nextTaskID++;L._taskCallbackMap.set(i,(i=>{if(i.success){let t=i.results;return t.intervalTime=this.intervalTime,t.whenToPlaySoundforSuccessfulRead=this.whenToPlaySoundforSuccessfulRead,t.soundOnSuccessfullRead=this.soundSource,t.whenToVibrateforSuccessfulRead=this.whenToVibrateforSuccessfulRead,t.vibrateDuration=this.vibrateDuration,t.captureAndDecodeInParallel=this.captureAndDecodeInParallel,t.autoZoom=this.autoZoom,t.autoFocus=this.autoFocus,t.autoSuggestTip=this.autoSuggestTip,e(t)}{let e=new Error(i.message);return e.stack+="\n"+i.stack,t(e)}})),L._dbrWorker.postMessage({type:"getScanSettings",id:i,instanceID:this._instanceID})}))}async updateScanSettings(e){if(!e)return;const t=JSON.parse(JSON.stringify(e));if(t.autoZoom||t.autoFocus||t.autoSuggestTip){if(!L._bUseFullFeature)throw new Error("'autoZoom', 'autoFocus' and 'autoSuggestTip' are not supported in the compact version. Please try the full-featured version.");const e=await this.getRuntimeSettings();e.intermediateResultTypes|=D.IRT_TYPED_BARCODE_ZONE,await this.updateRuntimeSettings(e)}return t.hasOwnProperty("intervalTime")&&(this.intervalTime=Math.max(t.intervalTime,0),delete t.intervalTime),t.hasOwnProperty("whenToPlaySoundforSuccessfulRead")&&(this.whenToPlaySoundforSuccessfulRead=t.whenToPlaySoundforSuccessfulRead,delete t.whenToPlaySoundforSuccessfulRead),t.hasOwnProperty("soundOnSuccessfullRead")&&(this.soundSource=t.soundOnSuccessfullRead,delete t.soundOnSuccessfullRead),t.hasOwnProperty("whenToVibrateforSuccessfulRead")&&(this.whenToVibrateforSuccessfulRead=t.whenToVibrateforSuccessfulRead,delete t.whenToVibrateforSuccessfulRead),t.hasOwnProperty("vibrateDuration")&&(this.vibrateDuration=t.vibrateDuration,delete t.vibrateDuration),t.hasOwnProperty("captureAndDecodeInParallel")&&(this.captureAndDecodeInParallel=t.captureAndDecodeInParallel,delete t.captureAndDecodeInParallel),t.hasOwnProperty("autoZoom")&&(this.autoZoom&&this.autoZoom!=t.autoZoom&&this.dce&&this.dce.setZoom({factor:1}).catch((()=>{})),this.autoZoom=t.autoZoom,delete t.autoZoom),t.hasOwnProperty("autoFocus")&&(this.autoFocus=t.autoFocus,this.dce&&th