diff --git a/dist/1.0.0/incentro.BarcodeScanTorch.mpk b/dist/1.0.0/incentro.BarcodeScanTorch.mpk index eaf9281..0f474de 100644 Binary files a/dist/1.0.0/incentro.BarcodeScanTorch.mpk and b/dist/1.0.0/incentro.BarcodeScanTorch.mpk differ diff --git a/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js b/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js index f2f27c9..810bf5b 100644 --- a/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js +++ b/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js @@ -87,6 +87,141 @@ module.exports = /************************************************************************/ /******/ ({ +/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i0&&arguments[0]!==undefined?arguments[0]:"";try{return style.split(";").reduce(function(styleObject,line){var pair=line.split(":");if(pair.length===2){var name=pair[0].trim().replace(/(-.)/g,function(match){return match[1].toUpperCase();});styleObject[name]=pair[1].trim();}return styleObject;},{});}catch(_){return{};}}exports.parseInlineStyle=parseInlineStyle; + +/***/ }), + /***/ "./src/BarcodeScanTorch.tsx": /*!**********************************!*\ !*** ./src/BarcodeScanTorch.tsx ***! @@ -103,74 +238,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react_native__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_native__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var react_native_camera__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-native-camera */ "react-native-camera"); /* harmony import */ var react_native_camera__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_native_camera__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _mendix_pluggable_widgets_tools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mendix/pluggable-widgets-tools */ "./node_modules/@mendix/pluggable-widgets-tools/dist/index.js"); +/* harmony import */ var _mendix_pluggable_widgets_tools__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mendix_pluggable_widgets_tools__WEBPACK_IMPORTED_MODULE_3__); + ; -class BarcodeScanTorch extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] { - constructor(props) { - super(props); - this.onBarCodeReadHandler = this.onBarCodeRead.bind(this); - this.manualBarcodeHandler = this.manualBarcode.bind(this); - this.toggleTorch = this.toggleTorch.bind(this); - this.toggleAutoDetect = this.toggleAutoDetect.bind(this); - this.state = { - torchON: false, - autoDetect: true, - textboxValue: '', - }; - } - toggleTorch() { - this.setState({ torchON: !this.state.torchON }); - } - toggleAutoDetect() { - this.setState({ autoDetect: !this.state.autoDetect }); - } - render() { - return (Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: localStyle.container }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"], { style: localStyle.preview, captureAudio: false, onBarCodeRead: this.onBarCodeReadHandler, flashMode: this.state.torchON ? react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"].Constants.FlashMode.torch : react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"].Constants.FlashMode.off }), - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: localStyle.bottom }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.toggleTorch, style: this.state.torchON ? localStyle.switchOn : localStyle.switchOff }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.state.torchON ? localStyle.textOn : localStyle.textOff }, - "\u21AF Lamp ", - this.state.torchON ? "aan" : "uit")), - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.toggleAutoDetect, style: this.state.autoDetect ? localStyle.switchOn : localStyle.switchOff }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.state.autoDetect ? localStyle.textOn : localStyle.textOff }, - "\u2551\u2588\u2551 Detectie ", - this.state.autoDetect ? "aan" : "uit")), - this.state.autoDetect ? Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], null) : - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: localStyle.textBox }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: localStyle.textBarcode }, "Barcode: "), - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TextInput"], { style: localStyle.textInput, placeholder: "Scan of vul handmatig", value: this.state.textboxValue, onChangeText: (text) => this.setState({ textboxValue: text }) }), - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.manualBarcodeHandler, style: localStyle.switchOn }, - Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: localStyle.textOn }, "Naar machine")))))); - } - onBarCodeRead(event) { - if (this.state.autoDetect) { - if (this.props.barcode.status !== "available" || event.data === this.props.barcode.value) { - return; - } - this.props.barcode.setValue(event.data); - if (this.props.onDetect && this.props.onDetect.canExecute) { - react_native__WEBPACK_IMPORTED_MODULE_1__["Vibration"].vibrate(400); - this.props.onDetect.execute(); - } - } - else { - if (this.state.textboxValue !== event.data) { - react_native__WEBPACK_IMPORTED_MODULE_1__["Vibration"].vibrate(400); - this.setState({ textboxValue: event.data }); - return; - } - } - } - manualBarcode() { - var _a; - this.props.barcode.setValue(this.state.textboxValue); - (_a = this.props.onDetect) === null || _a === void 0 ? void 0 : _a.execute(); - } -} -const localStyle = react_native__WEBPACK_IMPORTED_MODULE_1__["StyleSheet"].create({ +const defaultStyle = { container: { flex: 1, backgroundColor: 'black' @@ -232,7 +307,71 @@ const localStyle = react_native__WEBPACK_IMPORTED_MODULE_1__["StyleSheet"].creat fontSize: 16, fontWeight: 'bold', } -}); +}; +class BarcodeScanTorch extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] { + constructor(props) { + super(props); + this.onBarCodeReadHandler = this.onBarCodeRead.bind(this); + this.manualBarcodeHandler = this.manualBarcode.bind(this); + this.styles = Object(_mendix_pluggable_widgets_tools__WEBPACK_IMPORTED_MODULE_3__["mergeNativeStyles"])(defaultStyle, this.props.style); + this.toggleTorch = this.toggleTorch.bind(this); + this.toggleAutoDetect = this.toggleAutoDetect.bind(this); + this.state = { + torchON: false, + autoDetect: true, + textboxValue: '', + }; + } + toggleTorch() { + this.setState({ torchON: !this.state.torchON }); + } + toggleAutoDetect() { + this.setState({ autoDetect: !this.state.autoDetect }); + } + render() { + return (Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: this.styles.container }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"], { style: this.styles.preview, captureAudio: false, onBarCodeRead: this.onBarCodeReadHandler, flashMode: this.state.torchON ? react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"].Constants.FlashMode.torch : react_native_camera__WEBPACK_IMPORTED_MODULE_2__["RNCamera"].Constants.FlashMode.off }), + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: this.styles.bottom }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.toggleTorch, style: this.state.torchON ? this.styles.switchOn : this.styles.switchOff }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.state.torchON ? this.styles.textOn : this.styles.textOff }, + "\u21AF Lamp ", + this.state.torchON ? "aan" : "uit")), + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.toggleAutoDetect, style: this.state.autoDetect ? this.styles.switchOn : this.styles.switchOff }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.state.autoDetect ? this.styles.textOn : this.styles.textOff }, + "\u2551\u2588\u2551 Detectie ", + this.state.autoDetect ? "aan" : "uit")), + this.state.autoDetect ? Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], null) : + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["View"], { style: this.styles.textBox }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.styles.textBarcode }, "Barcode: "), + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TextInput"], { style: this.styles.textInput, placeholder: "Scan of vul handmatig", value: this.state.textboxValue, onChangeText: (text) => this.setState({ textboxValue: text }) }), + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["TouchableOpacity"], { onPress: this.manualBarcodeHandler, style: this.styles.switchOn }, + Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(react_native__WEBPACK_IMPORTED_MODULE_1__["Text"], { style: this.styles.textOn }, "Naar machine")))))); + } + onBarCodeRead(event) { + if (this.state.autoDetect) { + if (this.props.barcode.status !== "available" || event.data === this.props.barcode.value) { + return; + } + this.props.barcode.setValue(event.data); + if (this.props.onDetect && this.props.onDetect.canExecute) { + react_native__WEBPACK_IMPORTED_MODULE_1__["Vibration"].vibrate(400); + this.props.onDetect.execute(); + } + } + else { + if (this.state.textboxValue !== event.data) { + react_native__WEBPACK_IMPORTED_MODULE_1__["Vibration"].vibrate(400); + this.setState({ textboxValue: event.data }); + return; + } + } + } + manualBarcode() { + var _a; + this.props.barcode.setValue(this.state.textboxValue); + (_a = this.props.onDetect) === null || _a === void 0 ? void 0 : _a.execute(); + } +} /***/ }), diff --git a/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js.map b/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js.map index 111ff88..b3da412 100644 --- a/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js.map +++ b/dist/tmp/widgets/incentro/barcodescantorch/BarcodeScanTorch.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/BarcodeScanTorch.tsx","webpack:///external \"react\"","webpack:///external \"react-native\"","webpack:///external \"react-native-camera\""],"names":[],"mappings":"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","file":"widgets/incentro/barcodescantorch/BarcodeScanTorch.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/BarcodeScanTorch.tsx\");\n","import { Component, createElement } from \"react\";\r\nimport { View, StyleSheet, TouchableOpacity, Text, TextInput, Vibration } from \"react-native\";\r\nimport { RNCamera } from \"react-native-camera\";\r\nimport { ValueStatus } from \"mendix\";\r\nimport { Style } from \"./utils/common\";\r\n\r\nexport interface BarcodeScanTorchStyle extends Style {\r\n};\r\n\r\nimport { BarcodeScanTorchProps } from \"../typings/BarcodeScanTorchProps\";\r\n\r\nexport type Props = BarcodeScanTorchProps;\r\n\r\ninterface State {\r\n torchON?: boolean;\r\n autoDetect?: boolean;\r\n textboxValue?: string;\r\n}\r\n\r\nexport class BarcodeScanTorch extends Component {\r\n onBarCodeReadHandler = this.onBarCodeRead.bind(this);\r\n manualBarcodeHandler = this.manualBarcode.bind(this);\r\n constructor(props: Props){\r\n super(props)\r\n this.toggleTorch = this.toggleTorch.bind(this)\r\n this.toggleAutoDetect = this.toggleAutoDetect.bind(this)\r\n this.state = {\r\n torchON: false,\r\n autoDetect: true,\r\n textboxValue: '',\r\n }\r\n }\r\n\r\n toggleTorch(){\r\n this.setState({torchON: !this.state.torchON})\r\n }\r\n\r\n toggleAutoDetect(){\r\n this.setState({autoDetect: !this.state.autoDetect})\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n \r\n \r\n \r\n ↯ Lamp {this.state.torchON ? \"aan\" : \"uit\"}\r\n \r\n \r\n ║█║ Detectie {this.state.autoDetect ? \"aan\" : \"uit\"}\r\n \r\n {this.state.autoDetect ? : \r\n \r\n Barcode: \r\n this.setState({textboxValue: text})}/>\r\n \r\n Naar machine\r\n \r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n // Internal button for testing\r\n //\r\n //\r\n //Zaklamp {this.state.torchON ? \"uit\" : \"aan\"}\r\n //\r\n //\r\n //\r\n \r\n\r\n private onBarCodeRead(event: { data: string }): void {\r\n if (this.state.autoDetect) {\r\n if (this.props.barcode.status !== ValueStatus.Available || event.data === this.props.barcode.value) {\r\n return;\r\n }\r\n\r\n this.props.barcode.setValue(event.data);\r\n\r\n if (this.props.onDetect && this.props.onDetect.canExecute) {\r\n Vibration.vibrate(400);\r\n this.props.onDetect.execute();\r\n }\r\n }\r\n else {\r\n if (this.state.textboxValue !== event.data) {\r\n Vibration.vibrate(400);\r\n this.setState({textboxValue: event.data})\r\n return;\r\n }\r\n }\r\n }\r\n\r\n private manualBarcode() {\r\n this.props.barcode.setValue(this.state.textboxValue);\r\n this.props.onDetect?.execute();\r\n }\r\n}\r\n\r\nconst localStyle = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n backgroundColor: 'black'\r\n },\r\n preview: {\r\n flex: 1,\r\n alignItems: 'center',\r\n },\r\n bottom:{\r\n justifyContent: 'flex-end',\r\n backgroundColor: 'white',\r\n alignItems: 'center',\r\n },\r\n textBox:{\r\n backgroundColor: 'white',\r\n alignItems: 'center',\r\n },\r\n textInput:{\r\n height: 45,\r\n margin: 5,\r\n width: 300,\r\n borderBottomWidth: 1,\r\n borderBottomColor: '#de712b',\r\n },\r\n switchOn: {\r\n height: 45,\r\n margin: 5,\r\n borderRadius: 30,\r\n backgroundColor: '#de712b',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '85%',\r\n },\r\n switchOff: {\r\n height: 45,\r\n margin: 5,\r\n borderRadius: 30,\r\n backgroundColor: 'white',\r\n borderWidth: 1,\r\n borderColor: '#de712b',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '85%',\r\n },\r\n textOn: {\r\n color: 'white',\r\n fontSize: 16,\r\n margin: 50,\r\n fontWeight: 'bold',\r\n },\r\n textOff: {\r\n color: '#de712b',\r\n fontSize: 16,\r\n margin: 50,\r\n fontWeight: 'bold',\r\n },\r\n textBarcode: {\r\n color: '#de712b',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n }\r\n })","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-camera\");"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@mendix/pluggable-widgets-tools/dist/index.js","webpack:///./node_modules/@mendix/pluggable-widgets-tools/dist/native/common.js","webpack:///./node_modules/@mendix/pluggable-widgets-tools/dist/web/common.js","webpack:///./src/BarcodeScanTorch.tsx","webpack:///external \"react\"","webpack:///external \"react-native\"","webpack:///external \"react-native-camera\""],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","module","exports","arrayLikeToArray","require","_arrayWithoutHoles","isArray","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_extends","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","_interopRequireDefault","__esModule","_iterableToArray","iter","Symbol","iterator","from","_nonIterableSpread","TypeError","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_toConsumableArray","_unsupportedIterableToArray","o","minLen","n","toString","slice","constructor","name","test","__createBinding","create","m","k","k2","undefined","get","__exportStar","p","mergeNativeStyles","defaultStyle","overrideStyles","styles","filter","object","keys","reduce","flattened","currentKey","styleItems","map","flattenObjects","objects","merged","parseInlineStyle","style","split","styleObject","line","pair","trim","replace","match","toUpperCase","_"],"mappings":"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","file":"widgets/incentro/barcodescantorch/BarcodeScanTorch.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/BarcodeScanTorch.tsx\");\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./native/common\"), exports);\n__exportStar(require(\"./web/common\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeNativeStyles = void 0;\nfunction mergeNativeStyles(defaultStyle, overrideStyles) {\n const styles = [defaultStyle, ...overrideStyles.filter((object) => object !== undefined)];\n return Object.keys(defaultStyle).reduce((flattened, currentKey) => {\n const styleItems = styles.map(object => object[currentKey]);\n return Object.assign(Object.assign({}, flattened), { [currentKey]: flattenObjects(styleItems) });\n }, {});\n}\nexports.mergeNativeStyles = mergeNativeStyles;\nfunction flattenObjects(objects) {\n return objects.reduce((merged, object) => (Object.assign(Object.assign({}, merged), object)), {});\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseInlineStyle = void 0;\nfunction parseInlineStyle(style = \"\") {\n try {\n return style.split(\";\").reduce((styleObject, line) => {\n const pair = line.split(\":\");\n if (pair.length === 2) {\n const name = pair[0].trim().replace(/(-.)/g, match => match[1].toUpperCase());\n styleObject[name] = pair[1].trim();\n }\n return styleObject;\n }, {});\n }\n catch (_) {\n return {};\n }\n}\nexports.parseInlineStyle = parseInlineStyle;\n","import { Component, createElement } from \"react\";\r\nimport { View, TouchableOpacity, Text, TextInput, Vibration, ViewStyle, TextStyle } from \"react-native\";\r\nimport { RNCamera } from \"react-native-camera\";\r\nimport { ValueStatus } from \"mendix\";\r\nimport { Style, mergeNativeStyles } from '@mendix/pluggable-widgets-tools';\r\n\r\nexport interface BarcodeScanTorchStyle extends Style {\r\n container: ViewStyle;\r\n preview: ViewStyle;\r\n bottom: ViewStyle;\r\n textBox: ViewStyle;\r\n textInput: TextStyle;\r\n switchOn: ViewStyle;\r\n switchOff: ViewStyle;\r\n textOn: TextStyle;\r\n textOff: TextStyle;\r\n textBarcode: TextStyle;\r\n\r\n};\r\n\r\nconst defaultStyle: BarcodeScanTorchStyle = {\r\n container: {\r\n flex: 1,\r\n backgroundColor: 'black'\r\n },\r\n preview: {\r\n flex: 1,\r\n alignItems: 'center',\r\n },\r\n bottom: {\r\n justifyContent: 'flex-end',\r\n backgroundColor: 'white',\r\n alignItems: 'center',\r\n },\r\n textBox: {\r\n backgroundColor: 'white',\r\n alignItems: 'center',\r\n },\r\n textInput: {\r\n height: 45,\r\n margin: 5,\r\n width: 300,\r\n borderBottomWidth: 1,\r\n borderBottomColor: '#de712b',\r\n },\r\n switchOn: {\r\n height: 45,\r\n margin: 5,\r\n borderRadius: 30,\r\n backgroundColor: '#de712b',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '85%',\r\n },\r\n switchOff: {\r\n height: 45,\r\n margin: 5,\r\n borderRadius: 30,\r\n backgroundColor: 'white',\r\n borderWidth: 1,\r\n borderColor: '#de712b',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '85%',\r\n },\r\n textOn: {\r\n color: 'white',\r\n fontSize: 16,\r\n margin: 50,\r\n fontWeight: 'bold',\r\n },\r\n textOff: {\r\n color: '#de712b',\r\n fontSize: 16,\r\n margin: 50,\r\n fontWeight: 'bold',\r\n },\r\n textBarcode: {\r\n color: '#de712b',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n }\r\n};\r\n\r\nimport { BarcodeScanTorchProps } from \"../typings/BarcodeScanTorchProps\";\r\n\r\nexport type Props = BarcodeScanTorchProps;\r\n\r\ninterface State {\r\n torchON?: boolean;\r\n autoDetect?: boolean;\r\n textboxValue?: string;\r\n}\r\n\r\nexport class BarcodeScanTorch extends Component {\r\n onBarCodeReadHandler = this.onBarCodeRead.bind(this);\r\n manualBarcodeHandler = this.manualBarcode.bind(this);\r\n constructor(props: Props){\r\n super(props)\r\n this.toggleTorch = this.toggleTorch.bind(this)\r\n this.toggleAutoDetect = this.toggleAutoDetect.bind(this)\r\n this.state = {\r\n torchON: false,\r\n autoDetect: true,\r\n textboxValue: '',\r\n }\r\n }\r\n\r\n private readonly styles = mergeNativeStyles(defaultStyle, this.props.style);\r\n\r\n toggleTorch(){\r\n this.setState({torchON: !this.state.torchON})\r\n }\r\n\r\n toggleAutoDetect(){\r\n this.setState({autoDetect: !this.state.autoDetect})\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n \r\n \r\n \r\n ↯ Lamp {this.state.torchON ? \"aan\" : \"uit\"}\r\n \r\n \r\n ║█║ Detectie {this.state.autoDetect ? \"aan\" : \"uit\"}\r\n \r\n {this.state.autoDetect ? : \r\n \r\n Barcode: \r\n this.setState({textboxValue: text})}/>\r\n \r\n Naar machine\r\n \r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n // Internal button for testing\r\n //\r\n //\r\n //Zaklamp {this.state.torchON ? \"uit\" : \"aan\"}\r\n //\r\n //\r\n //\r\n \r\n\r\n private onBarCodeRead(event: { data: string }): void {\r\n if (this.state.autoDetect) {\r\n if (this.props.barcode.status !== ValueStatus.Available || event.data === this.props.barcode.value) {\r\n return;\r\n }\r\n\r\n this.props.barcode.setValue(event.data);\r\n\r\n if (this.props.onDetect && this.props.onDetect.canExecute) {\r\n Vibration.vibrate(400);\r\n this.props.onDetect.execute();\r\n }\r\n }\r\n else {\r\n if (this.state.textboxValue !== event.data) {\r\n Vibration.vibrate(400);\r\n this.setState({textboxValue: event.data})\r\n return;\r\n }\r\n }\r\n }\r\n\r\n private manualBarcode() {\r\n this.props.barcode.setValue(this.state.textboxValue);\r\n this.props.onDetect?.execute();\r\n }\r\n}","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-camera\");"],"sourceRoot":""} \ No newline at end of file diff --git a/src/BarcodeScanTorch.tsx b/src/BarcodeScanTorch.tsx index 3630176..7fda1ec 100644 --- a/src/BarcodeScanTorch.tsx +++ b/src/BarcodeScanTorch.tsx @@ -1,111 +1,24 @@ import { Component, createElement } from "react"; -import { View, StyleSheet, TouchableOpacity, Text, TextInput, Vibration } from "react-native"; +import { View, TouchableOpacity, Text, TextInput, Vibration, ViewStyle, TextStyle } from "react-native"; import { RNCamera } from "react-native-camera"; import { ValueStatus } from "mendix"; -import { Style } from "./utils/common"; +import { Style, mergeNativeStyles } from '@mendix/pluggable-widgets-tools'; export interface BarcodeScanTorchStyle extends Style { + container: ViewStyle; + preview: ViewStyle; + bottom: ViewStyle; + textBox: ViewStyle; + textInput: TextStyle; + switchOn: ViewStyle; + switchOff: ViewStyle; + textOn: TextStyle; + textOff: TextStyle; + textBarcode: TextStyle; + }; -import { BarcodeScanTorchProps } from "../typings/BarcodeScanTorchProps"; - -export type Props = BarcodeScanTorchProps; - -interface State { - torchON?: boolean; - autoDetect?: boolean; - textboxValue?: string; -} - -export class BarcodeScanTorch extends Component { - onBarCodeReadHandler = this.onBarCodeRead.bind(this); - manualBarcodeHandler = this.manualBarcode.bind(this); - constructor(props: Props){ - super(props) - this.toggleTorch = this.toggleTorch.bind(this) - this.toggleAutoDetect = this.toggleAutoDetect.bind(this) - this.state = { - torchON: false, - autoDetect: true, - textboxValue: '', - } - } - - toggleTorch(){ - this.setState({torchON: !this.state.torchON}) - } - - toggleAutoDetect(){ - this.setState({autoDetect: !this.state.autoDetect}) - } - - render(){ - return ( - - - - - ↯ Lamp {this.state.torchON ? "aan" : "uit"} - - - ║█║ Detectie {this.state.autoDetect ? "aan" : "uit"} - - {this.state.autoDetect ? : - - Barcode: - this.setState({textboxValue: text})}/> - - Naar machine - - - } - - - ); - } - // Internal button for testing - // - // - //Zaklamp {this.state.torchON ? "uit" : "aan"} - // - // - // - - - private onBarCodeRead(event: { data: string }): void { - if (this.state.autoDetect) { - if (this.props.barcode.status !== ValueStatus.Available || event.data === this.props.barcode.value) { - return; - } - - this.props.barcode.setValue(event.data); - - if (this.props.onDetect && this.props.onDetect.canExecute) { - Vibration.vibrate(400); - this.props.onDetect.execute(); - } - } - else { - if (this.state.textboxValue !== event.data) { - Vibration.vibrate(400); - this.setState({textboxValue: event.data}) - return; - } - } - } - - private manualBarcode() { - this.props.barcode.setValue(this.state.textboxValue); - this.props.onDetect?.execute(); - } -} - -const localStyle = StyleSheet.create({ +const defaultStyle: BarcodeScanTorchStyle = { container: { flex: 1, backgroundColor: 'black' @@ -114,16 +27,16 @@ const localStyle = StyleSheet.create({ flex: 1, alignItems: 'center', }, - bottom:{ + bottom: { justifyContent: 'flex-end', backgroundColor: 'white', alignItems: 'center', }, - textBox:{ + textBox: { backgroundColor: 'white', alignItems: 'center', }, - textInput:{ + textInput: { height: 45, margin: 5, width: 300, @@ -167,4 +80,104 @@ const localStyle = StyleSheet.create({ fontSize: 16, fontWeight: 'bold', } - }) \ No newline at end of file +}; + +import { BarcodeScanTorchProps } from "../typings/BarcodeScanTorchProps"; + +export type Props = BarcodeScanTorchProps; + +interface State { + torchON?: boolean; + autoDetect?: boolean; + textboxValue?: string; +} + +export class BarcodeScanTorch extends Component { + onBarCodeReadHandler = this.onBarCodeRead.bind(this); + manualBarcodeHandler = this.manualBarcode.bind(this); + constructor(props: Props){ + super(props) + this.toggleTorch = this.toggleTorch.bind(this) + this.toggleAutoDetect = this.toggleAutoDetect.bind(this) + this.state = { + torchON: false, + autoDetect: true, + textboxValue: '', + } + } + + private readonly styles = mergeNativeStyles(defaultStyle, this.props.style); + + toggleTorch(){ + this.setState({torchON: !this.state.torchON}) + } + + toggleAutoDetect(){ + this.setState({autoDetect: !this.state.autoDetect}) + } + + render(){ + return ( + + + + + ↯ Lamp {this.state.torchON ? "aan" : "uit"} + + + ║█║ Detectie {this.state.autoDetect ? "aan" : "uit"} + + {this.state.autoDetect ? : + + Barcode: + this.setState({textboxValue: text})}/> + + Naar machine + + + } + + + ); + } + // Internal button for testing + // + // + //Zaklamp {this.state.torchON ? "uit" : "aan"} + // + // + // + + + private onBarCodeRead(event: { data: string }): void { + if (this.state.autoDetect) { + if (this.props.barcode.status !== ValueStatus.Available || event.data === this.props.barcode.value) { + return; + } + + this.props.barcode.setValue(event.data); + + if (this.props.onDetect && this.props.onDetect.canExecute) { + Vibration.vibrate(400); + this.props.onDetect.execute(); + } + } + else { + if (this.state.textboxValue !== event.data) { + Vibration.vibrate(400); + this.setState({textboxValue: event.data}) + return; + } + } + } + + private manualBarcode() { + this.props.barcode.setValue(this.state.textboxValue); + this.props.onDetect?.execute(); + } +} \ No newline at end of file diff --git a/src/utils/common.ts b/src/utils/common.ts deleted file mode 100644 index 9ecb845..0000000 --- a/src/utils/common.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ImageStyle, TextStyle, ViewStyle } from "react-native"; - -interface CustomStyle { - [key: string]: string | number; -} - -export interface Style { - [key: string]: CustomStyle | ViewStyle | TextStyle | ImageStyle; -} - -export function flattenStyles(defaultStyle: T, overrideStyles: Array): T { - const styles = [defaultStyle, ...overrideStyles.filter((object): object is T => object !== undefined)]; - - return Object.keys(defaultStyle).reduce( - (flattened, currentKey) => { - const styleItems = styles.map(object => object[currentKey]); - return { - ...flattened, - [currentKey]: flattenObjects(styleItems) - }; - }, - {} as T - ); -} - -function flattenObjects(objects: T[]): T { - return objects.reduce((merged, object) => ({ ...merged, ...object }), {} as T); -}