UNPKG

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
"use strict"; 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