feat(core): update session, security system and QR exchange

- Removed session creation and Lightning payment logic
- Refactored security system:
  * no more restrictions
  * all systems enabled on session creation
- Improved QR code exchange for mobile devices
This commit is contained in:
lockbitchat
2025-09-23 20:01:02 -04:00
parent 804b384271
commit 34094956b7
396 changed files with 126516 additions and 11881 deletions

7
node_modules/html5-qrcode/cjs/camera/core-impl.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Camera, CameraRenderingOptions, RenderedCamera, RenderingCallbacks } from "./core";
export declare class CameraImpl implements Camera {
private readonly mediaStream;
private constructor();
render(parentElement: HTMLElement, options: CameraRenderingOptions, callbacks: RenderingCallbacks): Promise<RenderedCamera>;
static create(videoConstraints: MediaTrackConstraints): Promise<Camera>;
}

314
node_modules/html5-qrcode/cjs/camera/core-impl.js generated vendored Normal file
View File

@@ -0,0 +1,314 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraImpl = void 0;
var AbstractCameraCapability = (function () {
function AbstractCameraCapability(name, track) {
this.name = name;
this.track = track;
}
AbstractCameraCapability.prototype.isSupported = function () {
if (!this.track.getCapabilities) {
return false;
}
return this.name in this.track.getCapabilities();
};
AbstractCameraCapability.prototype.apply = function (value) {
var constraint = {};
constraint[this.name] = value;
var constraints = { advanced: [constraint] };
return this.track.applyConstraints(constraints);
};
AbstractCameraCapability.prototype.value = function () {
var settings = this.track.getSettings();
if (this.name in settings) {
var settingValue = settings[this.name];
return settingValue;
}
return null;
};
return AbstractCameraCapability;
}());
var AbstractRangeCameraCapability = (function (_super) {
__extends(AbstractRangeCameraCapability, _super);
function AbstractRangeCameraCapability(name, track) {
return _super.call(this, name, track) || this;
}
AbstractRangeCameraCapability.prototype.min = function () {
return this.getCapabilities().min;
};
AbstractRangeCameraCapability.prototype.max = function () {
return this.getCapabilities().max;
};
AbstractRangeCameraCapability.prototype.step = function () {
return this.getCapabilities().step;
};
AbstractRangeCameraCapability.prototype.apply = function (value) {
var constraint = {};
constraint[this.name] = value;
var constraints = { advanced: [constraint] };
return this.track.applyConstraints(constraints);
};
AbstractRangeCameraCapability.prototype.getCapabilities = function () {
this.failIfNotSupported();
var capabilities = this.track.getCapabilities();
var capability = capabilities[this.name];
return {
min: capability.min,
max: capability.max,
step: capability.step,
};
};
AbstractRangeCameraCapability.prototype.failIfNotSupported = function () {
if (!this.isSupported()) {
throw new Error("".concat(this.name, " capability not supported"));
}
};
return AbstractRangeCameraCapability;
}(AbstractCameraCapability));
var ZoomFeatureImpl = (function (_super) {
__extends(ZoomFeatureImpl, _super);
function ZoomFeatureImpl(track) {
return _super.call(this, "zoom", track) || this;
}
return ZoomFeatureImpl;
}(AbstractRangeCameraCapability));
var TorchFeatureImpl = (function (_super) {
__extends(TorchFeatureImpl, _super);
function TorchFeatureImpl(track) {
return _super.call(this, "torch", track) || this;
}
return TorchFeatureImpl;
}(AbstractCameraCapability));
var CameraCapabilitiesImpl = (function () {
function CameraCapabilitiesImpl(track) {
this.track = track;
}
CameraCapabilitiesImpl.prototype.zoomFeature = function () {
return new ZoomFeatureImpl(this.track);
};
CameraCapabilitiesImpl.prototype.torchFeature = function () {
return new TorchFeatureImpl(this.track);
};
return CameraCapabilitiesImpl;
}());
var RenderedCameraImpl = (function () {
function RenderedCameraImpl(parentElement, mediaStream, callbacks) {
this.isClosed = false;
this.parentElement = parentElement;
this.mediaStream = mediaStream;
this.callbacks = callbacks;
this.surface = this.createVideoElement(this.parentElement.clientWidth);
parentElement.append(this.surface);
}
RenderedCameraImpl.prototype.createVideoElement = function (width) {
var videoElement = document.createElement("video");
videoElement.style.width = "".concat(width, "px");
videoElement.style.display = "block";
videoElement.muted = true;
videoElement.setAttribute("muted", "true");
videoElement.playsInline = true;
return videoElement;
};
RenderedCameraImpl.prototype.setupSurface = function () {
var _this = this;
this.surface.onabort = function () {
throw "RenderedCameraImpl video surface onabort() called";
};
this.surface.onerror = function () {
throw "RenderedCameraImpl video surface onerror() called";
};
var onVideoStart = function () {
var videoWidth = _this.surface.clientWidth;
var videoHeight = _this.surface.clientHeight;
_this.callbacks.onRenderSurfaceReady(videoWidth, videoHeight);
_this.surface.removeEventListener("playing", onVideoStart);
};
this.surface.addEventListener("playing", onVideoStart);
this.surface.srcObject = this.mediaStream;
this.surface.play();
};
RenderedCameraImpl.create = function (parentElement, mediaStream, options, callbacks) {
return __awaiter(this, void 0, void 0, function () {
var renderedCamera, aspectRatioConstraint;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
renderedCamera = new RenderedCameraImpl(parentElement, mediaStream, callbacks);
if (!options.aspectRatio) return [3, 2];
aspectRatioConstraint = {
aspectRatio: options.aspectRatio
};
return [4, renderedCamera.getFirstTrackOrFail().applyConstraints(aspectRatioConstraint)];
case 1:
_a.sent();
_a.label = 2;
case 2:
renderedCamera.setupSurface();
return [2, renderedCamera];
}
});
});
};
RenderedCameraImpl.prototype.failIfClosed = function () {
if (this.isClosed) {
throw "The RenderedCamera has already been closed.";
}
};
RenderedCameraImpl.prototype.getFirstTrackOrFail = function () {
this.failIfClosed();
if (this.mediaStream.getVideoTracks().length === 0) {
throw "No video tracks found";
}
return this.mediaStream.getVideoTracks()[0];
};
RenderedCameraImpl.prototype.pause = function () {
this.failIfClosed();
this.surface.pause();
};
RenderedCameraImpl.prototype.resume = function (onResumeCallback) {
this.failIfClosed();
var $this = this;
var onVideoResume = function () {
setTimeout(onResumeCallback, 200);
$this.surface.removeEventListener("playing", onVideoResume);
};
this.surface.addEventListener("playing", onVideoResume);
this.surface.play();
};
RenderedCameraImpl.prototype.isPaused = function () {
this.failIfClosed();
return this.surface.paused;
};
RenderedCameraImpl.prototype.getSurface = function () {
this.failIfClosed();
return this.surface;
};
RenderedCameraImpl.prototype.getRunningTrackCapabilities = function () {
return this.getFirstTrackOrFail().getCapabilities();
};
RenderedCameraImpl.prototype.getRunningTrackSettings = function () {
return this.getFirstTrackOrFail().getSettings();
};
RenderedCameraImpl.prototype.applyVideoConstraints = function (constraints) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
if ("aspectRatio" in constraints) {
throw "Changing 'aspectRatio' in run-time is not yet supported.";
}
return [2, this.getFirstTrackOrFail().applyConstraints(constraints)];
});
});
};
RenderedCameraImpl.prototype.close = function () {
if (this.isClosed) {
return Promise.resolve();
}
var $this = this;
return new Promise(function (resolve, _) {
var tracks = $this.mediaStream.getVideoTracks();
var tracksToClose = tracks.length;
var tracksClosed = 0;
$this.mediaStream.getVideoTracks().forEach(function (videoTrack) {
$this.mediaStream.removeTrack(videoTrack);
videoTrack.stop();
++tracksClosed;
if (tracksClosed >= tracksToClose) {
$this.isClosed = true;
$this.parentElement.removeChild($this.surface);
resolve();
}
});
});
};
RenderedCameraImpl.prototype.getCapabilities = function () {
return new CameraCapabilitiesImpl(this.getFirstTrackOrFail());
};
return RenderedCameraImpl;
}());
var CameraImpl = (function () {
function CameraImpl(mediaStream) {
this.mediaStream = mediaStream;
}
CameraImpl.prototype.render = function (parentElement, options, callbacks) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2, RenderedCameraImpl.create(parentElement, this.mediaStream, options, callbacks)];
});
});
};
CameraImpl.create = function (videoConstraints) {
return __awaiter(this, void 0, void 0, function () {
var constraints, mediaStream;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!navigator.mediaDevices) {
throw "navigator.mediaDevices not supported";
}
constraints = {
audio: false,
video: videoConstraints
};
return [4, navigator.mediaDevices.getUserMedia(constraints)];
case 1:
mediaStream = _a.sent();
return [2, new CameraImpl(mediaStream)];
}
});
});
};
return CameraImpl;
}());
exports.CameraImpl = CameraImpl;
//# sourceMappingURL=core-impl.js.map

File diff suppressed because one or more lines are too long

41
node_modules/html5-qrcode/cjs/camera/core.d.ts generated vendored Normal file
View File

@@ -0,0 +1,41 @@
export interface CameraDevice {
id: string;
label: string;
}
export interface CameraCapability<T> {
isSupported(): boolean;
apply(value: T): Promise<void>;
value(): T | null;
}
export interface RangeCameraCapability extends CameraCapability<number> {
min(): number;
max(): number;
step(): number;
}
export interface BooleanCameraCapability extends CameraCapability<boolean> {
}
export interface CameraCapabilities {
zoomFeature(): RangeCameraCapability;
torchFeature(): BooleanCameraCapability;
}
export type OnRenderSurfaceReady = (viewfinderWidth: number, viewfinderHeight: number) => void;
export interface RenderingCallbacks {
onRenderSurfaceReady: OnRenderSurfaceReady;
}
export interface RenderedCamera {
getSurface(): HTMLVideoElement;
pause(): void;
resume(onResumeCallback: () => void): void;
isPaused(): boolean;
close(): Promise<void>;
getRunningTrackCapabilities(): MediaTrackCapabilities;
getRunningTrackSettings(): MediaTrackSettings;
applyVideoConstraints(constraints: MediaTrackConstraints): Promise<void>;
getCapabilities(): CameraCapabilities;
}
export interface CameraRenderingOptions {
aspectRatio?: number;
}
export interface Camera {
render(parentElement: HTMLElement, options: CameraRenderingOptions, callbacks: RenderingCallbacks): Promise<RenderedCamera>;
}

3
node_modules/html5-qrcode/cjs/camera/core.js generated vendored Normal file
View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=core.js.map

1
node_modules/html5-qrcode/cjs/camera/core.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/camera/core.ts"],"names":[],"mappings":""}

6
node_modules/html5-qrcode/cjs/camera/factories.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Camera } from "./core";
export declare class CameraFactory {
static failIfNotSupported(): Promise<CameraFactory>;
private constructor();
create(videoConstraints: MediaTrackConstraints): Promise<Camera>;
}

64
node_modules/html5-qrcode/cjs/camera/factories.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraFactory = void 0;
var core_impl_1 = require("./core-impl");
var CameraFactory = (function () {
function CameraFactory() {
}
CameraFactory.failIfNotSupported = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
if (!navigator.mediaDevices) {
throw "navigator.mediaDevices not supported";
}
return [2, new CameraFactory()];
});
});
};
CameraFactory.prototype.create = function (videoConstraints) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2, core_impl_1.CameraImpl.create(videoConstraints)];
});
});
};
return CameraFactory;
}());
exports.CameraFactory = CameraFactory;
//# sourceMappingURL=factories.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../src/camera/factories.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,yCAAyC;AAGzC;IAcI;IAAqC,CAAC;IARlB,gCAAkB,GAAtC;;;gBACI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;oBACzB,MAAM,sCAAsC,CAAC;iBAChD;gBAED,WAAO,IAAI,aAAa,EAAE,EAAC;;;KAC9B;IAKY,8BAAM,GAAnB,UAAoB,gBAAuC;;;gBAEvD,WAAO,sBAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAC;;;KAC9C;IACL,oBAAC;AAAD,CAAC,AArBD,IAqBC;AArBY,sCAAa"}

View File

@@ -0,0 +1,3 @@
export declare class CameraPermissions {
static hasPermissions(): Promise<boolean>;
}

65
node_modules/html5-qrcode/cjs/camera/permissions.js generated vendored Normal file
View File

@@ -0,0 +1,65 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraPermissions = void 0;
var CameraPermissions = (function () {
function CameraPermissions() {
}
CameraPermissions.hasPermissions = function () {
return __awaiter(this, void 0, void 0, function () {
var devices, _i, devices_1, device;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4, navigator.mediaDevices.enumerateDevices()];
case 1:
devices = _a.sent();
for (_i = 0, devices_1 = devices; _i < devices_1.length; _i++) {
device = devices_1[_i];
if (device.kind === "videoinput" && device.label) {
return [2, true];
}
}
return [2, false];
}
});
});
};
return CameraPermissions;
}());
exports.CameraPermissions = CameraPermissions;
//# sourceMappingURL=permissions.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/camera/permissions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYC;IAAA;IAqBD,CAAC;IAfuB,gCAAc,GAAlC;;;;;4BAIgB,WAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAA;;wBAAzD,OAAO,GAAG,SAA+C;wBAC7D,WAA4B,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;4BAAnB,MAAM;4BAGf,IAAG,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE;gCAC/C,WAAO,IAAI,EAAC;6BACb;yBACF;wBAED,WAAO,KAAK,EAAC;;;;KACd;IACL,wBAAC;AAAD,CAAC,AArBA,IAqBA;AArBa,8CAAiB"}

8
node_modules/html5-qrcode/cjs/camera/retriever.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import { CameraDevice } from "./core";
export declare class CameraRetriever {
static retrieve(): Promise<Array<CameraDevice>>;
private static rejectWithError;
private static isHttpsOrLocalhost;
private static getCamerasFromMediaDevices;
private static getCamerasFromMediaStreamTrack;
}

127
node_modules/html5-qrcode/cjs/camera/retriever.js generated vendored Normal file
View File

@@ -0,0 +1,127 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraRetriever = void 0;
var strings_1 = require("../strings");
var CameraRetriever = (function () {
function CameraRetriever() {
}
CameraRetriever.retrieve = function () {
if (navigator.mediaDevices) {
return CameraRetriever.getCamerasFromMediaDevices();
}
var mst = MediaStreamTrack;
if (MediaStreamTrack && mst.getSources) {
return CameraRetriever.getCamerasFromMediaStreamTrack();
}
return CameraRetriever.rejectWithError();
};
CameraRetriever.rejectWithError = function () {
var errorMessage = strings_1.Html5QrcodeStrings.unableToQuerySupportedDevices();
if (!CameraRetriever.isHttpsOrLocalhost()) {
errorMessage = strings_1.Html5QrcodeStrings.insecureContextCameraQueryError();
}
return Promise.reject(errorMessage);
};
CameraRetriever.isHttpsOrLocalhost = function () {
if (location.protocol === "https:") {
return true;
}
var host = location.host.split(":")[0];
return host === "127.0.0.1" || host === "localhost";
};
CameraRetriever.getCamerasFromMediaDevices = function () {
return __awaiter(this, void 0, void 0, function () {
var closeActiveStreams, mediaStream, devices, results, _i, devices_1, device;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
closeActiveStreams = function (stream) {
var tracks = stream.getVideoTracks();
for (var _i = 0, tracks_1 = tracks; _i < tracks_1.length; _i++) {
var track = tracks_1[_i];
track.enabled = false;
track.stop();
stream.removeTrack(track);
}
};
return [4, navigator.mediaDevices.getUserMedia({ audio: false, video: true })];
case 1:
mediaStream = _a.sent();
return [4, navigator.mediaDevices.enumerateDevices()];
case 2:
devices = _a.sent();
results = [];
for (_i = 0, devices_1 = devices; _i < devices_1.length; _i++) {
device = devices_1[_i];
if (device.kind === "videoinput") {
results.push({
id: device.deviceId,
label: device.label
});
}
}
closeActiveStreams(mediaStream);
return [2, results];
}
});
});
};
CameraRetriever.getCamerasFromMediaStreamTrack = function () {
return new Promise(function (resolve, _) {
var callback = function (sourceInfos) {
var results = [];
for (var _i = 0, sourceInfos_1 = sourceInfos; _i < sourceInfos_1.length; _i++) {
var sourceInfo = sourceInfos_1[_i];
if (sourceInfo.kind === "video") {
results.push({
id: sourceInfo.id,
label: sourceInfo.label
});
}
}
resolve(results);
};
var mst = MediaStreamTrack;
mst.getSources(callback);
});
};
return CameraRetriever;
}());
exports.CameraRetriever = CameraRetriever;
//# sourceMappingURL=retriever.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../../src/camera/retriever.ts"],"names":[],"mappings":"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"}

16
node_modules/html5-qrcode/cjs/code-decoder.d.ts generated vendored Normal file
View File

@@ -0,0 +1,16 @@
import { QrcodeResult, Html5QrcodeSupportedFormats, Logger, RobustQrcodeDecoderAsync } from "./core";
export declare class Html5QrcodeShim implements RobustQrcodeDecoderAsync {
private verbose;
private primaryDecoder;
private secondaryDecoder;
private readonly EXECUTIONS_TO_REPORT_PERFORMANCE;
private executions;
private executionResults;
private wasPrimaryDecoderUsedInLastDecode;
constructor(requestedFormats: Array<Html5QrcodeSupportedFormats>, useBarCodeDetectorIfSupported: boolean, verbose: boolean, logger: Logger);
decodeAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
decodeRobustlyAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
private getDecoder;
private possiblyLogPerformance;
possiblyFlushPerformanceReport(): void;
}

141
node_modules/html5-qrcode/cjs/code-decoder.js generated vendored Normal file
View File

@@ -0,0 +1,141 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Html5QrcodeShim = void 0;
var zxing_html5_qrcode_decoder_1 = require("./zxing-html5-qrcode-decoder");
var native_bar_code_detector_1 = require("./native-bar-code-detector");
var Html5QrcodeShim = (function () {
function Html5QrcodeShim(requestedFormats, useBarCodeDetectorIfSupported, verbose, logger) {
this.EXECUTIONS_TO_REPORT_PERFORMANCE = 100;
this.executions = 0;
this.executionResults = [];
this.wasPrimaryDecoderUsedInLastDecode = false;
this.verbose = verbose;
if (useBarCodeDetectorIfSupported
&& native_bar_code_detector_1.BarcodeDetectorDelegate.isSupported()) {
this.primaryDecoder = new native_bar_code_detector_1.BarcodeDetectorDelegate(requestedFormats, verbose, logger);
this.secondaryDecoder = new zxing_html5_qrcode_decoder_1.ZXingHtml5QrcodeDecoder(requestedFormats, verbose, logger);
}
else {
this.primaryDecoder = new zxing_html5_qrcode_decoder_1.ZXingHtml5QrcodeDecoder(requestedFormats, verbose, logger);
}
}
Html5QrcodeShim.prototype.decodeAsync = function (canvas) {
return __awaiter(this, void 0, void 0, function () {
var startTime;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
startTime = performance.now();
_a.label = 1;
case 1:
_a.trys.push([1, , 3, 4]);
return [4, this.getDecoder().decodeAsync(canvas)];
case 2: return [2, _a.sent()];
case 3:
this.possiblyLogPerformance(startTime);
return [7];
case 4: return [2];
}
});
});
};
Html5QrcodeShim.prototype.decodeRobustlyAsync = function (canvas) {
return __awaiter(this, void 0, void 0, function () {
var startTime, error_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
startTime = performance.now();
_a.label = 1;
case 1:
_a.trys.push([1, 3, 4, 5]);
return [4, this.primaryDecoder.decodeAsync(canvas)];
case 2: return [2, _a.sent()];
case 3:
error_1 = _a.sent();
if (this.secondaryDecoder) {
return [2, this.secondaryDecoder.decodeAsync(canvas)];
}
throw error_1;
case 4:
this.possiblyLogPerformance(startTime);
return [7];
case 5: return [2];
}
});
});
};
Html5QrcodeShim.prototype.getDecoder = function () {
if (!this.secondaryDecoder) {
return this.primaryDecoder;
}
if (this.wasPrimaryDecoderUsedInLastDecode === false) {
this.wasPrimaryDecoderUsedInLastDecode = true;
return this.primaryDecoder;
}
this.wasPrimaryDecoderUsedInLastDecode = false;
return this.secondaryDecoder;
};
Html5QrcodeShim.prototype.possiblyLogPerformance = function (startTime) {
if (!this.verbose) {
return;
}
var executionTime = performance.now() - startTime;
this.executionResults.push(executionTime);
this.executions++;
this.possiblyFlushPerformanceReport();
};
Html5QrcodeShim.prototype.possiblyFlushPerformanceReport = function () {
if (this.executions < this.EXECUTIONS_TO_REPORT_PERFORMANCE) {
return;
}
var sum = 0;
for (var _i = 0, _a = this.executionResults; _i < _a.length; _i++) {
var executionTime = _a[_i];
sum += executionTime;
}
var mean = sum / this.executionResults.length;
console.log("".concat(mean, " ms for ").concat(this.executionResults.length, " last runs."));
this.executions = 0;
this.executionResults = [];
};
return Html5QrcodeShim;
}());
exports.Html5QrcodeShim = Html5QrcodeShim;
//# sourceMappingURL=code-decoder.js.map

1
node_modules/html5-qrcode/cjs/code-decoder.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"code-decoder.js","sourceRoot":"","sources":["../../src/code-decoder.ts"],"names":[],"mappings":"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"}

105
node_modules/html5-qrcode/cjs/core.d.ts generated vendored Normal file
View File

