UNPKG

react-barcode-reader

Version:

A react component for reading barcodes and Qr codes from keybord input devices.

2 lines 13.7 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{270:function(module,exports,__webpack_require__){__webpack_require__(271),__webpack_require__(417),module.exports=__webpack_require__(418)},335:function(module,exports){},418:function(module,exports,__webpack_require__){"use strict";(function(module){var _react=__webpack_require__(214);module._StorybookPreserveDecorators=!0,(0,_react.configure)([__webpack_require__(606)],module)}).call(this,__webpack_require__(57)(module))},606:function(module,exports,__webpack_require__){var map={"./story.js":607};function webpackContext(req){var id=webpackContextResolve(req);return __webpack_require__(id)}function webpackContextResolve(req){if(!__webpack_require__.o(map,req)){var e=new Error("Cannot find module '"+req+"'");throw e.code="MODULE_NOT_FOUND",e}return map[req]}webpackContext.keys=function webpackContextKeys(){return Object.keys(map)},webpackContext.resolve=webpackContextResolve,module.exports=webpackContext,webpackContext.id=606},607:function(module,exports,__webpack_require__){"use strict";(function(module){__webpack_require__(16),__webpack_require__(18),__webpack_require__(19),__webpack_require__(17),__webpack_require__(34),__webpack_require__(112),__webpack_require__(52),__webpack_require__(81),__webpack_require__(113),__webpack_require__(14),__webpack_require__(267),__webpack_require__(35),__webpack_require__(20),__webpack_require__(21);var _react=function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;if(null===obj||"object"!==_typeof(obj)&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache();if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}(__webpack_require__(66)),_react2=__webpack_require__(214),_addonActions=__webpack_require__(608),_lib=function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(621));function _getRequireWildcardCache(){if("function"!=typeof WeakMap)return null;var cache=new WeakMap;return _getRequireWildcardCache=function(){return cache},cache}function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)(descriptor=props[i]).enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _possibleConstructorReturn(self,call){return!call||"object"!==_typeof(call)&&"function"!=typeof call?function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}(self):call}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _getPrototypeOf(o){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)})(o)}function _setPrototypeOf(o,p){return(_setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o})(o,p)}var Wrapper=function(_Component){!function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}(Wrapper,_Component);var _super=function _createSuper(Derived){return function(){var result,Super=_getPrototypeOf(Derived);if(_isNativeReflectConstruct()){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else result=Super.apply(this,arguments);return _possibleConstructorReturn(this,result)}}(Wrapper);function Wrapper(){return _classCallCheck(this,Wrapper),_super.apply(this,arguments)}return function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}(Wrapper,[{key:"render",value:function render(){return _react.default.createElement("div",null,_react.default.createElement(_lib.default,{onError:(0,_addonActions.action)("Error"),onScan:(0,_addonActions.action)("Scan")}))}}]),Wrapper}(_react.Component);Wrapper.displayName="Wrapper";var _ref=_react.default.createElement(Wrapper,null);(0,_react2.storiesOf)("Barcode scanner",module).add("Default",(function(){return _ref}))}).call(this,__webpack_require__(57)(module))},621:function(module,exports,__webpack_require__){"use strict";__webpack_require__(16),__webpack_require__(18),__webpack_require__(19),__webpack_require__(166),__webpack_require__(17),__webpack_require__(622),__webpack_require__(34),__webpack_require__(112),__webpack_require__(52),__webpack_require__(81),__webpack_require__(113),__webpack_require__(14),__webpack_require__(267),__webpack_require__(35),__webpack_require__(20),__webpack_require__(21),__webpack_require__(164),Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(__webpack_require__(66)),_propTypes=_interopRequireDefault(__webpack_require__(623));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)(descriptor=props[i]).enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _possibleConstructorReturn(self,call){return!call||"object"!==_typeof(call)&&"function"!=typeof call?_assertThisInitialized(self):call}function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function _getPrototypeOf(o){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)})(o)}function _setPrototypeOf(o,p){return(_setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o})(o,p)}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function inIframe(){try{return window.self!==window.top}catch(e){return!0}}var BarcodeScanner=function(_React$Component){!function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}(BarcodeScanner,_React$Component);var _super=function _createSuper(Derived){return function(){var result,Super=_getPrototypeOf(Derived);if(_isNativeReflectConstruct()){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else result=Super.apply(this,arguments);return _possibleConstructorReturn(this,result)}}(BarcodeScanner);function BarcodeScanner(props){var _this;return function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,BarcodeScanner),_defineProperty(_assertThisInitialized(_this=_super.call(this,props)),"initScannerDetection",(function(){_this.firstCharTime=0,_this.stringWriting="",_this.scanButtonCounter=0})),_defineProperty(_assertThisInitialized(_this),"scannerDetectionTest",(function(s){var _this$props=_this.props,minLength=_this$props.minLength,avgTimeByChar=_this$props.avgTimeByChar,onScanButtonLongPressed=_this$props.onScanButtonLongPressed,scanButtonLongPressThreshold=_this$props.scanButtonLongPressThreshold,onScan=_this$props.onScan,onError=_this$props.onError;if(s&&(_this.firstCharTime=0,_this.lastCharTime=0,_this.stringWriting=s),_this.scanButtonCounter||(_this.scanButtonCounter=1),_this.stringWriting.length>=minLength&&_this.lastCharTime-_this.firstCharTime<_this.stringWriting.length*avgTimeByChar)return onScanButtonLongPressed&&_this.scanButtonCounter>scanButtonLongPressThreshold?onScanButtonLongPressed(_this.stringWriting,_this.scanButtonCounter):onScan&&onScan(_this.stringWriting,_this.scanButtonCounter),_this.initScannerDetection(),!0;var errorMsg="";return _this.stringWriting.length<minLength?errorMsg="String length should be greater or equal ".concat(minLength):_this.lastCharTime-_this.firstCharTime>_this.stringWriting.length*avgTimeByChar&&(errorMsg="Average key character time should be less or equal ".concat(avgTimeByChar,"ms")),onError&&onError(_this.stringWriting,errorMsg),_this.initScannerDetection(),!1})),_defineProperty(_assertThisInitialized(_this),"handleKeyPress",(function(e){var _this$props2=_this.props,onKeyDetect=_this$props2.onKeyDetect,onReceive=_this$props2.onReceive,scanButtonKeyCode=_this$props2.scanButtonKeyCode,stopPropagation=_this$props2.stopPropagation,preventDefault=_this$props2.preventDefault,endChar=_this$props2.endChar,startChar=_this$props2.startChar,timeBeforeScanTest=_this$props2.timeBeforeScanTest,target=e.target;target instanceof window.HTMLElement&&function isInput(element){if(!element)return!1;var tagName=element.tagName,editable=function isContentEditable(element){return"function"==typeof element.getAttribute&&!!element.getAttribute("contenteditable")}(element);return"INPUT"===tagName||"TEXTAREA"===tagName||editable}(target)||(scanButtonKeyCode&&e.which===scanButtonKeyCode&&(_this.scanButtonCounter+=1,e.preventDefault(),e.stopImmediatePropagation()),onKeyDetect&&onKeyDetect(e),stopPropagation&&e.stopImmediatePropagation(),preventDefault&&e.preventDefault(),_this.firstCharTime&&-1!==endChar.indexOf(e.which)?(e.preventDefault(),e.stopImmediatePropagation(),_this.callIsScanner=!0):_this.firstCharTime||-1===startChar.indexOf(e.which)?(void 0!==e.which&&(_this.stringWriting+=String.fromCharCode(e.which)),_this.callIsScanner=!1):(e.preventDefault(),e.stopImmediatePropagation(),_this.callIsScanner=!1),_this.firstCharTime||(_this.firstCharTime=Date.now()),_this.lastCharTime=Date.now(),_this.testTimer&&clearTimeout(_this.testTimer),_this.callIsScanner?(_this.scannerDetectionTest(),_this.testTimer=!1):_this.testTimer=setTimeout(_this.scannerDetectionTest,timeBeforeScanTest),onReceive&&onReceive(e))})),_this.firstCharTime=0,_this.lastCharTime=0,_this.stringWriting="",_this.callIsScanner=!1,_this.testTimer=!1,_this.scanButtonCounter=0,_this}return function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}(BarcodeScanner,[{key:"componentDidMount",value:function(){inIframe&&window.parent.document.addEventListener("keypress",this.handleKeyPress),window.document.addEventListener("keypress",this.handleKeyPress)}},{key:"componentWillUnmount",value:function(){inIframe&&window.parent.document.removeEventListener("keypress",this.handleKeyPress),window.document.removeEventListener("keypress",this.handleKeyPress)}},{key:"render",value:function(){return this.props.testCode&&this.scannerDetectionTest(this.props.testCode),null}}]),BarcodeScanner}(_react.default.Component);BarcodeScanner.propTypes={onScan:_propTypes.default.func,onError:_propTypes.default.func,onReceive:_propTypes.default.func,onKeyDetect:_propTypes.default.func,timeBeforeScanTest:_propTypes.default.number,avgTimeByChar:_propTypes.default.number,minLength:_propTypes.default.number,endChar:_propTypes.default.arrayOf(_propTypes.default.number),startChar:_propTypes.default.arrayOf(_propTypes.default.number),scanButtonKeyCode:_propTypes.default.number,scanButtonLongPressThreshold:_propTypes.default.number,onScanButtonLongPressed:_propTypes.default.func,stopPropagation:_propTypes.default.bool,preventDefault:_propTypes.default.bool,testCode:_propTypes.default.string},BarcodeScanner.defaultProps={timeBeforeScanTest:100,avgTimeByChar:30,minLength:6,endChar:[9,13],startChar:[],scanButtonLongPressThreshold:3,stopPropagation:!1,preventDefault:!1};var _default=BarcodeScanner;exports.default=_default}},[[270,1,2]]]); //# sourceMappingURL=main.f784816d1f43c2dfc5c8.bundle.js.map