"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