@@ -0,0 +1,105 @@
export declare enum Html5QrcodeSupportedFormats {
QR_CODE = 0,
AZTEC = 1,
CODABAR = 2,
CODE_39 = 3,
CODE_93 = 4,
CODE_128 = 5,
DATA_MATRIX = 6,
MAXICODE = 7,
ITF = 8,
EAN_13 = 9,
EAN_8 = 10,
PDF_417 = 11,
RSS_14 = 12,
RSS_EXPANDED = 13,
UPC_A = 14,
UPC_E = 15,
UPC_EAN_EXTENSION = 16
}
export declare enum DecodedTextType {
UNKNOWN = 0,
URL = 1
}
export declare function isValidHtml5QrcodeSupportedFormats(format: any): boolean;
export declare enum Html5QrcodeScanType {
SCAN_TYPE_CAMERA = 0,
SCAN_TYPE_FILE = 1
}
export declare class Html5QrcodeConstants {
static GITHUB_PROJECT_URL: string;
static SCAN_DEFAULT_FPS: number;
static DEFAULT_DISABLE_FLIP: boolean;
static DEFAULT_REMEMBER_LAST_CAMERA_USED: boolean;
static DEFAULT_SUPPORTED_SCAN_TYPE: Html5QrcodeScanType[];
}
export interface QrDimensions {
width: number;
height: number;
}
export type QrDimensionFunction = (viewfinderWidth: number, viewfinderHeight: number) => QrDimensions;
export interface QrBounds extends QrDimensions {
x: number;
y: number;
}
export declare class QrcodeResultFormat {
readonly format: Html5QrcodeSupportedFormats;
readonly formatName: string;
private constructor();
toString(): string;
static create(format: Html5QrcodeSupportedFormats): QrcodeResultFormat;
}
export interface QrcodeResultDebugData {
decoderName?: string;
}
export interface QrcodeResult {
text: string;
format?: QrcodeResultFormat;
bounds?: QrBounds;
decodedTextType?: DecodedTextType;
debugData?: QrcodeResultDebugData;
}
export interface Html5QrcodeResult {
decodedText: string;
result: QrcodeResult;
}
export declare class Html5QrcodeResultFactory {
static createFromText(decodedText: string): Html5QrcodeResult;
static createFromQrcodeResult(qrcodeResult: QrcodeResult): Html5QrcodeResult;
}
export declare enum Html5QrcodeErrorTypes {
UNKWOWN_ERROR = 0,
IMPLEMENTATION_ERROR = 1,
NO_CODE_FOUND_ERROR = 2
}
export interface Html5QrcodeError {
errorMessage: string;
type: Html5QrcodeErrorTypes;
}
export declare class Html5QrcodeErrorFactory {
static createFrom(error: any): Html5QrcodeError;
}
export type QrcodeSuccessCallback = (decodedText: string, result: Html5QrcodeResult) => void;
export type QrcodeErrorCallback = (errorMessage: string, error: Html5QrcodeError) => void;
export interface QrcodeDecoderAsync {
decodeAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
}
export interface RobustQrcodeDecoderAsync extends QrcodeDecoderAsync {
decodeRobustlyAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
}
export interface Logger {
log(message: string): void;
warn(message: string): void;
logError(message: string, isExperimental?: boolean): void;
logErrors(errors: Array<any>): void;
}
export declare class BaseLoggger implements Logger {
private verbose;
constructor(verbose: boolean);
log(message: string): void;
warn(message: string): void;
logError(message: string, isExperimental?: boolean): void;
logErrors(errors: Array<any>): void;
}
export declare function isNullOrUndefined(obj?: any): boolean;
export declare function clip(value: number, minValue: number, maxValue: number): number;

171
node_modules/html5-qrcode/cjs/core.js generated vendored Normal file
View File

@@ -0,0 +1,171 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.clip = exports.isNullOrUndefined = exports.BaseLoggger = exports.Html5QrcodeErrorFactory = exports.Html5QrcodeErrorTypes = exports.Html5QrcodeResultFactory = exports.QrcodeResultFormat = exports.Html5QrcodeConstants = exports.Html5QrcodeScanType = exports.isValidHtml5QrcodeSupportedFormats = exports.DecodedTextType = exports.Html5QrcodeSupportedFormats = void 0;
var Html5QrcodeSupportedFormats;
(function (Html5QrcodeSupportedFormats) {
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["QR_CODE"] = 0] = "QR_CODE";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["AZTEC"] = 1] = "AZTEC";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["CODABAR"] = 2] = "CODABAR";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["CODE_39"] = 3] = "CODE_39";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["CODE_93"] = 4] = "CODE_93";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["CODE_128"] = 5] = "CODE_128";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["DATA_MATRIX"] = 6] = "DATA_MATRIX";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["MAXICODE"] = 7] = "MAXICODE";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["ITF"] = 8] = "ITF";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["EAN_13"] = 9] = "EAN_13";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["EAN_8"] = 10] = "EAN_8";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["PDF_417"] = 11] = "PDF_417";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["RSS_14"] = 12] = "RSS_14";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["RSS_EXPANDED"] = 13] = "RSS_EXPANDED";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["UPC_A"] = 14] = "UPC_A";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["UPC_E"] = 15] = "UPC_E";
Html5QrcodeSupportedFormats[Html5QrcodeSupportedFormats["UPC_EAN_EXTENSION"] = 16] = "UPC_EAN_EXTENSION";
})(Html5QrcodeSupportedFormats = exports.Html5QrcodeSupportedFormats || (exports.Html5QrcodeSupportedFormats = {}));
var html5QrcodeSupportedFormatsTextMap = new Map([
[Html5QrcodeSupportedFormats.QR_CODE, "QR_CODE"],
[Html5QrcodeSupportedFormats.AZTEC, "AZTEC"],
[Html5QrcodeSupportedFormats.CODABAR, "CODABAR"],
[Html5QrcodeSupportedFormats.CODE_39, "CODE_39"],
[Html5QrcodeSupportedFormats.CODE_93, "CODE_93"],
[Html5QrcodeSupportedFormats.CODE_128, "CODE_128"],
[Html5QrcodeSupportedFormats.DATA_MATRIX, "DATA_MATRIX"],
[Html5QrcodeSupportedFormats.MAXICODE, "MAXICODE"],
[Html5QrcodeSupportedFormats.ITF, "ITF"],
[Html5QrcodeSupportedFormats.EAN_13, "EAN_13"],
[Html5QrcodeSupportedFormats.EAN_8, "EAN_8"],
[Html5QrcodeSupportedFormats.PDF_417, "PDF_417"],
[Html5QrcodeSupportedFormats.RSS_14, "RSS_14"],
[Html5QrcodeSupportedFormats.RSS_EXPANDED, "RSS_EXPANDED"],
[Html5QrcodeSupportedFormats.UPC_A, "UPC_A"],
[Html5QrcodeSupportedFormats.UPC_E, "UPC_E"],
[Html5QrcodeSupportedFormats.UPC_EAN_EXTENSION, "UPC_EAN_EXTENSION"]
]);
var DecodedTextType;
(function (DecodedTextType) {
DecodedTextType[DecodedTextType["UNKNOWN"] = 0] = "UNKNOWN";
DecodedTextType[DecodedTextType["URL"] = 1] = "URL";
})(DecodedTextType = exports.DecodedTextType || (exports.DecodedTextType = {}));
function isValidHtml5QrcodeSupportedFormats(format) {
return Object.values(Html5QrcodeSupportedFormats).includes(format);
}
exports.isValidHtml5QrcodeSupportedFormats = isValidHtml5QrcodeSupportedFormats;
var Html5QrcodeScanType;
(function (Html5QrcodeScanType) {
Html5QrcodeScanType[Html5QrcodeScanType["SCAN_TYPE_CAMERA"] = 0] = "SCAN_TYPE_CAMERA";
Html5QrcodeScanType[Html5QrcodeScanType["SCAN_TYPE_FILE"] = 1] = "SCAN_TYPE_FILE";
})(Html5QrcodeScanType = exports.Html5QrcodeScanType || (exports.Html5QrcodeScanType = {}));
var Html5QrcodeConstants = (function () {
function Html5QrcodeConstants() {
}
Html5QrcodeConstants.GITHUB_PROJECT_URL = "https://github.com/mebjas/html5-qrcode";
Html5QrcodeConstants.SCAN_DEFAULT_FPS = 2;
Html5QrcodeConstants.DEFAULT_DISABLE_FLIP = false;
Html5QrcodeConstants.DEFAULT_REMEMBER_LAST_CAMERA_USED = true;
Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE = [
Html5QrcodeScanType.SCAN_TYPE_CAMERA,
Html5QrcodeScanType.SCAN_TYPE_FILE
];
return Html5QrcodeConstants;
}());
exports.Html5QrcodeConstants = Html5QrcodeConstants;
var QrcodeResultFormat = (function () {
function QrcodeResultFormat(format, formatName) {
this.format = format;
this.formatName = formatName;
}
QrcodeResultFormat.prototype.toString = function () {
return this.formatName;
};
QrcodeResultFormat.create = function (format) {
if (!html5QrcodeSupportedFormatsTextMap.has(format)) {
throw "".concat(format, " not in html5QrcodeSupportedFormatsTextMap");
}
return new QrcodeResultFormat(format, html5QrcodeSupportedFormatsTextMap.get(format));
};
return QrcodeResultFormat;
}());
exports.QrcodeResultFormat = QrcodeResultFormat;
var Html5QrcodeResultFactory = (function () {
function Html5QrcodeResultFactory() {
}
Html5QrcodeResultFactory.createFromText = function (decodedText) {
var qrcodeResult = {
text: decodedText
};
return {
decodedText: decodedText,
result: qrcodeResult
};
};
Html5QrcodeResultFactory.createFromQrcodeResult = function (qrcodeResult) {
return {
decodedText: qrcodeResult.text,
result: qrcodeResult
};
};
return Html5QrcodeResultFactory;
}());
exports.Html5QrcodeResultFactory = Html5QrcodeResultFactory;
var Html5QrcodeErrorTypes;
(function (Html5QrcodeErrorTypes) {
Html5QrcodeErrorTypes[Html5QrcodeErrorTypes["UNKWOWN_ERROR"] = 0] = "UNKWOWN_ERROR";
Html5QrcodeErrorTypes[Html5QrcodeErrorTypes["IMPLEMENTATION_ERROR"] = 1] = "IMPLEMENTATION_ERROR";
Html5QrcodeErrorTypes[Html5QrcodeErrorTypes["NO_CODE_FOUND_ERROR"] = 2] = "NO_CODE_FOUND_ERROR";
})(Html5QrcodeErrorTypes = exports.Html5QrcodeErrorTypes || (exports.Html5QrcodeErrorTypes = {}));
var Html5QrcodeErrorFactory = (function () {
function Html5QrcodeErrorFactory() {
}
Html5QrcodeErrorFactory.createFrom = function (error) {
return {
errorMessage: error,
type: Html5QrcodeErrorTypes.UNKWOWN_ERROR
};
};
return Html5QrcodeErrorFactory;
}());
exports.Html5QrcodeErrorFactory = Html5QrcodeErrorFactory;
var BaseLoggger = (function () {
function BaseLoggger(verbose) {
this.verbose = verbose;
}
BaseLoggger.prototype.log = function (message) {
if (this.verbose) {
console.log(message);
}
};
BaseLoggger.prototype.warn = function (message) {
if (this.verbose) {
console.warn(message);
}
};
BaseLoggger.prototype.logError = function (message, isExperimental) {
if (this.verbose || isExperimental === true) {
console.error(message);
}
};
BaseLoggger.prototype.logErrors = function (errors) {
if (errors.length === 0) {
throw "Logger#logError called without arguments";
}
if (this.verbose) {
console.error(errors);
}
};
return BaseLoggger;
}());
exports.BaseLoggger = BaseLoggger;
function isNullOrUndefined(obj) {
return (typeof obj === "undefined") || obj === null;
}
exports.isNullOrUndefined = isNullOrUndefined;
function clip(value, minValue, maxValue) {
if (value > maxValue) {
return maxValue;
}
if (value < minValue) {
return minValue;
}
return value;
}
exports.clip = clip;
//# sourceMappingURL=core.js.map

