dynamsoft-barcode-reader-bundle 11.4.2000-beta-202604152312 → 11.4.2000-beta-202604191847

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.html CHANGED
@@ -296,7 +296,7 @@
296
296
  cvRouter.setInput(cameraEnhancer);
297
297
 
298
298
  <span class="hljs-keyword">const</span> resultsContainer = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&quot;#results&quot;</span>);
299
- cvRouter.addResultReceiver({ <span class="hljs-attr">onDecodedBarcodesReceived</span>: <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
299
+ <span class="hljs-keyword">await</span> cvRouter.addResultReceiver({ <span class="hljs-attr">onDecodedBarcodesReceived</span>: <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
300
300
  <span class="hljs-keyword">if</span> (result.barcodeResultItems?.length) {
301
301
  resultsContainer.textContent = <span class="hljs-string">&#x27;&#x27;</span>;
302
302
  <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> item <span class="hljs-keyword">of</span> result.barcodeResultItems) {
@@ -471,7 +471,7 @@ Dynamsoft.Core.CoreModule.engineResourcePaths.rootDirectory = <span class="hljs-
471
471
  <h3 id="step-1-preload-the-module">Step 1: Preload the module</h3>
472
472
  <p>The image processing logic is encapsulated within .wasm library files, and these files may require some time for downloading. To enhance the speed, we advise utilizing the following method to preload the libraries.</p>
473
473
  <pre><code class="hljs js language-js"><span class="hljs-comment">// Preload the .wasm files</span>
474
- <span class="hljs-keyword">await</span> Dynamsoft.Core.CoreModule.loadWasm();
474
+ Dynamsoft.Core.CoreModule.loadWasm();
475
475
  </code></pre>
476
476
  <h3 id="step-2-create-a-capturevisionrouter-object">Step 2: Create a CaptureVisionRouter object</h3>
477
477
  <p>To use the SDK, we first create a <code>CaptureVisionRouter</code> object.</p>
@@ -523,11 +523,11 @@ resultReceiver.onDecodedBarcodesReceived = <span class="hljs-function">(<span c
523
523
  }
524
524
  }
525
525
  };
526
- cvRouter.addResultReceiver(resultReceiver);
526
+ <span class="hljs-keyword">await</span> cvRouter.addResultReceiver(resultReceiver);
527
527
  </code></pre>
528
528
  <p>You can also write code like this. It is the same.</p>
529
529
  <pre><code class="hljs javascript language-javascript"><span class="hljs-keyword">const</span> resultsContainer = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&quot;#results&quot;</span>);
530
- cvRouter.addResultReceiver({ <span class="hljs-attr">onDecodedBarcodesReceived</span>: <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
530
+ <span class="hljs-keyword">await</span> cvRouter.addResultReceiver({ <span class="hljs-attr">onDecodedBarcodesReceived</span>: <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
531
531
  <span class="hljs-keyword">if</span> (result.barcodeResultItems?.length) {
532
532
  resultsContainer.textContent = <span class="hljs-string">&#x27;&#x27;</span>;
533
533
  <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> item <span class="hljs-keyword">of</span> result.barcodeResultItems) {
@@ -619,7 +619,7 @@ settings.barcodeSettings.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_Q
619
619
  <p>Please be aware that it is necessary to update the <code>CapturedResultReceiver</code> object to obtain the original image. For instance:</p>
620
620
  <pre><code class="hljs javascript language-javascript"><span class="hljs-keyword">const</span> EnumCRIT = Dynamsoft.Core.EnumCapturedResultItemType; <span class="hljs-comment">// Enum for captured result item types.</span>
621
621
  <span class="hljs-comment">// Create a result receiver to handle the results.</span>
622
- cvRouter.addResultReceiver({
622
+ <span class="hljs-keyword">await</span> cvRouter.addResultReceiver({
623
623
  <span class="hljs-comment">// This function is called when any capture result is received.</span>
624
624
  <span class="hljs-attr">onCapturedResultReceived</span>: <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
625
625
  <span class="hljs-comment">//Check for barcode results</span>
@@ -745,24 +745,24 @@ resultReceiver.onDecodedBarcodesReceived = <span class="hljs-function">(<span cl
745
745
  Dynamsoft.DCE.Feedback.beep();
746
746
  }
747
747
  };
748
- cvRouter.addResultReceiver(resultReceiver);
748
+ <span class="hljs-keyword">await</span> cvRouter.addResultReceiver(resultReceiver);
749
749
  </code></pre>
750
750
  <h2 id="customizing-the-ui">Customizing the UI</h2>
751
751
  <pre><code class="hljs javascript language-javascript"><span class="hljs-comment">// Create a CameraView instance with default settings</span>
752
752
  <span class="hljs-keyword">let</span> cameraView = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance();
753
- <span class="hljs-comment">// Create a CameraView instance with a specified HTML file path, typically a local or remote URL</span>
754
- <span class="hljs-keyword">let</span> cameraView1 = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance(<span class="hljs-string">&#x27;@engineResourcePath/dce.mobile-native.ui.html&#x27;</span>);
753
+ <span class="hljs-comment">// Create a CameraView instance with a specified XML file path, typically a local or remote URL</span>
754
+ <span class="hljs-keyword">let</span> cameraView1 = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance(<span class="hljs-string">&#x27;@engineResourcePath/dce.ui.v5.xml&#x27;</span>);
755
755
  <span class="hljs-comment">// Create a CameraView instance within a specified DOM element</span>
756
756
  <span class="hljs-keyword">let</span> cameraView2 = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance(<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">&#x27;my-ui&#x27;</span>));
757
757
  <span class="hljs-comment">// Create a CameraView instance using a custom UI file path</span>
758
- <span class="hljs-keyword">let</span> cameraView3 = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance(<span class="hljs-string">&#x27;url/to/my/ui.html&#x27;</span>);
758
+ <span class="hljs-keyword">let</span> cameraView3 = <span class="hljs-keyword">await</span> Dynamsoft.DCE.CameraView.createInstance(<span class="hljs-string">&#x27;url/to/my/ui.xml&#x27;</span>);
759
759
 
760
760
  <span class="hljs-comment">// Get the UI element associated with the cameraView instance</span>
761
761
  <span class="hljs-keyword">let</span> uiElement = cameraView.getUIElement();
762
762
  <span class="hljs-comment">// Remove the camera selection dropdown from the CameraView&#x27;s UI element</span>
763
- uiElement.shadowRoot.querySelector(<span class="hljs-string">&#x27;.dce-sel-camera&#x27;</span>).remove();
763
+ uiElement.querySelector(<span class="hljs-string">&#x27;.dce-sel-camera&#x27;</span>).remove();
764
764
  <span class="hljs-comment">// Remove the resolution selection dropdown from the CameraView&#x27;s UI element</span>
765
- uiElement.shadowRoot.querySelector(<span class="hljs-string">&#x27;.dce-sel-resolution&#x27;</span>).remove();
765
+ uiElement.querySelector(<span class="hljs-string">&#x27;.dce-sel-resolution&#x27;</span>).remove();
766
766
  </code></pre>
767
767
  <p>The UI is part of the auxiliary SDK "Dynamsoft Camera Enhancer", read more on how to <a href="https://www.dynamsoft.com/barcode-reader/docs/core/programming/features/ui-customization-js.html?lang=js">customize the UI</a>.</p>
768
768
  <h2 id="documentation">Documentation</h2>
@@ -800,7 +800,7 @@ The following table is a list of supported browsers based on the above requireme
800
800
 
801
801
  | Browser Name | Version |
802
802
  | :----------: | :--------------: |
803
- | Chrome | v78+<sup>1</sup> |
803
+ | Chrome | v88+<sup>1</sup> |
804
804
  | Firefox | v68+<sup>1</sup> |
805
805
  | Edge | v79+ |
806
806
  | Safari | v14+ |
package/README.md CHANGED
@@ -83,7 +83,7 @@ The complete code of the "Hello World" example is shown below
83
83
  cvRouter.setInput(cameraEnhancer);
84
84
 
85
85
  const resultsContainer = document.querySelector("#results");
86
- cvRouter.addResultReceiver({ onDecodedBarcodesReceived: (result) => {
86
+ await cvRouter.addResultReceiver({ onDecodedBarcodesReceived: (result) => {
87
87
  if (result.barcodeResultItems?.length) {
88
88
  resultsContainer.textContent = '';
89
89
  for (let item of result.barcodeResultItems) {
@@ -304,7 +304,7 @@ The image processing logic is encapsulated within .wasm library files, and these
304
304
 
305
305
  ```js
306
306
  // Preload the .wasm files
307
- await Dynamsoft.Core.CoreModule.loadWasm();
307
+ Dynamsoft.Core.CoreModule.loadWasm();
308
308
  ```
309
309
 
310
310
  ### Step 2: Create a CaptureVisionRouter object
@@ -375,14 +375,14 @@ resultReceiver.onDecodedBarcodesReceived = (result) => {
375
375
  }
376
376
  }
377
377
  };
378
- cvRouter.addResultReceiver(resultReceiver);
378
+ await cvRouter.addResultReceiver(resultReceiver);
379
379
  ```
380
380
 
381
381
  You can also write code like this. It is the same.
382
382
 
383
383
  ```javascript
384
384
  const resultsContainer = document.querySelector("#results");
385
- cvRouter.addResultReceiver({ onDecodedBarcodesReceived: (result) => {
385
+ await cvRouter.addResultReceiver({ onDecodedBarcodesReceived: (result) => {
386
386
  if (result.barcodeResultItems?.length) {
387
387
  resultsContainer.textContent = '';
388
388
  for (let item of result.barcodeResultItems) {
@@ -469,7 +469,7 @@ Please be aware that it is necessary to update the `CapturedResultReceiver` obje
469
469
  ```javascript
470
470
  const EnumCRIT = Dynamsoft.Core.EnumCapturedResultItemType; // Enum for captured result item types.
471
471
  // Create a result receiver to handle the results.
472
- cvRouter.addResultReceiver({
472
+ await cvRouter.addResultReceiver({
473
473
  // This function is called when any capture result is received.
474
474
  onCapturedResultReceived: (result) => {
475
475
  //Check for barcode results
@@ -634,7 +634,7 @@ resultReceiver.onDecodedBarcodesReceived = (result) => {
634
634
  Dynamsoft.DCE.Feedback.beep();
635
635
  }
636
636
  };
637
- cvRouter.addResultReceiver(resultReceiver);
637
+ await cvRouter.addResultReceiver(resultReceiver);
638
638
  ```
639
639
 
640
640
  ## Customizing the UI
@@ -642,19 +642,19 @@ cvRouter.addResultReceiver(resultReceiver);
642
642
  ```javascript
643
643
  // Create a CameraView instance with default settings
644
644
  let cameraView = await Dynamsoft.DCE.CameraView.createInstance();
645
- // Create a CameraView instance with a specified HTML file path, typically a local or remote URL
646
- let cameraView1 = await Dynamsoft.DCE.CameraView.createInstance('@engineResourcePath/dce.mobile-native.ui.html');
645
+ // Create a CameraView instance with a specified XML file path, typically a local or remote URL
646
+ let cameraView1 = await Dynamsoft.DCE.CameraView.createInstance('@engineResourcePath/dce.ui.v5.xml');
647
647
  // Create a CameraView instance within a specified DOM element
648
648
  let cameraView2 = await Dynamsoft.DCE.CameraView.createInstance(document.getElementById('my-ui'));
649
649
  // Create a CameraView instance using a custom UI file path
650
- let cameraView3 = await Dynamsoft.DCE.CameraView.createInstance('url/to/my/ui.html');
650
+ let cameraView3 = await Dynamsoft.DCE.CameraView.createInstance('url/to/my/ui.xml');
651
651
 
652
652
  // Get the UI element associated with the cameraView instance
653
653
  let uiElement = cameraView.getUIElement();
654
654
  // Remove the camera selection dropdown from the CameraView's UI element
655
- uiElement.shadowRoot.querySelector('.dce-sel-camera').remove();
655
+ uiElement.querySelector('.dce-sel-camera').remove();
656
656
  // Remove the resolution selection dropdown from the CameraView's UI element
657
- uiElement.shadowRoot.querySelector('.dce-sel-resolution').remove();
657
+ uiElement.querySelector('.dce-sel-resolution').remove();
658
658
  ```
659
659
 
660
660
  The UI is part of the auxiliary SDK "Dynamsoft Camera Enhancer", read more on how to [customize the UI](https://www.dynamsoft.com/barcode-reader/docs/core/programming/features/ui-customization-js.html?lang=js).
@@ -697,7 +697,7 @@ The following table is a list of supported browsers based on the above requireme
697
697
 
698
698
  | Browser Name | Version |
699
699
  | :----------: | :--------------: |
700
- | Chrome | v78+<sup>1</sup> |
700
+ | Chrome | v88+<sup>1</sup> |
701
701
  | Firefox | v68+<sup>1</sup> |
702
702
  | Edge | v79+ |
703
703
  | Safari | v14+ |
@@ -3318,7 +3318,7 @@ declare class Camera {
3318
3318
  resolve: () => void;
3319
3319
  reject: () => void;
3320
3320
  };
3321
- _openTimeout: number;
3321
+ _getUserMediaTimeout: number;
3322
3322
  _paused: boolean;
3323
3323
  _shouldClose: boolean;
3324
3324
  _cameraChangedWhenPaused: boolean;
@@ -3343,6 +3343,8 @@ declare class Camera {
3343
3343
  static _delayBeforeGetUserMedia: number;
3344
3344
  static _delayBeforeApplyConstraints: number;
3345
3345
  static _countEnsureResolution: number;
3346
+ static _videoPlayTimeout: number;
3347
+ static _bReopenWhenChangeResolution: boolean;
3346
3348
  static _arrConstructors: CameraZsFunc[];
3347
3349
  static _arrOnOpen: CameraZsFunc[];
3348
3350
  static _arrBeforeClose: CameraZsFunc[];
@@ -3435,6 +3437,15 @@ declare class Camera {
3435
3437
  }): Promise<void>;
3436
3438
  requestResolution(notRequired: null): Promise<void>;
3437
3439
  requestResolution(resetToDefault: undefined): Promise<void>;
3440
+ /**
3441
+ * Similar to `camera.track.applyConstraints`,
3442
+ * but auto add constraints of original camera and original resolution.
3443
+ * Primarily used for advanced camera settings like focusDistance, zoom, colorTemperature.
3444
+ * Don't directly change camera or resolution by this API,
3445
+ * use `requestCamera` and `requestResolution` instead.
3446
+ * Set camera or resolution using `applyConstraints` will result in undefined behavior.
3447
+ */
3448
+ applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
3438
3449
  /**
3439
3450
  * @param config
3440
3451
  * `x`/`y`/`width`/`height` is normally `0 ~ video.videoWidth` or `0 ~ video.videoHeight`,
@@ -3781,6 +3792,7 @@ declare namespace Camera {
3781
3792
  _dceLastResolution: any;
3782
3793
  cameraOpenTimeout: any;
3783
3794
  _bTryAnotherCameraWhenFailToOpen: boolean;
3795
+ _bAutoSingleFrameModeWhenIosPwaFail: boolean;
3784
3796
  _oriOpen(): Promise<void>;
3785
3797
  open(): Promise<void | {
3786
3798
  deviceId: string;
@@ -4101,17 +4113,17 @@ declare class Feedback {
4101
4113
  static vibrateDuration: number;
4102
4114
  }
4103
4115
  declare const DrawingStyleManager: {
4104
- STYLE_GREEN_STROKE: any;
4105
- STYLE_GREEN_STROKE_FILL: any;
4106
- STYLE_GREEN_STROKE_TRANSPARENT: any;
4107
4116
  STYLE_BLUE_STROKE: any;
4108
- STYLE_BLUE_STROKE_FILL: any;
4109
- STYLE_BLUE_STROKE_TRANSPARENT: any;
4117
+ STYLE_GREEN_STROKE: any;
4110
4118
  STYLE_ORANGE_STROKE: any;
4111
- STYLE_ORANGE_STROKE_FILL: any;
4112
- STYLE_ORANGE_STROKE_TRANSPARENT: any;
4113
4119
  STYLE_YELLOW_STROKE: any;
4120
+ STYLE_BLUE_STROKE_FILL: any;
4121
+ STYLE_GREEN_STROKE_FILL: any;
4122
+ STYLE_ORANGE_STROKE_FILL: any;
4114
4123
  STYLE_YELLOW_STROKE_FILL: any;
4124
+ STYLE_BLUE_STROKE_TRANSPARENT: any;
4125
+ STYLE_GREEN_STROKE_TRANSPARENT: any;
4126
+ STYLE_ORANGE_STROKE_TRANSPARENT: any;
4115
4127
  STYLE_YELLOW_STROKE_TRANSPARENT: any;
4116
4128
  createDrawingStyle(style: any): any;
4117
4129
  getDrawingStyle(id: any): any;
@@ -4226,7 +4238,16 @@ declare class LineDrawingItem extends DrawingItem {
4226
4238
  y: number;
4227
4239
  };
4228
4240
  };
4229
- setLine(value: any): void;
4241
+ setLine(value: {
4242
+ startPoint: {
4243
+ x: number;
4244
+ y: number;
4245
+ };
4246
+ endPoint: {
4247
+ x: number;
4248
+ y: number;
4249
+ };
4250
+ }): void;
4230
4251
  }
4231
4252
  declare class QuadDrawingItem extends DrawingItem {
4232
4253
  quad: {
@@ -4251,7 +4272,12 @@ declare class QuadDrawingItem extends DrawingItem {
4251
4272
  y: number;
4252
4273
  }[];
4253
4274
  };
4254
- setQuad(value: any): void;
4275
+ setQuad(value: {
4276
+ points: {
4277
+ x: number;
4278
+ y: number;
4279
+ }[];
4280
+ }): void;
4255
4281
  }
4256
4282
  declare class RectDrawingItem extends DrawingItem {
4257
4283
  rect: {
@@ -4276,7 +4302,12 @@ declare class RectDrawingItem extends DrawingItem {
4276
4302
  width: number;
4277
4303
  height: number;
4278
4304
  };
4279
- setRect(value: any): void;
4305
+ setRect(value: {
4306
+ x: number;
4307
+ y: number;
4308
+ width: number;
4309
+ height: number;
4310
+ }): void;
4280
4311
  }
4281
4312
  declare class TextDrawingItem extends DrawingItem {
4282
4313
  text: string;
@@ -4297,14 +4328,19 @@ declare class TextDrawingItem extends DrawingItem {
4297
4328
  height: number;
4298
4329
  }, drawingStyleId?: any);
4299
4330
  getText(): string;
4300
- setText(value: any): void;
4301
- getRect(): {
4331
+ setText(value: string): void;
4332
+ getTextRect(): {
4302
4333
  x: number;
4303
4334
  y: number;
4304
4335
  width: number;
4305
4336
  height: number;
4306
4337
  };
4307
- setRect(value: any): void;
4338
+ setTextRect(value: {
4339
+ x: number;
4340
+ y: number;
4341
+ width: number;
4342
+ height: number;
4343
+ }): void;
4308
4344
  }
4309
4345
  declare class ImageDrawingItem extends DrawingItem {
4310
4346
  image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
@@ -4332,14 +4368,25 @@ declare class ImageDrawingItem extends DrawingItem {
4332
4368
  height: number;
4333
4369
  }, maintainAspectRatio: boolean, drawingStyleId?: any);
4334
4370
  getImage(): HTMLVideoElement | HTMLCanvasElement | HTMLImageElement;
4335
- setImage(value: any): void;
4336
- getRect(): {
4371
+ setImage(image: {
4372
+ bytes: Uint8Array;
4373
+ width: number;
4374
+ height: number;
4375
+ stride: number;
4376
+ format: any;
4377
+ } | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void;
4378
+ getImageRect(): {
4337
4379
  x: number;
4338
4380
  y: number;
4339
4381
  width: number;
4340
4382
  height: number;
4341
4383
  };
4342
- setRect(value: any): void;
4384
+ setImageRect(value: {
4385
+ x: number;
4386
+ y: number;
4387
+ width: number;
4388
+ height: number;
4389
+ }): void;
4343
4390
  }
4344
4391
 
4345
4392
  declare enum EnumDrawingItemMediaType {
@@ -4355,26 +4402,14 @@ declare enum EnumDrawingItemMediaType {
4355
4402
  * Represents a text element. This allows for the inclusion of textual content as a distinct drawing item within the graphic representation.
4356
4403
  */
4357
4404
  DIMT_TEXT = 4,
4358
- /**
4359
- * Represents an arc, which is a portion of the circumference of a circle or an ellipse. Arcs are used to create curved shapes and segments.
4360
- */
4361
- DIMT_ARC = 8,
4362
4405
  /**
4363
4406
  * Represents an image. This enables embedding bitmap images within the drawing context.
4364
4407
  */
4365
4408
  DIMT_IMAGE = 16,
4366
- /**
4367
- * Represents a polygon, which is a plane figure that is described by a finite number of straight line segments connected to form a closed polygonal chain or circuit.
4368
- */
4369
- DIMT_POLYGON = 32,
4370
4409
  /**
4371
4410
  * Represents a line segment. This is the simplest form of a drawing item, defined by two endpoints and the straight path connecting them.
4372
4411
  */
4373
- DIMT_LINE = 64,
4374
- /**
4375
- * Represents a group of drawing items. This allows for the logical grouping of multiple items, treating them as a single entity for manipulation or transformation purposes.
4376
- */
4377
- DIMT_GROUP = 128
4412
+ DIMT_LINE = 64
4378
4413
  }
4379
4414
  declare enum EnumDrawingItemState {
4380
4415
  /**