"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
|