UNPKG

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