1
node_modules/html5-qrcode/cjs/core.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,3 @@
export interface ExperimentalFeaturesConfig {
useBarCodeDetectorIfSupported?: boolean | undefined;
}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=experimental-features.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"experimental-features.js","sourceRoot":"","sources":["../../src/experimental-features.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,67 @@
import { Html5QrcodeScanType, QrcodeSuccessCallback, QrcodeErrorCallback } from "./core";
import { Html5QrcodeConfigs, Html5QrcodeCameraScanConfig } from "./html5-qrcode";
import { Html5QrcodeScannerState } from "./state-manager";
export interface Html5QrcodeScannerConfig extends Html5QrcodeCameraScanConfig, Html5QrcodeConfigs {
rememberLastUsedCamera?: boolean | undefined;
supportedScanTypes?: Array<Html5QrcodeScanType> | [];
showTorchButtonIfSupported?: boolean | undefined;
showZoomSliderIfSupported?: boolean | undefined;
defaultZoomValueIfSupported?: number | undefined;
}
export declare class Html5QrcodeScanner {
private elementId;
private config;
private verbose;
private currentScanType;
private sectionSwapAllowed;
private persistedDataManager;
private scanTypeSelector;
private logger;
private html5Qrcode;
private qrCodeSuccessCallback;
private qrCodeErrorCallback;
private lastMatchFound;
private cameraScanImage;
private fileScanImage;
private fileSelectionUi;
constructor(elementId: string, config: Html5QrcodeScannerConfig | undefined, verbose: boolean | undefined);
render(qrCodeSuccessCallback: QrcodeSuccessCallback, qrCodeErrorCallback: QrcodeErrorCallback | undefined): void;
pause(shouldPauseVideo?: boolean): void;
resume(): void;
getState(): Html5QrcodeScannerState;
clear(): Promise<void>;
getRunningTrackCapabilities(): MediaTrackCapabilities;
getRunningTrackSettings(): MediaTrackSettings;
applyVideoConstraints(videoConstaints: MediaTrackConstraints): Promise<void>;
private getHtml5QrcodeOrFail;
private createConfig;
private createBasicLayout;
private resetBasicLayout;
private setupInitialDashboard;
private createHeader;
private createSection;
private createCameraListUi;
private createPermissionButton;
private createPermissionsUi;
private createSectionControlPanel;
private renderFileScanUi;
private renderCameraSelection;
private createSectionSwap;
private startCameraScanIfPermissionExistsOnSwap;
private resetHeaderMessage;
private setHeaderMessage;
private showHideScanTypeSwapLink;
private insertCameraScanImageToScanRegion;
private insertFileScanImageToScanRegion;
private clearScanRegion;
private getDashboardSectionId;
private getDashboardSectionCameraScanRegionId;
private getDashboardSectionSwapLinkId;
private getScanRegionId;
private getDashboardId;
private getHeaderMessageContainerId;
private getCameraPermissionButtonId;
private getCameraScanRegion;
private getDashboardSectionSwapLink;
private getHeaderMessageDiv;
}

661
node_modules/html5-qrcode/cjs/html5-qrcode-scanner.js generated vendored Normal file
View File

@@ -0,0 +1,661 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Html5QrcodeScanner = void 0;
var core_1 = require("./core");
var html5_qrcode_1 = require("./html5-qrcode");
var strings_1 = require("./strings");
var image_assets_1 = require("./image-assets");
var storage_1 = require("./storage");
var ui_1 = require("./ui");
var permissions_1 = require("./camera/permissions");
var scan_type_selector_1 = require("./ui/scanner/scan-type-selector");
var torch_button_1 = require("./ui/scanner/torch-button");
var file_selection_ui_1 = require("./ui/scanner/file-selection-ui");
var base_1 = require("./ui/scanner/base");
var camera_selection_ui_1 = require("./ui/scanner/camera-selection-ui");
var camera_zoom_ui_1 = require("./ui/scanner/camera-zoom-ui");
var Html5QrcodeScannerStatus;
(function (Html5QrcodeScannerStatus) {
Html5QrcodeScannerStatus[Html5QrcodeScannerStatus["STATUS_DEFAULT"] = 0] = "STATUS_DEFAULT";
Html5QrcodeScannerStatus[Html5QrcodeScannerStatus["STATUS_SUCCESS"] = 1] = "STATUS_SUCCESS";
Html5QrcodeScannerStatus[Html5QrcodeScannerStatus["STATUS_WARNING"] = 2] = "STATUS_WARNING";
Html5QrcodeScannerStatus[Html5QrcodeScannerStatus["STATUS_REQUESTING_PERMISSION"] = 3] = "STATUS_REQUESTING_PERMISSION";
})(Html5QrcodeScannerStatus || (Html5QrcodeScannerStatus = {}));
function toHtml5QrcodeCameraScanConfig(config) {
return {
fps: config.fps,
qrbox: config.qrbox,
aspectRatio: config.aspectRatio,
disableFlip: config.disableFlip,
videoConstraints: config.videoConstraints
};
}
function toHtml5QrcodeFullConfig(config, verbose) {
return {
formatsToSupport: config.formatsToSupport,
useBarCodeDetectorIfSupported: config.useBarCodeDetectorIfSupported,
experimentalFeatures: config.experimentalFeatures,
verbose: verbose
};
}
var Html5QrcodeScanner = (function () {
function Html5QrcodeScanner(elementId, config, verbose) {
this.lastMatchFound = null;
this.cameraScanImage = null;
this.fileScanImage = null;
this.fileSelectionUi = null;
this.elementId = elementId;
this.config = this.createConfig(config);
this.verbose = verbose === true;
if (!document.getElementById(elementId)) {
throw "HTML Element with id=".concat(elementId, " not found");
}
this.scanTypeSelector = new scan_type_selector_1.ScanTypeSelector(this.config.supportedScanTypes);
this.currentScanType = this.scanTypeSelector.getDefaultScanType();
this.sectionSwapAllowed = true;
this.logger = new core_1.BaseLoggger(this.verbose);
this.persistedDataManager = new storage_1.PersistedDataManager();
if (config.rememberLastUsedCamera !== true) {
this.persistedDataManager.reset();
}
}
Html5QrcodeScanner.prototype.render = function (qrCodeSuccessCallback, qrCodeErrorCallback) {
var _this = this;
this.lastMatchFound = null;
this.qrCodeSuccessCallback
= function (decodedText, result) {
if (qrCodeSuccessCallback) {
qrCodeSuccessCallback(decodedText, result);
}
else {
if (_this.lastMatchFound === decodedText) {
return;
}
_this.lastMatchFound = decodedText;
_this.setHeaderMessage(strings_1.Html5QrcodeScannerStrings.lastMatch(decodedText), Html5QrcodeScannerStatus.STATUS_SUCCESS);
}
};
this.qrCodeErrorCallback =
function (errorMessage, error) {
if (qrCodeErrorCallback) {
qrCodeErrorCallback(errorMessage, error);
}
};
var container = document.getElementById(this.elementId);
if (!container) {
throw "HTML Element with id=".concat(this.elementId, " not found");
}
container.innerHTML = "";
this.createBasicLayout(container);
this.html5Qrcode = new html5_qrcode_1.Html5Qrcode(this.getScanRegionId(), toHtml5QrcodeFullConfig(this.config, this.verbose));
};
Html5QrcodeScanner.prototype.pause = function (shouldPauseVideo) {
if ((0, core_1.isNullOrUndefined)(shouldPauseVideo) || shouldPauseVideo !== true) {
shouldPauseVideo = false;
}
this.getHtml5QrcodeOrFail().pause(shouldPauseVideo);
};
Html5QrcodeScanner.prototype.resume = function () {
this.getHtml5QrcodeOrFail().resume();
};
Html5QrcodeScanner.prototype.getState = function () {
return this.getHtml5QrcodeOrFail().getState();
};
Html5QrcodeScanner.prototype.clear = function () {
var _this = this;
var emptyHtmlContainer = function () {
var mainContainer = document.getElementById(_this.elementId);
if (mainContainer) {
mainContainer.innerHTML = "";
_this.resetBasicLayout(mainContainer);
}
};
if (this.html5Qrcode) {
return new Promise(function (resolve, reject) {
if (!_this.html5Qrcode) {
resolve();
return;
}
if (_this.html5Qrcode.isScanning) {
_this.html5Qrcode.stop().then(function (_) {
if (!_this.html5Qrcode) {
resolve();
return;
}
_this.html5Qrcode.clear();
emptyHtmlContainer();
resolve();
}).catch(function (error) {
if (_this.verbose) {
_this.logger.logError("Unable to stop qrcode scanner", error);
}
reject(error);
});
}
else {
_this.html5Qrcode.clear();
emptyHtmlContainer();
resolve();
}
});
}
return Promise.resolve();
};
Html5QrcodeScanner.prototype.getRunningTrackCapabilities = function () {
return this.getHtml5QrcodeOrFail().getRunningTrackCapabilities();
};
Html5QrcodeScanner.prototype.getRunningTrackSettings = function () {
return this.getHtml5QrcodeOrFail().getRunningTrackSettings();
};
Html5QrcodeScanner.prototype.applyVideoConstraints = function (videoConstaints) {
return this.getHtml5QrcodeOrFail().applyVideoConstraints(videoConstaints);
};
Html5QrcodeScanner.prototype.getHtml5QrcodeOrFail = function () {
if (!this.html5Qrcode) {
throw "Code scanner not initialized.";
}
return this.html5Qrcode;
};
Html5QrcodeScanner.prototype.createConfig = function (config) {
if (config) {
if (!config.fps) {
config.fps = core_1.Html5QrcodeConstants.SCAN_DEFAULT_FPS;
}
if (config.rememberLastUsedCamera !== (!core_1.Html5QrcodeConstants.DEFAULT_REMEMBER_LAST_CAMERA_USED)) {
config.rememberLastUsedCamera
= core_1.Html5QrcodeConstants.DEFAULT_REMEMBER_LAST_CAMERA_USED;
}
if (!config.supportedScanTypes) {
config.supportedScanTypes
= core_1.Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE;
}
return config;
}
return {
fps: core_1.Html5QrcodeConstants.SCAN_DEFAULT_FPS,
rememberLastUsedCamera: core_1.Html5QrcodeConstants.DEFAULT_REMEMBER_LAST_CAMERA_USED,
supportedScanTypes: core_1.Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE
};
};
Html5QrcodeScanner.prototype.createBasicLayout = function (parent) {
parent.style.position = "relative";
parent.style.padding = "0px";
parent.style.border = "1px solid silver";
this.createHeader(parent);
var qrCodeScanRegion = document.createElement("div");
var scanRegionId = this.getScanRegionId();
qrCodeScanRegion.id = scanRegionId;
qrCodeScanRegion.style.width = "100%";
qrCodeScanRegion.style.minHeight = "100px";
qrCodeScanRegion.style.textAlign = "center";
parent.appendChild(qrCodeScanRegion);
if (scan_type_selector_1.ScanTypeSelector.isCameraScanType(this.currentScanType)) {
this.insertCameraScanImageToScanRegion();
}
else {
this.insertFileScanImageToScanRegion();
}
var qrCodeDashboard = document.createElement("div");
var dashboardId = this.getDashboardId();
qrCodeDashboard.id = dashboardId;
qrCodeDashboard.style.width = "100%";
parent.appendChild(qrCodeDashboard);
this.setupInitialDashboard(qrCodeDashboard);
};
Html5QrcodeScanner.prototype.resetBasicLayout = function (mainContainer) {
mainContainer.style.border = "none";
};
Html5QrcodeScanner.prototype.setupInitialDashboard = function (dashboard) {
this.createSection(dashboard);
this.createSectionControlPanel();
if (this.scanTypeSelector.hasMoreThanOneScanType()) {
this.createSectionSwap();
}
};
Html5QrcodeScanner.prototype.createHeader = function (dashboard) {
var header = document.createElement("div");
header.style.textAlign = "left";
header.style.margin = "0px";
dashboard.appendChild(header);
var libraryInfo = new ui_1.LibraryInfoContainer();
libraryInfo.renderInto(header);
var headerMessageContainer = document.createElement("div");
headerMessageContainer.id = this.getHeaderMessageContainerId();
headerMessageContainer.style.display = "none";
headerMessageContainer.style.textAlign = "center";
headerMessageContainer.style.fontSize = "14px";
headerMessageContainer.style.padding = "2px 10px";
headerMessageContainer.style.margin = "4px";
headerMessageContainer.style.borderTop = "1px solid #f6f6f6";
header.appendChild(headerMessageContainer);
};
Html5QrcodeScanner.prototype.createSection = function (dashboard) {
var section = document.createElement("div");
section.id = this.getDashboardSectionId();
section.style.width = "100%";
section.style.padding = "10px 0px 10px 0px";
section.style.textAlign = "left";
dashboard.appendChild(section);
};
Html5QrcodeScanner.prototype.createCameraListUi = function (scpCameraScanRegion, requestPermissionContainer, requestPermissionButton) {
var $this = this;
$this.showHideScanTypeSwapLink(false);
$this.setHeaderMessage(strings_1.Html5QrcodeScannerStrings.cameraPermissionRequesting());
var createPermissionButtonIfNotExists = function () {
if (!requestPermissionButton) {
$this.createPermissionButton(scpCameraScanRegion, requestPermissionContainer);
}
};
html5_qrcode_1.Html5Qrcode.getCameras().then(function (cameras) {
$this.persistedDataManager.setHasPermission(true);
$this.showHideScanTypeSwapLink(true);
$this.resetHeaderMessage();
if (cameras && cameras.length > 0) {
scpCameraScanRegion.removeChild(requestPermissionContainer);
$this.renderCameraSelection(cameras);
}
else {
$this.setHeaderMessage(strings_1.Html5QrcodeScannerStrings.noCameraFound(), Html5QrcodeScannerStatus.STATUS_WARNING);
createPermissionButtonIfNotExists();
}
}).catch(function (error) {
$this.persistedDataManager.setHasPermission(false);
if (requestPermissionButton) {
requestPermissionButton.disabled = false;
}
else {
createPermissionButtonIfNotExists();
}
$this.setHeaderMessage(error, Html5QrcodeScannerStatus.STATUS_WARNING);
$this.showHideScanTypeSwapLink(true);
});
};
Html5QrcodeScanner.prototype.createPermissionButton = function (scpCameraScanRegion, requestPermissionContainer) {
var $this = this;
var requestPermissionButton = base_1.BaseUiElementFactory
.createElement("button", this.getCameraPermissionButtonId());
requestPermissionButton.innerText
= strings_1.Html5QrcodeScannerStrings.cameraPermissionTitle();
requestPermissionButton.addEventListener("click", function () {
requestPermissionButton.disabled = true;
$this.createCameraListUi(scpCameraScanRegion, requestPermissionContainer, requestPermissionButton);
});
requestPermissionContainer.appendChild(requestPermissionButton);
};
Html5QrcodeScanner.prototype.createPermissionsUi = function (scpCameraScanRegion, requestPermissionContainer) {
var $this = this;
if (scan_type_selector_1.ScanTypeSelector.isCameraScanType(this.currentScanType)
&& this.persistedDataManager.hasCameraPermissions()) {
permissions_1.CameraPermissions.hasPermissions().then(function (hasPermissions) {
if (hasPermissions) {
$this.createCameraListUi(scpCameraScanRegion, requestPermissionContainer);
}
else {
$this.persistedDataManager.setHasPermission(false);
$this.createPermissionButton(scpCameraScanRegion, requestPermissionContainer);
}
}).catch(function (_) {
$this.persistedDataManager.setHasPermission(false);
$this.createPermissionButton(scpCameraScanRegion, requestPermissionContainer);
});
return;
}
this.createPermissionButton(scpCameraScanRegion, requestPermissionContainer);
};
Html5QrcodeScanner.prototype.createSectionControlPanel = function () {
var section = document.getElementById(this.getDashboardSectionId());
var sectionControlPanel = document.createElement("div");
section.appendChild(sectionControlPanel);
var scpCameraScanRegion = document.createElement("div");
scpCameraScanRegion.id = this.getDashboardSectionCameraScanRegionId();
scpCameraScanRegion.style.display
= scan_type_selector_1.ScanTypeSelector.isCameraScanType(this.currentScanType)
? "block" : "none";
sectionControlPanel.appendChild(scpCameraScanRegion);
var requestPermissionContainer = document.createElement("div");
requestPermissionContainer.style.textAlign = "center";
scpCameraScanRegion.appendChild(requestPermissionContainer);
if (this.scanTypeSelector.isCameraScanRequired()) {
this.createPermissionsUi(scpCameraScanRegion, requestPermissionContainer);
}
this.renderFileScanUi(sectionControlPanel);
};
Html5QrcodeScanner.prototype.renderFileScanUi = function (parent) {
var showOnRender = scan_type_selector_1.ScanTypeSelector.isFileScanType(this.currentScanType);
var $this = this;
var onFileSelected = function (file) {
if (!$this.html5Qrcode) {
throw "html5Qrcode not defined";
}
if (!scan_type_selector_1.ScanTypeSelector.isFileScanType($this.currentScanType)) {
return;
}
$this.setHeaderMessage(strings_1.Html5QrcodeScannerStrings.loadingImage());
$this.html5Qrcode.scanFileV2(file, true)
.then(function (html5qrcodeResult) {
$this.resetHeaderMessage();
$this.qrCodeSuccessCallback(html5qrcodeResult.decodedText, html5qrcodeResult);
})
.catch(function (error) {
$this.setHeaderMessage(error, Html5QrcodeScannerStatus.STATUS_WARNING);
$this.qrCodeErrorCallback(error, core_1.Html5QrcodeErrorFactory.createFrom(error));
});
};
this.fileSelectionUi = file_selection_ui_1.FileSelectionUi.create(parent, showOnRender, onFileSelected);
};
Html5QrcodeScanner.prototype.renderCameraSelection = function (cameras) {
var _this = this;
var $this = this;
var scpCameraScanRegion = document.getElementById(this.getDashboardSectionCameraScanRegionId());
scpCameraScanRegion.style.textAlign = "center";
var cameraZoomUi = camera_zoom_ui_1.CameraZoomUi.create(scpCameraScanRegion, false);
var renderCameraZoomUiIfSupported = function (cameraCapabilities) {
var zoomCapability = cameraCapabilities.zoomFeature();
if (!zoomCapability.isSupported()) {
return;
}
cameraZoomUi.setOnCameraZoomValueChangeCallback(function (zoomValue) {
zoomCapability.apply(zoomValue);
});
var defaultZoom = 1;
if (_this.config.defaultZoomValueIfSupported) {
defaultZoom = _this.config.defaultZoomValueIfSupported;
}
defaultZoom = (0, core_1.clip)(defaultZoom, zoomCapability.min(), zoomCapability.max());
cameraZoomUi.setValues(zoomCapability.min(), zoomCapability.max(), defaultZoom, zoomCapability.step());
cameraZoomUi.show();
};
var cameraSelectUi = camera_selection_ui_1.CameraSelectionUi.create(scpCameraScanRegion, cameras);
var cameraActionContainer = document.createElement("span");
var cameraActionStartButton = base_1.BaseUiElementFactory.createElement("button", base_1.PublicUiElementIdAndClasses.CAMERA_START_BUTTON_ID);
cameraActionStartButton.innerText
= strings_1.Html5QrcodeScannerStrings.scanButtonStartScanningText();
cameraActionContainer.appendChild(cameraActionStartButton);
var cameraActionStopButton = base_1.BaseUiElementFactory.createElement("button", base_1.PublicUiElementIdAndClasses.CAMERA_STOP_BUTTON_ID);
cameraActionStopButton.innerText
= strings_1.Html5QrcodeScannerStrings.scanButtonStopScanningText();
cameraActionStopButton.style.display = "none";
cameraActionStopButton.disabled = true;
cameraActionContainer.appendChild(cameraActionStopButton);
var torchButton;
var createAndShowTorchButtonIfSupported = function (cameraCapabilities) {
if (!cameraCapabilities.torchFeature().isSupported()) {
if (torchButton) {
torchButton.hide();
}
return;
}
if (!torchButton) {
torchButton = torch_button_1.TorchButton.create(cameraActionContainer, cameraCapabilities.torchFeature(), { display: "none", marginLeft: "5px" }, function (errorMessage) {
$this.setHeaderMessage(errorMessage, Html5QrcodeScannerStatus.STATUS_WARNING);
});
}
else {
torchButton.updateTorchCapability(cameraCapabilities.torchFeature());
}
torchButton.show();
};
scpCameraScanRegion.appendChild(cameraActionContainer);
var resetCameraActionStartButton = function (shouldShow) {
if (!shouldShow) {
cameraActionStartButton.style.display = "none";
}
cameraActionStartButton.innerText
= strings_1.Html5QrcodeScannerStrings
.scanButtonStartScanningText();
cameraActionStartButton.style.opacity = "1";
cameraActionStartButton.disabled = false;
if (shouldShow) {
cameraActionStartButton.style.display = "inline-block";
}
};
cameraActionStartButton.addEventListener("click", function (_) {
cameraActionStartButton.innerText
= strings_1.Html5QrcodeScannerStrings.scanButtonScanningStarting();
cameraSelectUi.disable();
cameraActionStartButton.disabled = true;
cameraActionStartButton.style.opacity = "0.5";
if (_this.scanTypeSelector.hasMoreThanOneScanType()) {
$this.showHideScanTypeSwapLink(false);
}
$this.resetHeaderMessage();
var cameraId = cameraSelectUi.getValue();
$this.persistedDataManager.setLastUsedCameraId(cameraId);
$this.html5Qrcode.start(cameraId, toHtml5QrcodeCameraScanConfig($this.config), $this.qrCodeSuccessCallback, $this.qrCodeErrorCallback)
.then(function (_) {
cameraActionStopButton.disabled = false;
cameraActionStopButton.style.display = "inline-block";
resetCameraActionStartButton(false);
var cameraCapabilities = $this.html5Qrcode.getRunningTrackCameraCapabilities();
if (_this.config.showTorchButtonIfSupported === true) {
createAndShowTorchButtonIfSupported(cameraCapabilities);
}
if (_this.config.showZoomSliderIfSupported === true) {
renderCameraZoomUiIfSupported(cameraCapabilities);
}
})
.catch(function (error) {
$this.showHideScanTypeSwapLink(true);
cameraSelectUi.enable();
resetCameraActionStartButton(true);
$this.setHeaderMessage(error, Html5QrcodeScannerStatus.STATUS_WARNING);
});
});
if (cameraSelectUi.hasSingleItem()) {
cameraActionStartButton.click();
}
cameraActionStopButton.addEventListener("click", function (_) {
if (!$this.html5Qrcode) {
throw "html5Qrcode not defined";
}
cameraActionStopButton.disabled = true;
$this.html5Qrcode.stop()
.then(function (_) {
if (_this.scanTypeSelector.hasMoreThanOneScanType()) {
$this.showHideScanTypeSwapLink(true);
}
cameraSelectUi.enable();
cameraActionStartButton.disabled = false;
cameraActionStopButton.style.display = "none";
cameraActionStartButton.style.display = "inline-block";
if (torchButton) {
torchButton.reset();
torchButton.hide();
}
cameraZoomUi.removeOnCameraZoomValueChangeCallback();
cameraZoomUi.hide();
$this.insertCameraScanImageToScanRegion();
}).catch(function (error) {
cameraActionStopButton.disabled = false;
$this.setHeaderMessage(error, Html5QrcodeScannerStatus.STATUS_WARNING);
});
});
if ($this.persistedDataManager.getLastUsedCameraId()) {
var cameraId = $this.persistedDataManager.getLastUsedCameraId();
if (cameraSelectUi.hasValue(cameraId)) {
cameraSelectUi.setValue(cameraId);
cameraActionStartButton.click();
}
else {
$this.persistedDataManager.resetLastUsedCameraId();
}
}
};
Html5QrcodeScanner.prototype.createSectionSwap = function () {
var $this = this;
var TEXT_IF_CAMERA_SCAN_SELECTED = strings_1.Html5QrcodeScannerStrings.textIfCameraScanSelected();
var TEXT_IF_FILE_SCAN_SELECTED = strings_1.Html5QrcodeScannerStrings.textIfFileScanSelected();
var section = document.getElementById(this.getDashboardSectionId());
var switchContainer = document.createElement("div");
switchContainer.style.textAlign = "center";
var switchScanTypeLink = base_1.BaseUiElementFactory.createElement("span", this.getDashboardSectionSwapLinkId());
switchScanTypeLink.style.textDecoration = "underline";
switchScanTypeLink.style.cursor = "pointer";
switchScanTypeLink.innerText
= scan_type_selector_1.ScanTypeSelector.isCameraScanType(this.currentScanType)
? TEXT_IF_CAMERA_SCAN_SELECTED : TEXT_IF_FILE_SCAN_SELECTED;
switchScanTypeLink.addEventListener("click", function () {
if (!$this.sectionSwapAllowed) {
if ($this.verbose) {
$this.logger.logError("Section swap called when not allowed");
}
return;
}
$this.resetHeaderMessage();
$this.fileSelectionUi.resetValue();
$this.sectionSwapAllowed = false;
if (scan_type_selector_1.ScanTypeSelector.isCameraScanType($this.currentScanType)) {
$this.clearScanRegion();
$this.getCameraScanRegion().style.display = "none";
$this.fileSelectionUi.show();
switchScanTypeLink.innerText = TEXT_IF_FILE_SCAN_SELECTED;
$this.currentScanType = core_1.Html5QrcodeScanType.SCAN_TYPE_FILE;
$this.insertFileScanImageToScanRegion();
}
else {
$this.clearScanRegion();
$this.getCameraScanRegion().style.display = "block";
$this.fileSelectionUi.hide();
switchScanTypeLink.innerText = TEXT_IF_CAMERA_SCAN_SELECTED;
$this.currentScanType = core_1.Html5QrcodeScanType.SCAN_TYPE_CAMERA;
$this.insertCameraScanImageToScanRegion();
$this.startCameraScanIfPermissionExistsOnSwap();
}
$this.sectionSwapAllowed = true;
});
switchContainer.appendChild(switchScanTypeLink);
section.appendChild(switchContainer);
};
Html5QrcodeScanner.prototype.startCameraScanIfPermissionExistsOnSwap = function () {
var _this = this;
var $this = this;
if (this.persistedDataManager.hasCameraPermissions()) {
permissions_1.CameraPermissions.hasPermissions().then(function (hasPermissions) {
if (hasPermissions) {
var permissionButton = document.getElementById($this.getCameraPermissionButtonId());
if (!permissionButton) {
_this.logger.logError("Permission button not found, fail;");
throw "Permission button not found";
}
permissionButton.click();
}
else {
$this.persistedDataManager.setHasPermission(false);
}
}).catch(function (_) {
$this.persistedDataManager.setHasPermission(false);
});
return;
}
};
Html5QrcodeScanner.prototype.resetHeaderMessage = function () {
var messageDiv = document.getElementById(this.getHeaderMessageContainerId());
messageDiv.style.display = "none";
};
Html5QrcodeScanner.prototype.setHeaderMessage = function (messageText, scannerStatus) {
if (!scannerStatus) {
scannerStatus = Html5QrcodeScannerStatus.STATUS_DEFAULT;
}
var messageDiv = this.getHeaderMessageDiv();
messageDiv.innerText = messageText;
messageDiv.style.display = "block";
switch (scannerStatus) {
case Html5QrcodeScannerStatus.STATUS_SUCCESS:
messageDiv.style.background = "rgba(106, 175, 80, 0.26)";
messageDiv.style.color = "#477735";
break;
case Html5QrcodeScannerStatus.STATUS_WARNING:
messageDiv.style.background = "rgba(203, 36, 49, 0.14)";
messageDiv.style.color = "#cb2431";
break;
case Html5QrcodeScannerStatus.STATUS_DEFAULT:
default:
messageDiv.style.background = "rgba(0, 0, 0, 0)";
messageDiv.style.color = "rgb(17, 17, 17)";
break;
}
};
Html5QrcodeScanner.prototype.showHideScanTypeSwapLink = function (shouldDisplay) {
if (this.scanTypeSelector.hasMoreThanOneScanType()) {
if (shouldDisplay !== true) {
shouldDisplay = false;
}
this.sectionSwapAllowed = shouldDisplay;
this.getDashboardSectionSwapLink().style.display
= shouldDisplay ? "inline-block" : "none";
}
};
Html5QrcodeScanner.prototype.insertCameraScanImageToScanRegion = function () {
var $this = this;
var qrCodeScanRegion = document.getElementById(this.getScanRegionId());
if (this.cameraScanImage) {
qrCodeScanRegion.innerHTML = "<br>";
qrCodeScanRegion.appendChild(this.cameraScanImage);
return;
}
this.cameraScanImage = new Image;
this.cameraScanImage.onload = function (_) {
qrCodeScanRegion.innerHTML = "<br>";
qrCodeScanRegion.appendChild($this.cameraScanImage);
};
this.cameraScanImage.width = 64;
this.cameraScanImage.style.opacity = "0.8";
this.cameraScanImage.src = image_assets_1.ASSET_CAMERA_SCAN;
this.cameraScanImage.alt = strings_1.Html5QrcodeScannerStrings.cameraScanAltText();
};
Html5QrcodeScanner.prototype.insertFileScanImageToScanRegion = function () {
var $this = this;
var qrCodeScanRegion = document.getElementById(this.getScanRegionId());
if (this.fileScanImage) {
qrCodeScanRegion.innerHTML = "<br>";
qrCodeScanRegion.appendChild(this.fileScanImage);
return;
}
this.fileScanImage = new Image;
this.fileScanImage.onload = function (_) {
qrCodeScanRegion.innerHTML = "<br>";
qrCodeScanRegion.appendChild($this.fileScanImage);
};
this.fileScanImage.width = 64;
this.fileScanImage.style.opacity = "0.8";
this.fileScanImage.src = image_assets_1.ASSET_FILE_SCAN;
this.fileScanImage.alt = strings_1.Html5QrcodeScannerStrings.fileScanAltText();
};
Html5QrcodeScanner.prototype.clearScanRegion = function () {
var qrCodeScanRegion = document.getElementById(this.getScanRegionId());
qrCodeScanRegion.innerHTML = "";
};
Html5QrcodeScanner.prototype.getDashboardSectionId = function () {
return "".concat(this.elementId, "__dashboard_section");
};
Html5QrcodeScanner.prototype.getDashboardSectionCameraScanRegionId = function () {
return "".concat(this.elementId, "__dashboard_section_csr");
};
Html5QrcodeScanner.prototype.getDashboardSectionSwapLinkId = function () {
return base_1.PublicUiElementIdAndClasses.SCAN_TYPE_CHANGE_ANCHOR_ID;
};
Html5QrcodeScanner.prototype.getScanRegionId = function () {
return "".concat(this.elementId, "__scan_region");
};
Html5QrcodeScanner.prototype.getDashboardId = function () {
return "".concat(this.elementId, "__dashboard");
};
Html5QrcodeScanner.prototype.getHeaderMessageContainerId = function () {
return "".concat(this.elementId, "__header_message");
};
Html5QrcodeScanner.prototype.getCameraPermissionButtonId = function () {
return base_1.PublicUiElementIdAndClasses.CAMERA_PERMISSION_BUTTON_ID;
};
Html5QrcodeScanner.prototype.getCameraScanRegion = function () {
return document.getElementById(this.getDashboardSectionCameraScanRegionId());
};
Html5QrcodeScanner.prototype.getDashboardSectionSwapLink = function () {
return document.getElementById(this.getDashboardSectionSwapLinkId());
};
Html5QrcodeScanner.prototype.getHeaderMessageDiv = function () {
return document.getElementById(this.getHeaderMessageContainerId());
};
return Html5QrcodeScanner;
}());
exports.Html5QrcodeScanner = Html5QrcodeScanner;
//# sourceMappingURL=html5-qrcode-scanner.js.map

File diff suppressed because one or more lines are too long

75
node_modules/html5-qrcode/cjs/html5-qrcode.d.ts generated vendored Normal file
View File

@@ -0,0 +1,75 @@
import { QrcodeErrorCallback, QrcodeSuccessCallback, Html5QrcodeSupportedFormats, Html5QrcodeResult, QrDimensions, QrDimensionFunction } from "./core";
import { CameraDevice, CameraCapabilities } from "./camera/core";
import { ExperimentalFeaturesConfig } from "./experimental-features";
import { Html5QrcodeScannerState } from "./state-manager";
export interface Html5QrcodeConfigs {
formatsToSupport?: Array<Html5QrcodeSupportedFormats> | undefined;
useBarCodeDetectorIfSupported?: boolean | undefined;
experimentalFeatures?: ExperimentalFeaturesConfig | undefined;
}
export interface Html5QrcodeFullConfig extends Html5QrcodeConfigs {
verbose: boolean | undefined;
}
export interface Html5QrcodeCameraScanConfig {
fps: number | undefined;
qrbox?: number | QrDimensions | QrDimensionFunction | undefined;
aspectRatio?: number | undefined;
disableFlip?: boolean | undefined;
videoConstraints?: MediaTrackConstraints | undefined;
}
export declare class Html5Qrcode {
private readonly logger;
private readonly elementId;
private readonly verbose;
private readonly qrcode;
private shouldScan;
private element;
private canvasElement;
private scannerPausedUiElement;
private hasBorderShaders;
private borderShaders;
private qrMatch;
private renderedCamera;
private foreverScanTimeout;
private qrRegion;
private context;
private lastScanImageFile;
private stateManagerProxy;
isScanning: boolean;
constructor(elementId: string, configOrVerbosityFlag?: boolean | Html5QrcodeFullConfig | undefined);
start(cameraIdOrConfig: string | MediaTrackConstraints, configuration: Html5QrcodeCameraScanConfig | undefined, qrCodeSuccessCallback: QrcodeSuccessCallback | undefined, qrCodeErrorCallback: QrcodeErrorCallback | undefined): Promise<null>;
pause(shouldPauseVideo?: boolean): void;
resume(): void;
getState(): Html5QrcodeScannerState;
stop(): Promise<void>;
scanFile(imageFile: File, showImage?: boolean): Promise<string>;
scanFileV2(imageFile: File, showImage?: boolean): Promise<Html5QrcodeResult>;
clear(): void;
static getCameras(): Promise<Array<CameraDevice>>;
getRunningTrackCapabilities(): MediaTrackCapabilities;
getRunningTrackSettings(): MediaTrackSettings;
getRunningTrackCameraCapabilities(): CameraCapabilities;
applyVideoConstraints(videoConstaints: MediaTrackConstraints): Promise<void>;
private getRenderedCameraOrFail;
private getSupportedFormats;
private getUseBarCodeDetectorIfSupported;
private validateQrboxSize;
private validateQrboxConfig;
private toQrdimensions;
private setupUi;
private createScannerPausedUiElement;
private scanContext;
private foreverScan;
private createVideoConstraints;
private computeCanvasDrawConfig;
private clearElement;
private possiblyUpdateShaders;
private possiblyCloseLastScanImageFile;
private createCanvasElement;
private getShadedRegionBounds;
private possiblyInsertShadingElement;
private insertShaderBorders;
private showPausedState;
private hidePausedState;
private getTimeoutFps;
}

843
node_modules/html5-qrcode/cjs/html5-qrcode.js generated vendored Normal file
View File

@@ -0,0 +1,843 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Html5Qrcode = void 0;
var core_1 = require("./core");
var strings_1 = require("./strings");
var utils_1 = require("./utils");
var code_decoder_1 = require("./code-decoder");
var factories_1 = require("./camera/factories");
var retriever_1 = require("./camera/retriever");
var state_manager_1 = require("./state-manager");
var Constants = (function (_super) {
__extends(Constants, _super);
function Constants() {
return _super !== null && _super.apply(this, arguments) || this;
}
Constants.DEFAULT_WIDTH = 300;
Constants.DEFAULT_WIDTH_OFFSET = 2;
Constants.FILE_SCAN_MIN_HEIGHT = 300;
Constants.FILE_SCAN_HIDDEN_CANVAS_PADDING = 100;
Constants.MIN_QR_BOX_SIZE = 50;
Constants.SHADED_LEFT = 1;
Constants.SHADED_RIGHT = 2;
Constants.SHADED_TOP = 3;
Constants.SHADED_BOTTOM = 4;
Constants.SHADED_REGION_ELEMENT_ID = "qr-shaded-region";
Constants.VERBOSE = false;
Constants.BORDER_SHADER_DEFAULT_COLOR = "#ffffff";
Constants.BORDER_SHADER_MATCH_COLOR = "rgb(90, 193, 56)";
return Constants;
}(core_1.Html5QrcodeConstants));
var InternalHtml5QrcodeConfig = (function () {
function InternalHtml5QrcodeConfig(config, logger) {
this.logger = logger;
this.fps = Constants.SCAN_DEFAULT_FPS;
if (!config) {
this.disableFlip = Constants.DEFAULT_DISABLE_FLIP;
}
else {
if (config.fps) {
this.fps = config.fps;
}
this.disableFlip = config.disableFlip === true;
this.qrbox = config.qrbox;
this.aspectRatio = config.aspectRatio;
this.videoConstraints = config.videoConstraints;
}
}
InternalHtml5QrcodeConfig.prototype.isMediaStreamConstraintsValid = function () {
if (!this.videoConstraints) {
this.logger.logError("Empty videoConstraints", true);
return false;
}
return utils_1.VideoConstraintsUtil.isMediaStreamConstraintsValid(this.videoConstraints, this.logger);
};
InternalHtml5QrcodeConfig.prototype.isShadedBoxEnabled = function () {
return !(0, core_1.isNullOrUndefined)(this.qrbox);
};
InternalHtml5QrcodeConfig.create = function (config, logger) {
return new InternalHtml5QrcodeConfig(config, logger);
};
return InternalHtml5QrcodeConfig;
}());
var Html5Qrcode = (function () {
function Html5Qrcode(elementId, configOrVerbosityFlag) {
this.element = null;
this.canvasElement = null;
this.scannerPausedUiElement = null;
this.hasBorderShaders = null;
this.borderShaders = null;
this.qrMatch = null;
this.renderedCamera = null;
this.qrRegion = null;
this.context = null;
this.lastScanImageFile = null;
this.isScanning = false;
if (!document.getElementById(elementId)) {
throw "HTML Element with id=".concat(elementId, " not found");
}
this.elementId = elementId;
this.verbose = false;
var experimentalFeatureConfig;
var configObject;
if (typeof configOrVerbosityFlag == "boolean") {
this.verbose = configOrVerbosityFlag === true;
}
else if (configOrVerbosityFlag) {
configObject = configOrVerbosityFlag;
this.verbose = configObject.verbose === true;
experimentalFeatureConfig = configObject.experimentalFeatures;
}
this.logger = new core_1.BaseLoggger(this.verbose);
this.qrcode = new code_decoder_1.Html5QrcodeShim(this.getSupportedFormats(configOrVerbosityFlag), this.getUseBarCodeDetectorIfSupported(configObject), this.verbose, this.logger);
this.foreverScanTimeout;
this.shouldScan = true;
this.stateManagerProxy = state_manager_1.StateManagerFactory.create();
}
Html5Qrcode.prototype.start = function (cameraIdOrConfig, configuration, qrCodeSuccessCallback, qrCodeErrorCallback) {
var _this = this;
if (!cameraIdOrConfig) {
throw "cameraIdOrConfig is required";
}
if (!qrCodeSuccessCallback
|| typeof qrCodeSuccessCallback != "function") {
throw "qrCodeSuccessCallback is required and should be a function.";
}
var qrCodeErrorCallbackInternal;
if (qrCodeErrorCallback) {
qrCodeErrorCallbackInternal = qrCodeErrorCallback;
}
else {
qrCodeErrorCallbackInternal
= this.verbose ? this.logger.log : function () { };
}
var internalConfig = InternalHtml5QrcodeConfig.create(configuration, this.logger);
this.clearElement();
var videoConstraintsAvailableAndValid = false;
if (internalConfig.videoConstraints) {
if (!internalConfig.isMediaStreamConstraintsValid()) {
this.logger.logError("'videoConstraints' is not valid 'MediaStreamConstraints, "
+ "it will be ignored.'", true);
}
else {
videoConstraintsAvailableAndValid = true;
}
}
var areVideoConstraintsEnabled = videoConstraintsAvailableAndValid;
var element = document.getElementById(this.elementId);
var rootElementWidth = element.clientWidth
? element.clientWidth : Constants.DEFAULT_WIDTH;
element.style.position = "relative";
this.shouldScan = true;
this.element = element;
var $this = this;
var toScanningStateChangeTransaction = this.stateManagerProxy.startTransition(state_manager_1.Html5QrcodeScannerState.SCANNING);
return new Promise(function (resolve, reject) {
var videoConstraints = areVideoConstraintsEnabled
? internalConfig.videoConstraints
: $this.createVideoConstraints(cameraIdOrConfig);
if (!videoConstraints) {
toScanningStateChangeTransaction.cancel();
reject("videoConstraints should be defined");
return;
}
var cameraRenderingOptions = {};
if (!areVideoConstraintsEnabled || internalConfig.aspectRatio) {
cameraRenderingOptions.aspectRatio = internalConfig.aspectRatio;
}
var renderingCallbacks = {
onRenderSurfaceReady: function (viewfinderWidth, viewfinderHeight) {
$this.setupUi(viewfinderWidth, viewfinderHeight, internalConfig);
$this.isScanning = true;
$this.foreverScan(internalConfig, qrCodeSuccessCallback, qrCodeErrorCallbackInternal);
}
};
factories_1.CameraFactory.failIfNotSupported().then(function (factory) {
factory.create(videoConstraints).then(function (camera) {
return camera.render(_this.element, cameraRenderingOptions, renderingCallbacks)
.then(function (renderedCamera) {
$this.renderedCamera = renderedCamera;
toScanningStateChangeTransaction.execute();
resolve(null);
})
.catch(function (error) {
toScanningStateChangeTransaction.cancel();
reject(error);
});
}).catch(function (error) {
toScanningStateChangeTransaction.cancel();
reject(strings_1.Html5QrcodeStrings.errorGettingUserMedia(error));
});
}).catch(function (_) {
toScanningStateChangeTransaction.cancel();
reject(strings_1.Html5QrcodeStrings.cameraStreamingNotSupported());
});
});
};
Html5Qrcode.prototype.pause = function (shouldPauseVideo) {
if (!this.stateManagerProxy.isStrictlyScanning()) {
throw "Cannot pause, scanner is not scanning.";
}
this.stateManagerProxy.directTransition(state_manager_1.Html5QrcodeScannerState.PAUSED);
this.showPausedState();
if ((0, core_1.isNullOrUndefined)(shouldPauseVideo) || shouldPauseVideo !== true) {
shouldPauseVideo = false;
}
if (shouldPauseVideo && this.renderedCamera) {
this.renderedCamera.pause();
}
};
Html5Qrcode.prototype.resume = function () {
if (!this.stateManagerProxy.isPaused()) {
throw "Cannot result, scanner is not paused.";
}
if (!this.renderedCamera) {
throw "renderedCamera doesn't exist while trying resume()";
}
var $this = this;
var transitionToScanning = function () {
$this.stateManagerProxy.directTransition(state_manager_1.Html5QrcodeScannerState.SCANNING);
$this.hidePausedState();
};
if (!this.renderedCamera.isPaused()) {
transitionToScanning();
return;
}
this.renderedCamera.resume(function () {
transitionToScanning();
});
};
Html5Qrcode.prototype.getState = function () {
return this.stateManagerProxy.getState();
};
Html5Qrcode.prototype.stop = function () {
var _this = this;
if (!this.stateManagerProxy.isScanning()) {
throw "Cannot stop, scanner is not running or paused.";
}
var toStoppedStateTransaction = this.stateManagerProxy.startTransition(state_manager_1.Html5QrcodeScannerState.NOT_STARTED);
this.shouldScan = false;
if (this.foreverScanTimeout) {
clearTimeout(this.foreverScanTimeout);
}
var removeQrRegion = function () {
if (!_this.element) {
return;
}
var childElement = document.getElementById(Constants.SHADED_REGION_ELEMENT_ID);
if (childElement) {
_this.element.removeChild(childElement);
}
};
var $this = this;
return this.renderedCamera.close().then(function () {
$this.renderedCamera = null;
if ($this.element) {
$this.element.removeChild($this.canvasElement);
$this.canvasElement = null;
}
removeQrRegion();
if ($this.qrRegion) {
$this.qrRegion = null;
}
if ($this.context) {
$this.context = null;
}
toStoppedStateTransaction.execute();
$this.hidePausedState();
$this.isScanning = false;
return Promise.resolve();
});
};
Html5Qrcode.prototype.scanFile = function (imageFile, showImage) {
return this.scanFileV2(imageFile, showImage)
.then(function (html5qrcodeResult) { return html5qrcodeResult.decodedText; });
};
Html5Qrcode.prototype.scanFileV2 = function (imageFile, showImage) {
var _this = this;
if (!imageFile || !(imageFile instanceof File)) {
throw "imageFile argument is mandatory and should be instance "
+ "of File. Use 'event.target.files[0]'.";
}
if ((0, core_1.isNullOrUndefined)(showImage)) {
showImage = true;
}
if (!this.stateManagerProxy.canScanFile()) {
throw "Cannot start file scan - ongoing camera scan";
}
return new Promise(function (resolve, reject) {
_this.possiblyCloseLastScanImageFile();
_this.clearElement();
_this.lastScanImageFile = URL.createObjectURL(imageFile);
var inputImage = new Image;
inputImage.onload = function () {
var imageWidth = inputImage.width;
var imageHeight = inputImage.height;
var element = document.getElementById(_this.elementId);
var containerWidth = element.clientWidth
? element.clientWidth : Constants.DEFAULT_WIDTH;
var containerHeight = Math.max(element.clientHeight ? element.clientHeight : imageHeight, Constants.FILE_SCAN_MIN_HEIGHT);
var config = _this.computeCanvasDrawConfig(imageWidth, imageHeight, containerWidth, containerHeight);
if (showImage) {
var visibleCanvas = _this.createCanvasElement(containerWidth, containerHeight, "qr-canvas-visible");
visibleCanvas.style.display = "inline-block";
element.appendChild(visibleCanvas);
var context_1 = visibleCanvas.getContext("2d");
if (!context_1) {
throw "Unable to get 2d context from canvas";
}
context_1.canvas.width = containerWidth;
context_1.canvas.height = containerHeight;
context_1.drawImage(inputImage, 0, 0, imageWidth, imageHeight, config.x, config.y, config.width, config.height);
}
var padding = Constants.FILE_SCAN_HIDDEN_CANVAS_PADDING;
var hiddenImageWidth = Math.max(inputImage.width, config.width);
var hiddenImageHeight = Math.max(inputImage.height, config.height);
var hiddenCanvasWidth = hiddenImageWidth + 2 * padding;
var hiddenCanvasHeight = hiddenImageHeight + 2 * padding;
var hiddenCanvas = _this.createCanvasElement(hiddenCanvasWidth, hiddenCanvasHeight);
element.appendChild(hiddenCanvas);
var context = hiddenCanvas.getContext("2d");
if (!context) {
throw "Unable to get 2d context from canvas";
}
context.canvas.width = hiddenCanvasWidth;
context.canvas.height = hiddenCanvasHeight;
context.drawImage(inputImage, 0, 0, imageWidth, imageHeight, padding, padding, hiddenImageWidth, hiddenImageHeight);
try {
_this.qrcode.decodeRobustlyAsync(hiddenCanvas)
.then(function (result) {
resolve(core_1.Html5QrcodeResultFactory.createFromQrcodeResult(result));
})
.catch(reject);
}
catch (exception) {
reject("QR code parse error, error = ".concat(exception));
}
};
inputImage.onerror = reject;
inputImage.onabort = reject;
inputImage.onstalled = reject;
inputImage.onsuspend = reject;
inputImage.src = URL.createObjectURL(imageFile);
});
};
Html5Qrcode.prototype.clear = function () {
this.clearElement();
};
Html5Qrcode.getCameras = function () {
return retriever_1.CameraRetriever.retrieve();
};
Html5Qrcode.prototype.getRunningTrackCapabilities = function () {
return this.getRenderedCameraOrFail().getRunningTrackCapabilities();
};
Html5Qrcode.prototype.getRunningTrackSettings = function () {
return this.getRenderedCameraOrFail().getRunningTrackSettings();
};
Html5Qrcode.prototype.getRunningTrackCameraCapabilities = function () {
return this.getRenderedCameraOrFail().getCapabilities();
};
Html5Qrcode.prototype.applyVideoConstraints = function (videoConstaints) {
if (!videoConstaints) {
throw "videoConstaints is required argument.";
}
else if (!utils_1.VideoConstraintsUtil.isMediaStreamConstraintsValid(videoConstaints, this.logger)) {
throw "invalid videoConstaints passed, check logs for more details";
}
return this.getRenderedCameraOrFail().applyVideoConstraints(videoConstaints);
};
Html5Qrcode.prototype.getRenderedCameraOrFail = function () {
if (this.renderedCamera == null) {
throw "Scanning is not in running state, call this API only when"
+ " QR code scanning using camera is in running state.";
}
return this.renderedCamera;
};
Html5Qrcode.prototype.getSupportedFormats = function (configOrVerbosityFlag) {
var allFormats = [
core_1.Html5QrcodeSupportedFormats.QR_CODE,
core_1.Html5QrcodeSupportedFormats.AZTEC,
core_1.Html5QrcodeSupportedFormats.CODABAR,
core_1.Html5QrcodeSupportedFormats.CODE_39,
core_1.Html5QrcodeSupportedFormats.CODE_93,
core_1.Html5QrcodeSupportedFormats.CODE_128,
core_1.Html5QrcodeSupportedFormats.DATA_MATRIX,
core_1.Html5QrcodeSupportedFormats.MAXICODE,
core_1.Html5QrcodeSupportedFormats.ITF,
core_1.Html5QrcodeSupportedFormats.EAN_13,
core_1.Html5QrcodeSupportedFormats.EAN_8,
core_1.Html5QrcodeSupportedFormats.PDF_417,
core_1.Html5QrcodeSupportedFormats.RSS_14,
core_1.Html5QrcodeSupportedFormats.RSS_EXPANDED,
core_1.Html5QrcodeSupportedFormats.UPC_A,
core_1.Html5QrcodeSupportedFormats.UPC_E,
core_1.Html5QrcodeSupportedFormats.UPC_EAN_EXTENSION,
];
if (!configOrVerbosityFlag
|| typeof configOrVerbosityFlag == "boolean") {
return allFormats;
}
if (!configOrVerbosityFlag.formatsToSupport) {
return allFormats;
}
if (!Array.isArray(configOrVerbosityFlag.formatsToSupport)) {
throw "configOrVerbosityFlag.formatsToSupport should be undefined "
+ "or an array.";
}
if (configOrVerbosityFlag.formatsToSupport.length === 0) {
throw "Atleast 1 formatsToSupport is needed.";
}
var supportedFormats = [];
for (var _i = 0, _a = configOrVerbosityFlag.formatsToSupport; _i < _a.length; _i++) {
var format = _a[_i];
if ((0, core_1.isValidHtml5QrcodeSupportedFormats)(format)) {
supportedFormats.push(format);
}
else {
this.logger.warn("Invalid format: ".concat(format, " passed in config, ignoring."));
}
}
if (supportedFormats.length === 0) {
throw "None of formatsToSupport match supported values.";
}
return supportedFormats;
};
Html5Qrcode.prototype.getUseBarCodeDetectorIfSupported = function (config) {
if ((0, core_1.isNullOrUndefined)(config)) {
return true;
}
if (!(0, core_1.isNullOrUndefined)(config.useBarCodeDetectorIfSupported)) {
return config.useBarCodeDetectorIfSupported !== false;
}
if ((0, core_1.isNullOrUndefined)(config.experimentalFeatures)) {
return true;
}
var experimentalFeatures = config.experimentalFeatures;
if ((0, core_1.isNullOrUndefined)(experimentalFeatures.useBarCodeDetectorIfSupported)) {
return true;
}
return experimentalFeatures.useBarCodeDetectorIfSupported !== false;
};
Html5Qrcode.prototype.validateQrboxSize = function (viewfinderWidth, viewfinderHeight, internalConfig) {
var _this = this;
var qrboxSize = internalConfig.qrbox;
this.validateQrboxConfig(qrboxSize);
var qrDimensions = this.toQrdimensions(viewfinderWidth, viewfinderHeight, qrboxSize);
var validateMinSize = function (size) {
if (size < Constants.MIN_QR_BOX_SIZE) {
throw "minimum size of 'config.qrbox' dimension value is"
+ " ".concat(Constants.MIN_QR_BOX_SIZE, "px.");
}
};
var correctWidthBasedOnRootElementSize = function (configWidth) {
if (configWidth > viewfinderWidth) {
_this.logger.warn("`qrbox.width` or `qrbox` is larger than the"
+ " width of the root element. The width will be truncated"
+ " to the width of root element.");
configWidth = viewfinderWidth;
}
return configWidth;
};
validateMinSize(qrDimensions.width);
validateMinSize(qrDimensions.height);
qrDimensions.width = correctWidthBasedOnRootElementSize(qrDimensions.width);
};
Html5Qrcode.prototype.validateQrboxConfig = function (qrboxSize) {
if (typeof qrboxSize === "number") {
return;
}
if (typeof qrboxSize === "function") {
return;
}
if (qrboxSize.width === undefined || qrboxSize.height === undefined) {
throw "Invalid instance of QrDimensions passed for "
+ "'config.qrbox'. Both 'width' and 'height' should be set.";
}
};
Html5Qrcode.prototype.toQrdimensions = function (viewfinderWidth, viewfinderHeight, qrboxSize) {
if (typeof qrboxSize === "number") {
return { width: qrboxSize, height: qrboxSize };
}
else if (typeof qrboxSize === "function") {
try {
return qrboxSize(viewfinderWidth, viewfinderHeight);
}
catch (error) {
throw new Error("qrbox config was passed as a function but it failed with "
+ "unknown error" + error);
}
}
return qrboxSize;
};
Html5Qrcode.prototype.setupUi = function (viewfinderWidth, viewfinderHeight, internalConfig) {
if (internalConfig.isShadedBoxEnabled()) {
this.validateQrboxSize(viewfinderWidth, viewfinderHeight, internalConfig);
}
var qrboxSize = (0, core_1.isNullOrUndefined)(internalConfig.qrbox) ?
{ width: viewfinderWidth, height: viewfinderHeight } : internalConfig.qrbox;
this.validateQrboxConfig(qrboxSize);
var qrDimensions = this.toQrdimensions(viewfinderWidth, viewfinderHeight, qrboxSize);
if (qrDimensions.height > viewfinderHeight) {
this.logger.warn("[Html5Qrcode] config.qrbox has height that is"
+ "greater than the height of the video stream. Shading will be"
+ " ignored");
}
var shouldShadingBeApplied = internalConfig.isShadedBoxEnabled()
&& qrDimensions.height <= viewfinderHeight;
var defaultQrRegion = {
x: 0,
y: 0,
width: viewfinderWidth,
height: viewfinderHeight
};
var qrRegion = shouldShadingBeApplied
? this.getShadedRegionBounds(viewfinderWidth, viewfinderHeight, qrDimensions)
: defaultQrRegion;
var canvasElement = this.createCanvasElement(qrRegion.width, qrRegion.height);
var contextAttributes = { willReadFrequently: true };
var context = canvasElement.getContext("2d", contextAttributes);
context.canvas.width = qrRegion.width;
context.canvas.height = qrRegion.height;
this.element.append(canvasElement);
if (shouldShadingBeApplied) {
this.possiblyInsertShadingElement(this.element, viewfinderWidth, viewfinderHeight, qrDimensions);
}
this.createScannerPausedUiElement(this.element);
this.qrRegion = qrRegion;
this.context = context;
this.canvasElement = canvasElement;
};
Html5Qrcode.prototype.createScannerPausedUiElement = function (rootElement) {
var scannerPausedUiElement = document.createElement("div");
scannerPausedUiElement.innerText = strings_1.Html5QrcodeStrings.scannerPaused();
scannerPausedUiElement.style.display = "none";
scannerPausedUiElement.style.position = "absolute";
scannerPausedUiElement.style.top = "0px";
scannerPausedUiElement.style.zIndex = "1";
scannerPausedUiElement.style.background = "rgba(9, 9, 9, 0.46)";
scannerPausedUiElement.style.color = "#FFECEC";
scannerPausedUiElement.style.textAlign = "center";
scannerPausedUiElement.style.width = "100%";
rootElement.appendChild(scannerPausedUiElement);
this.scannerPausedUiElement = scannerPausedUiElement;
};
Html5Qrcode.prototype.scanContext = function (qrCodeSuccessCallback, qrCodeErrorCallback) {
var _this = this;
if (this.stateManagerProxy.isPaused()) {
return Promise.resolve(false);
}
return this.qrcode.decodeAsync(this.canvasElement)
.then(function (result) {
qrCodeSuccessCallback(result.text, core_1.Html5QrcodeResultFactory.createFromQrcodeResult(result));
_this.possiblyUpdateShaders(true);
return true;
}).catch(function (error) {
_this.possiblyUpdateShaders(false);
var errorMessage = strings_1.Html5QrcodeStrings.codeParseError(error);
qrCodeErrorCallback(errorMessage, core_1.Html5QrcodeErrorFactory.createFrom(errorMessage));
return false;
});
};
Html5Qrcode.prototype.foreverScan = function (internalConfig, qrCodeSuccessCallback, qrCodeErrorCallback) {
var _this = this;
if (!this.shouldScan) {
return;
}
if (!this.renderedCamera) {
return;
}
var videoElement = this.renderedCamera.getSurface();
var widthRatio = videoElement.videoWidth / videoElement.clientWidth;
var heightRatio = videoElement.videoHeight / videoElement.clientHeight;
if (!this.qrRegion) {
throw "qrRegion undefined when localMediaStream is ready.";
}
var sWidthOffset = this.qrRegion.width * widthRatio;
var sHeightOffset = this.qrRegion.height * heightRatio;
var sxOffset = this.qrRegion.x * widthRatio;
var syOffset = this.qrRegion.y * heightRatio;
this.context.drawImage(videoElement, sxOffset, syOffset, sWidthOffset, sHeightOffset, 0, 0, this.qrRegion.width, this.qrRegion.height);
var triggerNextScan = function () {
_this.foreverScanTimeout = setTimeout(function () {
_this.foreverScan(internalConfig, qrCodeSuccessCallback, qrCodeErrorCallback);
}, _this.getTimeoutFps(internalConfig.fps));
};
this.scanContext(qrCodeSuccessCallback, qrCodeErrorCallback)
.then(function (isSuccessfull) {
if (!isSuccessfull && internalConfig.disableFlip !== true) {
_this.context.translate(_this.context.canvas.width, 0);
_this.context.scale(-1, 1);
_this.scanContext(qrCodeSuccessCallback, qrCodeErrorCallback)
.finally(function () {
triggerNextScan();
});
}
else {
triggerNextScan();
}
}).catch(function (error) {
_this.logger.logError("Error happend while scanning context", error);
triggerNextScan();
});
};
Html5Qrcode.prototype.createVideoConstraints = function (cameraIdOrConfig) {
if (typeof cameraIdOrConfig == "string") {
return { deviceId: { exact: cameraIdOrConfig } };
}
else if (typeof cameraIdOrConfig == "object") {
var facingModeKey = "facingMode";
var deviceIdKey = "deviceId";
var allowedFacingModeValues_1 = { "user": true, "environment": true };
var exactKey = "exact";
var isValidFacingModeValue = function (value) {
if (value in allowedFacingModeValues_1) {
return true;
}
else {
throw "config has invalid 'facingMode' value = "
+ "'".concat(value, "'");
}
};
var keys = Object.keys(cameraIdOrConfig);
if (keys.length !== 1) {
throw "'cameraIdOrConfig' object should have exactly 1 key,"
+ " if passed as an object, found ".concat(keys.length, " keys");
}
var key = Object.keys(cameraIdOrConfig)[0];
if (key !== facingModeKey && key !== deviceIdKey) {
throw "Only '".concat(facingModeKey, "' and '").concat(deviceIdKey, "' ")
+ " are supported for 'cameraIdOrConfig'";
}
if (key === facingModeKey) {
var facingMode = cameraIdOrConfig.facingMode;
if (typeof facingMode == "string") {
if (isValidFacingModeValue(facingMode)) {
return { facingMode: facingMode };
}
}
else if (typeof facingMode == "object") {
if (exactKey in facingMode) {
if (isValidFacingModeValue(facingMode["".concat(exactKey)])) {
return {
facingMode: {
exact: facingMode["".concat(exactKey)]
}
};
}
}
else {
throw "'facingMode' should be string or object with"
+ " ".concat(exactKey, " as key.");
}
}
else {
var type_1 = (typeof facingMode);
throw "Invalid type of 'facingMode' = ".concat(type_1);
}
}
else {
var deviceId = cameraIdOrConfig.deviceId;
if (typeof deviceId == "string") {
return { deviceId: deviceId };
}
else if (typeof deviceId == "object") {
if (exactKey in deviceId) {
return {
deviceId: { exact: deviceId["".concat(exactKey)] }
};
}
else {
throw "'deviceId' should be string or object with"
+ " ".concat(exactKey, " as key.");
}
}
else {
var type_2 = (typeof deviceId);
throw "Invalid type of 'deviceId' = ".concat(type_2);
}
}
}
var type = (typeof cameraIdOrConfig);
throw "Invalid type of 'cameraIdOrConfig' = ".concat(type);
};
Html5Qrcode.prototype.computeCanvasDrawConfig = function (imageWidth, imageHeight, containerWidth, containerHeight) {
if (imageWidth <= containerWidth
&& imageHeight <= containerHeight) {
var xoffset = (containerWidth - imageWidth) / 2;
var yoffset = (containerHeight - imageHeight) / 2;
return {
x: xoffset,
y: yoffset,
width: imageWidth,
height: imageHeight
};
}
else {
var formerImageWidth = imageWidth;
var formerImageHeight = imageHeight;
if (imageWidth > containerWidth) {
imageHeight = (containerWidth / imageWidth) * imageHeight;
imageWidth = containerWidth;
}
if (imageHeight > containerHeight) {
imageWidth = (containerHeight / imageHeight) * imageWidth;
imageHeight = containerHeight;
}
this.logger.log("Image downsampled from "
+ "".concat(formerImageWidth, "X").concat(formerImageHeight)
+ " to ".concat(imageWidth, "X").concat(imageHeight, "."));
return this.computeCanvasDrawConfig(imageWidth, imageHeight, containerWidth, containerHeight);
}
};
Html5Qrcode.prototype.clearElement = function () {
if (this.stateManagerProxy.isScanning()) {
throw "Cannot clear while scan is ongoing, close it first.";
}
var element = document.getElementById(this.elementId);
if (element) {
element.innerHTML = "";
}
};
Html5Qrcode.prototype.possiblyUpdateShaders = function (qrMatch) {
if (this.qrMatch === qrMatch) {
return;
}
if (this.hasBorderShaders
&& this.borderShaders
&& this.borderShaders.length) {
this.borderShaders.forEach(function (shader) {
shader.style.backgroundColor = qrMatch
? Constants.BORDER_SHADER_MATCH_COLOR
: Constants.BORDER_SHADER_DEFAULT_COLOR;
});
}
this.qrMatch = qrMatch;
};
Html5Qrcode.prototype.possiblyCloseLastScanImageFile = function () {
if (this.lastScanImageFile) {
URL.revokeObjectURL(this.lastScanImageFile);
this.lastScanImageFile = null;
}
};
Html5Qrcode.prototype.createCanvasElement = function (width, height, customId) {
var canvasWidth = width;
var canvasHeight = height;
var canvasElement = document.createElement("canvas");
canvasElement.style.width = "".concat(canvasWidth, "px");
canvasElement.style.height = "".concat(canvasHeight, "px");
canvasElement.style.display = "none";
canvasElement.id = (0, core_1.isNullOrUndefined)(customId)
? "qr-canvas" : customId;
return canvasElement;
};
Html5Qrcode.prototype.getShadedRegionBounds = function (width, height, qrboxSize) {
if (qrboxSize.width > width || qrboxSize.height > height) {
throw "'config.qrbox' dimensions should not be greater than the "
+ "dimensions of the root HTML element.";
}
return {
x: (width - qrboxSize.width) / 2,
y: (height - qrboxSize.height) / 2,
width: qrboxSize.width,
height: qrboxSize.height
};
};
Html5Qrcode.prototype.possiblyInsertShadingElement = function (element, width, height, qrboxSize) {
if ((width - qrboxSize.width) < 1 || (height - qrboxSize.height) < 1) {
return;
}
var shadingElement = document.createElement("div");
shadingElement.style.position = "absolute";
var rightLeftBorderSize = (width - qrboxSize.width) / 2;
var topBottomBorderSize = (height - qrboxSize.height) / 2;
shadingElement.style.borderLeft
= "".concat(rightLeftBorderSize, "px solid rgba(0, 0, 0, 0.48)");
shadingElement.style.borderRight
= "".concat(rightLeftBorderSize, "px solid rgba(0, 0, 0, 0.48)");
shadingElement.style.borderTop
= "".concat(topBottomBorderSize, "px solid rgba(0, 0, 0, 0.48)");
shadingElement.style.borderBottom
= "".concat(topBottomBorderSize, "px solid rgba(0, 0, 0, 0.48)");
shadingElement.style.boxSizing = "border-box";
shadingElement.style.top = "0px";
shadingElement.style.bottom = "0px";
shadingElement.style.left = "0px";
shadingElement.style.right = "0px";
shadingElement.id = "".concat(Constants.SHADED_REGION_ELEMENT_ID);
if ((width - qrboxSize.width) < 11
|| (height - qrboxSize.height) < 11) {
this.hasBorderShaders = false;
}
else {
var smallSize = 5;
var largeSize = 40;
this.insertShaderBorders(shadingElement, largeSize, smallSize, -smallSize, null, 0, true);
this.insertShaderBorders(shadingElement, largeSize, smallSize, -smallSize, null, 0, false);
this.insertShaderBorders(shadingElement, largeSize, smallSize, null, -smallSize, 0, true);
this.insertShaderBorders(shadingElement, largeSize, smallSize, null, -smallSize, 0, false);
this.insertShaderBorders(shadingElement, smallSize, largeSize + smallSize, -smallSize, null, -smallSize, true);
this.insertShaderBorders(shadingElement, smallSize, largeSize + smallSize, null, -smallSize, -smallSize, true);
this.insertShaderBorders(shadingElement, smallSize, largeSize + smallSize, -smallSize, null, -smallSize, false);
this.insertShaderBorders(shadingElement, smallSize, largeSize + smallSize, null, -smallSize, -smallSize, false);
this.hasBorderShaders = true;
}
element.append(shadingElement);
};
Html5Qrcode.prototype.insertShaderBorders = function (shaderElem, width, height, top, bottom, side, isLeft) {
var elem = document.createElement("div");
elem.style.position = "absolute";
elem.style.backgroundColor = Constants.BORDER_SHADER_DEFAULT_COLOR;
elem.style.width = "".concat(width, "px");
elem.style.height = "".concat(height, "px");
if (top !== null) {
elem.style.top = "".concat(top, "px");
}
if (bottom !== null) {
elem.style.bottom = "".concat(bottom, "px");
}
if (isLeft) {
elem.style.left = "".concat(side, "px");
}
else {
elem.style.right = "".concat(side, "px");
}
if (!this.borderShaders) {
this.borderShaders = [];
}
this.borderShaders.push(elem);
shaderElem.appendChild(elem);
};
Html5Qrcode.prototype.showPausedState = function () {
if (!this.scannerPausedUiElement) {
throw "[internal error] scanner paused UI element not found";
}
this.scannerPausedUiElement.style.display = "block";
};
Html5Qrcode.prototype.hidePausedState = function () {
if (!this.scannerPausedUiElement) {
throw "[internal error] scanner paused UI element not found";
}
this.scannerPausedUiElement.style.display = "none";
};
Html5Qrcode.prototype.getTimeoutFps = function (fps) {
return 1000 / fps;
};
return Html5Qrcode;
}());
exports.Html5Qrcode = Html5Qrcode;
//# sourceMappingURL=html5-qrcode.js.map

1
node_modules/html5-qrcode/cjs/html5-qrcode.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

4
node_modules/html5-qrcode/cjs/image-assets.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export declare const ASSET_CAMERA_SCAN: string;
export declare const ASSET_FILE_SCAN: string;
export declare const ASSET_INFO_ICON_16PX: string;
export declare const ASSET_CLOSE_ICON_16PX: string;

9
node_modules/html5-qrcode/cjs/image-assets.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ASSET_CLOSE_ICON_16PX = exports.ASSET_INFO_ICON_16PX = exports.ASSET_FILE_SCAN = exports.ASSET_CAMERA_SCAN = void 0;
var SVG_XML_PREFIX = "data:image/svg+xml;base64,";
exports.ASSET_CAMERA_SCAN = SVG_XML_PREFIX + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNzEuNjQzIDM3MS42NDMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM3MS42NDMgMzcxLjY0MyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTEwNS4wODQgMzguMjcxaDE2My43Njh2MjBIMTA1LjA4NHoiLz48cGF0aCBkPSJNMzExLjU5NiAxOTAuMTg5Yy03LjQ0MS05LjM0Ny0xOC40MDMtMTYuMjA2LTMyLjc0My0yMC41MjJWMzBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwSDEyNS4wODRjLTE2LjU0MiAwLTMwIDEzLjQ1OC0zMCAzMHYxMjAuMTQzaC04LjI5NmMtMTYuNTQyIDAtMzAgMTMuNDU4LTMwIDMwdjEuMzMzYTI5LjgwNCAyOS44MDQgMCAwIDAgNC42MDMgMTUuOTM5Yy03LjM0IDUuNDc0LTEyLjEwMyAxNC4yMjEtMTIuMTAzIDI0LjA2MXYxLjMzM2MwIDkuODQgNC43NjMgMTguNTg3IDEyLjEwMyAyNC4wNjJhMjkuODEgMjkuODEgMCAwIDAtNC42MDMgMTUuOTM4djEuMzMzYzAgMTYuNTQyIDEzLjQ1OCAzMCAzMCAzMGg4LjMyNGMuNDI3IDExLjYzMSA3LjUwMyAyMS41ODcgMTcuNTM0IDI2LjE3Ny45MzEgMTAuNTAzIDQuMDg0IDMwLjE4NyAxNC43NjggNDUuNTM3YTkuOTg4IDkuOTg4IDAgMCAwIDguMjE2IDQuMjg4IDkuOTU4IDkuOTU4IDAgMCAwIDUuNzA0LTEuNzkzYzQuNTMzLTMuMTU1IDUuNjUtOS4zODggMi40OTUtMTMuOTIxLTYuNzk4LTkuNzY3LTkuNjAyLTIyLjYwOC0xMC43Ni0zMS40aDgyLjY4NWMuMjcyLjQxNC41NDUuODE4LjgxNSAxLjIxIDMuMTQyIDQuNTQxIDkuMzcyIDUuNjc5IDEzLjkxMyAyLjUzNCA0LjU0Mi0zLjE0MiA1LjY3Ny05LjM3MSAyLjUzNS0xMy45MTMtMTEuOTE5LTE3LjIyOS04Ljc4Ny0zNS44ODQgOS41ODEtNTcuMDEyIDMuMDY3LTIuNjUyIDEyLjMwNy0xMS43MzIgMTEuMjE3LTI0LjAzMy0uODI4LTkuMzQzLTcuMTA5LTE3LjE5NC0xOC42NjktMjMuMzM3YTkuODU3IDkuODU3IDAgMCAwLTEuMDYxLS40ODZjLS40NjYtLjE4Mi0xMS40MDMtNC41NzktOS43NDEtMTUuNzA2IDEuMDA3LTYuNzM3IDE0Ljc2OC04LjI3MyAyMy43NjYtNy42NjYgMjMuMTU2IDEuNTY5IDM5LjY5OCA3LjgwMyA0Ny44MzYgMTguMDI2IDUuNzUyIDcuMjI1IDcuNjA3IDE2LjYyMyA1LjY3MyAyOC43MzMtLjQxMyAyLjU4NS0uODI0IDUuMjQxLTEuMjQ1IDcuOTU5LTUuNzU2IDM3LjE5NC0xMi45MTkgODMuNDgzLTQ5Ljg3IDExNC42NjEtNC4yMjEgMy41NjEtNC43NTYgOS44Ny0xLjE5NCAxNC4wOTJhOS45OCA5Ljk4IDAgMCAwIDcuNjQ4IDMuNTUxIDkuOTU1IDkuOTU1IDAgMCAwIDYuNDQ0LTIuMzU4YzQyLjY3Mi0zNi4wMDUgNTAuODAyLTg4LjUzMyA1Ni43MzctMTI2Ljg4OC40MTUtMi42ODQuODIxLTUuMzA5IDEuMjI5LTcuODYzIDIuODM0LTE3LjcyMS0uNDU1LTMyLjY0MS05Ljc3Mi00NC4zNDV6bS0yMzIuMzA4IDQyLjYyYy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi0xLjMzM2MwLTUuNTE0IDQuNDg2LTEwIDEwLTEwaDE1djIxLjMzM2gtMTV6bS0yLjUtNTIuNjY2YzAtNS41MTQgNC40ODYtMTAgMTAtMTBoNy41djIxLjMzM2gtNy41Yy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi0xLjMzM3ptMTcuNSA5My45OTloLTcuNWMtNS41MTQgMC0xMC00LjQ4Ni0xMC0xMHYtMS4zMzNjMC01LjUxNCA0LjQ4Ni0xMCAxMC0xMGg3LjV2MjEuMzMzem0zMC43OTYgMjguODg3Yy01LjUxNCAwLTEwLTQuNDg2LTEwLTEwdi04LjI3MWg5MS40NTdjLS44NTEgNi42NjgtLjQzNyAxMi43ODcuNzMxIDE4LjI3MWgtODIuMTg4em03OS40ODItMTEzLjY5OGMtMy4xMjQgMjAuOTA2IDEyLjQyNyAzMy4xODQgMjEuNjI1IDM3LjA0IDUuNDQxIDIuOTY4IDcuNTUxIDUuNjQ3IDcuNzAxIDcuMTg4LjIxIDIuMTUtMi41NTMgNS42ODQtNC40NzcgNy4yNTEtLjQ4Mi4zNzgtLjkyOS44LTEuMzM1IDEuMjYxLTYuOTg3IDcuOTM2LTExLjk4MiAxNS41Mi0xNS40MzIgMjIuNjg4aC05Ny41NjRWMzBjMC01LjUxNCA0LjQ4Ni0xMCAxMC0xMGgxMjMuNzY5YzUuNTE0IDAgMTAgNC40ODYgMTAgMTB2MTM1LjU3OWMtMy4wMzItLjM4MS02LjE1LS42OTQtOS4zODktLjkxNC0yNS4xNTktMS42OTQtNDIuMzcgNy43NDgtNDQuODk4IDI0LjY2NnoiLz48cGF0aCBkPSJNMTc5LjEyOSA4My4xNjdoLTI0LjA2YTUgNSAwIDAgMC01IDV2MjQuMDYxYTUgNSAwIDAgMCA1IDVoMjQuMDZhNSA1IDAgMCAwIDUtNVY4OC4xNjdhNSA1IDAgMCAwLTUtNXpNMTcyLjYyOSAxNDIuODZoLTEyLjU2VjEzMC44YTUgNSAwIDEgMC0xMCAwdjE3LjA2MWE1IDUgMCAwIDAgNSA1aDE3LjU2YTUgNSAwIDEgMCAwLTEwLjAwMXpNMjE2LjU2OCA4My4xNjdoLTI0LjA2YTUgNSAwIDAgMC01IDV2MjQuMDYxYTUgNSAwIDAgMCA1IDVoMjQuMDZhNSA1IDAgMCAwIDUtNVY4OC4xNjdhNSA1IDAgMCAwLTUtNXptLTUgMjQuMDYxaC0xNC4wNlY5My4xNjdoMTQuMDZ2MTQuMDYxek0yMTEuNjY5IDEyNS45MzZIMTk3LjQxYTUgNSAwIDAgMC01IDV2MTQuMjU3YTUgNSAwIDAgMCA1IDVoMTQuMjU5YTUgNSAwIDAgMCA1LTV2LTE0LjI1N2E1IDUgMCAwIDAtNS01eiIvPjwvc3ZnPg==";
exports.ASSET_FILE_SCAN = SVG_XML_PREFIX + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1OS4wMTggNTkuMDE4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1OS4wMTggNTkuMDE4IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJtNTguNzQxIDU0LjgwOS01Ljk2OS02LjI0NGExMC43NCAxMC43NCAwIDAgMCAyLjgyLTcuMjVjMC01Ljk1My00Ljg0My0xMC43OTYtMTAuNzk2LTEwLjc5NlMzNCAzNS4zNjEgMzQgNDEuMzE0IDM4Ljg0MyA1Mi4xMSA0NC43OTYgNTIuMTFjMi40NDEgMCA0LjY4OC0uODI0IDYuNDk5LTIuMTk2bDYuMDAxIDYuMjc3YS45OTguOTk4IDAgMCAwIDEuNDE0LjAzMiAxIDEgMCAwIDAgLjAzMS0xLjQxNHpNMzYgNDEuMzE0YzAtNC44NSAzLjk0Ni04Ljc5NiA4Ljc5Ni04Ljc5NnM4Ljc5NiAzLjk0NiA4Ljc5NiA4Ljc5Ni0zLjk0NiA4Ljc5Ni04Ljc5NiA4Ljc5NlMzNiA0Ni4xNjQgMzYgNDEuMzE0ek0xMC40MzEgMTYuMDg4YzAgMy4wNyAyLjQ5OCA1LjU2OCA1LjU2OSA1LjU2OHM1LjU2OS0yLjQ5OCA1LjU2OS01LjU2OGMwLTMuMDcxLTIuNDk4LTUuNTY5LTUuNTY5LTUuNTY5cy01LjU2OSAyLjQ5OC01LjU2OSA1LjU2OXptOS4xMzggMGMwIDEuOTY4LTEuNjAyIDMuNTY4LTMuNTY5IDMuNTY4cy0zLjU2OS0xLjYwMS0zLjU2OS0zLjU2OCAxLjYwMi0zLjU2OSAzLjU2OS0zLjU2OSAzLjU2OSAxLjYwMSAzLjU2OSAzLjU2OXoiLz48cGF0aCBkPSJtMzAuODgyIDI4Ljk4NyA5LjE4LTEwLjA1NCAxMS4yNjIgMTAuMzIzYTEgMSAwIDAgMCAxLjM1MS0xLjQ3NWwtMTItMTFhMSAxIDAgMCAwLTEuNDE0LjA2M2wtOS43OTQgMTAuNzI3LTQuNzQzLTQuNzQzYTEuMDAzIDEuMDAzIDAgMCAwLTEuMzY4LS4wNDRMNi4zMzkgMzcuNzY4YTEgMSAwIDEgMCAxLjMyMiAxLjUwMWwxNi4zMTMtMTQuMzYyIDcuMzE5IDcuMzE4YS45OTkuOTk5IDAgMSAwIDEuNDE0LTEuNDE0bC0xLjgyNS0xLjgyNHoiLz48cGF0aCBkPSJNMzAgNDYuNTE4SDJ2LTQyaDU0djI4YTEgMSAwIDEgMCAyIDB2LTI5YTEgMSAwIDAgMC0xLTFIMWExIDEgMCAwIDAtMSAxdjQ0YTEgMSAwIDAgMCAxIDFoMjlhMSAxIDAgMSAwIDAtMnoiLz48L3N2Zz4=";
exports.ASSET_INFO_ICON_16PX = SVG_XML_PREFIX + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NjAgNDYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NjAgNDYwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNMjMwIDBDMTAyLjk3NSAwIDAgMTAyLjk3NSAwIDIzMHMxMDIuOTc1IDIzMCAyMzAgMjMwIDIzMC0xMDIuOTc0IDIzMC0yMzBTMzU3LjAyNSAwIDIzMCAwem0zOC4zMzMgMzc3LjM2YzAgOC42NzYtNy4wMzQgMTUuNzEtMTUuNzEgMTUuNzFoLTQzLjEwMWMtOC42NzYgMC0xNS43MS03LjAzNC0xNS43MS0xNS43MVYyMDIuNDc3YzAtOC42NzYgNy4wMzMtMTUuNzEgMTUuNzEtMTUuNzFoNDMuMTAxYzguNjc2IDAgMTUuNzEgNy4wMzMgMTUuNzEgMTUuNzFWMzc3LjM2ek0yMzAgMTU3Yy0yMS41MzkgMC0zOS0xNy40NjEtMzktMzlzMTcuNDYxLTM5IDM5LTM5IDM5IDE3LjQ2MSAzOSAzOS0xNy40NjEgMzktMzkgMzl6Ii8+PC9zdmc+";
exports.ASSET_CLOSE_ICON_16PX = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAQgAAAEIBarqQRAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE1SURBVDiNfdI7S0NBEAXgLya1otFgpbYSbISAgpXYi6CmiH9KCAiChaVga6OiWPgfRDQ+0itaGVNosXtluWwcuMzePfM4M3sq8lbHBubwg1dc4m1E/J/N4ghDPOIsfk/4xiEao5KX0McFljN4C9d4QTPXuY99jP3DsIoDPGM6BY5i5yI5R7O4q+ImFkJY2DCh3cAH2klyB+9J1xUMMAG7eCh1a+Mr+k48b5diXrFVwwLuS+BJ9MfR7+G0FHOHhTHhnXNWS87VDF4pcnfQK4Ep7XScNLmPTZgURNKKYENYWDpzW1BhscS1WHS8CDgURFJQrWcoF3c13KKbgg1BYQfy8xZWEzTTw1QZbAoKu8FqJnktdu5hcVSHmchiILzzuaDQvjBzV2m8yohCE1jHfPx/xhU+y4G/D75ELlRJsSYAAAAASUVORK5CYII=";
//# sourceMappingURL=image-assets.js.map

1
node_modules/html5-qrcode/cjs/image-assets.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"image-assets.js","sourceRoot":"","sources":["../../src/image-assets.ts"],"names":[],"mappings":";;;AASA,IAAM,cAAc,GAAG,4BAA4B,CAAC;AAEvC,QAAA,iBAAiB,GAAW,cAAc,GAAG,82GAA82G,CAAC;AAE55G,QAAA,eAAe,GAAW,cAAc,GAAG,s8CAAs8C,CAAC;AAEl/C,QAAA,oBAAoB,GAAY,cAAc,GAAG,8oBAA8oB,CAAC;AAEhsB,QAAA,qBAAqB,GAAY,omBAAomB,CAAC"}

