scandit-datacapture-frameworks-core 6.28.0 → 7.0.0-beta.1

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/dist/index.js CHANGED
@@ -4,345 +4,352 @@ function getDefaultExportFromCjs (x) {
4
4
 
5
5
  var eventemitter3 = {exports: {}};
6
6
 
7
- (function (module) {
8
-
9
- var has = Object.prototype.hasOwnProperty
10
- , prefix = '~';
11
-
12
- /**
13
- * Constructor to create a storage for our `EE` objects.
14
- * An `Events` instance is a plain object whose properties are event names.
15
- *
16
- * @constructor
17
- * @private
18
- */
19
- function Events() {}
20
-
21
- //
22
- // We try to not inherit from `Object.prototype`. In some engines creating an
23
- // instance in this way is faster than calling `Object.create(null)` directly.
24
- // If `Object.create(null)` is not supported we prefix the event names with a
25
- // character to make sure that the built-in object properties are not
26
- // overridden or used as an attack vector.
27
- //
28
- if (Object.create) {
29
- Events.prototype = Object.create(null);
30
-
31
- //
32
- // This hack is needed because the `__proto__` property is still inherited in
33
- // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
34
- //
35
- if (!new Events().__proto__) prefix = false;
36
- }
37
-
38
- /**
39
- * Representation of a single event listener.
40
- *
41
- * @param {Function} fn The listener function.
42
- * @param {*} context The context to invoke the listener with.
43
- * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
44
- * @constructor
45
- * @private
46
- */
47
- function EE(fn, context, once) {
48
- this.fn = fn;
49
- this.context = context;
50
- this.once = once || false;
51
- }
52
-
53
- /**
54
- * Add a listener for a given event.
55
- *
56
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
57
- * @param {(String|Symbol)} event The event name.
58
- * @param {Function} fn The listener function.
59
- * @param {*} context The context to invoke the listener with.
60
- * @param {Boolean} once Specify if the listener is a one-time listener.
61
- * @returns {EventEmitter}
62
- * @private
63
- */
64
- function addListener(emitter, event, fn, context, once) {
65
- if (typeof fn !== 'function') {
66
- throw new TypeError('The listener must be a function');
67
- }
68
-
69
- var listener = new EE(fn, context || emitter, once)
70
- , evt = prefix ? prefix + event : event;
71
-
72
- if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
73
- else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
74
- else emitter._events[evt] = [emitter._events[evt], listener];
75
-
76
- return emitter;
77
- }
78
-
79
- /**
80
- * Clear event by name.
81
- *
82
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
83
- * @param {(String|Symbol)} evt The Event name.
84
- * @private
85
- */
86
- function clearEvent(emitter, evt) {
87
- if (--emitter._eventsCount === 0) emitter._events = new Events();
88
- else delete emitter._events[evt];
89
- }
90
-
91
- /**
92
- * Minimal `EventEmitter` interface that is molded against the Node.js
93
- * `EventEmitter` interface.
94
- *
95
- * @constructor
96
- * @public
97
- */
98
- function EventEmitter() {
99
- this._events = new Events();
100
- this._eventsCount = 0;
101
- }
102
-
103
- /**
104
- * Return an array listing the events for which the emitter has registered
105
- * listeners.
106
- *
107
- * @returns {Array}
108
- * @public
109
- */
110
- EventEmitter.prototype.eventNames = function eventNames() {
111
- var names = []
112
- , events
113
- , name;
114
-
115
- if (this._eventsCount === 0) return names;
116
-
117
- for (name in (events = this._events)) {
118
- if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
119
- }
120
-
121
- if (Object.getOwnPropertySymbols) {
122
- return names.concat(Object.getOwnPropertySymbols(events));
123
- }
124
-
125
- return names;
126
- };
127
-
128
- /**
129
- * Return the listeners registered for a given event.
130
- *
131
- * @param {(String|Symbol)} event The event name.
132
- * @returns {Array} The registered listeners.
133
- * @public
134
- */
135
- EventEmitter.prototype.listeners = function listeners(event) {
136
- var evt = prefix ? prefix + event : event
137
- , handlers = this._events[evt];
138
-
139
- if (!handlers) return [];
140
- if (handlers.fn) return [handlers.fn];
141
-
142
- for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
143
- ee[i] = handlers[i].fn;
144
- }
145
-
146
- return ee;
147
- };
148
-
149
- /**
150
- * Return the number of listeners listening to a given event.
151
- *
152
- * @param {(String|Symbol)} event The event name.
153
- * @returns {Number} The number of listeners.
154
- * @public
155
- */
156
- EventEmitter.prototype.listenerCount = function listenerCount(event) {
157
- var evt = prefix ? prefix + event : event
158
- , listeners = this._events[evt];
159
-
160
- if (!listeners) return 0;
161
- if (listeners.fn) return 1;
162
- return listeners.length;
163
- };
164
-
165
- /**
166
- * Calls each of the listeners registered for a given event.
167
- *
168
- * @param {(String|Symbol)} event The event name.
169
- * @returns {Boolean} `true` if the event had listeners, else `false`.
170
- * @public
171
- */
172
- EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
173
- var evt = prefix ? prefix + event : event;
174
-
175
- if (!this._events[evt]) return false;
176
-
177
- var listeners = this._events[evt]
178
- , len = arguments.length
179
- , args
180
- , i;
181
-
182
- if (listeners.fn) {
183
- if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
184
-
185
- switch (len) {
186
- case 1: return listeners.fn.call(listeners.context), true;
187
- case 2: return listeners.fn.call(listeners.context, a1), true;
188
- case 3: return listeners.fn.call(listeners.context, a1, a2), true;
189
- case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
190
- case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
191
- case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
192
- }
193
-
194
- for (i = 1, args = new Array(len -1); i < len; i++) {
195
- args[i - 1] = arguments[i];
196
- }
197
-
198
- listeners.fn.apply(listeners.context, args);
199
- } else {
200
- var length = listeners.length
201
- , j;
202
-
203
- for (i = 0; i < length; i++) {
204
- if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
205
-
206
- switch (len) {
207
- case 1: listeners[i].fn.call(listeners[i].context); break;
208
- case 2: listeners[i].fn.call(listeners[i].context, a1); break;
209
- case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
210
- case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
211
- default:
212
- if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
213
- args[j - 1] = arguments[j];
214
- }
215
-
216
- listeners[i].fn.apply(listeners[i].context, args);
217
- }
218
- }
219
- }
220
-
221
- return true;
222
- };
223
-
224
- /**
225
- * Add a listener for a given event.
226
- *
227
- * @param {(String|Symbol)} event The event name.
228
- * @param {Function} fn The listener function.
229
- * @param {*} [context=this] The context to invoke the listener with.
230
- * @returns {EventEmitter} `this`.
231
- * @public
232
- */
233
- EventEmitter.prototype.on = function on(event, fn, context) {
234
- return addListener(this, event, fn, context, false);
235
- };
236
-
237
- /**
238
- * Add a one-time listener for a given event.
239
- *
240
- * @param {(String|Symbol)} event The event name.
241
- * @param {Function} fn The listener function.
242
- * @param {*} [context=this] The context to invoke the listener with.
243
- * @returns {EventEmitter} `this`.
244
- * @public
245
- */
246
- EventEmitter.prototype.once = function once(event, fn, context) {
247
- return addListener(this, event, fn, context, true);
248
- };
249
-
250
- /**
251
- * Remove the listeners of a given event.
252
- *
253
- * @param {(String|Symbol)} event The event name.
254
- * @param {Function} fn Only remove the listeners that match this function.
255
- * @param {*} context Only remove the listeners that have this context.
256
- * @param {Boolean} once Only remove one-time listeners.
257
- * @returns {EventEmitter} `this`.
258
- * @public
259
- */
260
- EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
261
- var evt = prefix ? prefix + event : event;
262
-
263
- if (!this._events[evt]) return this;
264
- if (!fn) {
265
- clearEvent(this, evt);
266
- return this;
267
- }
268
-
269
- var listeners = this._events[evt];
270
-
271
- if (listeners.fn) {
272
- if (
273
- listeners.fn === fn &&
274
- (!once || listeners.once) &&
275
- (!context || listeners.context === context)
276
- ) {
277
- clearEvent(this, evt);
278
- }
279
- } else {
280
- for (var i = 0, events = [], length = listeners.length; i < length; i++) {
281
- if (
282
- listeners[i].fn !== fn ||
283
- (once && !listeners[i].once) ||
284
- (context && listeners[i].context !== context)
285
- ) {
286
- events.push(listeners[i]);
287
- }
288
- }
289
-
290
- //
291
- // Reset the array, or remove it completely if we have no more listeners.
292
- //
293
- if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
294
- else clearEvent(this, evt);
295
- }
296
-
297
- return this;
298
- };
299
-
300
- /**
301
- * Remove all listeners, or those of the specified event.
302
- *
303
- * @param {(String|Symbol)} [event] The event name.
304
- * @returns {EventEmitter} `this`.
305
- * @public
306
- */
307
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
308
- var evt;
309
-
310
- if (event) {
311
- evt = prefix ? prefix + event : event;
312
- if (this._events[evt]) clearEvent(this, evt);
313
- } else {
314
- this._events = new Events();
315
- this._eventsCount = 0;
316
- }
317
-
318
- return this;
319
- };
320
-
321
- //
322
- // Alias methods names because people roll like that.
323
- //
324
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
325
- EventEmitter.prototype.addListener = EventEmitter.prototype.on;
326
-
327
- //
328
- // Expose the prefix.
329
- //
330
- EventEmitter.prefixed = prefix;
331
-
332
- //
333
- // Allow `EventEmitter` to be imported as module namespace.
334
- //
335
- EventEmitter.EventEmitter = EventEmitter;
336
-
337
- //
338
- // Expose the module.
339
- //
340
- {
341
- module.exports = EventEmitter;
342
- }
343
- } (eventemitter3));
344
-
345
- var eventemitter3Exports = eventemitter3.exports;
7
+ var hasRequiredEventemitter3;
8
+
9
+ function requireEventemitter3 () {
10
+ if (hasRequiredEventemitter3) return eventemitter3.exports;
11
+ hasRequiredEventemitter3 = 1;
12
+ (function (module) {
13
+
14
+ var has = Object.prototype.hasOwnProperty
15
+ , prefix = '~';
16
+
17
+ /**
18
+ * Constructor to create a storage for our `EE` objects.
19
+ * An `Events` instance is a plain object whose properties are event names.
20
+ *
21
+ * @constructor
22
+ * @private
23
+ */
24
+ function Events() {}
25
+
26
+ //
27
+ // We try to not inherit from `Object.prototype`. In some engines creating an
28
+ // instance in this way is faster than calling `Object.create(null)` directly.
29
+ // If `Object.create(null)` is not supported we prefix the event names with a
30
+ // character to make sure that the built-in object properties are not
31
+ // overridden or used as an attack vector.
32
+ //
33
+ if (Object.create) {
34
+ Events.prototype = Object.create(null);
35
+
36
+ //
37
+ // This hack is needed because the `__proto__` property is still inherited in
38
+ // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
39
+ //
40
+ if (!new Events().__proto__) prefix = false;
41
+ }
42
+
43
+ /**
44
+ * Representation of a single event listener.
45
+ *
46
+ * @param {Function} fn The listener function.
47
+ * @param {*} context The context to invoke the listener with.
48
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
49
+ * @constructor
50
+ * @private
51
+ */
52
+ function EE(fn, context, once) {
53
+ this.fn = fn;
54
+ this.context = context;
55
+ this.once = once || false;
56
+ }
57
+
58
+ /**
59
+ * Add a listener for a given event.
60
+ *
61
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
62
+ * @param {(String|Symbol)} event The event name.
63
+ * @param {Function} fn The listener function.
64
+ * @param {*} context The context to invoke the listener with.
65
+ * @param {Boolean} once Specify if the listener is a one-time listener.
66
+ * @returns {EventEmitter}
67
+ * @private
68
+ */
69
+ function addListener(emitter, event, fn, context, once) {
70
+ if (typeof fn !== 'function') {
71
+ throw new TypeError('The listener must be a function');
72
+ }
73
+
74
+ var listener = new EE(fn, context || emitter, once)
75
+ , evt = prefix ? prefix + event : event;
76
+
77
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
78
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
79
+ else emitter._events[evt] = [emitter._events[evt], listener];
80
+
81
+ return emitter;
82
+ }
83
+
84
+ /**
85
+ * Clear event by name.
86
+ *
87
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
88
+ * @param {(String|Symbol)} evt The Event name.
89
+ * @private
90
+ */
91
+ function clearEvent(emitter, evt) {
92
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
93
+ else delete emitter._events[evt];
94
+ }
95
+
96
+ /**
97
+ * Minimal `EventEmitter` interface that is molded against the Node.js
98
+ * `EventEmitter` interface.
99
+ *
100
+ * @constructor
101
+ * @public
102
+ */
103
+ function EventEmitter() {
104
+ this._events = new Events();
105
+ this._eventsCount = 0;
106
+ }
107
+
108
+ /**
109
+ * Return an array listing the events for which the emitter has registered
110
+ * listeners.
111
+ *
112
+ * @returns {Array}
113
+ * @public
114
+ */
115
+ EventEmitter.prototype.eventNames = function eventNames() {
116
+ var names = []
117
+ , events
118
+ , name;
119
+
120
+ if (this._eventsCount === 0) return names;
121
+
122
+ for (name in (events = this._events)) {
123
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
124
+ }
125
+
126
+ if (Object.getOwnPropertySymbols) {
127
+ return names.concat(Object.getOwnPropertySymbols(events));
128
+ }
129
+
130
+ return names;
131
+ };
132
+
133
+ /**
134
+ * Return the listeners registered for a given event.
135
+ *
136
+ * @param {(String|Symbol)} event The event name.
137
+ * @returns {Array} The registered listeners.
138
+ * @public
139
+ */
140
+ EventEmitter.prototype.listeners = function listeners(event) {
141
+ var evt = prefix ? prefix + event : event
142
+ , handlers = this._events[evt];
143
+
144
+ if (!handlers) return [];
145
+ if (handlers.fn) return [handlers.fn];
146
+
147
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
148
+ ee[i] = handlers[i].fn;
149
+ }
150
+
151
+ return ee;
152
+ };
153
+
154
+ /**
155
+ * Return the number of listeners listening to a given event.
156
+ *
157
+ * @param {(String|Symbol)} event The event name.
158
+ * @returns {Number} The number of listeners.
159
+ * @public
160
+ */
161
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
162
+ var evt = prefix ? prefix + event : event
163
+ , listeners = this._events[evt];
164
+
165
+ if (!listeners) return 0;
166
+ if (listeners.fn) return 1;
167
+ return listeners.length;
168
+ };
169
+
170
+ /**
171
+ * Calls each of the listeners registered for a given event.
172
+ *
173
+ * @param {(String|Symbol)} event The event name.
174
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
175
+ * @public
176
+ */
177
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
178
+ var evt = prefix ? prefix + event : event;
179
+
180
+ if (!this._events[evt]) return false;
181
+
182
+ var listeners = this._events[evt]
183
+ , len = arguments.length
184
+ , args
185
+ , i;
186
+
187
+ if (listeners.fn) {
188
+ if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
189
+
190
+ switch (len) {
191
+ case 1: return listeners.fn.call(listeners.context), true;
192
+ case 2: return listeners.fn.call(listeners.context, a1), true;
193
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
194
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
195
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
196
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
197
+ }
198
+
199
+ for (i = 1, args = new Array(len -1); i < len; i++) {
200
+ args[i - 1] = arguments[i];
201
+ }
202
+
203
+ listeners.fn.apply(listeners.context, args);
204
+ } else {
205
+ var length = listeners.length
206
+ , j;
207
+
208
+ for (i = 0; i < length; i++) {
209
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
210
+
211
+ switch (len) {
212
+ case 1: listeners[i].fn.call(listeners[i].context); break;
213
+ case 2: listeners[i].fn.call(listeners[i].context, a1); break;
214
+ case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
215
+ case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
216
+ default:
217
+ if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
218
+ args[j - 1] = arguments[j];
219
+ }
220
+
221
+ listeners[i].fn.apply(listeners[i].context, args);
222
+ }
223
+ }
224
+ }
225
+
226
+ return true;
227
+ };
228
+
229
+ /**
230
+ * Add a listener for a given event.
231
+ *
232
+ * @param {(String|Symbol)} event The event name.
233
+ * @param {Function} fn The listener function.
234
+ * @param {*} [context=this] The context to invoke the listener with.
235
+ * @returns {EventEmitter} `this`.
236
+ * @public
237
+ */
238
+ EventEmitter.prototype.on = function on(event, fn, context) {
239
+ return addListener(this, event, fn, context, false);
240
+ };
241
+
242
+ /**
243
+ * Add a one-time listener for a given event.
244
+ *
245
+ * @param {(String|Symbol)} event The event name.
246
+ * @param {Function} fn The listener function.
247
+ * @param {*} [context=this] The context to invoke the listener with.
248
+ * @returns {EventEmitter} `this`.
249
+ * @public
250
+ */
251
+ EventEmitter.prototype.once = function once(event, fn, context) {
252
+ return addListener(this, event, fn, context, true);
253
+ };
254
+
255
+ /**
256
+ * Remove the listeners of a given event.
257
+ *
258
+ * @param {(String|Symbol)} event The event name.
259
+ * @param {Function} fn Only remove the listeners that match this function.
260
+ * @param {*} context Only remove the listeners that have this context.
261
+ * @param {Boolean} once Only remove one-time listeners.
262
+ * @returns {EventEmitter} `this`.
263
+ * @public
264
+ */
265
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
266
+ var evt = prefix ? prefix + event : event;
267
+
268
+ if (!this._events[evt]) return this;
269
+ if (!fn) {
270
+ clearEvent(this, evt);
271
+ return this;
272
+ }
273
+
274
+ var listeners = this._events[evt];
275
+
276
+ if (listeners.fn) {
277
+ if (
278
+ listeners.fn === fn &&
279
+ (!once || listeners.once) &&
280
+ (!context || listeners.context === context)
281
+ ) {
282
+ clearEvent(this, evt);
283
+ }
284
+ } else {
285
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
286
+ if (
287
+ listeners[i].fn !== fn ||
288
+ (once && !listeners[i].once) ||
289
+ (context && listeners[i].context !== context)
290
+ ) {
291
+ events.push(listeners[i]);
292
+ }
293
+ }
294
+
295
+ //
296
+ // Reset the array, or remove it completely if we have no more listeners.
297
+ //
298
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
299
+ else clearEvent(this, evt);
300
+ }
301
+
302
+ return this;
303
+ };
304
+
305
+ /**
306
+ * Remove all listeners, or those of the specified event.
307
+ *
308
+ * @param {(String|Symbol)} [event] The event name.
309
+ * @returns {EventEmitter} `this`.
310
+ * @public
311
+ */
312
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
313
+ var evt;
314
+
315
+ if (event) {
316
+ evt = prefix ? prefix + event : event;
317
+ if (this._events[evt]) clearEvent(this, evt);
318
+ } else {
319
+ this._events = new Events();
320
+ this._eventsCount = 0;
321
+ }
322
+
323
+ return this;
324
+ };
325
+
326
+ //
327
+ // Alias methods names because people roll like that.
328
+ //
329
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
330
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
331
+
332
+ //
333
+ // Expose the prefix.
334
+ //
335
+ EventEmitter.prefixed = prefix;
336
+
337
+ //
338
+ // Allow `EventEmitter` to be imported as module namespace.
339
+ //
340
+ EventEmitter.EventEmitter = EventEmitter;
341
+
342
+ //
343
+ // Expose the module.
344
+ //
345
+ {
346
+ module.exports = EventEmitter;
347
+ }
348
+ } (eventemitter3));
349
+ return eventemitter3.exports;
350
+ }
351
+
352
+ var eventemitter3Exports = requireEventemitter3();
346
353
  var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
