react-native-scanbot-barcode-scanner-sdk
Version:
Scanbot Barcode Scanner SDK React Native Plugin for Android and iOS
312 lines (309 loc) • 13.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
startBarcodeScanner: true
};
exports.startBarcodeScanner = startBarcodeScanner;
var _reactNative = require("react-native");
var _SingleScanningModeUseCase = require("./barcode/SingleScanningModeUseCase");
Object.keys(_SingleScanningModeUseCase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _SingleScanningModeUseCase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _SingleScanningModeUseCase[key];
}
});
});
var _MultipleScanningModeUseCase = require("./barcode/MultipleScanningModeUseCase");
Object.keys(_MultipleScanningModeUseCase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _MultipleScanningModeUseCase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _MultipleScanningModeUseCase[key];
}
});
});
var _ArTrackingOverlayConfiguration = require("./barcode/ArTrackingOverlayConfiguration");
Object.keys(_ArTrackingOverlayConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _ArTrackingOverlayConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _ArTrackingOverlayConfiguration[key];
}
});
});
var _BarcodeInfoMapping = require("./barcode/BarcodeInfoMapping");
Object.keys(_BarcodeInfoMapping).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeInfoMapping[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeInfoMapping[key];
}
});
});
var _BarcodeItem = require("./barcode/BarcodeItem");
Object.keys(_BarcodeItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeItem[key];
}
});
});
var _BarcodeRecognizerConfiguration = require("./barcode/BarcodeRecognizerConfiguration");
Object.keys(_BarcodeRecognizerConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeRecognizerConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeRecognizerConfiguration[key];
}
});
});
var _BarcodeResult = require("./barcode/BarcodeResult");
Object.keys(_BarcodeResult).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeResult[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeResult[key];
}
});
});
var _BarcodeScannerConfiguration = require("./barcode/BarcodeScannerConfiguration");
Object.keys(_BarcodeScannerConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeScannerConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeScannerConfiguration[key];
}
});
});
var _BarcodeTextLocalization = require("./barcode/BarcodeTextLocalization");
Object.keys(_BarcodeTextLocalization).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeTextLocalization[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeTextLocalization[key];
}
});
});
var _BarcodeUseCase = require("./barcode/BarcodeUseCase");
Object.keys(_BarcodeUseCase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeUseCase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeUseCase[key];
}
});
});
var _FindAndPickScanningModeUseCase = require("./barcode/FindAndPickScanningModeUseCase");
Object.keys(_FindAndPickScanningModeUseCase).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _FindAndPickScanningModeUseCase[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _FindAndPickScanningModeUseCase[key];
}
});
});
var _ActionBarConfiguration = require("./common/ActionBarConfiguration");
Object.keys(_ActionBarConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _ActionBarConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _ActionBarConfiguration[key];
}
});
});
var _CameraConfiguration = require("./common/CameraConfiguration");
Object.keys(_CameraConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _CameraConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _CameraConfiguration[key];
}
});
});
var _CameraPermission = require("./common/CameraPermission");
Object.keys(_CameraPermission).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _CameraPermission[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _CameraPermission[key];
}
});
});
var _Common = require("./common/Common");
Object.keys(_Common).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _Common[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _Common[key];
}
});
});
var _NavigationBarConfiguration = require("./common/NavigationBarConfiguration");
Object.keys(_NavigationBarConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _NavigationBarConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _NavigationBarConfiguration[key];
}
});
});
var _ScanbotAlertDialog = require("./common/ScanbotAlertDialog");
Object.keys(_ScanbotAlertDialog).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _ScanbotAlertDialog[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _ScanbotAlertDialog[key];
}
});
});
var _TopBarConfiguration = require("./common/TopBarConfiguration");
Object.keys(_TopBarConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _TopBarConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _TopBarConfiguration[key];
}
});
});
var _UserGuidanceConfiguration = require("./common/UserGuidanceConfiguration");
Object.keys(_UserGuidanceConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _UserGuidanceConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _UserGuidanceConfiguration[key];
}
});
});
var _ViewFinderConfiguration = require("./common/ViewFinderConfiguration");
Object.keys(_ViewFinderConfiguration).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _ViewFinderConfiguration[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _ViewFinderConfiguration[key];
}
});
});
var _BarcodeItemMapper = require("./BarcodeItemMapper");
Object.keys(_BarcodeItemMapper).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _BarcodeItemMapper[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _BarcodeItemMapper[key];
}
});
});
const LINKING_ERROR = `The package 'react-native-scanbot-barcode-scanner-sdk' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
ios: "- You have run 'pod install'\n",
default: ''
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
const ScanbotBarcodeSDKImpl = _reactNative.NativeModules.ScanbotBarcodeSdk ? _reactNative.NativeModules.ScanbotBarcodeSdk : new Proxy({}, {
get() {
throw new Error(LINKING_ERROR);
}
});
const isIOS = _reactNative.Platform.OS === 'ios';
/**
* Opens the Ready-To-Use UI screen for scanning barcodes with the desired configuration.
*
* @param {BarcodeScannerConfiguration} config
* @returns {Promise<ResultWrapper<BarcodeScannerResult>>}
*/
function startBarcodeScanner(config) {
const barcodeItemMapperEventName = 'barcodeItemMapperEvent';
let barcodeItemMapperCallback = null;
let barcodeItemMapperEventEmitter = null;
if (config.useCase instanceof _SingleScanningModeUseCase.SingleScanningMode || config.useCase instanceof _MultipleScanningModeUseCase.MultipleScanningMode) {
barcodeItemMapperCallback = config.useCase.barcodeInfoMapping.barcodeItemMapper;
if (barcodeItemMapperCallback) {
barcodeItemMapperEventEmitter = new _reactNative.NativeEventEmitter(ScanbotBarcodeSDKImpl);
barcodeItemMapperEventEmitter.removeAllListeners(barcodeItemMapperEventName);
barcodeItemMapperEventEmitter.addListener(barcodeItemMapperEventName, barcodeItem => {
const barcodeItemUuid = `${barcodeItem.textWithExtension}_${barcodeItem.type ?? ''}`;
barcodeItemMapperCallback(barcodeItem, barcodeMappedData => ScanbotBarcodeSDKImpl.onBarcodeItemMapper(barcodeItemUuid, barcodeMappedData), () => ScanbotBarcodeSDKImpl.onBarcodeItemMapper(barcodeItemUuid, null));
});
// On iOS, the communication with the native part is throwing an error (startBarcodeScannerV2) because of the barcodeItemMapper
// callback in the configuration class (not parsable), that's why we need to remove it before executing startBarcodeScannerV2 method
config.useCase.barcodeInfoMapping.barcodeItemMapper = null;
return new Promise((resolve, reject) => {
ScanbotBarcodeSDKImpl.startBarcodeScannerV2(isIOS ? JSON.stringify(config) : config, true).then(result => {
barcodeItemMapperEventEmitter?.removeAllListeners(barcodeItemMapperEventName);
barcodeItemMapperEventEmitter = null;
resolve(result);
}).catch(error => {
barcodeItemMapperEventEmitter?.removeAllListeners(barcodeItemMapperEventName);
barcodeItemMapperEventEmitter = null;
reject(error);
});
});
}
}
return ScanbotBarcodeSDKImpl.startBarcodeScannerV2(isIOS ? JSON.stringify(config) : config, false);
}
//# sourceMappingURL=index.js.map