6
node_modules/html5-qrcode/cjs/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
export { Html5Qrcode, Html5QrcodeFullConfig, Html5QrcodeCameraScanConfig } from "./html5-qrcode";
export { Html5QrcodeScanner } from "./html5-qrcode-scanner";
export { Html5QrcodeSupportedFormats, Html5QrcodeResult, QrcodeSuccessCallback, QrcodeErrorCallback } from "./core";
export { Html5QrcodeScannerState } from "./state-manager";
export { Html5QrcodeScanType } from "./core";
export { CameraCapabilities, CameraDevice } from "./camera/core";

14
node_modules/html5-qrcode/cjs/index.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Html5QrcodeScanType = exports.Html5QrcodeScannerState = exports.Html5QrcodeSupportedFormats = exports.Html5QrcodeScanner = exports.Html5Qrcode = void 0;
var html5_qrcode_1 = require("./html5-qrcode");
Object.defineProperty(exports, "Html5Qrcode", { enumerable: true, get: function () { return html5_qrcode_1.Html5Qrcode; } });
var html5_qrcode_scanner_1 = require("./html5-qrcode-scanner");
Object.defineProperty(exports, "Html5QrcodeScanner", { enumerable: true, get: function () { return html5_qrcode_scanner_1.Html5QrcodeScanner; } });
var core_1 = require("./core");
Object.defineProperty(exports, "Html5QrcodeSupportedFormats", { enumerable: true, get: function () { return core_1.Html5QrcodeSupportedFormats; } });
var state_manager_1 = require("./state-manager");
Object.defineProperty(exports, "Html5QrcodeScannerState", { enumerable: true, get: function () { return state_manager_1.Html5QrcodeScannerState; } });
var core_2 = require("./core");
Object.defineProperty(exports, "Html5QrcodeScanType", { enumerable: true, get: function () { return core_2.Html5QrcodeScanType; } });
//# sourceMappingURL=index.js.map