347
354
 
348
355
  class FactoryMaker {
@@ -517,7 +524,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
517
524
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
518
525
  PERFORMANCE OF THIS SOFTWARE.
519
526
  ***************************************************************************** */
520
- /* global Reflect, Promise, SuppressedError, Symbol */
527
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
521
528
 
522
529
 
523
530
  function __decorate(decorators, target, key, desc) {
@@ -717,6 +724,12 @@ class PrivateFrameData {
717
724
  frameData._orientation = json.orientation;
718
725
  return frameData;
719
726
  }
727
+ static empty() {
728
+ const frameData = new PrivateFrameData();
729
+ frameData._imageBuffers = [];
730
+ frameData._orientation = 90;
731
+ return frameData;
732
+ }
720
733
  }
721
734
 
722
735
  class CameraController {
@@ -734,17 +747,20 @@ class CameraController {
734
747
  get privateCamera() {
735
748
  return this.camera;
736
749
  }
737
- static getLastFrame() {
750
+ static getFrame(frameId) {
738
751
  return __awaiter(this, void 0, void 0, function* () {
739
- const frameDataJSONString = yield CameraController._proxy.getLastFrame();
752
+ const frameDataJSONString = yield CameraController._proxy.getFrame(frameId);
753
+ if (frameDataJSONString == null) {
754
+ return PrivateFrameData.empty();
755
+ }
740
756
  const frameDataJSON = JSON.parse(frameDataJSONString);
741
757
  return PrivateFrameData.fromJSON(frameDataJSON);
742
758
  });
743
759
  }
744
- static getLastFrameOrNull() {
760
+ static getFrameOrNull(frameId) {
745
761
  return __awaiter(this, void 0, void 0, function* () {
746
- const frameDataJSONString = yield CameraController._proxy.getLastFrameOrNull();
747
- if (frameDataJSONString === null || frameDataJSONString === undefined) {
762
+ const frameDataJSONString = yield CameraController._proxy.getFrame(frameId);
763
+ if (frameDataJSONString == null) {
748
764
  return null;
749
765
  }
750
766
  const frameDataJSON = JSON.parse(frameDataJSONString);
@@ -999,6 +1015,15 @@ class DataCaptureContextFeatures {
999
1015
  }
1000
1016
  DataCaptureContextFeatures._featureFlags = {};
1001
1017
 
1018
+ class OpenSourceSoftwareLicenseInfo {
1019
+ constructor(licenseText) {
1020
+ this._licenseText = licenseText;
1021
+ }
1022
+ get licenseText() {
1023
+ return this._licenseText;
1024
+ }
1025
+ }
1026
+
1002
1027
  var DataCaptureContextEvents;
1003
1028
  (function (DataCaptureContextEvents) {
1004
1029
  DataCaptureContextEvents["didChangeStatus"] = "DataCaptureContextListener.onStatusChanged";
@@ -1027,7 +1052,7 @@ class DataCaptureContextController {
1027
1052
  updateContextFromJSON() {
1028
1053
  return __awaiter(this, void 0, void 0, function* () {
1029
1054
  try {
1030
- yield this._proxy.updateContextFromJSON(this.context);
1055
+ yield this._proxy.updateContextFromJSON(JSON.stringify(this.context.toJSON()));
1031
1056
  }
1032
1057
  catch (error) {
1033
1058
  this.notifyListenersOfDeserializationError(error);
@@ -1060,7 +1085,7 @@ class DataCaptureContextController {
1060
1085
  initializeContextFromJSON() {
1061
1086
  return __awaiter(this, void 0, void 0, function* () {
1062
1087
  try {
1063
- const featureFlagsString = yield this._proxy.contextFromJSON(this.context);
1088
+ const featureFlagsString = yield this._proxy.contextFromJSON(JSON.stringify(this.context.toJSON()));
1064
1089
  DataCaptureContextFeatures.featureFlags =
1065
1090
  JSON.parse(featureFlagsString);
1066
1091
  }
@@ -1070,6 +1095,13 @@ class DataCaptureContextController {
1070
1095
  }
1071
1096
  });
1072
1097
  }
1098
+ static getOpenSourceSoftwareLicenseInfo() {
1099
+ return __awaiter(this, void 0, void 0, function* () {
1100
+ const proxy = FactoryMaker.getInstance('DataCaptureContextProxy');
1101
+ const licenseText = yield proxy.getOpenSourceSoftwareLicenseInfo();
1102
+ return new OpenSourceSoftwareLicenseInfo(licenseText);
1103
+ });
1104
+ }
1073
1105
  subscribeListener() {
1074
1106
  var _a, _b, _c, _d;
1075
1107
  this._proxy.registerListenerForDataCaptureContext();
@@ -1127,25 +1159,24 @@ class DataCaptureContext extends DefaultSerializeable {
1127
1159
  return DataCaptureContext.deviceID;
1128
1160
  }
1129
1161
  static forLicenseKey(licenseKey) {
1130
- return DataCaptureContext.forLicenseKeyWithOptions(licenseKey, null);
1162
+ return DataCaptureContext.create(licenseKey, null, null);
1131
1163
  }
1132
1164
  static forLicenseKeyWithSettings(licenseKey, settings) {
1133
- const context = this.forLicenseKey(licenseKey);
1134
- if (settings !== null) {
1135
- context.applySettings(settings);
1136
- }
1137
- return context;
1165
+ return DataCaptureContext.create(licenseKey, null, settings);
1138
1166
  }
1139
1167
  static forLicenseKeyWithOptions(licenseKey, options) {
1168
+ return DataCaptureContext.create(licenseKey, options, null);
1169
+ }
1170
+ static create(licenseKey, options, settings) {
1140
1171
  if (options == null) {
1141
1172
  options = { deviceName: null };
1142
1173
  }
1143
1174
  if (!DataCaptureContext.instance) {
1144
- DataCaptureContext.instance = new DataCaptureContext(licenseKey, options.deviceName || '');
1175
+ DataCaptureContext.instance = new DataCaptureContext(licenseKey, options.deviceName || '', settings);
1145
1176
  }
1146
1177
  return DataCaptureContext.instance;
1147
1178
  }
1148
- constructor(licenseKey, deviceName) {
1179
+ constructor(licenseKey, deviceName, settings) {
1149
1180
  super();
1150
1181
  this.licenseKey = licenseKey;
1151
1182
  this.deviceName = deviceName;
@@ -1154,6 +1185,9 @@ class DataCaptureContext extends DefaultSerializeable {
1154
1185
  this.view = null;
1155
1186
  this.modes = [];
1156
1187
  this.listeners = [];
1188
+ if (settings) {
1189
+ this.settings = settings;
1190
+ }
1157
1191
  this.initialize();
1158
1192
  }
1159
1193
  setFrameSource(frameSource) {
@@ -1213,6 +1247,11 @@ class DataCaptureContext extends DefaultSerializeable {
1213
1247
  this.settings = settings;
1214
1248
  return this.update();
1215
1249
  }
1250
+ static getOpenSourceSoftwareLicenseInfo() {
1251
+ return __awaiter(this, void 0, void 0, function* () {
1252
+ return DataCaptureContextController.getOpenSourceSoftwareLicenseInfo();
1253
+ });
1254
+ }
1216
1255
  // Called when the capture view is shown, that is the earliest point that we need the context deserialized.
1217
1256
  initialize() {
1218
1257
  if (this.controller) {
@@ -1763,6 +1802,53 @@ var ScanIntention;
1763
1802
  ScanIntention["Smart"] = "smart";
1764
1803
  })(ScanIntention || (ScanIntention = {}));
1765
1804
 
1805
+ class HtmlElementPosition {
1806
+ constructor(top, left) {
1807
+ this.top = 0;
1808
+ this.left = 0;
1809
+ this.top = top;
1810
+ this.left = left;
1811
+ }
1812
+ didChangeComparedTo(other) {
1813
+ if (!other)
1814
+ return true;
1815
+ return this.top !== other.top || this.left !== other.left;
1816
+ }
1817
+ }
1818
+ class HtmlElementSize {
1819
+ constructor(width, height) {
1820
+ this.width = width;
1821
+ this.height = height;
1822
+ }
1823
+ didChangeComparedTo(other) {
1824
+ if (!other)
1825
+ return true;
1826
+ return this.width !== other.width || this.height !== other.height;
1827
+ }
1828
+ }
1829
+ class HTMLElementState {
1830
+ constructor() {
1831
+ this.isShown = false;
1832
+ this.position = null;
1833
+ this.size = null;
1834
+ this.shouldBeUnderContent = false;
1835
+ }
1836
+ get isValid() {
1837
+ return this.isShown !== undefined && this.isShown !== null
1838
+ && this.position !== undefined && this.position !== null
1839
+ && this.size !== undefined && this.size !== null
1840
+ && this.shouldBeUnderContent !== undefined && this.shouldBeUnderContent !== null;
1841
+ }
1842
+ didChangeComparedTo(other) {
1843
+ var _a, _b, _c, _d;
1844
+ if (!other)
1845
+ return true;
1846
+ const positionChanged = (_b = (_a = this.position) === null || _a === void 0 ? void 0 : _a.didChangeComparedTo(other.position)) !== null && _b !== void 0 ? _b : (this.position !== other.position);
1847
+ const sizeChanged = (_d = (_c = this.size) === null || _c === void 0 ? void 0 : _c.didChangeComparedTo(other.size)) !== null && _d !== void 0 ? _d : (this.size !== other.size);
1848
+ return positionChanged || sizeChanged || this.shouldBeUnderContent !== other.shouldBeUnderContent;
1849
+ }
1850
+ }
1851
+
1766
1852
  var DataCaptureViewEvents;
1767
1853
  (function (DataCaptureViewEvents) {
1768
1854
  DataCaptureViewEvents["didChangeSize"] = "DataCaptureViewListener.onSizeChanged";
@@ -2303,15 +2389,6 @@ class CameraSettings extends DefaultSerializeable {
2303
2389
  set shouldPreferSmoothAutoFocus(newShouldPreferSmoothAutoFocus) {
2304
2390
  this.focus.shouldPreferSmoothAutoFocus = newShouldPreferSmoothAutoFocus;
2305
2391
  }
2306
- get maxFrameRate() {
2307
- // tslint:disable-next-line:no-console
2308
- console.warn('maxFrameRate is deprecated');
2309
- return 0;
2310
- }
2311
- set maxFrameRate(newValue) {
2312
- // tslint:disable-next-line:no-console
2313
- console.warn('maxFrameRate is deprecated');
2314
- }
2315
2392
  static fromJSON(json) {
2316
2393
  const settings = new CameraSettings();
2317
2394
  settings.preferredResolution = json.preferredResolution;
@@ -2398,69 +2475,6 @@ __decorate([
2398
2475
  nameForSerialization('isLooping')
2399
2476
  ], RectangularViewfinderAnimation.prototype, "_isLooping", void 0);
2400
2477
 
2401
- class SpotlightViewfinder extends DefaultSerializeable {
2402
- get sizeWithUnitAndAspect() {
2403
- return this._sizeWithUnitAndAspect;
2404
- }
2405
- get coreDefaults() {
2406
- return getCoreDefaults();
2407
- }
2408
- constructor() {
2409
- super();
2410
- this.type = 'spotlight';
2411
- console.warn('SpotlightViewfinder is deprecated and will be removed in a future release. Use RectangularViewfinder instead.');
2412
- this._sizeWithUnitAndAspect = this.coreDefaults.SpotlightViewfinder.size;
2413
- this.enabledBorderColor = this.coreDefaults.SpotlightViewfinder.enabledBorderColor;
2414
- this.disabledBorderColor = this.coreDefaults.SpotlightViewfinder.disabledBorderColor;
2415
- this.backgroundColor = this.coreDefaults.SpotlightViewfinder.backgroundColor;
2416
- }
2417
- setSize(size) {
2418
- this._sizeWithUnitAndAspect = SizeWithUnitAndAspect.sizeWithWidthAndHeight(size);
2419
- }
2420
- setWidthAndAspectRatio(width, heightToWidthAspectRatio) {
2421
- this._sizeWithUnitAndAspect = SizeWithUnitAndAspect.sizeWithWidthAndAspectRatio(width, heightToWidthAspectRatio);
2422
- }
2423
- setHeightAndAspectRatio(height, widthToHeightAspectRatio) {
2424
- this._sizeWithUnitAndAspect = SizeWithUnitAndAspect.sizeWithHeightAndAspectRatio(height, widthToHeightAspectRatio);
2425
- }
2426
- }
2427
- __decorate([
2428
- nameForSerialization('size')
2429
- ], SpotlightViewfinder.prototype, "_sizeWithUnitAndAspect", void 0);
2430
-
2431
- /**
2432
- * @deprecated LaserlineViewfinder is deprecated.
2433
- */
2434
- class LaserlineViewfinder extends DefaultSerializeable {
2435
- get coreDefaults() {
2436
- return getCoreDefaults();
2437
- }
2438
- constructor(style) {
2439
- super();
2440
- this.type = 'laserline';
2441
- const viewfinderStyle = style || this.coreDefaults.LaserlineViewfinder.defaultStyle;
2442
- this._style = this.coreDefaults.LaserlineViewfinder.styles[viewfinderStyle].style;
2443
- this.width = this.coreDefaults.LaserlineViewfinder.styles[viewfinderStyle].width;
2444
- this.enabledColor = this.coreDefaults.LaserlineViewfinder.styles[viewfinderStyle].enabledColor;
2445
- this.disabledColor = this.coreDefaults.LaserlineViewfinder.styles[viewfinderStyle].disabledColor;
2446
- }
2447
- get style() {
2448
- return this._style;
2449
- }
2450
- }
2451
- __decorate([
2452
- nameForSerialization('style')
2453
- ], LaserlineViewfinder.prototype, "_style", void 0);
2454
-
2455
- /**
2456
- * @deprecated LaserlineViewfinderStyle is deprecated.
2457
- */
2458
- var LaserlineViewfinderStyle;
2459
- (function (LaserlineViewfinderStyle) {
2460
- LaserlineViewfinderStyle["Legacy"] = "legacy";
2461
- LaserlineViewfinderStyle["Animated"] = "animated";
2462
- })(LaserlineViewfinderStyle || (LaserlineViewfinderStyle = {}));
2463
-
2464
2478
  class RectangularViewfinder extends DefaultSerializeable {
2465
2479
  get sizeWithUnitAndAspect() {
2466
2480
  return this._sizeWithUnitAndAspect;
@@ -2568,10 +2582,6 @@ __decorate([
2568
2582
 
2569
2583
  var RectangularViewfinderStyle;
2570
2584
  (function (RectangularViewfinderStyle) {
2571
- /**
2572
- * @deprecated The legacy style of the RectangularViewfinder is deprecated.
2573
- */
2574
- RectangularViewfinderStyle["Legacy"] = "legacy";
2575
2585
  RectangularViewfinderStyle["Rounded"] = "rounded";
2576
2586
  RectangularViewfinderStyle["Square"] = "square";
2577
2587
  })(RectangularViewfinderStyle || (RectangularViewfinderStyle = {}));
@@ -2623,21 +2633,6 @@ function parseDefaults(jsonDefaults) {
2623
2633
  .fromJSON(JSON.parse(jsonDefaults.DataCaptureView.zoomGesture)),
2624
2634
  logoStyle: jsonDefaults.DataCaptureView.logoStyle,
2625
2635
  },
2626
- LaserlineViewfinder: Object
2627
- .keys(jsonDefaults.LaserlineViewfinder.styles)
2628
- .reduce((acc, key) => {
2629
- const viewfinder = jsonDefaults.LaserlineViewfinder.styles[key];
2630
- acc.styles[key] = {
2631
- width: NumberWithUnit
2632
- .fromJSON(JSON.parse(viewfinder.width)),
2633
- enabledColor: Color
2634
- .fromJSON(viewfinder.enabledColor),
2635
- disabledColor: Color
2636
- .fromJSON(viewfinder.disabledColor),
2637
- style: viewfinder.style,
2638
- };
2639
- return acc;
2640
- }, { defaultStyle: jsonDefaults.LaserlineViewfinder.defaultStyle, styles: {} }),
2641
2636
  RectangularViewfinder: Object
2642
2637
  .keys(jsonDefaults.RectangularViewfinder.styles)
2643
2638
  .reduce((acc, key) => {
@@ -2656,16 +2651,6 @@ function parseDefaults(jsonDefaults) {
2656
2651
  };
2657
2652
  return acc;
2658
2653
  }, { defaultStyle: jsonDefaults.RectangularViewfinder.defaultStyle, styles: {} }),
2659
- SpotlightViewfinder: {
2660
- size: SizeWithUnitAndAspect
2661
- .fromJSON(JSON.parse(jsonDefaults.SpotlightViewfinder.size)),
2662
- enabledBorderColor: Color
2663
- .fromJSON(jsonDefaults.SpotlightViewfinder.enabledBorderColor),
2664
- disabledBorderColor: Color
2665
- .fromJSON(jsonDefaults.SpotlightViewfinder.disabledBorderColor),
2666
- backgroundColor: Color
2667
- .fromJSON(jsonDefaults.SpotlightViewfinder.backgroundColor),
2668
- },
2669
2654
  AimerViewfinder: {
2670
2655
  frameColor: Color.fromJSON(jsonDefaults.AimerViewfinder.frameColor),
2671
2656
  dotColor: Color.fromJSON(jsonDefaults.AimerViewfinder.dotColor),
@@ -2915,5 +2900,5 @@ var Expiration;
2915
2900
 
2916
2901
  createEventEmitter();
2917
2902
 
2918
- export { AimerViewfinder, Anchor, BaseController, BaseDataCaptureView, BaseNativeProxy, Brush, Camera, CameraController, CameraPosition, CameraSettings, Color, ContextStatus, ControlImage, DataCaptureContext, DataCaptureContextEvents, DataCaptureContextFeatures, DataCaptureContextSettings, DataCaptureViewController, DataCaptureViewEvents, DefaultSerializeable, Direction, EventEmitter, Expiration, FactoryMaker, Feedback, FocusGestureStrategy, FocusRange, FrameSourceListenerEvents, FrameSourceState, ImageBuffer, ImageFrameSource, LaserlineViewfinder, LaserlineViewfinderStyle, LicenseInfo, LogoStyle, MarginsWithUnit, MeasureUnit, NoViewfinder, NoneLocationSelection, NumberWithUnit, Orientation, Point, PointWithUnit, PrivateFocusGestureDeserializer, PrivateFrameData, PrivateZoomGestureDeserializer, Quadrilateral, RadiusLocationSelection, Rect, RectWithUnit, RectangularLocationSelection, RectangularViewfinder, RectangularViewfinderAnimation, RectangularViewfinderLineStyle, RectangularViewfinderStyle, ScanIntention, Size, SizeWithAspect, SizeWithUnit, SizeWithUnitAndAspect, SizingMode, Sound, SpotlightViewfinder, SwipeToZoom, TapToFocus, TorchState, TorchSwitchControl, Vibration, VibrationType, VideoResolution, WaveFormVibration, ZoomSwitchControl, getCoreDefaults, ignoreFromSerialization, ignoreFromSerializationIfNull, loadCoreDefaults, nameForSerialization, serializationDefault };
2903
+ export { AimerViewfinder, Anchor, BaseController, BaseDataCaptureView, BaseNativeProxy, Brush, Camera, CameraController, CameraPosition, CameraSettings, Color, ContextStatus, ControlImage, DataCaptureContext, DataCaptureContextEvents, DataCaptureContextFeatures, DataCaptureContextSettings, DataCaptureViewController, DataCaptureViewEvents, DefaultSerializeable, Direction, EventEmitter, Expiration, FactoryMaker, Feedback, FocusGestureStrategy, FocusRange, FrameSourceListenerEvents, FrameSourceState, HTMLElementState, HtmlElementPosition, HtmlElementSize, ImageBuffer, ImageFrameSource, LicenseInfo, LogoStyle, MarginsWithUnit, MeasureUnit, NoViewfinder, NoneLocationSelection, NumberWithUnit, OpenSourceSoftwareLicenseInfo, Orientation, Point, PointWithUnit, PrivateFocusGestureDeserializer, PrivateFrameData, PrivateZoomGestureDeserializer, Quadrilateral, RadiusLocationSelection, Rect, RectWithUnit, RectangularLocationSelection, RectangularViewfinder, RectangularViewfinderAnimation, RectangularViewfinderLineStyle, RectangularViewfinderStyle, ScanIntention, Size, SizeWithAspect, SizeWithUnit, SizeWithUnitAndAspect, SizingMode, Sound, SwipeToZoom, TapToFocus, TorchState, TorchSwitchControl, Vibration, VibrationType, VideoResolution, WaveFormVibration, ZoomSwitchControl, getCoreDefaults, ignoreFromSerialization, ignoreFromSerializationIfNull, loadCoreDefaults, nameForSerialization, serializationDefault };
2919
2904
  //# sourceMappingURL=index.js.map