<html><head><link rel="stylesheet" href="assets/css/main.css"><style>body{margin:20px}</style></head><body>
<h1 id="change-log">Change Log</h1>
<h2 id="461-2019-12-05">4.6.1 (2019-12-05)</h2>
<h3 id="additions">Additions</h3>
<ul>
<li>Added dependency to <em>@juggle/resize-observer</em> library.</li>
</ul>
<h3 id="changes">Changes</h3>
<ul>
<li>Switched to <a href="https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver">ResizeObserver</a> to more accurately and efficiently monitor and react to changes in size of the <code>BarcodePicker</code> element and its contained camera video feed.</li>
<li>Specified library side effects (CSS styles only) for better tree-shaking size reductions.</li>
</ul>
<h3 id="fixes">Fixes</h3>
<ul>
<li>Fixed incorrect update of <code>BarcodePicker</code>&#39;s camera video feed element display caused by screen orientation changes in some scenarios.</li>
<li>Fixed incorrect/missing update of <code>BarcodePicker</code>&#39;s camera video feed resolution caused by screen orientation changes, which in turn might have resulted in wrong GUI being displayed and wrong/partial video frame data being processed.</li>
<li>Fixed active camera&#39;s <code>currentResolution</code> property not being updated when screen orientation changes.</li>
</ul>
<h3 id="updates">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.13.3.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.7.4.</li>
</ul>
<h2 id="460-2019-10-31">4.6.0 (2019-10-31)</h2>
<h3 id="additions-1">Additions</h3>
<ul>
<li>Added new <code>ScanSettings.setProperty()</code> and <code>ScanSettings.getProperty()</code> functions to control internal properties of the <em>external Scandit Engine library</em>.</li>
</ul>
<h3 id="changes-1">Changes</h3>
<ul>
<li>Default camera selection improved for devices with multiple environment/back facing cameras.</li>
</ul>
<h3 id="fixes-1">Fixes</h3>
<ul>
<li>Fixed domain name information retrieval on licensing <code>ScanditEngineError</code> throw triggering another error in <em>Firefox</em>.</li>
</ul>
<h3 id="updates-1">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.13.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.6.3.</li>
</ul>
<h2 id="451-2019-10-01">4.5.1 (2019-10-01)</h2>
<h3 id="additions-2">Additions</h3>
<ul>
<li>Added dependency to <em>js-cookie</em> library.</li>
<li>Added domain name information when the relative licensing <code>ScanditEngineError</code> is thrown.</li>
</ul>
<h3 id="fixes-2">Fixes</h3>
<ul>
<li>Fixed cookies for storing (completely random) device IDs not being set at the root path of the website, possibly causing multiple cookies with different values to be set if the library was used on different paths. Note however that we still correctly cached when a device was being activated in IndexedDB, meaning that the different cookies would not be used.</li>
</ul>
<h3 id="updates-2">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.6.2.</li>
</ul>
<h2 id="450-2019-09-12">4.5.0 (2019-09-12)</h2>
<h3 id="additions-3">Additions</h3>
<ul>
<li>Device model usage information (when available) is now transmitted and accessible via the Scandit dashboard for analytics information.</li>
<li>Domain name usage information is now transmitted and accessible via the Scandit dashboard for analytics information.</li>
</ul>
<h3 id="changes-2">Changes</h3>
<ul>
<li>Greatly reduced main library code size.</li>
<li>Improved memory usage and WebWorker operations, leading to up to 25% processing performance improvements in <em>Firefox</em> (desktop/mobile).</li>
<li>Improved memory usage between <code>BarcodePicker</code>/<code>Scanner</code> and WebWorker in <code>Safari</code>, leading to lower memory requirements.</li>
</ul>
<h3 id="fixes-3">Fixes</h3>
<ul>
<li>Fixed rare &quot;out of memory&quot; generic JavaScript errors and improved memory usage in <em>Firefox mobile</em> and <em>Safari</em>.</li>
<li>Fixed bug causing an incorrect sleep of a few milliseconds after each processed frame even when not needed.</li>
<li>Fixed <code>BarcodePicker.create</code>&#39;s <code>targetScanningFPS</code> option (including the default value of 30) and <code>BarcodePicker.setTargetScanningFPS()</code> function not correctly limiting the framerate to values higher or equal to 30 when the camera feed&#39;s framerate is higher than 30.</li>
<li>Fixed incorrect domain name detection and verification for IPv6 URLs.</li>
<li>Fixed incorrect hash checksum verification of fetched <em>external Scandit Engine library</em> JS/WASM files.</li>
<li>Fixed typo in humanized symbology name for <em>UPC-E</em>.</li>
</ul>
<h3 id="updates-3">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.12.</li>
<li>Updated <em>webrtc-adapter</em> library to version 7.3.0.</li>
</ul>
<h2 id="442-2019-08-06">4.4.2 (2019-08-06)</h2>
<h3 id="fixes-4">Fixes</h3>
<ul>
<li>Fixed missing type information in order to support older typescript versions.</li>
</ul>
<h3 id="updates-4">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.5.5.</li>
<li>Updated <em>webrtc-adapter</em> library to version 7.2.9.</li>
</ul>
<h2 id="441-2019-08-05">4.4.1 (2019-08-05)</h2>
<h3 id="fixes-5">Fixes</h3>
<ul>
<li>Fixed rare failure to obtain initial video frames right after the camera has been initialized in <em>Safari</em>.</li>
</ul>
<h2 id="440-2019-07-11">4.4.0 (2019-07-11)</h2>
<h3 id="additions-4">Additions</h3>
<ul>
<li><code>Scanner.processImage()</code> now accepts image data passed as an <code>HTMLImageElement</code> (<code>Image</code>) in addition to the already existing <code>Uint8ClampedArray</code> possibility.</li>
<li>Added new <code>BarcodePicker.on()</code> and <code>BarcodePicker.addListener()</code> (alternative name for the same functionality) functions to more easily add <code>BarcodePicker</code> event listeners in a standard way by passing event name and listener function.</li>
<li>Added a new <code>BarcodePicker.removeListener()</code> function to more easily remove <code>BarcodePicker</code> event listeners in a standard way by passing event name and listener function.</li>
<li>Added a new <code>BarcodePicker.removeAllListeners()</code> function to more easily remove all <code>BarcodePicker</code> event listeners in a standard way by passing an event name.</li>
<li>Added new <code>Scanner.on()</code> and <code>Scanner.addListener()</code> (alternative name for the same functionality) functions to more easily add <code>Scanner</code> event listeners in a standard way by passing event name and listener function.</li>
<li>It&#39;s now possible to remove listeners added for <code>BarcodePicker</code>&#39;s <code>ready</code> event via the new <code>BarcodePicker.removeListener(&quot;scan&quot;)</code> or <code>BarcodePicker.removeAllListeners(&quot;scan&quot;)</code> functions.</li>
</ul>
<h3 id="changes-3">Changes</h3>
<ul>
<li>Improved and simplified camera access on <em>iOS</em>, ensuring promises are resolved exactly when the camera is actually ready.</li>
<li>Removed explicit caching of compiled WebAssembly code: the needed features have been removed from all browsers (see <a href="https://developer.mozilla.org/en-US/docs/WebAssembly/Caching_modules">here</a>). Browsers already now support or will support implicit caching: automatic caching of compiled WebAssembly code when a correctly served (standard HTTP caching headers and statuses) <code>scandit-engine-sdk.wasm</code> file is used.</li>
<li>Improved <code>BarcodePicker</code> and <code>Scanner</code> events documentation.</li>
</ul>
<h3 id="fixes-6">Fixes</h3>
<ul>
<li>Fixed failure to compile <em>external Scandit Engine library</em> WebAssembly on the latest <em>iOS 13 beta</em> (and <em>Safari Technology Preview</em>).</li>
<li>Fixed <code>NoCameraAvailableError</code> rarely being thrown (with no actual consequences) while accessing or switching the camera.</li>
<li>Fixed active camera&#39;s <code>currentResolution</code> property not being set/updated yet in some situations when the camera was just accessed.</li>
</ul>
<h3 id="deprecations">Deprecations</h3>
<ul>
<li>Deprecated <code>BarcodePicker.onReady()</code> in favor of <code>BarcodePicker.on(&quot;ready&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.onScan()</code> in favor of <code>BarcodePicker.on(&quot;scan&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.onSubmitFrame()</code> in favor of <code>BarcodePicker.on(&quot;submitFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.onProcessFrame()</code> in favor of <code>BarcodePicker.on(&quot;processFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.onScanError()</code> in favor of <code>BarcodePicker.on(&quot;scanError&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeScanListener()</code> in favor of <code>BarcodePicker.removeListener(&quot;scan&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeSubmitFrameListener()</code> in favor of <code>BarcodePicker.removeListener(&quot;submitFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeProcessFrameListener()</code> in favor of <code>BarcodePicker.removeListener(&quot;processFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeScanErrorListener()</code> in favor of <code>BarcodePicker.removeListener(&quot;scanError&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeScanListeners()</code> in favor of <code>BarcodePicker.removeAllListeners(&quot;scan&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeSubmitFrameListeners()</code> in favor of <code>BarcodePicker.removeAllListeners(&quot;submitFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeProcessFrameListeners()</code> in favor of <code>BarcodePicker.removeAllListeners(&quot;processFrame&quot;)</code>.</li>
<li>Deprecated <code>BarcodePicker.removeScanErrorListeners()</code> in favor of <code>BarcodePicker.removeAllListeners(&quot;scanError&quot;)</code>.</li>
<li>Deprecated <code>Scanner.onReady()</code> in favor of <code>Scanner.on(&quot;ready&quot;)</code>.</li>
</ul>
<h3 id="updates-5">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.5.4.</li>
<li>Updated <em>eventemitter3</em> library to version 4.0.0.</li>
<li>Updated <em>objectFitPolyfill</em> library to version 2.3.0.</li>
<li>Updated <em>tslib</em> library to version 1.10.0.</li>
<li>Updated <em>ua-parser-js</em> library to version 0.7.20.</li>
<li>Updated <em>webrtc-adapter</em> library to version 7.2.6.</li>
</ul>
<h2 id="430-2019-06-05">4.3.0 (2019-06-05)</h2>
<h3 id="additions-5">Additions</h3>
<ul>
<li>Added a new <code>ScanResult.rejectCode()</code> function to reject a barcode in listeners registered with <code>BarcodePicker.onProcessFrame()</code> or <code>BarcodePicker.onScan()</code>: if all codes in the result are rejected, sound, vibration and GUI flashing will be suppressed.</li>
</ul>
<h3 id="changes-4">Changes</h3>
<ul>
<li><code>ScanResult</code> is now a class instead of a simple object (with the same available properties as before).</li>
</ul>
<h3 id="updates-6">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.11.4.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.4.5.</li>
<li>Updated <em>eventemitter3</em> library to version 3.1.2.</li>
</ul>
<h2 id="422-2019-04-30">4.2.2 (2019-04-30)</h2>
<h3 id="changes-5">Changes</h3>
<ul>
<li>Improved initial camera access performance: <code>BarcodePicker</code> creation (or first delayed access to camera) will happen faster in most scenarios thanks to quicker camera feed access. As an added bonus some browsers like <em>Firefox mobile</em> will also make less permission requests to the user.</li>
<li>Improved <em>external Scandit Engine library</em> loading behaviour: better error handling and automatic retry of network requests to retrieve the necessary files.</li>
</ul>
<h3 id="fixes-7">Fixes</h3>
<ul>
<li>Fixed the internal engine rarely stopping working immediately after initialization due to missing GPU features.</li>
<li>Fixed incorrect back camera identification for some devices.</li>
</ul>
<h3 id="updates-7">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.11.2.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.4.4.</li>
<li>Updated <em>adapter</em> library to version 7.2.3.</li>
<li>Updated <em>howler</em> library to version 2.1.2.</li>
</ul>
<h2 id="421-2019-04-11">4.2.1 (2019-04-11)</h2>
<h3 id="fixes-8">Fixes</h3>
<ul>
<li>Fixed the internal engine rarely randomly stopping working immediately after initialization due to failed GPU access.</li>
<li>Fixed camera access sometimes causing the webpage / web application to crash and reload on some devices in <em>Safari</em>.</li>
<li>Fixed incorrect back camera identification for some devices.</li>
</ul>
<h3 id="updates-8">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.11.1.</li>
</ul>
<h2 id="420-2019-04-04">4.2.0 (2019-04-04)</h2>
<h3 id="additions-6">Additions</h3>
<ul>
<li>Implemented and enabled by default blurry recognition to allow accurate scanning capabilities for out-of-focus (1D) codes. If enabled, more advanced algorithms are executed (and more resources/time is spent) every frame in order to successfully decode/scan difficult codes.</li>
<li>Added a new <code>blurryRecognition</code> option to <code>ScanSettings</code>&#39;s constructor and relative functions <code>ScanSettings.isBlurryRecognitionEnabled()</code> and <code>ScanSettings.setBlurryRecognitionEnabled()</code> to enable/disable blurry recognition.</li>
<li>Added a new <code>laserArea</code> option to <code>BarcodePicker.create()</code> and relative function <code>BarcodePicker.setLaserArea()</code> to manually set the area of the laser displayed when the GUI style is set to <em>laser</em> (the laser will match the width and be vertically centered).</li>
<li>Added a new <code>viewfinderArea</code> option to <code>BarcodePicker.create()</code> and relative function <code>BarcodePicker.setViewfinderArea()</code> to manually set the area of the viewfinder displayed when the GUI style is set to <em>viewfinder</em>.</li>
</ul>
<h3 id="changes-6">Changes</h3>
<ul>
<li>Greatly reduced and stabilized memory usage in <em>Firefox</em>, also improved general memory usage in <em>Chrome</em>/<em>Edge</em>.</li>
<li>By default the <code>BarcodePicker</code>&#39;s laser will now automatically match the current <code>ScanSettings</code>&#39;s <code>searchArea</code> option, showing the area where codes are localized and scanned.</li>
<li>By default the <code>BarcodePicker</code>&#39;s viewfinder will now automatically match the current <code>ScanSettings</code>&#39;s <code>searchArea</code> option, showing the area where codes are localized and scanned.</li>
<li><code>BarcodePicker.reassignOriginElement()</code> now verifies the passed <em>originElement</em> and throws an error if it&#39;s invalid.</li>
</ul>
<h3 id="fixes-9">Fixes</h3>
<ul>
<li>Fixed several possible issues causing errors on failed GPU initialization.</li>
<li>Fixed <code>BrowserHelper</code> incorrectly instantiating/leaking new WebGL contexts on each call, which could result in &quot;Too many active WebGL contexts. Oldest context will be lost.&quot; warnings/errors depending on how often it was called.</li>
<li>Fixed some remaining rare errors of type <code>SourceUnavailableError</code> that can happen when accessing the camera not being correctly mapped to the more recent type: <code>NotReadableError</code>.</li>
<li>Fixed <code>BarcodePicker</code> failing to initialize in particular iframe context due to incorrect <em>originElement</em> validation.</li>
</ul>
<h3 id="updates-9">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.11.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.4.3.</li>
<li>Updated <em>objectFitPolyfill</em> library to version 2.2.0.</li>
<li>Updated <em>adapter</em> library to version 7.2.2.</li>
</ul>
<h2 id="411-2019-02-05">4.1.1 (2019-02-05)</h2>
<h3 id="fixes-10">Fixes</h3>
<ul>
<li>Fixed &quot;single image mode&quot; not working correctly since the previous library version.</li>
</ul>
<h3 id="updates-10">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.3.1.</li>
<li>Updated <em>adapter</em> library to version 7.2.0.</li>
</ul>
<h2 id="410-2019-01-22">4.1.0 (2019-01-22)</h2>
<h3 id="additions-7">Additions</h3>
<ul>
<li>Implemented GPU acceleration on browsers supporting <a href="https://caniuse.com/#feat=webgl">WebGL</a> and <a href="https://caniuse.com/#feat=offscreencanvas">OffscreenCanvas</a> (currently <em>Chrome</em> only), this allows for faster and more accurate barcode localization at challenging positions and angles. GPU acceleration is automatically used if the browser supports it.</li>
<li>Added a new <code>gpuAcceleration</code> option to <code>ScanSettings</code>&#39;s constructor and relative functions <code>ScanSettings.isGpuAccelerationEnabled()</code> and <code>ScanSettings.setGpuAccelerationEnabled()</code> to control GPU acceleration.</li>
<li>Added new possible <code>BrowserCompatibility.Feature</code> entries in the <code>missingFeatures</code> property of <code>BrowserCompatibility</code> regarding GPU acceleration: <code>WEBGL</code> and <code>OFFSCREEN_CANVAS</code>. Note that these do not affect compatibility with the general scanning process.</li>
<li>Exposed static <code>BrowserHelper.checkBrowserCompatibility()</code> function to manually retrieve a built <code>BrowserCompatibility</code> object for the used OS/Browser.</li>
<li>In case a common CDN URL (UNPKG, jsDelivr) is used for the external engine location, the library now automatically generates the correct URL for the matching version. This ensures correct feature compatibility and also optimal resource caching thanks to direct links being used in all cases, resulting in much faster subsequent library loads.</li>
<li>Added a runtime check to verify hash checksum of fetched <em>external Scandit Engine library</em> JS/WASM files to ensure the correct version matching the main library is used.</li>
<li>Added new <code>Scanner.clearSession()</code> and <code>BarcodePicker.clearSession()</code> functions to remove all recognized barcodes from the scanner session and allow them to be scanned again in case a custom <code>codeDuplicateFilter</code> was set in the <code>ScanSettings</code>.</li>
</ul>
<h3 id="fixes-11">Fixes</h3>
<ul>
<li>Fixed library incorrectly depending on / polluting the browser global scope for some objects (like Promise) by correctly creating and using a sandboxed and polyfilled <em>core-js</em> environment.</li>
<li>Fixed the <code>BarcodePicker</code> occasionally processing video frames recorded just before being hidden, shortly after being shown again (and possibly triggering &quot;old&quot; scan results) in <em>Safari</em>.</li>
<li>Fixed <code>BarcodePicker</code> &quot;submitFrame&quot; listeners being incorrectly called while scanning is paused.</li>
<li>Fixed <code>BarcodePicker</code> GUI incorrectly flashing when being shown after being hidden, if a code was previously scanned.</li>
</ul>
<h3 id="updates-11">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.10.1.</li>
<li>Switched <em>@babel/runtime</em> library with <em>@babel/runtime-corejs2</em>.</li>
<li>Updated <em>adapter</em> library to version 7.1.1.</li>
<li>Updated <em>howler</em> library to version 2.1.1.</li>
</ul>
<h2 id="400-2018-12-07">4.0.0 (2018-12-07)</h2>
<h3 id="additions-8">Additions</h3>
<ul>
<li>Added new <em>Micro QR</em> symbology support and relative <code>Barcode.Symbology.MICRO_QR</code> enumeration value.</li>
<li>Added new <em>LAPA4SC</em> (Posti LAPA 4 State Code) symbology support and relative <code>Barcode.Symbology.LAPA4SC</code> enumeration value.</li>
<li>Added better error handling and clearer console error messages in case the <code>scandit-engine-sdk.wasm</code> file cannot be retrieved correctly.</li>
<li>Added new <code>Scanner.getImageSettings()</code> and <code>Scanner.getScanSettings()</code> functions to respectively get the currently used <code>ImageSettings</code> and <code>ScanSettings</code> objects (use <code>BarcodePicker.getScanner()</code> to retrieve its internally used <code>Scanner</code> intance).</li>
</ul>
<h3 id="changes-7">Changes</h3>
<ul>
<li><strong>BREAKING</strong>: Removed <code>ScanditSDK.configure()</code>&#39;s <code>preloadCameras</code> and <code>preloadEngineLibrary</code> options and <code>ScanditSDK.loadEngineLibrary</code> function. Their functionality has been superseded by the (already previously existing) better possibility of calling <code>ScanditSDK.CameraAccess.getCameras()</code> (camera preloading) or creating and reusing a <code>BarcodePicker</code>/<code>Scanner</code> object in the background (engine library preloading); as explained in the README file.</li>
<li><strong>BREAKING</strong>: Replaced <code>CameraSettings.ResolutionPreference</code> numerical enumeration values in favor of string values for optional easier JavaScript usage (ex. <code>CameraSettings.ResolutionPreference.FULL_HD</code> is now <code>&quot;full-hd&quot;</code> instead of <code>0</code>).</li>
<li>Optimized <em>external Scandit Engine library</em> (WebAssembly) code size and structure, resulting in much faster loading times (more than twice as fast in some cases).</li>
<li>Optimized <code>scandit-engine-sdk.wasm</code> retrieval: in case the file is served with incorrect MIME type, an additional network request to the server is not needed anymore and previously downloaded data is reused for WebAssembply compilation.</li>
</ul>
<h3 id="fixes-12">Fixes</h3>
<ul>
<li>Fixed internal WebAssembly FileSystem sync issue causing increased resource usage and console messages to appear when under load.</li>
<li>Fixed incorrect video feed display when the <code>BarcodePicker</code>&#39;s containing element is changed or resized in <em>Edge</em>.</li>
<li>Fixed <code>BarcodePicker.isMirrorImageEnabled()</code> function to correctly return camera feed video mirroring status in all situations depending on camera access.</li>
<li>Fixed <code>BarcodePicker.setMirrorImageEnabled()</code> function to correctly apply and store camera feed video mirroring preferences per camera in all situations.</li>
</ul>
<h3 id="updates-12">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.10-beta.1.</li>
<li>Updated <em>@babel/runtime</em> library to version 7.2.0.</li>
<li>Updated <em>adapter</em> library to version 6.4.8.</li>
</ul>
<h2 id="320-2018-10-26">3.2.0 (2018-10-26)</h2>
<h3 id="additions-9">Additions</h3>
<ul>
<li>Added new <em>Code 32</em> symbology support and relative <code>Barcode.Symbology.CODE32</code> enumeration value.</li>
</ul>
<h3 id="fixes-13">Fixes</h3>
<ul>
<li>Fixed failure to access the camera on mac OS in <em>Safari</em> 12.</li>
<li>Fixed failure to access the camera on some specific mobile devices in <em>Chrome</em>.</li>
<li>Fixed failure to correctly detect the browser as unsupported (and crashing instead) in some older browsers, like <em>Internet Explorer</em>.</li>
</ul>
<h3 id="updates-13">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.9.2.</li>
<li>Updated <em>adapter</em> library to version 6.4.4.</li>
<li>Updated <em>ua-parser-js</em> library to version 0.7.19.</li>
</ul>
<h2 id="313-2018-10-12">3.1.3 (2018-10-12)</h2>
<h3 id="fixes-14">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker.create()</code> resolving to the picker before the camera is accessed when camera access is enabled.</li>
<li>Fixed <code>BarcodePicker.resumeScanning()</code>, <code>BarcodePicker.accessCamera()</code>, <code>BarcodePicker.setActiveCamera()</code> and <code>BarcodePicker.applyCameraSettings()</code> triggering unnecessary camera access operations when called while the camera is currently being accessed for other reasons.</li>
<li>Fixed <code>CameraAccess.getCameras()</code> triggering unnecessary camera access operations when called while the camera is currently being accessed for other reasons.</li>
<li>Fixed incorrect or missing video feed display in some situations in <em>Edge</em>.</li>
</ul>
<h3 id="updates-14">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime</em> library to version 7.1.2.</li>
<li>Updated <em>adapter</em> library to version 6.4.0.</li>
<li>Updated <em>howler</em> library to version 2.0.15.</li>
</ul>
<h2 id="312-2018-08-29">3.1.2 (2018-08-29)</h2>
<h3 id="fixes-15">Fixes</h3>
<ul>
<li>Fixed important memory leak happening only in <em>Safari</em> that caused ever increasing memory usage and page crashes. Now memory usage remains stable and crashes are avoided.</li>
<li>Fixed <em>Safari</em> on <em>iOS</em> not correctly resuming camera video after the user exernally pauses and resumes the camera via the browser&#39;s camera access button.</li>
<li>Fixed <em>Safari</em> on <em>iOS</em> not correctly resuming camera video after an incoming call or other OS level interruption.</li>
<li>Fixed missing type information when trying to use the library in a TypeScript project.</li>
</ul>
<h2 id="311-2018-08-16">3.1.1 (2018-08-16)</h2>
<h3 id="additions-10">Additions</h3>
<ul>
<li>Added a new <code>example_background.html</code> file showing how to initialize a <code>BarcodePicker</code> object before it&#39;s needed and then start it on command.</li>
</ul>
<h3 id="changes-8">Changes</h3>
<ul>
<li>Online license verification now only needs network calls on first usage of the library, subsequent loads use cached information and don&#39;t require network calls anymore. This also makes library loading faster.</li>
</ul>
<h3 id="fixes-16">Fixes</h3>
<ul>
<li>Fixed camera access sometimes failing in <em>Safari</em> with a generic &quot;Invalid constraint&quot; error.</li>
<li>Fixed incorrect camera being accessed in some situations by the <code>BarcodePicker</code> in <em>Firefox</em>.</li>
<li>Fixed <code>CameraAccess.getCameras()</code> returning camera objects with empty labels in <em>Firefox</em> when called multiple times.</li>
<li>Fixed <code>CameraAccess.getCameras()</code> not returning up-to-date camera objects.</li>
</ul>
<h3 id="updates-15">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.8.2.</li>
</ul>
<h2 id="310-2018-07-27">3.1.0 (2018-07-27)</h2>
<h3 id="additions-11">Additions</h3>
<ul>
<li>Added a new <code>BarcodePicker.onSubmitFrame()</code> function to register a listener to get a <code>ScanResult</code> whenever a frame is submitted for processing, making it possible to retrieve the frame before scanning is performed.</li>
<li>Added new <code>BarcodePicker.removeSubmitFrameListener()</code> and <code>BarcodePicker.removeSubmitFrameListeners()</code> functions to remove the new &quot;submitFrame&quot; listeners.</li>
</ul>
<h3 id="changes-9">Changes</h3>
<ul>
<li>Improved scanning speed in &quot;single image mode&quot;.</li>
<li>Improved barcode recognition for common large barcode scenarios in &quot;single image mode&quot;.</li>
<li>Improved &quot;single image mode&quot; button area for easier clicking/tapping.</li>
<li>Improved &quot;single image mode&quot; button visibility in some situations.</li>
<li>Improved &quot;single image mode&quot; button display and resizing at different dimensions.</li>
</ul>
<h3 id="fixes-17">Fixes</h3>
<ul>
<li>Fixed &quot;single image mode&quot; occasionally triggering a <code>ScanResult</code> event with empty <em>barcodes</em> and unexpected <em>imageData</em>/<em>imageSettings</em> followed by a correctly populated <code>ScanResult</code> event when some barcodes are successfully scanned.</li>
<li>Fixed missing font color information for &quot;single image mode&quot; button.</li>
<li>Fixed incorrect typing information for <code>BarcodePicker.removeScanErrorListener()</code>.</li>
<li>Fixed failure to compile TypeScript version of the library.</li>
</ul>
<h3 id="updates-16">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> with a fix for a rare bug that could cause the same barcode to be reported twice in the scan results.</li>
<li>Updated <em>adapter</em> library to version 6.3.0.</li>
</ul>
<h2 id="300-2018-07-18">3.0.0 (2018-07-18)</h2>
<h3 id="additions-12">Additions</h3>
<ul>
<li>Implemented a new &quot;single image mode&quot; for the <code>BarcodePicker</code> configured via the <code>singleImageMode</code> option on creation. This mode is meant as an alternative/fallback mode (provided by default as fallback) for a <code>BarcodePicker</code> to provide single camera pictures to be scanned. It still performs all operations locally in the browser, but trades off continuous camera stream access for (more high quality) single snapshot scanning; this results in less browser features needed for the library to work and extended browser support. In &quot;single image mode&quot; a specially set UI is provided which enables users to click/tap to directly take a picture with the camera (mobile/tablet) or upload a file (desktop), this picture is then scanned and the results are provided. In this mode special camera access permissions don&#39;t have to be requested.</li>
</ul>
<h3 id="changes-10">Changes</h3>
<ul>
<li><strong>BREAKING</strong>: <code>UnsupportedBrowserError</code> now has a new <code>data</code> property containing more details regarding the compatibility level of the used OS/browser in a new <code>BrowserCompatibility</code> object. The <code>message</code> property in the error object is now always the same generic message.</li>
<li><strong>BREAKING</strong>: Deprecated errors of type <code>SourceUnavailableError</code> that can happen on some older browsers when accessing the camera are now automatically mapped to the more recent type: <code>NotReadableError</code>.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.GUIStyle</code> numerical enumeration values.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>Camera.Type</code> numerical enumeration values.</li>
<li>Improved handling of camera access failures in some situations to prevent unhandled exceptions.</li>
<li>Implemented cache busting mechanism to ensure the <em>external Scandit Engine library</em> JS and WASM files are refreshed and downloaded from the server when a new version of the library is released.</li>
</ul>
<h3 id="fixes-18">Fixes</h3>
<ul>
<li>Fixed very rare internal engine errors that could happen when converting between number representations (causing &quot;Out of bounds Trunc operation&quot; errors).</li>
<li>Fixed <code>BarcodePicker</code> GUI disappearing when the source element has a CSS transformation applied to it.</li>
<li>Fixed incorrect behaviour due to engine location configuration causing an error when trying to load cached compiled WebAssembly code.</li>
<li>Fixed rare condition where slow camera access could cause an error and stop the scanning process before it could start.</li>
</ul>
<h3 id="updates-17">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.8.1.</li>
<li>Updated <em>eventemitter3</em> library to version 3.1.0.</li>
<li>Updated <em>howler</em> library to version 2.0.13.</li>
<li>Updated <em>tslib</em> library to version 1.9.3.</li>
</ul>
<h2 id="251-2018-07-02">2.5.1 (2018-07-02)</h2>
<h3 id="fixes-19">Fixes</h3>
<ul>
<li>Fixed a bug that caused the library to fail when showing video output in some browsers.</li>
</ul>
<h3 id="updates-18">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> with a fix for a rare QR code bug.</li>
</ul>
<h2 id="250-2018-06-29">2.5.0 (2018-06-29)</h2>
<h3 id="additions-13">Additions</h3>
<ul>
<li>Added a new <code>BarcodePicker.setCameraSwitcherEnabled()</code> function to dynamically show or hide the GUI button to switch between different cameras, plus a relative <code>BarcodePicker.isCameraSwitcherEnabled()</code> function to get the current status.</li>
<li>Added a new <code>BarcodePicker.setTorchToggleEnabled()</code> function to dynamically show or hide a GUI button to toggle device torch on/off, plus a relative <code>BarcodePicker.isTorchToggleEnabled()</code> function to get the current status.</li>
<li>Added a new <code>BarcodePicker.setTapToFocusEnabled()</code> function to dynamically enable or disable manual camera focus when clicking/tapping on the video, plus a relative <code>BarcodePicker.isTapToFocusEnabled()</code> function to get the current status.</li>
<li>Added a new <code>BarcodePicker.setPinchToZoomEnabled()</code> function to dynamically enable or disable camera zoom control via pinching gesture on the video, plus a relative <code>BarcodePicker.isPinchToZoomEnabled()</code> function to get the current status.</li>
<li>Added a new <code>BarcodePicker.getScanner()</code> function to retrieve the initialized (and possibly configured) <code>Scanner</code> object internally used by the <code>BarcodePicker</code> instance.</li>
<li>Added a new <code>scanner</code> option to <code>BarcodePicker.create()</code> to pass and use an already initialized (and possibly configured) <code>Scanner</code> object on creation. Using this when needed can lead to faster component initalization thanks to the reuse of the already available <em>external Scandit Engine library</em> in the object.</li>
<li>Added a new <code>destroyScanner</code> argument (enabled by default) to the <code>BarcodePicker.destroy()</code> function, allowing to prevent <code>Scanner</code> destruction on <code>BarcodePicker</code> destruction.</li>
</ul>
<h3 id="changes-11">Changes</h3>
<ul>
<li>Changed <code>BarcodePicker.setActiveCamera()</code>&#39;s <code>camera</code> argument to be optional: when not provided the default camera is selected.</li>
<li>Improved error reporting when getting/setting symbology settings for invalid symbologies.</li>
<li>Documented new <em>Samsung Internet Browser 7+</em> support.</li>
</ul>
<h3 id="fixes-20">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker.pauseScanning()</code> not pausing camera input if the relative argument is passed and the <code>BarcodePicker</code> is already in a paused state.</li>
<li>Fixed <code>BarcodePicker.accessCamera()</code> not re-accessing the camera when camera access was previously paused via <code>BarcodePicker.pauseScanning()</code>.</li>
</ul>
<h3 id="updates-19">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.8.0.</li>
</ul>
<h2 id="245-2018-06-13">2.4.5 (2018-06-13)</h2>
<h3 id="fixes-21">Fixes</h3>
<ul>
<li>Fixed an important bug causing the <em>external Scandit Engine library</em> to regularly block while making network requests on startup and regularly after scanning a barcode, this is now correctly handled in the background. Now startup times are slightly faster, online status is not required after library initialization and subsequent scans of barcodes are smoother and without interruptions (network conditions don&#39;t affect all these scenarios anymore).</li>
</ul>
<h2 id="244-2018-06-05">2.4.4 (2018-06-05)</h2>
<h3 id="changes-12">Changes</h3>
<ul>
<li>Correctly throw <code>UnsupportedBrowserError</code> in case one of the WebAssembly-bugged <em>iOS</em> versions is used (11.2.2/11.2.5/11.2.6).</li>
<li>Show alerts about internal engine errors by default only when running on a local IP address (still always logged to console).</li>
</ul>
<h3 id="updates-20">Updates</h3>
<ul>
<li>Updated <em>adapter</em> library to version 6.2.1.</li>
<li>Updated <em>howler</em> library to version 2.0.12.</li>
<li>Updated <em>tslib</em> library to version 1.9.2.</li>
</ul>
<h2 id="243-2018-05-31">2.4.3 (2018-05-31)</h2>
<h3 id="changes-13">Changes</h3>
<ul>
<li>Removed automatic WebView classification as unsupported in <em>Android</em>, as actual support might work depending on the containing app.</li>
</ul>
<h2 id="242-2018-05-22">2.4.2 (2018-05-22)</h2>
<h3 id="changes-14">Changes</h3>
<ul>
<li>Reduced <em>external Scandit Engine library</em> (WebAssembly) code size.</li>
<li>Improved general frame processing speed.</li>
</ul>
<h3 id="updates-21">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.8-beta.2.</li>
</ul>
<h2 id="241-2018-04-27">2.4.1 (2018-04-27)</h2>
<h3 id="fixes-22">Fixes</h3>
<ul>
<li>Fixed incorrect behaviour of some browsers causing an error when trying to load cached compiled WebAssembly code.</li>
</ul>
<h3 id="updates-22">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.7.2.</li>
</ul>
<h2 id="240-2018-04-25">2.4.0 (2018-04-25)</h2>
<h3 id="additions-14">Additions</h3>
<ul>
<li>Implemented caching of compiled WebAssembly code on browsers that support this (currently only <em>Firefox</em>), this makes subsequent loads of the library much faster and don&#39;t require re-downloading WebAssembly files.</li>
<li>Implemented functionality to retrieve image data information whenever a frame is processed by a <code>BarcodePicker</code>.</li>
<li>Added a new <code>imageData</code> property to the <code>ScanResult</code> object, containing the raw image byte data of the processed frame.</li>
<li>Added a new <code>imageSettings</code> property to the <code>ScanResult</code> object, containing the image settings used to parse the image data of the processed frame.</li>
<li>Added a new <code>BarcodePicker.onProcessFrame()</code> function to register a listener to get a <code>ScanResult</code> whenever a frame is processed, independently from the number of recognized barcodes.</li>
<li>Added new <code>BarcodePicker.removeProcessFrameListener()</code> and <code>BarcodePicker.removeProcessFrameListeners()</code> functions to remove the new &quot;processFrame&quot; listeners.</li>
</ul>
<h3 id="changes-15">Changes</h3>
<ul>
<li>Improved detection of missing browser / OS functionality in WebView scenarios on <em>Android</em> devices.</li>
<li>Improved CHANGELOG format.</li>
</ul>
<h3 id="updates-23">Updates</h3>
<ul>
<li>Updated <em>adapter</em> library to version 6.1.5.</li>
</ul>
<h2 id="230-2018-04-12">2.3.0 (2018-04-12)</h2>
<h3 id="additions-15">Additions</h3>
<ul>
<li>Implemented object fit options for <code>BarcodePicker</code> objects, to set the video feed to &quot;cover&quot; or &quot;contain&quot; and thus be resized differently inside the given origin element.</li>
<li>Added a new <code>videoFit</code> option to <code>BarcodePicker.create()</code> to set video element fit type on creation.</li>
<li>Added a new <code>BarcodePicker.setVideoFit()</code> function to set fit type dynamically for the video element.</li>
<li>Added a new <code>BarcodePicker.ObjectFit</code> enumeration to list the different types of object fit types available.</li>
</ul>
<h3 id="changes-16">Changes</h3>
<ul>
<li>Improved localization and scanning performance of challenging 1D codes in the center of the video frame.</li>
</ul>
<h3 id="fixes-23">Fixes</h3>
<ul>
<li>Fixed and improved camera enumeration and selection in <em>Firefox</em>.</li>
<li>Fixed incorrect video feed display in some situations in <em>Edge</em>.</li>
<li>Fixed incorrect application of scanning search area settings in some edge cases.</li>
</ul>
<h3 id="deprecations-1">Deprecations</h3>
<ul>
<li>Deprecated <code>BarcodePicker.GUIStyle</code> numerical enumeration values in favor of string values for optional easier JavaScript usage (ex. <code>BarcodePicker.GUIStyle.LASER</code> is now <code>&quot;laser&quot;</code> instead of <code>1</code>).</li>
<li>Deprecated <code>Camera.Type</code> numerical enumeration values in favor of string values for optional easier JavaScript usage (ex. <code>Camera.Type.FRONT</code> is now <code>&quot;front&quot;</code> instead of <code>0</code>).</li>
</ul>
<h2 id="221-2018-04-04">2.2.1 (2018-04-04)</h2>
<h3 id="fixes-24">Fixes</h3>
<ul>
<li>Fixed failing camera video feed recovery after unexpected camera identifier changes in <em>Safari</em>.</li>
</ul>
<h2 id="220-2018-03-28">2.2.0 (2018-03-28)</h2>
<h3 id="additions-16">Additions</h3>
<ul>
<li>Implemented scanning speed throttling functionality to allow tradeoffs between scan performance and power usage.</li>
<li>Added a new <code>targetScanningFPS</code> option to <code>BarcodePicker.create</code> to set target frames per second to be processed/scanned.</li>
<li>Added a new <code>BarcodePicker.setTargetScanningFPS()</code> function to set target frames per second to be processed/scanned.</li>
</ul>
<h3 id="changes-17">Changes</h3>
<ul>
<li>Improved documentation.</li>
</ul>
<h2 id="211-2018-03-22">2.1.1 (2018-03-22)</h2>
<h3 id="fixes-25">Fixes</h3>
<ul>
<li>Fixed incorrect domain name detection and verification in some particular local testing environments.</li>
</ul>
<h3 id="updates-24">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.7.</li>
</ul>
<h2 id="210-2018-03-19">2.1.0 (2018-03-19)</h2>
<h3 id="additions-17">Additions</h3>
<ul>
<li>Implemented pinch-to-zoom camera functionality for devices supporting it (currently available only in <em>Chrome</em>).</li>
<li>Added a new <code>enablePinchToZoom</code> option to <code>BarcodePicker.create()</code> to enable/disable pinch-to-zoom (when available).</li>
<li>Added a new <code>BarcodePicker.setZoom()</code> function to manually set zoom level (when available).</li>
</ul>
<h3 id="fixes-26">Fixes</h3>
<ul>
<li>Fixed tap-to-focus functionality failing to work on some devices.</li>
</ul>
<h2 id="200-2018-03-15">2.0.0 (2018-03-15)</h2>
<h3 id="additions-18">Additions</h3>
<ul>
<li>Added functionalities for easier/better usage of single-instance background <code>BarcodePicker</code>s that don&#39;t acccess cameras all the time and are shared for different elements.</li>
<li>Added a new <code>pauseCamera</code> option to <code>BarcodePicker.pauseScanning()</code> to also pause camera input, allowing to interrupt (and later resume) the current camera stream.</li>
<li>Added a new <code>BarcodePicker.reassignOriginElement()</code> function to re-assign the <code>BarcodePicker</code> to a different HTML element.</li>
</ul>
<h3 id="changes-18">Changes</h3>
<ul>
<li><strong>BREAKING</strong>: <code>BarcodePicker.resumeScanning()</code> function now returns a promise resolving to the object instance instead of directly to the instance; this is due to the fact that the function might need to access the camera again.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.UIStyle</code> enumeration.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.UIStyle.SCANLINE</code> enumeration value.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.create()</code>&#39;s <code>uiStyle</code> option.</li>
</ul>
<h3 id="updates-25">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.7-beta.1.</li>
<li>Updated <em>adapter</em> library to version 6.1.4.</li>
</ul>
<h2 id="147-2018-03-05">1.4.7 (2018-03-05)</h2>
<h3 id="fixes-27">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker</code> trying to access again the camera after being destroyed.</li>
<li>Fixed <code>BarcodePicker</code> still referencing the used camera as the active camera after being destroyed.</li>
</ul>
<h2 id="146-2018-02-23">1.4.6 (2018-02-23)</h2>
<h3 id="changes-19">Changes</h3>
<ul>
<li>Greatly improved <em>external Scandit Engine library</em> loading times, especially on <em>iOS</em> devices.</li>
<li>Reduced <em>external Scandit Engine library</em> (WebAssembly) code size.</li>
<li>Improved camera initialization for slower devices.</li>
</ul>
<h3 id="fixes-28">Fixes</h3>
<ul>
<li>Fixed <em>external Scandit Engine library</em> failing to load in <em>Edge</em>.</li>
</ul>
<h2 id="145-2018-02-22">1.4.5 (2018-02-22)</h2>
<h3 id="fixes-29">Fixes</h3>
<ul>
<li>Fixed camera initialization failing in <em>Edge</em>.</li>
<li>Fixed camera initialization failing for some combinations of browsers/devices incorrectly reporting camera failures.</li>
<li>Fixed <code>BarcodePicker</code> instances not being correctly destroyed when never accessing a camera.</li>
</ul>
<h2 id="144-2018-02-14">1.4.4 (2018-02-14)</h2>
<h3 id="updates-26">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.6.2.</li>
<li>Updated <em>adapter</em> library to version 6.1.1.</li>
<li>Updated <em>howler</em> library to version 2.0.9.</li>
<li>Updated <em>tslib</em> library to version 1.9.0.</li>
</ul>
<h2 id="143-2018-02-08">1.4.3 (2018-02-08)</h2>
<h3 id="fixes-30">Fixes</h3>
<ul>
<li>Fixed incorrect back camera identification for some devices.</li>
</ul>
<h2 id="142-2018-01-12">1.4.2 (2018-01-12)</h2>
<h3 id="changes-20">Changes</h3>
<ul>
<li>Added documentation note about problems with <em>iOS</em> 11.2.2/11.2.5/11.2.6.</li>
</ul>
<h3 id="updates-27">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.6.</li>
</ul>
<h2 id="141-2018-01-11">1.4.1 (2018-01-11)</h2>
<h3 id="fixes-31">Fixes</h3>
<ul>
<li>Switched <em>external Scandit Engine library</em> to allow memory growth in order to prevent random memory allocation failures.</li>
</ul>
<h2 id="140-2018-01-08">1.4.0 (2018-01-08)</h2>
<h3 id="additions-19">Additions</h3>
<ul>
<li>Implemented Scandit Parser Library support to parse data string into structured data. For details refer to the new <code>Parser</code> object and the <a href="https://docs.scandit.com/parser/index.html">Scandit Parser Library&#39;s documentation</a>.</li>
<li>Added new <code>BarcodePicker.createParserForFormat()</code> and <code>Scanner.createParserForFormat()</code> functions to create and use <code>Parser</code> objects.</li>
</ul>
<h3 id="changes-21">Changes</h3>
<ul>
<li>Improved documentation.</li>
</ul>
<h2 id="132-2017-12-21">1.3.2 (2017-12-21)</h2>
<h3 id="fixes-32">Fixes</h3>
<ul>
<li>Fixed <em>external Scandit Engine library</em> still already registering a device activation on initial configuration in some cases.</li>
<li>Fixed bug preventing scan settings to be changed after the initial setup for <code>Scanner</code> and <code>BarcodePicker</code> objects.</li>
<li>Improved memory usage and speed when modifying scan settings.</li>
</ul>
<h3 id="updates-28">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.6-beta.2.</li>
<li>Updated <em>howler</em> library to version 2.0.7.</li>
</ul>
<h2 id="131-2017-12-19">1.3.1 (2017-12-19)</h2>
<h3 id="fixes-33">Fixes</h3>
<ul>
<li>Fixed <em>external Scandit Engine library</em> registering a device activation on initial configuration: now a device registered only at the time the first frame is processed. This means that unused <code>Scanner</code> objects or <code>BarcodePicker</code> objects starting in a paused state or with no camera access will no longer trigger registrations.</li>
</ul>
<h2 id="130-2017-12-15">1.3.0 (2017-12-15)</h2>
<h3 id="additions-20">Additions</h3>
<ul>
<li>Implemented functionality to delay camera access (and thus possible user permission requests) to after a <code>BarcodePicker</code> has been created, allowing for early <em>external Scandit Engine library</em> initialization.</li>
<li>Added a new <code>accessCamera</code> option to <code>BarcodePicker.create()</code> to enable/disable camera access on <code>BarcodePicker</code> creation.</li>
<li>Added a new <code>BarcodePicker.accessCamera()</code> function to access the camera after creation (if disabled on creation).</li>
</ul>
<h3 id="updates-29">Updates</h3>
<ul>
<li>Updated <em>adapter</em> library to version 6.0.3.</li>
<li>Updated <em>eventemitter3</em> library to version 3.0.0.</li>
<li>Updated <em>tslib</em> library to version 1.8.1.</li>
</ul>
<h2 id="122-2017-12-05">1.2.2 (2017-12-05)</h2>
<h3 id="fixes-34">Fixes</h3>
<ul>
<li>Fixed possible problems during camera detection for some older browsers.</li>
<li>Fixed camera initialization failing for some combinations of browsers/devices incorrectly reporting camera failures.</li>
<li>Fixed camera initialization sometimes failing in <em>Safari</em> mobile on <em>iOS</em> 11.0 - 11.0.2.</li>
<li>Fixed <code>BarcodePicker</code> element sometimes overflowing its given origin element by 1 pixel.</li>
</ul>
<h2 id="121-2017-11-29">1.2.1 (2017-11-29)</h2>
<h3 id="fixes-35">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker</code> not getting hidden when the relative option or function is provided/called.</li>
<li>Fixed incorrect <code>BarcodePicker</code> visibility option and function only partially hiding the containing element.</li>
<li>Fixed <code>BarcodePicker</code>&#39;s <code>originElement</code> being left in an inconsistent state after being destroyed.</li>
<li>Fixed incorrect camera front/back detection on some devices set to a system language different from english.</li>
</ul>
<h2 id="120-2017-11-27">1.2.0 (2017-11-27)</h2>
<h3 id="additions-21">Additions</h3>
<ul>
<li>Added a new <code>BarcodePicker.setGuiStyle()</code> function to set the GUI after creation.</li>
</ul>
<h3 id="changes-22">Changes</h3>
<ul>
<li>Improved README documentation.</li>
<li>Improved <code>BarcodePicker</code> documentation.</li>
</ul>
<h3 id="fixes-36">Fixes</h3>
<ul>
<li>Correctly detect failed camera initialization in various situations due to unforeseen hardware issues and reject promises with a <code>NotReadableError</code> error plus close the video stream when it&#39;s the case.</li>
<li>Fixed broken camera selection in <code>BarcodePicker</code> when one of the cameras cannot be accessed.</li>
</ul>
<h3 id="deprecations-2">Deprecations</h3>
<ul>
<li>Deprecated <code>BarcodePicker.UIStyle</code> in favor of <code>BarcodePicker.GuiStyle</code> to be consistent with other existing Scandit SDKs.</li>
<li>Deprecated <code>BarcodePicker.create()</code>&#39;s <code>uiStyle</code> option in favor of <code>guiStyle</code>.</li>
<li>Deprecated <code>BarcodePicker.UIStyle.SCANLINE</code> in favor of <code>BarcodePicker.GuiStyle.LASER</code> to be consistent with other existing Scandit SDKs.</li>
</ul>
<h2 id="110-2017-11-17">1.1.0 (2017-11-17)</h2>
<h3 id="additions-22">Additions</h3>
<ul>
<li>Implemented tap-to-focus camera functionality for devices supporting it (currently available only in <em>Chrome</em>).</li>
<li>Implemented device torch/torchlight toggle functionality and relative button for devices supporting it (currently available only in <em>Chrome</em>).</li>
<li>Added a new <code>enableTapToFocus</code> option to <code>BarcodePicker.create()</code> to enable/disable tap-to-focus (when available).</li>
<li>Added a new <code>enableTorchToggle</code> option to <code>BarcodePicker.create()</code> to enable/disable torch toggle button (when available).</li>
<li>Added a new <code>BarcodePicker.setTorchEnabled()</code> function to enable/disable torch (when available).</li>
</ul>
<h3 id="changes-23">Changes</h3>
<ul>
<li>Improved <code>BarcodePicker</code> buttons and touch events responsiveness.</li>
<li>Improved README documentation.</li>
<li>Improved CHANGELOG format.</li>
<li>Improved documentation navigation.</li>
</ul>
<h3 id="fixes-37">Fixes</h3>
<ul>
<li>Fixed missing camera switcher button when preselecting a camera on <code>BarcodePicker</code> creation.</li>
<li>Fixed incorrect domain name detection and verification in <em>Firefox</em>.</li>
<li>Fixed buttons and touch events sometimes not being triggered on mobile devices.</li>
</ul>
<h3 id="updates-30">Updates</h3>
<ul>
<li>Updated <em>adapter</em> library to version 6.0.2.</li>
</ul>
<h2 id="108-2017-11-15">1.0.8 (2017-11-15)</h2>
<h3 id="additions-23">Additions</h3>
<ul>
<li>Implemented automatic regularly triggered focus procedure for cameras not supporting continuous focus mode (but supporting at least manual focus); this greatly increases usability and scanning performance. Currently available only in <em>Chrome</em>.</li>
</ul>
<h3 id="changes-24">Changes</h3>
<ul>
<li>Improved <code>BarcodePicker</code> documentation.</li>
</ul>
<h3 id="fixes-38">Fixes</h3>
<ul>
<li>Fixed incorrect domain name detection and verification in <em>Edge</em>.</li>
</ul>
<h2 id="107-2017-11-13">1.0.7 (2017-11-13)</h2>
<h3 id="fixes-39">Fixes</h3>
<ul>
<li>Fixed <code>ScanditSDK.configure()</code> not rejecting in case of unsupported browsers when not performing any of the preloading functions, now the promise is correctly rejected.</li>
<li>Fixed incorrect error thrown on <code>ScanditSDK.configure</code> calls in case of unsupported browsers, now the promise is correctly rejected with said error.</li>
<li>Fixed incorrect error thrown on <code>ScanditSDK.loadEngineLibrary</code> calls in case of unsupported browsers, now the promise is correctly rejected with said error.</li>
<li>Fixed incorrect error thrown when a code containing data in non-UTF-8 format is scanned, now the barcode result is correctly created with an empty parsed data string.</li>
</ul>
<h2 id="106-2017-11-10">1.0.6 (2017-11-10)</h2>
<h3 id="fixes-40">Fixes</h3>
<ul>
<li>Fixed incorrect camera initialization and metadata storage in <em>Firefox mobile</em>.</li>
</ul>
<h2 id="105-2017-11-10">1.0.5 (2017-11-10)</h2>
<h3 id="additions-24">Additions</h3>
<ul>
<li>Added a small shadow to the camera switcher button to make it more visible on bright backgrounds.</li>
</ul>
<h3 id="changes-25">Changes</h3>
<ul>
<li>Altered function call (same functionality) to make the library correctly parsable by <em>Internet Explorer 11</em>, and more graciously fail with built-in errors later.</li>
<li>Improved README documentation.</li>
<li>Minor CHANGELOG formatting changes.</li>
</ul>
<h2 id="104-2017-11-09">1.0.4 (2017-11-09)</h2>
<h3 id="fixes-41">Fixes</h3>
<ul>
<li>Fixed camera feed being interrupted in <em>Safari</em> when <code>BarcodePicker</code> element or page loses and regains visibility.</li>
<li>Fixed rare broken camera access in <em>Safari</em> when switching between cameras or setting camera options in the <code>BarcodePicker</code>.</li>
</ul>
<h3 id="updates-31">Updates</h3>
<ul>
<li>Updated <em>adapter</em> library to version 6.0.0.</li>
</ul>
<h2 id="103-2017-11-08">1.0.3 (2017-11-08)</h2>
<h3 id="fixes-42">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker</code> video feed randomly freezing when switching between multiple cameras.</li>
<li>Fixed searchArea limitation not being correctly applied to all code types in <code>ScanSettings</code>.</li>
</ul>
<h2 id="102-2017-11-08">1.0.2 (2017-11-08)</h2>
<h3 id="changes-26">Changes</h3>
<ul>
<li>Improved <code>ScanSettings</code> documentation.</li>
<li>Improved README documentation.</li>
</ul>
<h3 id="fixes-43">Fixes</h3>
<ul>
<li>Fixed <code>Barcode</code> object to correctly contain location information as <code>Quadrilateral</code> object instead of array.</li>
</ul>
<h2 id="101-2017-11-07">1.0.1 (2017-11-07)</h2>
<h3 id="additions-25">Additions</h3>
<ul>
<li>Added missing <em>external Scandit Engine library</em> files to the build folder.</li>
</ul>
<h2 id="100-2017-11-07">1.0.0 (2017-11-07)</h2>
<ul>
<li>Initial release.</li>
</ul>

</body></html>