1
node_modules/html5-qrcode/cjs/index.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAcA,+CAIwB;AAHpB,2GAAA,WAAW,OAAA;AAIf,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,+BAKgB;AAJZ,mHAAA,2BAA2B,OAAA;AAK/B,iDAA0D;AAAjD,wHAAA,uBAAuB,OAAA;AAChC,+BAA6C;AAApC,2GAAA,mBAAmB,OAAA"}

View File

@@ -0,0 +1,16 @@
import { QrcodeResult, Html5QrcodeSupportedFormats, QrcodeDecoderAsync, Logger } from "./core";
export declare class BarcodeDetectorDelegate implements QrcodeDecoderAsync {
private readonly formatMap;
private readonly reverseFormatMap;
private verbose;
private logger;
private detector;
static isSupported(): boolean;
constructor(requestedFormats: Array<Html5QrcodeSupportedFormats>, verbose: boolean, logger: Logger);
decodeAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
private selectLargestBarcode;
private createBarcodeDetectorFormats;
private toHtml5QrcodeSupportedFormats;
private createReverseFormatMap;
private createDebugData;
}

View File

@@ -0,0 +1,148 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BarcodeDetectorDelegate = void 0;
var core_1 = require("./core");
var BarcodeDetectorDelegate = (function () {
function BarcodeDetectorDelegate(requestedFormats, verbose, logger) {
this.formatMap = new Map([
[core_1.Html5QrcodeSupportedFormats.QR_CODE, "qr_code"],
[core_1.Html5QrcodeSupportedFormats.AZTEC, "aztec"],
[core_1.Html5QrcodeSupportedFormats.CODABAR, "codabar"],
[core_1.Html5QrcodeSupportedFormats.CODE_39, "code_39"],
[core_1.Html5QrcodeSupportedFormats.CODE_93, "code_93"],
[core_1.Html5QrcodeSupportedFormats.CODE_128, "code_128"],
[core_1.Html5QrcodeSupportedFormats.DATA_MATRIX, "data_matrix"],
[core_1.Html5QrcodeSupportedFormats.ITF, "itf"],
[core_1.Html5QrcodeSupportedFormats.EAN_13, "ean_13"],
[core_1.Html5QrcodeSupportedFormats.EAN_8, "ean_8"],
[core_1.Html5QrcodeSupportedFormats.PDF_417, "pdf417"],
[core_1.Html5QrcodeSupportedFormats.UPC_A, "upc_a"],
[core_1.Html5QrcodeSupportedFormats.UPC_E, "upc_e"]
]);
this.reverseFormatMap = this.createReverseFormatMap();
if (!BarcodeDetectorDelegate.isSupported()) {
throw "Use html5qrcode.min.js without edit, Use "
+ "BarcodeDetectorDelegate only if it isSupported();";
}
this.verbose = verbose;
this.logger = logger;
var formats = this.createBarcodeDetectorFormats(requestedFormats);
this.detector = new BarcodeDetector(formats);
if (!this.detector) {
throw "BarcodeDetector detector not supported";
}
}
BarcodeDetectorDelegate.isSupported = function () {
if (!("BarcodeDetector" in window)) {
return false;
}
var dummyDetector = new BarcodeDetector({ formats: ["qr_code"] });
return typeof dummyDetector !== "undefined";
};
BarcodeDetectorDelegate.prototype.decodeAsync = function (canvas) {
return __awaiter(this, void 0, void 0, function () {
var barcodes, largestBarcode;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4, this.detector.detect(canvas)];
case 1:
barcodes = _a.sent();
if (!barcodes || barcodes.length === 0) {
throw "No barcode or QR code detected.";
}
largestBarcode = this.selectLargestBarcode(barcodes);
return [2, {
text: largestBarcode.rawValue,
format: core_1.QrcodeResultFormat.create(this.toHtml5QrcodeSupportedFormats(largestBarcode.format)),
debugData: this.createDebugData()
}];
}
});
});
};
BarcodeDetectorDelegate.prototype.selectLargestBarcode = function (barcodes) {
var largestBarcode = null;
var maxArea = 0;
for (var _i = 0, barcodes_1 = barcodes; _i < barcodes_1.length; _i++) {
var barcode = barcodes_1[_i];
var area = barcode.boundingBox.width * barcode.boundingBox.height;
if (area > maxArea) {
maxArea = area;
largestBarcode = barcode;
}
}
if (!largestBarcode) {
throw "No largest barcode found";
}
return largestBarcode;
};
BarcodeDetectorDelegate.prototype.createBarcodeDetectorFormats = function (requestedFormats) {
var formats = [];
for (var _i = 0, requestedFormats_1 = requestedFormats; _i < requestedFormats_1.length; _i++) {
var requestedFormat = requestedFormats_1[_i];
if (this.formatMap.has(requestedFormat)) {
formats.push(this.formatMap.get(requestedFormat));
}
else {
this.logger.warn("".concat(requestedFormat, " is not supported by")
+ "BarcodeDetectorDelegate");
}
}
return { formats: formats };
};
BarcodeDetectorDelegate.prototype.toHtml5QrcodeSupportedFormats = function (barcodeDetectorFormat) {
if (!this.reverseFormatMap.has(barcodeDetectorFormat)) {
throw "reverseFormatMap doesn't have ".concat(barcodeDetectorFormat);
}
return this.reverseFormatMap.get(barcodeDetectorFormat);
};
BarcodeDetectorDelegate.prototype.createReverseFormatMap = function () {
var result = new Map();
this.formatMap.forEach(function (value, key, _) {
result.set(value, key);
});
return result;
};
BarcodeDetectorDelegate.prototype.createDebugData = function () {
return { decoderName: "BarcodeDetector" };
};
return BarcodeDetectorDelegate;
}());
exports.BarcodeDetectorDelegate = BarcodeDetectorDelegate;
//# sourceMappingURL=native-bar-code-detector.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"native-bar-code-detector.js","sourceRoot":"","sources":["../../src/native-bar-code-detector.ts"],"names":[],"mappings":"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"}

29
node_modules/html5-qrcode/cjs/state-manager.d.ts generated vendored Normal file
View File

@@ -0,0 +1,29 @@
export declare enum Html5QrcodeScannerState {
UNKNOWN = 0,
NOT_STARTED = 1,
SCANNING = 2,
PAUSED = 3
}
export interface StateManagerTransaction {
execute(): void;
cancel(): void;
}
export interface StateManager {
startTransition(newState: Html5QrcodeScannerState): StateManagerTransaction;
directTransition(newState: Html5QrcodeScannerState): void;
getState(): Html5QrcodeScannerState;
}
export declare class StateManagerProxy {
private stateManager;
constructor(stateManager: StateManager);
startTransition(newState: Html5QrcodeScannerState): StateManagerTransaction;
directTransition(newState: Html5QrcodeScannerState): void;
getState(): Html5QrcodeScannerState;
canScanFile(): boolean;
isScanning(): boolean;
isStrictlyScanning(): boolean;
isPaused(): boolean;
}
export declare class StateManagerFactory {
static create(): StateManagerProxy;
}

112
node_modules/html5-qrcode/cjs/state-manager.js generated vendored Normal file
View File

@@ -0,0 +1,112 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StateManagerFactory = exports.StateManagerProxy = exports.Html5QrcodeScannerState = void 0;
var Html5QrcodeScannerState;
(function (Html5QrcodeScannerState) {
Html5QrcodeScannerState[Html5QrcodeScannerState["UNKNOWN"] = 0] = "UNKNOWN";
Html5QrcodeScannerState[Html5QrcodeScannerState["NOT_STARTED"] = 1] = "NOT_STARTED";
Html5QrcodeScannerState[Html5QrcodeScannerState["SCANNING"] = 2] = "SCANNING";
Html5QrcodeScannerState[Html5QrcodeScannerState["PAUSED"] = 3] = "PAUSED";
})(Html5QrcodeScannerState = exports.Html5QrcodeScannerState || (exports.Html5QrcodeScannerState = {}));
var StateManagerImpl = (function () {
function StateManagerImpl() {
this.state = Html5QrcodeScannerState.NOT_STARTED;
this.onGoingTransactionNewState = Html5QrcodeScannerState.UNKNOWN;
}
StateManagerImpl.prototype.directTransition = function (newState) {
this.failIfTransitionOngoing();
this.validateTransition(newState);
this.state = newState;
};
StateManagerImpl.prototype.startTransition = function (newState) {
this.failIfTransitionOngoing();
this.validateTransition(newState);
this.onGoingTransactionNewState = newState;
return this;
};
StateManagerImpl.prototype.execute = function () {
if (this.onGoingTransactionNewState
=== Html5QrcodeScannerState.UNKNOWN) {
throw "Transaction is already cancelled, cannot execute().";
}
var tempNewState = this.onGoingTransactionNewState;
this.onGoingTransactionNewState = Html5QrcodeScannerState.UNKNOWN;
this.directTransition(tempNewState);
};
StateManagerImpl.prototype.cancel = function () {
if (this.onGoingTransactionNewState
=== Html5QrcodeScannerState.UNKNOWN) {
throw "Transaction is already cancelled, cannot cancel().";
}
this.onGoingTransactionNewState = Html5QrcodeScannerState.UNKNOWN;
};
StateManagerImpl.prototype.getState = function () {
return this.state;
};
StateManagerImpl.prototype.failIfTransitionOngoing = function () {
if (this.onGoingTransactionNewState
!== Html5QrcodeScannerState.UNKNOWN) {
throw "Cannot transition to a new state, already under transition";
}
};
StateManagerImpl.prototype.validateTransition = function (newState) {
switch (this.state) {
case Html5QrcodeScannerState.UNKNOWN:
throw "Transition from unknown is not allowed";
case Html5QrcodeScannerState.NOT_STARTED:
this.failIfNewStateIs(newState, [Html5QrcodeScannerState.PAUSED]);
break;
case Html5QrcodeScannerState.SCANNING:
break;
case Html5QrcodeScannerState.PAUSED:
break;
}
};
StateManagerImpl.prototype.failIfNewStateIs = function (newState, disallowedStatesToTransition) {
for (var _i = 0, disallowedStatesToTransition_1 = disallowedStatesToTransition; _i < disallowedStatesToTransition_1.length; _i++) {
var disallowedState = disallowedStatesToTransition_1[_i];
if (newState === disallowedState) {
throw "Cannot transition from ".concat(this.state, " to ").concat(newState);
}
}
};
return StateManagerImpl;
}());
var StateManagerProxy = (function () {
function StateManagerProxy(stateManager) {
this.stateManager = stateManager;
}
StateManagerProxy.prototype.startTransition = function (newState) {
return this.stateManager.startTransition(newState);
};
StateManagerProxy.prototype.directTransition = function (newState) {
this.stateManager.directTransition(newState);
};
StateManagerProxy.prototype.getState = function () {
return this.stateManager.getState();
};
StateManagerProxy.prototype.canScanFile = function () {
return this.stateManager.getState() === Html5QrcodeScannerState.NOT_STARTED;
};
StateManagerProxy.prototype.isScanning = function () {
return this.stateManager.getState() !== Html5QrcodeScannerState.NOT_STARTED;
};
StateManagerProxy.prototype.isStrictlyScanning = function () {
return this.stateManager.getState() === Html5QrcodeScannerState.SCANNING;
};
StateManagerProxy.prototype.isPaused = function () {
return this.stateManager.getState() === Html5QrcodeScannerState.PAUSED;
};
return StateManagerProxy;
}());
exports.StateManagerProxy = StateManagerProxy;
var StateManagerFactory = (function () {
function StateManagerFactory() {
}
StateManagerFactory.create = function () {
return new StateManagerProxy(new StateManagerImpl());
};
return StateManagerFactory;
}());
exports.StateManagerFactory = StateManagerFactory;
//# sourceMappingURL=state-manager.js.map

1
node_modules/html5-qrcode/cjs/state-manager.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/state-manager.ts"],"names":[],"mappings":"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"}

12
node_modules/html5-qrcode/cjs/storage.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
export declare class PersistedDataManager {
private data;
private static LOCAL_STORAGE_KEY;
constructor();
hasCameraPermissions(): boolean;
getLastUsedCameraId(): string | null;
setHasPermission(hasPermission: boolean): void;
setLastUsedCameraId(lastUsedCameraId: string): void;
resetLastUsedCameraId(): void;
reset(): void;
private flush;
}

55
node_modules/html5-qrcode/cjs/storage.js generated vendored Normal file
View File

@@ -0,0 +1,55 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PersistedDataManager = void 0;
var PersistedDataFactory = (function () {
function PersistedDataFactory() {
}
PersistedDataFactory.createDefault = function () {
return {
hasPermission: false,
lastUsedCameraId: null
};
};
return PersistedDataFactory;
}());
var PersistedDataManager = (function () {
function PersistedDataManager() {
this.data = PersistedDataFactory.createDefault();
var data = localStorage.getItem(PersistedDataManager.LOCAL_STORAGE_KEY);
if (!data) {
this.reset();
}
else {
this.data = JSON.parse(data);
}
}
PersistedDataManager.prototype.hasCameraPermissions = function () {
return this.data.hasPermission;
};
PersistedDataManager.prototype.getLastUsedCameraId = function () {
return this.data.lastUsedCameraId;
};
PersistedDataManager.prototype.setHasPermission = function (hasPermission) {
this.data.hasPermission = hasPermission;
this.flush();
};
PersistedDataManager.prototype.setLastUsedCameraId = function (lastUsedCameraId) {
this.data.lastUsedCameraId = lastUsedCameraId;
this.flush();
};
PersistedDataManager.prototype.resetLastUsedCameraId = function () {
this.data.lastUsedCameraId = null;
this.flush();
};
PersistedDataManager.prototype.reset = function () {
this.data = PersistedDataFactory.createDefault();
this.flush();
};
PersistedDataManager.prototype.flush = function () {
localStorage.setItem(PersistedDataManager.LOCAL_STORAGE_KEY, JSON.stringify(this.data));
};
PersistedDataManager.LOCAL_STORAGE_KEY = "HTML5_QRCODE_DATA";
return PersistedDataManager;
}());
exports.PersistedDataManager = PersistedDataManager;
//# sourceMappingURL=storage.js.map

1
node_modules/html5-qrcode/cjs/storage.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":";;;AAeA;IAAA;IAOA,CAAC;IANU,kCAAa,GAApB;QACI,OAAO;YACH,aAAa,EAAE,KAAK;YACpB,gBAAgB,EAAE,IAAI;SACzB,CAAC;IACN,CAAC;IACL,2BAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAKI;QAHQ,SAAI,GAAkB,oBAAoB,CAAC,aAAa,EAAE,CAAC;QAI/D,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAChC;IACL,CAAC;IAEM,mDAAoB,GAA3B;QACI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,kDAAmB,GAA1B;QACI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,+CAAgB,GAAvB,UAAwB,aAAsB;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEM,kDAAmB,GAA1B,UAA2B,gBAAwB;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEM,oDAAqB,GAA5B;QACI,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEM,oCAAK,GAAZ;QACI,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEO,oCAAK,GAAb;QACI,YAAY,CAAC,OAAO,CAChB,oBAAoB,CAAC,iBAAiB,EACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IA3Cc,sCAAiB,GAAW,mBAAmB,CAAC;IA4CnE,2BAAC;CAAA,AA/CD,IA+CC;AA/CY,oDAAoB"}

45
node_modules/html5-qrcode/cjs/strings.d.ts generated vendored Normal file
View File

@@ -0,0 +1,45 @@
export declare class Html5QrcodeStrings {
static codeParseError(exception: any): string;
static errorGettingUserMedia(error: any): string;
static onlyDeviceSupportedError(): string;
static cameraStreamingNotSupported(): string;
static unableToQuerySupportedDevices(): string;
static insecureContextCameraQueryError(): string;
static scannerPaused(): string;
}
export declare class Html5QrcodeScannerStrings {
static scanningStatus(): string;
static idleStatus(): string;
static errorStatus(): string;
static permissionStatus(): string;
static noCameraFoundErrorStatus(): string;
static lastMatch(decodedText: string): string;
static codeScannerTitle(): string;
static cameraPermissionTitle(): string;
static cameraPermissionRequesting(): string;
static noCameraFound(): string;
static scanButtonStopScanningText(): string;
static scanButtonStartScanningText(): string;
static torchOnButton(): string;
static torchOffButton(): string;
static torchOnFailedMessage(): string;
static torchOffFailedMessage(): string;
static scanButtonScanningStarting(): string;
static textIfCameraScanSelected(): string;
static textIfFileScanSelected(): string;
static selectCamera(): string;
static fileSelectionChooseImage(): string;
static fileSelectionChooseAnother(): string;
static fileSelectionNoImageSelected(): string;
static anonymousCameraPrefix(): string;
static dragAndDropMessage(): string;
static dragAndDropMessageOnlyImages(): string;
static zoom(): string;
static loadingImage(): string;
static cameraScanAltText(): string;
static fileScanAltText(): string;
}
export declare class LibraryInfoStrings {
static poweredBy(): string;
static reportIssues(): string;
}

142
node_modules/html5-qrcode/cjs/strings.js generated vendored Normal file
View File

@@ -0,0 +1,142 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LibraryInfoStrings = exports.Html5QrcodeScannerStrings = exports.Html5QrcodeStrings = void 0;
var Html5QrcodeStrings = (function () {
function Html5QrcodeStrings() {
}
Html5QrcodeStrings.codeParseError = function (exception) {
return "QR code parse error, error = ".concat(exception);
};
Html5QrcodeStrings.errorGettingUserMedia = function (error) {
return "Error getting userMedia, error = ".concat(error);
};
Html5QrcodeStrings.onlyDeviceSupportedError = function () {
return "The device doesn't support navigator.mediaDevices , only "
+ "supported cameraIdOrConfig in this case is deviceId parameter "
+ "(string).";
};
Html5QrcodeStrings.cameraStreamingNotSupported = function () {
return "Camera streaming not supported by the browser.";
};
Html5QrcodeStrings.unableToQuerySupportedDevices = function () {
return "Unable to query supported devices, unknown error.";
};
Html5QrcodeStrings.insecureContextCameraQueryError = function () {
return "Camera access is only supported in secure context like https "
+ "or localhost.";
};
Html5QrcodeStrings.scannerPaused = function () {
return "Scanner paused";
};
return Html5QrcodeStrings;
}());
exports.Html5QrcodeStrings = Html5QrcodeStrings;
var Html5QrcodeScannerStrings = (function () {
function Html5QrcodeScannerStrings() {
}
Html5QrcodeScannerStrings.scanningStatus = function () {
return "Scanning";
};
Html5QrcodeScannerStrings.idleStatus = function () {
return "Idle";
};
Html5QrcodeScannerStrings.errorStatus = function () {
return "Error";
};
Html5QrcodeScannerStrings.permissionStatus = function () {
return "Permission";
};
Html5QrcodeScannerStrings.noCameraFoundErrorStatus = function () {
return "No Cameras";
};
Html5QrcodeScannerStrings.lastMatch = function (decodedText) {
return "Last Match: ".concat(decodedText);
};
Html5QrcodeScannerStrings.codeScannerTitle = function () {
return "Code Scanner";
};
Html5QrcodeScannerStrings.cameraPermissionTitle = function () {
return "Request Camera Permissions";
};
Html5QrcodeScannerStrings.cameraPermissionRequesting = function () {
return "Requesting camera permissions...";
};
Html5QrcodeScannerStrings.noCameraFound = function () {
return "No camera found";
};
Html5QrcodeScannerStrings.scanButtonStopScanningText = function () {
return "Stop Scanning";
};
Html5QrcodeScannerStrings.scanButtonStartScanningText = function () {
return "Start Scanning";
};
Html5QrcodeScannerStrings.torchOnButton = function () {
return "Switch On Torch";
};
Html5QrcodeScannerStrings.torchOffButton = function () {
return "Switch Off Torch";
};
Html5QrcodeScannerStrings.torchOnFailedMessage = function () {
return "Failed to turn on torch";
};
Html5QrcodeScannerStrings.torchOffFailedMessage = function () {
return "Failed to turn off torch";
};
Html5QrcodeScannerStrings.scanButtonScanningStarting = function () {
return "Launching Camera...";
};
Html5QrcodeScannerStrings.textIfCameraScanSelected = function () {
return "Scan an Image File";
};
Html5QrcodeScannerStrings.textIfFileScanSelected = function () {
return "Scan using camera directly";
};
Html5QrcodeScannerStrings.selectCamera = function () {
return "Select Camera";
};
Html5QrcodeScannerStrings.fileSelectionChooseImage = function () {
return "Choose Image";
};
Html5QrcodeScannerStrings.fileSelectionChooseAnother = function () {
return "Choose Another";
};
Html5QrcodeScannerStrings.fileSelectionNoImageSelected = function () {
return "No image choosen";
};
Html5QrcodeScannerStrings.anonymousCameraPrefix = function () {
return "Anonymous Camera";
};
Html5QrcodeScannerStrings.dragAndDropMessage = function () {
return "Or drop an image to scan";
};
Html5QrcodeScannerStrings.dragAndDropMessageOnlyImages = function () {
return "Or drop an image to scan (other files not supported)";
};
Html5QrcodeScannerStrings.zoom = function () {
return "zoom";
};
Html5QrcodeScannerStrings.loadingImage = function () {
return "Loading image...";
};
Html5QrcodeScannerStrings.cameraScanAltText = function () {
return "Camera based scan";
};
Html5QrcodeScannerStrings.fileScanAltText = function () {
return "Fule based scan";
};
return Html5QrcodeScannerStrings;
}());
exports.Html5QrcodeScannerStrings = Html5QrcodeScannerStrings;
var LibraryInfoStrings = (function () {
function LibraryInfoStrings() {
}
LibraryInfoStrings.poweredBy = function () {
return "Powered by ";
};
LibraryInfoStrings.reportIssues = function () {
return "Report issues";
};
return LibraryInfoStrings;
}());
exports.LibraryInfoStrings = LibraryInfoStrings;
//# sourceMappingURL=strings.js.map

1
node_modules/html5-qrcode/cjs/strings.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/strings.ts"],"names":[],"mappings":";;;AAeA;IAAA;IAgCA,CAAC;IA9BiB,iCAAc,GAA5B,UAA6B,SAAc;QACvC,OAAO,uCAAgC,SAAS,CAAE,CAAC;IACvD,CAAC;IAEa,wCAAqB,GAAnC,UAAoC,KAAU;QAC1C,OAAO,2CAAoC,KAAK,CAAE,CAAC;IACvD,CAAC;IAEa,2CAAwB,GAAtC;QACI,OAAO,2DAA2D;cAChE,gEAAgE;cAChE,WAAW,CAAC;IAClB,CAAC;IAEa,8CAA2B,GAAzC;QACI,OAAO,gDAAgD,CAAC;IAC5D,CAAC;IAEa,gDAA6B,GAA3C;QACI,OAAO,mDAAmD,CAAC;IAC/D,CAAC;IAEa,kDAA+B,GAA7C;QACI,OAAO,+DAA+D;cACpE,eAAe,CAAC;IACtB,CAAC;IAEa,gCAAa,GAA3B;QACI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACL,yBAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCY,gDAAkB;AAuC/B;IAAA;IAqIA,CAAC;IAnIiB,wCAAc,GAA5B;QACI,OAAO,UAAU,CAAC;IACtB,CAAC;IAEa,oCAAU,GAAxB;QACI,OAAO,MAAM,CAAC;IAClB,CAAC;IAEa,qCAAW,GAAzB;QACI,OAAO,OAAO,CAAC;IACnB,CAAC;IAEa,0CAAgB,GAA9B;QACI,OAAO,YAAY,CAAC;IACxB,CAAC;IAEa,kDAAwB,GAAtC;QACI,OAAO,YAAY,CAAC;IACxB,CAAC;IAEa,mCAAS,GAAvB,UAAwB,WAAmB;QACvC,OAAO,sBAAe,WAAW,CAAE,CAAC;IACxC,CAAC;IAEa,0CAAgB,GAA9B;QACI,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEa,+CAAqB,GAAnC;QACI,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAEa,oDAA0B,GAAxC;QACI,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAEa,uCAAa,GAA3B;QACI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEa,oDAA0B,GAAxC;QACI,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEa,qDAA2B,GAAzC;QACI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEa,uCAAa,GAA3B;QACI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEa,wCAAc,GAA5B;QACI,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEa,8CAAoB,GAAlC;QACI,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAEa,+CAAqB,GAAnC;QACI,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAEa,oDAA0B,GAAxC;QACI,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAOa,kDAAwB,GAAtC;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAOa,gDAAsB,GAApC;QACI,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAEa,sCAAY,GAA1B;QACI,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEa,kDAAwB,GAAtC;QACI,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEa,oDAA0B,GAAxC;QACI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEa,sDAA4B,GAA1C;QACI,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAGa,+CAAqB,GAAnC;QACI,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEa,4CAAkB,GAAhC;QACI,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAEa,sDAA4B,GAA1C;QACI,OAAO,sDAAsD,CAAC;IAClE,CAAC;IAGa,8BAAI,GAAlB;QACI,OAAO,MAAM,CAAC;IAClB,CAAC;IAEa,sCAAY,GAA1B;QACI,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEa,2CAAiB,GAA/B;QACI,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEa,yCAAe,GAA7B;QACI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACL,gCAAC;AAAD,CAAC,AArID,IAqIC;AArIY,8DAAyB;AAwItC;IAAA;IASA,CAAC;IAPiB,4BAAS,GAAvB;QACI,OAAO,aAAa,CAAC;IACzB,CAAC;IAEa,+BAAY,GAA1B;QACI,OAAO,eAAe,CAAC;IAC3B,CAAC;IACL,yBAAC;AAAD,CAAC,AATD,IASC;AATY,gDAAkB"}

6
node_modules/html5-qrcode/cjs/ui.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
export declare class LibraryInfoContainer {
private infoDiv;
private infoIcon;
constructor();
renderInto(parent: HTMLElement): void;
}

118
node_modules/html5-qrcode/cjs/ui.js generated vendored Normal file
View File

@@ -0,0 +1,118 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LibraryInfoContainer = void 0;
var image_assets_1 = require("./image-assets");
var strings_1 = require("./strings");
var LibraryInfoDiv = (function () {
function LibraryInfoDiv() {
this.infoDiv = document.createElement("div");
}
LibraryInfoDiv.prototype.renderInto = function (parent) {
this.infoDiv.style.position = "absolute";
this.infoDiv.style.top = "10px";
this.infoDiv.style.right = "10px";
this.infoDiv.style.zIndex = "2";
this.infoDiv.style.display = "none";
this.infoDiv.style.padding = "5pt";
this.infoDiv.style.border = "1px solid #171717";
this.infoDiv.style.fontSize = "10pt";
this.infoDiv.style.background = "rgb(0 0 0 / 69%)";
this.infoDiv.style.borderRadius = "5px";
this.infoDiv.style.textAlign = "center";
this.infoDiv.style.fontWeight = "400";
this.infoDiv.style.color = "white";
this.infoDiv.innerText = strings_1.LibraryInfoStrings.poweredBy();
var projectLink = document.createElement("a");
projectLink.innerText = "ScanApp";
projectLink.href = "https://scanapp.org";
projectLink.target = "new";
projectLink.style.color = "white";
this.infoDiv.appendChild(projectLink);
var breakElemFirst = document.createElement("br");
var breakElemSecond = document.createElement("br");
this.infoDiv.appendChild(breakElemFirst);
this.infoDiv.appendChild(breakElemSecond);
var reportIssueLink = document.createElement("a");
reportIssueLink.innerText = strings_1.LibraryInfoStrings.reportIssues();
reportIssueLink.href = "https://github.com/mebjas/html5-qrcode/issues";
reportIssueLink.target = "new";
reportIssueLink.style.color = "white";
this.infoDiv.appendChild(reportIssueLink);
parent.appendChild(this.infoDiv);
};
LibraryInfoDiv.prototype.show = function () {
this.infoDiv.style.display = "block";
};
LibraryInfoDiv.prototype.hide = function () {
this.infoDiv.style.display = "none";
};
return LibraryInfoDiv;
}());
var LibraryInfoIcon = (function () {
function LibraryInfoIcon(onTapIn, onTapOut) {
this.isShowingInfoIcon = true;
this.onTapIn = onTapIn;
this.onTapOut = onTapOut;
this.infoIcon = document.createElement("img");
}
LibraryInfoIcon.prototype.renderInto = function (parent) {
var _this = this;
this.infoIcon.alt = "Info icon";
this.infoIcon.src = image_assets_1.ASSET_INFO_ICON_16PX;
this.infoIcon.style.position = "absolute";
this.infoIcon.style.top = "4px";
this.infoIcon.style.right = "4px";
this.infoIcon.style.opacity = "0.6";
this.infoIcon.style.cursor = "pointer";
this.infoIcon.style.zIndex = "2";
this.infoIcon.style.width = "16px";
this.infoIcon.style.height = "16px";
this.infoIcon.onmouseover = function (_) { return _this.onHoverIn(); };
this.infoIcon.onmouseout = function (_) { return _this.onHoverOut(); };
this.infoIcon.onclick = function (_) { return _this.onClick(); };
parent.appendChild(this.infoIcon);
};
LibraryInfoIcon.prototype.onHoverIn = function () {
if (this.isShowingInfoIcon) {
this.infoIcon.style.opacity = "1";
}
};
LibraryInfoIcon.prototype.onHoverOut = function () {
if (this.isShowingInfoIcon) {
this.infoIcon.style.opacity = "0.6";
}
};
LibraryInfoIcon.prototype.onClick = function () {
if (this.isShowingInfoIcon) {
this.isShowingInfoIcon = false;
this.onTapIn();
this.infoIcon.src = image_assets_1.ASSET_CLOSE_ICON_16PX;
this.infoIcon.style.opacity = "1";
}
else {
this.isShowingInfoIcon = true;
this.onTapOut();
this.infoIcon.src = image_assets_1.ASSET_INFO_ICON_16PX;
this.infoIcon.style.opacity = "0.6";
}
};
return LibraryInfoIcon;
}());
var LibraryInfoContainer = (function () {
function LibraryInfoContainer() {
var _this = this;
this.infoDiv = new LibraryInfoDiv();
this.infoIcon = new LibraryInfoIcon(function () {
_this.infoDiv.show();
}, function () {
_this.infoDiv.hide();
});
}
LibraryInfoContainer.prototype.renderInto = function (parent) {
this.infoDiv.renderInto(parent);
this.infoIcon.renderInto(parent);
};
return LibraryInfoContainer;
}());
exports.LibraryInfoContainer = LibraryInfoContainer;
//# sourceMappingURL=ui.js.map

1
node_modules/html5-qrcode/cjs/ui.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ui.ts"],"names":[],"mappings":"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"}

16
node_modules/html5-qrcode/cjs/ui/scanner/base.d.ts generated vendored Normal file
View File

@@ -0,0 +1,16 @@
export declare class PublicUiElementIdAndClasses {
static ALL_ELEMENT_CLASS: string;
static CAMERA_PERMISSION_BUTTON_ID: string;
static CAMERA_START_BUTTON_ID: string;
static CAMERA_STOP_BUTTON_ID: string;
static TORCH_BUTTON_ID: string;
static CAMERA_SELECTION_SELECT_ID: string;
static FILE_SELECTION_BUTTON_ID: string;
static ZOOM_SLIDER_ID: string;
static SCAN_TYPE_CHANGE_ANCHOR_ID: string;
static TORCH_BUTTON_CLASS_TORCH_ON: string;
static TORCH_BUTTON_CLASS_TORCH_OFF: string;
}
export declare class BaseUiElementFactory {
static createElement<Type extends HTMLElement>(elementType: string, elementId: string): Type;
}

36
node_modules/html5-qrcode/cjs/ui/scanner/base.js generated vendored Normal file
View File

@@ -0,0 +1,36 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseUiElementFactory = exports.PublicUiElementIdAndClasses = void 0;
var PublicUiElementIdAndClasses = (function () {
function PublicUiElementIdAndClasses() {
}
PublicUiElementIdAndClasses.ALL_ELEMENT_CLASS = "html5-qrcode-element";
PublicUiElementIdAndClasses.CAMERA_PERMISSION_BUTTON_ID = "html5-qrcode-button-camera-permission";
PublicUiElementIdAndClasses.CAMERA_START_BUTTON_ID = "html5-qrcode-button-camera-start";
PublicUiElementIdAndClasses.CAMERA_STOP_BUTTON_ID = "html5-qrcode-button-camera-stop";
PublicUiElementIdAndClasses.TORCH_BUTTON_ID = "html5-qrcode-button-torch";
PublicUiElementIdAndClasses.CAMERA_SELECTION_SELECT_ID = "html5-qrcode-select-camera";
PublicUiElementIdAndClasses.FILE_SELECTION_BUTTON_ID = "html5-qrcode-button-file-selection";
PublicUiElementIdAndClasses.ZOOM_SLIDER_ID = "html5-qrcode-input-range-zoom";
PublicUiElementIdAndClasses.SCAN_TYPE_CHANGE_ANCHOR_ID = "html5-qrcode-anchor-scan-type-change";
PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_ON = "html5-qrcode-button-torch-on";
PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_OFF = "html5-qrcode-button-torch-off";
return PublicUiElementIdAndClasses;
}());
exports.PublicUiElementIdAndClasses = PublicUiElementIdAndClasses;
var BaseUiElementFactory = (function () {
function BaseUiElementFactory() {
}
BaseUiElementFactory.createElement = function (elementType, elementId) {
var element = (document.createElement(elementType));
element.id = elementId;
element.classList.add(PublicUiElementIdAndClasses.ALL_ELEMENT_CLASS);
if (elementType === "button") {
element.setAttribute("type", "button");
}
return element;
};
return BaseUiElementFactory;
}());
exports.BaseUiElementFactory = BaseUiElementFactory;
//# sourceMappingURL=base.js.map

1
node_modules/html5-qrcode/cjs/ui/scanner/base.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/ui/scanner/base.ts"],"names":[],"mappings":";;;AAcA;IAAA;IA4CA,CAAC;IAxCU,6CAAiB,GAAG,sBAAsB,CAAC;IAG3C,uDAA2B,GAAG,uCAAuC,CAAC;IAGtE,kDAAsB,GAAG,kCAAkC,CAAC;IAG5D,iDAAqB,GAAG,iCAAiC,CAAC;IAG1D,2CAAe,GAAG,2BAA2B,CAAC;IAG9C,sDAA0B,GAAG,4BAA4B,CAAC;IAG1D,oDAAwB,GAAG,oCAAoC,CAAC;IAGhE,0CAAc,GAAG,+BAA+B,CAAC;IAMjD,sDAA0B,GAAG,sCAAsC,CAAC;IAOpE,uDAA2B,GAAG,8BAA8B,CAAC;IAG7D,wDAA4B,GAAG,+BAA+B,CAAC;IAG1E,kCAAC;CAAA,AA5CD,IA4CC;AA5CY,kEAA2B;AAiDxC;IAAA;IAiBA,CAAC;IAXiB,kCAAa,GAA3B,UACI,WAAmB,EAAE,SAAiB;QAEtC,IAAI,OAAO,GAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;QACvB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QACrE,IAAI,WAAW,KAAK,QAAQ,EAAE;YAC1B,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC1C;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACL,2BAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,oDAAoB"}

View File

@@ -0,0 +1,17 @@
import { CameraDevice } from "../../camera/core";
export declare class CameraSelectionUi {
private readonly selectElement;
private readonly options;
private readonly cameras;
private constructor();
private render;
disable(): void;
isDisabled(): boolean;
enable(): void;
getValue(): string;
hasValue(value: string): boolean;
setValue(value: string): void;
hasSingleItem(): boolean;
numCameras(): number;
static create(parentElement: HTMLElement, cameras: Array<CameraDevice>): CameraSelectionUi;
}

View File

@@ -0,0 +1,89 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraSelectionUi = void 0;
var base_1 = require("./base");
var strings_1 = require("../../strings");
var CameraSelectionUi = (function () {
function CameraSelectionUi(cameras) {
this.selectElement = base_1.BaseUiElementFactory
.createElement("select", base_1.PublicUiElementIdAndClasses.CAMERA_SELECTION_SELECT_ID);
this.cameras = cameras;
this.options = [];
}
CameraSelectionUi.prototype.render = function (parentElement) {
var cameraSelectionContainer = document.createElement("span");
cameraSelectionContainer.style.marginRight = "10px";
var numCameras = this.cameras.length;
if (numCameras === 0) {
throw new Error("No cameras found");
}
if (numCameras === 1) {
cameraSelectionContainer.style.display = "none";
}
else {
var selectCameraString = strings_1.Html5QrcodeScannerStrings.selectCamera();
cameraSelectionContainer.innerText
= "".concat(selectCameraString, " (").concat(this.cameras.length, ") ");
}
var anonymousCameraId = 1;
for (var _i = 0, _a = this.cameras; _i < _a.length; _i++) {
var camera = _a[_i];
var value = camera.id;
var name_1 = camera.label == null ? value : camera.label;
if (!name_1 || name_1 === "") {
name_1 = [
strings_1.Html5QrcodeScannerStrings.anonymousCameraPrefix(),
anonymousCameraId++
].join(" ");
}
var option = document.createElement("option");
option.value = value;
option.innerText = name_1;
this.options.push(option);
this.selectElement.appendChild(option);
}
cameraSelectionContainer.appendChild(this.selectElement);
parentElement.appendChild(cameraSelectionContainer);
};
CameraSelectionUi.prototype.disable = function () {
this.selectElement.disabled = true;
};
CameraSelectionUi.prototype.isDisabled = function () {
return this.selectElement.disabled === true;
};
CameraSelectionUi.prototype.enable = function () {
this.selectElement.disabled = false;
};
CameraSelectionUi.prototype.getValue = function () {
return this.selectElement.value;
};
CameraSelectionUi.prototype.hasValue = function (value) {
for (var _i = 0, _a = this.options; _i < _a.length; _i++) {
var option = _a[_i];
if (option.value === value) {
return true;
}
}
return false;
};
CameraSelectionUi.prototype.setValue = function (value) {
if (!this.hasValue(value)) {
throw new Error("".concat(value, " is not present in the camera list."));
}
this.selectElement.value = value;
};
CameraSelectionUi.prototype.hasSingleItem = function () {
return this.cameras.length === 1;
};
CameraSelectionUi.prototype.numCameras = function () {
return this.cameras.length;
};
CameraSelectionUi.create = function (parentElement, cameras) {
var cameraSelectUi = new CameraSelectionUi(cameras);
cameraSelectUi.render(parentElement);
return cameraSelectUi;
};
return CameraSelectionUi;
}());
exports.CameraSelectionUi = CameraSelectionUi;
//# sourceMappingURL=camera-selection-ui.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"camera-selection-ui.js","sourceRoot":"","sources":["../../../../src/ui/scanner/camera-selection-ui.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,16 @@
export type OnCameraZoomValueChangeCallback = (zoomValue: number) => void;
export declare class CameraZoomUi {
private zoomElementContainer;
private rangeInput;
private rangeText;
private onChangeCallback;
private constructor();
private render;
private onValueChange;
setValues(minValue: number, maxValue: number, defaultValue: number, step: number): void;
show(): void;
hide(): void;
setOnCameraZoomValueChangeCallback(onChangeCallback: OnCameraZoomValueChangeCallback): void;
removeOnCameraZoomValueChangeCallback(): void;
static create(parentElement: HTMLElement, renderOnCreate: boolean): CameraZoomUi;
}

View File

@@ -0,0 +1,73 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CameraZoomUi = void 0;
var base_1 = require("./base");
var strings_1 = require("../../strings");
var CameraZoomUi = (function () {
function CameraZoomUi() {
this.onChangeCallback = null;
this.zoomElementContainer = document.createElement("div");
this.rangeInput = base_1.BaseUiElementFactory.createElement("input", base_1.PublicUiElementIdAndClasses.ZOOM_SLIDER_ID);
this.rangeInput.type = "range";
this.rangeText = document.createElement("span");
this.rangeInput.min = "1";
this.rangeInput.max = "5";
this.rangeInput.value = "1";
this.rangeInput.step = "0.1";
}
CameraZoomUi.prototype.render = function (parentElement, renderOnCreate) {
this.zoomElementContainer.style.display
= renderOnCreate ? "block" : "none";
this.zoomElementContainer.style.padding = "5px 10px";
this.zoomElementContainer.style.textAlign = "center";
parentElement.appendChild(this.zoomElementContainer);
this.rangeInput.style.display = "inline-block";
this.rangeInput.style.width = "50%";
this.rangeInput.style.height = "5px";
this.rangeInput.style.background = "#d3d3d3";
this.rangeInput.style.outline = "none";
this.rangeInput.style.opacity = "0.7";
var zoomString = strings_1.Html5QrcodeScannerStrings.zoom();
this.rangeText.innerText = "".concat(this.rangeInput.value, "x ").concat(zoomString);
this.rangeText.style.marginRight = "10px";
var $this = this;
this.rangeInput.addEventListener("input", function () { return $this.onValueChange(); });
this.rangeInput.addEventListener("change", function () { return $this.onValueChange(); });
this.zoomElementContainer.appendChild(this.rangeInput);
this.zoomElementContainer.appendChild(this.rangeText);
};
CameraZoomUi.prototype.onValueChange = function () {
var zoomString = strings_1.Html5QrcodeScannerStrings.zoom();
this.rangeText.innerText = "".concat(this.rangeInput.value, "x ").concat(zoomString);
if (this.onChangeCallback) {
this.onChangeCallback(parseFloat(this.rangeInput.value));
}
};
CameraZoomUi.prototype.setValues = function (minValue, maxValue, defaultValue, step) {
this.rangeInput.min = minValue.toString();
this.rangeInput.max = maxValue.toString();
this.rangeInput.step = step.toString();
this.rangeInput.value = defaultValue.toString();
this.onValueChange();
};
CameraZoomUi.prototype.show = function () {
this.zoomElementContainer.style.display = "block";
};
CameraZoomUi.prototype.hide = function () {
this.zoomElementContainer.style.display = "none";
};
CameraZoomUi.prototype.setOnCameraZoomValueChangeCallback = function (onChangeCallback) {
this.onChangeCallback = onChangeCallback;
};
CameraZoomUi.prototype.removeOnCameraZoomValueChangeCallback = function () {
this.onChangeCallback = null;
};
CameraZoomUi.create = function (parentElement, renderOnCreate) {
var cameraZoomUi = new CameraZoomUi();
cameraZoomUi.render(parentElement, renderOnCreate);
return cameraZoomUi;
};
return CameraZoomUi;
}());
exports.CameraZoomUi = CameraZoomUi;
//# sourceMappingURL=camera-zoom-ui.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"camera-zoom-ui.js","sourceRoot":"","sources":["../../../../src/ui/scanner/camera-zoom-ui.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,19 @@
export type OnFileSelected = (file: File) => void;
export declare class FileSelectionUi {
private readonly fileBasedScanRegion;
private readonly fileScanInput;
private readonly fileSelectionButton;
private constructor();
hide(): void;
show(): void;
isShowing(): boolean;
resetValue(): void;
private createFileBasedScanRegion;
private fileBasedScanRegionDefaultBorder;
private fileBasedScanRegionActiveBorder;
private createDragAndDropMessage;
private setImageNameToButton;
private setInitialValueToButton;
private getFileScanInputId;
static create(parentElement: HTMLDivElement, showOnRender: boolean, onFileSelected: OnFileSelected): FileSelectionUi;
}

View File

@@ -0,0 +1,170 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileSelectionUi = void 0;
var strings_1 = require("../../strings");
var base_1 = require("./base");
var FileSelectionUi = (function () {
function FileSelectionUi(parentElement, showOnRender, onFileSelected) {
this.fileBasedScanRegion = this.createFileBasedScanRegion();
this.fileBasedScanRegion.style.display
= showOnRender ? "block" : "none";
parentElement.appendChild(this.fileBasedScanRegion);
var fileScanLabel = document.createElement("label");
fileScanLabel.setAttribute("for", this.getFileScanInputId());
fileScanLabel.style.display = "inline-block";
this.fileBasedScanRegion.appendChild(fileScanLabel);
this.fileSelectionButton
= base_1.BaseUiElementFactory.createElement("button", base_1.PublicUiElementIdAndClasses.FILE_SELECTION_BUTTON_ID);
this.setInitialValueToButton();
this.fileSelectionButton.addEventListener("click", function (_) {
fileScanLabel.click();
});
fileScanLabel.append(this.fileSelectionButton);
this.fileScanInput
= base_1.BaseUiElementFactory.createElement("input", this.getFileScanInputId());
this.fileScanInput.type = "file";
this.fileScanInput.accept = "image/*";
this.fileScanInput.style.display = "none";
fileScanLabel.appendChild(this.fileScanInput);
var $this = this;
this.fileScanInput.addEventListener("change", function (e) {
if (e == null || e.target == null) {
return;
}
var target = e.target;
if (target.files && target.files.length === 0) {
return;
}
var fileList = target.files;
var file = fileList[0];
var fileName = file.name;
$this.setImageNameToButton(fileName);
onFileSelected(file);
});
var dragAndDropMessage = this.createDragAndDropMessage();
this.fileBasedScanRegion.appendChild(dragAndDropMessage);
this.fileBasedScanRegion.addEventListener("dragenter", function (event) {
$this.fileBasedScanRegion.style.border
= $this.fileBasedScanRegionActiveBorder();
event.stopPropagation();
event.preventDefault();
});
this.fileBasedScanRegion.addEventListener("dragleave", function (event) {
$this.fileBasedScanRegion.style.border
= $this.fileBasedScanRegionDefaultBorder();
event.stopPropagation();
event.preventDefault();
});
this.fileBasedScanRegion.addEventListener("dragover", function (event) {
$this.fileBasedScanRegion.style.border
= $this.fileBasedScanRegionActiveBorder();
event.stopPropagation();
event.preventDefault();
});
this.fileBasedScanRegion.addEventListener("drop", function (event) {
event.stopPropagation();
event.preventDefault();
$this.fileBasedScanRegion.style.border
= $this.fileBasedScanRegionDefaultBorder();
var dataTransfer = event.dataTransfer;
if (dataTransfer) {
var files = dataTransfer.files;
if (!files || files.length === 0) {
return;
}
var isAnyFileImage = false;
for (var i = 0; i < files.length; ++i) {
var file = files.item(i);
if (!file) {
continue;
}
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
isAnyFileImage = true;
var fileName = file.name;
$this.setImageNameToButton(fileName);
onFileSelected(file);
dragAndDropMessage.innerText
= strings_1.Html5QrcodeScannerStrings.dragAndDropMessage();
break;
}
if (!isAnyFileImage) {
dragAndDropMessage.innerText
= strings_1.Html5QrcodeScannerStrings
.dragAndDropMessageOnlyImages();
}
}
});
}
FileSelectionUi.prototype.hide = function () {
this.fileBasedScanRegion.style.display = "none";
this.fileScanInput.disabled = true;
};
FileSelectionUi.prototype.show = function () {
this.fileBasedScanRegion.style.display = "block";
this.fileScanInput.disabled = false;
};
FileSelectionUi.prototype.isShowing = function () {
return this.fileBasedScanRegion.style.display === "block";
};
FileSelectionUi.prototype.resetValue = function () {
this.fileScanInput.value = "";
this.setInitialValueToButton();
};
FileSelectionUi.prototype.createFileBasedScanRegion = function () {
var fileBasedScanRegion = document.createElement("div");
fileBasedScanRegion.style.textAlign = "center";
fileBasedScanRegion.style.margin = "auto";
fileBasedScanRegion.style.width = "80%";
fileBasedScanRegion.style.maxWidth = "600px";
fileBasedScanRegion.style.border
= this.fileBasedScanRegionDefaultBorder();
fileBasedScanRegion.style.padding = "10px";
fileBasedScanRegion.style.marginBottom = "10px";
return fileBasedScanRegion;
};
FileSelectionUi.prototype.fileBasedScanRegionDefaultBorder = function () {
return "6px dashed #ebebeb";
};
FileSelectionUi.prototype.fileBasedScanRegionActiveBorder = function () {
return "6px dashed rgb(153 151 151)";
};
FileSelectionUi.prototype.createDragAndDropMessage = function () {
var dragAndDropMessage = document.createElement("div");
dragAndDropMessage.innerText
= strings_1.Html5QrcodeScannerStrings.dragAndDropMessage();
dragAndDropMessage.style.fontWeight = "400";
return dragAndDropMessage;
};
FileSelectionUi.prototype.setImageNameToButton = function (imageFileName) {
var MAX_CHARS = 20;
if (imageFileName.length > MAX_CHARS) {
var start8Chars = imageFileName.substring(0, 8);
var length_1 = imageFileName.length;
var last8Chars = imageFileName.substring(length_1 - 8, length_1);
imageFileName = "".concat(start8Chars, "....").concat(last8Chars);
}
var newText = strings_1.Html5QrcodeScannerStrings.fileSelectionChooseAnother()
+ " - "
+ imageFileName;
this.fileSelectionButton.innerText = newText;
};
FileSelectionUi.prototype.setInitialValueToButton = function () {
var initialText = strings_1.Html5QrcodeScannerStrings.fileSelectionChooseImage()
+ " - "
+ strings_1.Html5QrcodeScannerStrings.fileSelectionNoImageSelected();
this.fileSelectionButton.innerText = initialText;
};
FileSelectionUi.prototype.getFileScanInputId = function () {
return "html5-qrcode-private-filescan-input";
};
FileSelectionUi.create = function (parentElement, showOnRender, onFileSelected) {
var button = new FileSelectionUi(parentElement, showOnRender, onFileSelected);
return button;
};
return FileSelectionUi;
}());
exports.FileSelectionUi = FileSelectionUi;
//# sourceMappingURL=file-selection-ui.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
import { Html5QrcodeScanType } from "../../core";
export declare class ScanTypeSelector {
private supportedScanTypes;
constructor(supportedScanTypes?: Array<Html5QrcodeScanType> | []);
getDefaultScanType(): Html5QrcodeScanType;
hasMoreThanOneScanType(): boolean;
isCameraScanRequired(): boolean;
static isCameraScanType(scanType: Html5QrcodeScanType): boolean;
static isFileScanType(scanType: Html5QrcodeScanType): boolean;
private validateAndReturnScanTypes;
}

View File

@@ -0,0 +1,51 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScanTypeSelector = void 0;
var core_1 = require("../../core");
var ScanTypeSelector = (function () {
function ScanTypeSelector(supportedScanTypes) {
this.supportedScanTypes = this.validateAndReturnScanTypes(supportedScanTypes);
}
ScanTypeSelector.prototype.getDefaultScanType = function () {
return this.supportedScanTypes[0];
};
ScanTypeSelector.prototype.hasMoreThanOneScanType = function () {
return this.supportedScanTypes.length > 1;
};
ScanTypeSelector.prototype.isCameraScanRequired = function () {
for (var _i = 0, _a = this.supportedScanTypes; _i < _a.length; _i++) {
var scanType = _a[_i];
if (ScanTypeSelector.isCameraScanType(scanType)) {
return true;
}
}
return false;
};
ScanTypeSelector.isCameraScanType = function (scanType) {
return scanType === core_1.Html5QrcodeScanType.SCAN_TYPE_CAMERA;
};
ScanTypeSelector.isFileScanType = function (scanType) {
return scanType === core_1.Html5QrcodeScanType.SCAN_TYPE_FILE;
};
ScanTypeSelector.prototype.validateAndReturnScanTypes = function (supportedScanTypes) {
if (!supportedScanTypes || supportedScanTypes.length === 0) {
return core_1.Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE;
}
var maxExpectedValues = core_1.Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE.length;
if (supportedScanTypes.length > maxExpectedValues) {
throw "Max ".concat(maxExpectedValues, " values expected for ")
+ "supportedScanTypes";
}
for (var _i = 0, supportedScanTypes_1 = supportedScanTypes; _i < supportedScanTypes_1.length; _i++) {
var scanType = supportedScanTypes_1[_i];
if (!core_1.Html5QrcodeConstants.DEFAULT_SUPPORTED_SCAN_TYPE
.includes(scanType)) {
throw "Unsupported scan type ".concat(scanType);
}
}
return supportedScanTypes;
};
return ScanTypeSelector;
}());
exports.ScanTypeSelector = ScanTypeSelector;
//# sourceMappingURL=scan-type-selector.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"scan-type-selector.js","sourceRoot":"","sources":["../../../../src/ui/scanner/scan-type-selector.ts"],"names":[],"mappings":";;;AAUA,mCAGoB;AAGpB;IAGI,0BAAY,kBAAoD;QAC5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,0BAA0B,CACrD,kBAAkB,CAAC,CAAC;IAC5B,CAAC;IAMM,6CAAkB,GAAzB;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAMM,iDAAsB,GAA7B;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,CAAC;IAGM,+CAAoB,GAA3B;QACI,KAAuB,UAAuB,EAAvB,KAAA,IAAI,CAAC,kBAAkB,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAA3C,IAAM,QAAQ,SAAA;YACf,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAGa,iCAAgB,GAA9B,UAA+B,QAA6B;QACxD,OAAO,QAAQ,KAAK,0BAAmB,CAAC,gBAAgB,CAAC;IAC7D,CAAC;IAGa,+BAAc,GAA5B,UAA6B,QAA6B;QACtD,OAAO,QAAQ,KAAK,0BAAmB,CAAC,cAAc,CAAC;IAC3D,CAAC;IAQO,qDAA0B,GAAlC,UACI,kBAA8C;QAG9C,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxD,OAAO,2BAAoB,CAAC,2BAA2B,CAAC;SAC3D;QAGD,IAAI,iBAAiB,GACf,2BAAoB,CAAC,2BAA2B,CAAC,MAAM,CAAC;QAC9D,IAAI,kBAAkB,CAAC,MAAM,GAAG,iBAAiB,EAAE;YAC/C,MAAM,cAAO,iBAAiB,0BAAuB;kBAC/C,oBAAoB,CAAC;SAC9B;QAGD,KAAuB,UAAkB,EAAlB,yCAAkB,EAAlB,gCAAkB,EAAlB,IAAkB,EAAE;YAAtC,IAAM,QAAQ,2BAAA;YACf,IAAI,CAAC,2BAAoB,CAAC,2BAA2B;iBAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACzB,MAAM,gCAAyB,QAAQ,CAAE,CAAC;aAC7C;SACJ;QAED,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEL,uBAAC;AAAD,CAAC,AA7ED,IA6EC;AA7EY,4CAAgB"}

View File

@@ -0,0 +1,28 @@
import { BooleanCameraCapability } from "../../camera/core";
export type OnTorchActionFailureCallback = (failureMessage: string) => void;
interface TorchButtonController {
disable(): void;
enable(): void;
setText(text: string): void;
}
export interface TorchButtonOptions {
display: string;
marginLeft: string;
}
export declare class TorchButton implements TorchButtonController {
private readonly torchButton;
private readonly onTorchActionFailureCallback;
private torchController;
private constructor();
private render;
updateTorchCapability(torchCapability: BooleanCameraCapability): void;
getTorchButton(): HTMLButtonElement;
hide(): void;
show(): void;
disable(): void;
enable(): void;
setText(text: string): void;
reset(): void;
static create(parentElement: HTMLElement, torchCapability: BooleanCameraCapability, torchButtonOptions: TorchButtonOptions, onTorchActionFailureCallback: OnTorchActionFailureCallback): TorchButton;
}
export {};

View File

@@ -0,0 +1,171 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TorchButton = void 0;
var strings_1 = require("../../strings");
var base_1 = require("./base");
var TorchController = (function () {
function TorchController(torchCapability, buttonController, onTorchActionFailureCallback) {
this.isTorchOn = false;
this.torchCapability = torchCapability;
this.buttonController = buttonController;
this.onTorchActionFailureCallback = onTorchActionFailureCallback;
}
TorchController.prototype.isTorchEnabled = function () {
return this.isTorchOn;
};
TorchController.prototype.flipState = function () {
return __awaiter(this, void 0, void 0, function () {
var isTorchOnExpected, error_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.buttonController.disable();
isTorchOnExpected = !this.isTorchOn;
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4, this.torchCapability.apply(isTorchOnExpected)];
case 2:
_a.sent();
this.updateUiBasedOnLatestSettings(this.torchCapability.value(), isTorchOnExpected);
return [3, 4];
case 3:
error_1 = _a.sent();
this.propagateFailure(isTorchOnExpected, error_1);
this.buttonController.enable();
return [3, 4];
case 4: return [2];
}
});
});
};
TorchController.prototype.updateUiBasedOnLatestSettings = function (isTorchOn, isTorchOnExpected) {
if (isTorchOn === isTorchOnExpected) {
this.buttonController.setText(isTorchOnExpected
? strings_1.Html5QrcodeScannerStrings.torchOffButton()
: strings_1.Html5QrcodeScannerStrings.torchOnButton());
this.isTorchOn = isTorchOnExpected;
}
else {
this.propagateFailure(isTorchOnExpected);
}
this.buttonController.enable();
};
TorchController.prototype.propagateFailure = function (isTorchOnExpected, error) {
var errorMessage = isTorchOnExpected
? strings_1.Html5QrcodeScannerStrings.torchOnFailedMessage()
: strings_1.Html5QrcodeScannerStrings.torchOffFailedMessage();
if (error) {
errorMessage += "; Error = " + error;
}
this.onTorchActionFailureCallback(errorMessage);
};
TorchController.prototype.reset = function () {
this.isTorchOn = false;
};
return TorchController;
}());
var TorchButton = (function () {
function TorchButton(torchCapability, onTorchActionFailureCallback) {
this.onTorchActionFailureCallback = onTorchActionFailureCallback;
this.torchButton
= base_1.BaseUiElementFactory.createElement("button", base_1.PublicUiElementIdAndClasses.TORCH_BUTTON_ID);
this.torchController = new TorchController(torchCapability, this, onTorchActionFailureCallback);
}
TorchButton.prototype.render = function (parentElement, torchButtonOptions) {
var _this = this;
this.torchButton.innerText
= strings_1.Html5QrcodeScannerStrings.torchOnButton();
this.torchButton.style.display = torchButtonOptions.display;
this.torchButton.style.marginLeft = torchButtonOptions.marginLeft;
var $this = this;
this.torchButton.addEventListener("click", function (_) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4, $this.torchController.flipState()];
case 1:
_a.sent();
if ($this.torchController.isTorchEnabled()) {
$this.torchButton.classList.remove(base_1.PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_OFF);
$this.torchButton.classList.add(base_1.PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_ON);
}
else {
$this.torchButton.classList.remove(base_1.PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_ON);
$this.torchButton.classList.add(base_1.PublicUiElementIdAndClasses.TORCH_BUTTON_CLASS_TORCH_OFF);
}
return [2];
}
});
}); });
parentElement.appendChild(this.torchButton);
};
TorchButton.prototype.updateTorchCapability = function (torchCapability) {
this.torchController = new TorchController(torchCapability, this, this.onTorchActionFailureCallback);
};
TorchButton.prototype.getTorchButton = function () {
return this.torchButton;
};
TorchButton.prototype.hide = function () {
this.torchButton.style.display = "none";
};
TorchButton.prototype.show = function () {
this.torchButton.style.display = "inline-block";
};
TorchButton.prototype.disable = function () {
this.torchButton.disabled = true;
};
TorchButton.prototype.enable = function () {
this.torchButton.disabled = false;
};
TorchButton.prototype.setText = function (text) {
this.torchButton.innerText = text;
};
TorchButton.prototype.reset = function () {
this.torchButton.innerText = strings_1.Html5QrcodeScannerStrings.torchOnButton();
this.torchController.reset();
};
TorchButton.create = function (parentElement, torchCapability, torchButtonOptions, onTorchActionFailureCallback) {
var button = new TorchButton(torchCapability, onTorchActionFailureCallback);
button.render(parentElement, torchButtonOptions);
return button;
};
return TorchButton;
}());
exports.TorchButton = TorchButton;
//# sourceMappingURL=torch-button.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"torch-button.js","sourceRoot":"","sources":["../../../../src/ui/scanner/torch-button.ts"],"names":[],"mappings":"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"}

4
node_modules/html5-qrcode/cjs/utils.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import { Logger } from "./core";
export declare class VideoConstraintsUtil {
static isMediaStreamConstraintsValid(videoConstraints: MediaTrackConstraints, logger: Logger): boolean;
}

38
node_modules/html5-qrcode/cjs/utils.js generated vendored Normal file
View File

@@ -0,0 +1,38 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VideoConstraintsUtil = void 0;
var VideoConstraintsUtil = (function () {
function VideoConstraintsUtil() {
}
VideoConstraintsUtil.isMediaStreamConstraintsValid = function (videoConstraints, logger) {
if (typeof videoConstraints !== "object") {
var typeofVideoConstraints = typeof videoConstraints;
logger.logError("videoConstraints should be of type object, the "
+ "object passed is of type ".concat(typeofVideoConstraints, "."), true);
return false;
}
var bannedKeys = [
"autoGainControl",
"channelCount",
"echoCancellation",
"latency",
"noiseSuppression",
"sampleRate",
"sampleSize",
"volume"
];
var bannedkeysSet = new Set(bannedKeys);
var keysInVideoConstraints = Object.keys(videoConstraints);
for (var _i = 0, keysInVideoConstraints_1 = keysInVideoConstraints; _i < keysInVideoConstraints_1.length; _i++) {
var key = keysInVideoConstraints_1[_i];
if (bannedkeysSet.has(key)) {
logger.logError("".concat(key, " is not supported videoConstaints."), true);
return false;
}
}
return true;
};
return VideoConstraintsUtil;
}());
exports.VideoConstraintsUtil = VideoConstraintsUtil;
//# sourceMappingURL=utils.js.map

1
node_modules/html5-qrcode/cjs/utils.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAeA;IAAA;IAqCA,CAAC;IApCiB,kDAA6B,GAA3C,UACI,gBAAuC,EACvC,MAAc;QACd,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;YACtC,IAAM,sBAAsB,GAAG,OAAO,gBAAgB,CAAC;YACvD,MAAM,CAAC,QAAQ,CACX,iDAAiD;kBAC3C,mCAA4B,sBAAsB,MAAG,EACvC,IAAI,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;SAChB;QAGD,IAAM,UAAU,GAAG;YACf,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,SAAS;YACT,kBAAkB;YAClB,YAAY;YACZ,YAAY;YACZ,QAAQ;SACX,CAAC;QACF,IAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,KAAkB,UAAsB,EAAtB,iDAAsB,EAAtB,oCAAsB,EAAtB,IAAsB,EAAE;YAArC,IAAM,GAAG,+BAAA;YACV,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,CAAC,QAAQ,CACX,UAAG,GAAG,uCAAoC,EACtB,IAAI,CAAC,CAAC;gBAC9B,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,2BAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,oDAAoB"}

View File

@@ -0,0 +1,15 @@
import { QrcodeResult, Html5QrcodeSupportedFormats, Logger, QrcodeDecoderAsync } from "./core";
export declare class ZXingHtml5QrcodeDecoder implements QrcodeDecoderAsync {
private readonly formatMap;
private readonly reverseFormatMap;
private hints;
private verbose;
private logger;
constructor(requestedFormats: Array<Html5QrcodeSupportedFormats>, verbose: boolean, logger: Logger);
decodeAsync(canvas: HTMLCanvasElement): Promise<QrcodeResult>;
private decode;
private createReverseFormatMap;
private toHtml5QrcodeSupportedFormats;
private createZXingFormats;
private createDebugData;
}

View File

@@ -0,0 +1,109 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ZXingHtml5QrcodeDecoder = void 0;
var ZXing = require("../third_party/zxing-js.umd");
var core_1 = require("./core");
var ZXingHtml5QrcodeDecoder = (function () {
function ZXingHtml5QrcodeDecoder(requestedFormats, verbose, logger) {
this.formatMap = new Map([
[core_1.Html5QrcodeSupportedFormats.QR_CODE, ZXing.BarcodeFormat.QR_CODE],
[core_1.Html5QrcodeSupportedFormats.AZTEC, ZXing.BarcodeFormat.AZTEC],
[core_1.Html5QrcodeSupportedFormats.CODABAR, ZXing.BarcodeFormat.CODABAR],
[core_1.Html5QrcodeSupportedFormats.CODE_39, ZXing.BarcodeFormat.CODE_39],
[core_1.Html5QrcodeSupportedFormats.CODE_93, ZXing.BarcodeFormat.CODE_93],
[
core_1.Html5QrcodeSupportedFormats.CODE_128,
ZXing.BarcodeFormat.CODE_128
],
[
core_1.Html5QrcodeSupportedFormats.DATA_MATRIX,
ZXing.BarcodeFormat.DATA_MATRIX
],
[
core_1.Html5QrcodeSupportedFormats.MAXICODE,
ZXing.BarcodeFormat.MAXICODE
],
[core_1.Html5QrcodeSupportedFormats.ITF, ZXing.BarcodeFormat.ITF],
[core_1.Html5QrcodeSupportedFormats.EAN_13, ZXing.BarcodeFormat.EAN_13],
[core_1.Html5QrcodeSupportedFormats.EAN_8, ZXing.BarcodeFormat.EAN_8],
[core_1.Html5QrcodeSupportedFormats.PDF_417, ZXing.BarcodeFormat.PDF_417],
[core_1.Html5QrcodeSupportedFormats.RSS_14, ZXing.BarcodeFormat.RSS_14],
[
core_1.Html5QrcodeSupportedFormats.RSS_EXPANDED,
ZXing.BarcodeFormat.RSS_EXPANDED
],
[core_1.Html5QrcodeSupportedFormats.UPC_A, ZXing.BarcodeFormat.UPC_A],
[core_1.Html5QrcodeSupportedFormats.UPC_E, ZXing.BarcodeFormat.UPC_E],
[
core_1.Html5QrcodeSupportedFormats.UPC_EAN_EXTENSION,
ZXing.BarcodeFormat.UPC_EAN_EXTENSION
]
]);
this.reverseFormatMap = this.createReverseFormatMap();
if (!ZXing) {
throw "Use html5qrcode.min.js without edit, ZXing not found.";
}
this.verbose = verbose;
this.logger = logger;
var formats = this.createZXingFormats(requestedFormats);
var hints = new Map();
hints.set(ZXing.DecodeHintType.POSSIBLE_FORMATS, formats);
hints.set(ZXing.DecodeHintType.TRY_HARDER, false);
this.hints = hints;
}
ZXingHtml5QrcodeDecoder.prototype.decodeAsync = function (canvas) {
var _this = this;
return new Promise(function (resolve, reject) {
try {
resolve(_this.decode(canvas));
}
catch (error) {
reject(error);
}
});
};
ZXingHtml5QrcodeDecoder.prototype.decode = function (canvas) {
var zxingDecoder = new ZXing.MultiFormatReader(this.verbose, this.hints);
var luminanceSource = new ZXing.HTMLCanvasElementLuminanceSource(canvas);
var binaryBitmap = new ZXing.BinaryBitmap(new ZXing.HybridBinarizer(luminanceSource));
var result = zxingDecoder.decode(binaryBitmap);
return {
text: result.text,
format: core_1.QrcodeResultFormat.create(this.toHtml5QrcodeSupportedFormats(result.format)),
debugData: this.createDebugData()
};
};
ZXingHtml5QrcodeDecoder.prototype.createReverseFormatMap = function () {
var result = new Map();
this.formatMap.forEach(function (value, key, _) {
result.set(value, key);
});
return result;
};
ZXingHtml5QrcodeDecoder.prototype.toHtml5QrcodeSupportedFormats = function (zxingFormat) {
if (!this.reverseFormatMap.has(zxingFormat)) {
throw "reverseFormatMap doesn't have ".concat(zxingFormat);
}
return this.reverseFormatMap.get(zxingFormat);
};
ZXingHtml5QrcodeDecoder.prototype.createZXingFormats = function (requestedFormats) {
var zxingFormats = [];
for (var _i = 0, requestedFormats_1 = requestedFormats; _i < requestedFormats_1.length; _i++) {
var requestedFormat = requestedFormats_1[_i];
if (this.formatMap.has(requestedFormat)) {
zxingFormats.push(this.formatMap.get(requestedFormat));
}
else {
this.logger.logError("".concat(requestedFormat, " is not supported by")
+ "ZXingHtml5QrcodeShim");
}
}
return zxingFormats;
};
ZXingHtml5QrcodeDecoder.prototype.createDebugData = function () {
return { decoderName: "zxing-js" };
};
return ZXingHtml5QrcodeDecoder;
}());
exports.ZXingHtml5QrcodeDecoder = ZXingHtml5QrcodeDecoder;
//# sourceMappingURL=zxing-html5-qrcode-decoder.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"zxing-html5-qrcode-decoder.js","sourceRoot":"","sources":["../../src/zxing-html5-qrcode-decoder.ts"],"names":[],"mappings":"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"}