UNPKG

eagle-id

Version:

A React based component to perform identity verification

1,073 lines (885 loc) 47.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _styles = require("@material-ui/core/styles"); var _constants = _interopRequireDefault(require("./src/constants")); var _DocumentSelection = _interopRequireDefault(require("./src/DocumentSelection")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var 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; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(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 i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Controller = /*#__PURE__*/function (_Component) { _inherits(Controller, _Component); var _super = _createSuper(Controller); function Controller(props) { var _this; _classCallCheck(this, Controller); _this = _super.call(this, props); _this.state = { screen: _constants["default"].DOCUMENT_SCREEN }; return _this; } _createClass(Controller, [{ key: "render", value: function render() { var classes = this.props.classes; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_DocumentSelection["default"], { config: this.props.config, selectDocument: function selectDocument(type) { console.log(type); } })); } }]); return Controller; }(_react.Component); var _default = (0, _styles.withStyles)(styles, { name: 'Controller', withTheme: false })(Controller); exports["default"] = _default; "use strict"; var _react = _interopRequireWildcard(require("react")); var _styles = require("@material-ui/core/styles"); var _Button = _interopRequireDefault(require("@material-ui/core/Button")); var constants = _interopRequireWildcard(require("./src/constants")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var 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; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(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 i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var DocumentSelection = /*#__PURE__*/function (_Component) { _inherits(DocumentSelection, _Component); var _super = _createSuper(DocumentSelection); function DocumentSelection(props) { var _this; _classCallCheck(this, DocumentSelection); _this = _super.call(this, props); _this.state = { disableButtons: false, title: _this.props.config.ui.documentTitle, subTitle: _this.props.config.ui.documentSubTitle }; return _this; } _createClass(DocumentSelection, [{ key: "render", value: function render() { var _this2 = this; var classes = this.props.classes; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement("h1", { className: classes.title }, " this.state.title "), /*#__PURE__*/_react["default"].createElement("h2", { className: classes.subTitle }, " this.state.subTitle "), /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "outlined", color: "primary", className: classes.button, onClick: function onClick() { _this2.setState({ disableButtons: true }); _this2.props.selectDocument(constants.ID_FRONT); }, disabled: this.state.disableButtons }, /*#__PURE__*/_react["default"].createElement("img", { src: "./resources/images/type_identity_card.svg", width: "50", alt: "logo id", className: classes.buttonContent }), /*#__PURE__*/_react["default"].createElement("p", { className: classes.buttonContent }, " ID / Residence Permit ")))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "outlined", color: "primary", className: classes.button, onClick: function onClick() { _this2.setState({ disableButtons: true }); _this2.props.selectDocument(constants.VISA); }, disabled: this.state.disableButtons }, /*#__PURE__*/_react["default"].createElement("img", { src: "/resources/images/type_identity_card.svg", width: "50", alt: "logo id", className: classes.buttonContent }), /*#__PURE__*/_react["default"].createElement("p", { className: classes.buttonContent }, " Visa ")))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "outlined", color: "primary", className: classes.button, onClick: function onClick() { _this2.setState({ disableButtons: true }); _this2.props.selectDocument(constants.PASSPORT); }, disabled: this.state.disableButtons }, /*#__PURE__*/_react["default"].createElement("img", { src: "/resources/images/type_passport.svg", width: "50", alt: "logo id", className: classes.buttonContent }), /*#__PURE__*/_react["default"].createElement("p", { className: classes.buttonContent }, " Passport ")))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "outlined", color: "primary", className: classes.button, onClick: function onClick() { _this2.setState({ disableButtons: true }); _this2.props.selectDocument(constants.OTHER); }, disabled: this.state.disableButtons }, /*#__PURE__*/_react["default"].createElement("img", { src: "/resources/images/identity_type_other.svg", width: "50", alt: "logo id", className: classes.buttonContent }), /*#__PURE__*/_react["default"].createElement("p", { className: classes.buttonContent }, " Other ")))))))); } }]); return DocumentSelection; }(_react.Component); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _styles = require("@material-ui/core/styles"); var _RadioButtonUnchecked = _interopRequireDefault(require("@material-ui/icons/RadioButtonUnchecked")); var _Loop = _interopRequireDefault(require("@material-ui/icons/Loop")); var _Fab = _interopRequireDefault(require("@material-ui/core/Fab")); var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress")); var _reactWebcam = _interopRequireDefault(require("react-webcam")); var _reactLottie = _interopRequireDefault(require("react-lottie")); var _reactDeviceDetect = require("react-device-detect"); var constants = _interopRequireWildcard(require("./src/constants")); var _config = require("./src/config"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var 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; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var _require = require('detect-browser'), detect = _require.detect; var browser = detect(); var webcamRef = _react["default"].createRef(); var WebcamCapture = /*#__PURE__*/function (_Component) { _inherits(WebcamCapture, _Component); var _super = _createSuper(WebcamCapture); function WebcamCapture(props) { var _this; _classCallCheck(this, WebcamCapture); _this = _super.call(this, props); _defineProperty(_assertThisInitialized(_this), "capture", function () { if (_this.state.disableButtons) { return; } _this.setState({ showAnimation: true, disableButtons: true }); //setTimeout(function(){ var image = webcamRef.current.getScreenshot(); _this.props.closeCameraAndProcess(image); //}.bind(this), 5000); }); _defineProperty(_assertThisInitialized(_this), "getDeviceId", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (browser.name === "chrome" && browser.os === "Android OS") { navigator.mediaDevices.enumerateDevices().then(function (devices) { devices.forEach(function (device) { if (device.kind === "videoinput" && device.label.includes("facing front")) { _this.setState({ deviceIdFront: device.deviceId }); } if (device.kind === "videoinput" && device.label.includes("facing back")) { _this.setState({ deviceIdBack: device.deviceId }); } }); }); } case 1: case "end": return _context.stop(); } } }, _callee); }))); _defineProperty(_assertThisInitialized(_this), "getFacingMode", function (cameraPosition) { if (cameraPosition) { return "user"; } else { return "environment"; } }); _defineProperty(_assertThisInitialized(_this), "changeCameraPosition", function () { if (browser.name === "chrome" && browser.os === "Android OS") { if (webcamRef.current && webcamRef.current.stream && webcamRef.current.stream.getVideoTracks) { webcamRef.current.stream.getVideoTracks().map(function (track) { return track.stop(); }); } webcamRef = _react["default"].createRef(); } _this.setState({ cameraPosition: !_this.state.cameraPosition }); }); var _cameraPosition = _this.props.startingPosition; if (browser.name === "chrome" && browser.os === "Android OS") { _cameraPosition = true; } _this.state = { cameraPosition: _cameraPosition, showAnimation: _this.props.showAnimation, deviceIdFront: "", deviceIdBack: "", loading: _this.props.loading, disableButtons: false }; _this.getDeviceId(); return _this; } _createClass(WebcamCapture, [{ key: "componentDidUpdate", value: function componentDidUpdate(prevProps, prevState) { if (prevState.disableButtons) { this.setState({ disableButtons: false }); } } }, { key: "render", value: function render() { var _this2 = this; var classes = this.props.classes; /* configure videoConstraints for webcam */ var width = 800; var height = 600; var scale = width / height; var fullScreen = false; var videoConstraints = { facingMode: this.getFacingMode(this.state.cameraPosition), width: 800, height: 600 }; var animationWidth = width; if (_reactDeviceDetect.isMobile) { width = window.innerWidth; height = window.innerHeight; fullScreen = true; animationWidth = width - 100; if (this.props.documentType === constants.PASSPORT || this.props.documentType === constants.VISA) { animationWidth = width - 150; } } else { animationWidth = 300; if (this.props.documentType === constants.PASSPORT || this.props.documentType === constants.VISA) { animationWidth = 250; } } if (browser.name === "chrome" && browser.os === "Android OS") { if (!this.state.cameraPosition) { videoConstraints = { deviceId: this.state.deviceIdBack, width: 800, height: 600 }; } } /* configure animation settings */ var defaultOptions = { loop: false, autoplay: true, animationData: this.props.animationData, rendererSettings: { preserveAspectRatio: 'xMidYMid slice' } }; var eventListeners = [{ eventName: 'complete', callback: function callback() { _this2.setState({ showAnimation: false }); } }]; /* configure camera label descriptions */ var label = ""; var info = ""; var number = ""; switch (this.props.documentType) { case constants.ID_FRONT: label = this.props.config.camera.ui.idFront.scanLabel; info = this.props.config.camera.ui.idFront.scanLabel; number = this.props.config.camera.ui.idFront.scanLabel; break; case constants.ID_BACK: label = this.props.config.camera.ui.idBack.scanLabel; info = this.props.config.camera.ui.idBack.scanLabel; number = this.props.config.camera.ui.idBack.scanLabel; break; case constants.VISA: label = this.props.config.camera.ui.visa.scanLabel; info = this.props.config.camera.ui.visa.scanLabel; number = this.props.config.camera.ui.visa.scanLabel; break; case constants.PASSPORT: label = this.props.config.camera.ui.passport.scanLabel; info = this.props.config.camera.ui.passport.scanLabel; number = this.props.config.camera.ui.passport.scanLabel; break; case constants.OTHER: label = this.props.config.camera.ui.other.scanLabel; info = this.props.config.camera.ui.other.scanLabel; number = this.props.config.camera.ui.other.scanLabel; break; case constants.SELFIE: label = this.props.config.camera.ui.selfie.scanLabel; info = this.props.config.camera.ui.selfie.scanLabel; number = this.props.config.camera.ui.selfie.scanLabel; break; default: } return /*#__PURE__*/_react["default"].createElement(Dialog, { open: this.props.open, onClose: function onClose() { _this2.props.close(); }, fullScreen: fullScreen, style: _reactDeviceDetect.isMobile ? { backgroundColor: '#05294B' } : {}, fullWidth: false, maxWidth: "lg" }, /*#__PURE__*/_react["default"].createElement("div", { style: { backgroundColor: '#05294B' } }, /*#__PURE__*/_react["default"].createElement("center", null, this.state.loading ? /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], { color: "secondary", style: { position: 'absolute', marginTop: window.innerHeight / 2 } })) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null), /*#__PURE__*/_react["default"].createElement(_reactWebcam["default"], { width: width, height: height, ref: webcamRef, audio: false, mirrored: this.props.mirrored, screenshotFormat: this.props.config.camera.imageFormat, videoConstraints: videoConstraints, forceScreenshotSourceSize: true, screenshotQuality: 1, onUserMediaError: function onUserMediaError(error) { _this2.props.showSnackMessage("error", "Loading the camera failed with: " + error); _this2.setState({ disableButtons: true }); }, className: classes.videoStream }), this.props.overlay !== constants.OVERLAY_NONE ? /*#__PURE__*/_react["default"].createElement("div", { className: classes.overlay }, this.props.overlay === constants.OVERLAY_DOCUMENT ? /*#__PURE__*/_react["default"].createElement("img", { src: _reactDeviceDetect.isMobile ? "/resources/images/overlay_document_mobile.svg" : "/resources/images/overlay_document.svg", width: "100%", alt: "document overlay" }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null), this.props.overlay === constants.OVERLAY_SELFIE ? /*#__PURE__*/_react["default"].createElement("img", { src: _reactDeviceDetect.isMobile ? "/resources/images/overlay_selfie_mobile.svg" : "resources/images/overlay_selfie.svg", width: "100%", alt: "selfie overlay" }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null), /*#__PURE__*/_react["default"].createElement("div", { className: classes.cameraLabels }, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement("h1", { className: classes.label }, " ", label, " ")))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement("p", { className: classes.info }, " ", info, " ")))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement("p", { className: classes.scan }, " ", number, " "))))))), /*#__PURE__*/_react["default"].createElement("table", { style: { backgroundColor: '#05294B' } }, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Fab["default"], { color: "primary", className: classes.camera, onClick: function onClick() { _this2.capture(); } }, this.state.disableButtons ? /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], { className: classes.progress, disableShrink: true, variant: "indeterminate" }) : /*#__PURE__*/_react["default"].createElement(_RadioButtonUnchecked["default"], { className: classes.cameraIcon }))), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Fab["default"], { color: "primary", className: classes.refresh, onClick: function onClick() { _this2.changeCameraPosition(); } }, /*#__PURE__*/_react["default"].createElement(_Loop["default"], null))))))), this.state.showAnimation ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", { className: classes.lottie }, /*#__PURE__*/_react["default"].createElement("center", null, /*#__PURE__*/_react["default"].createElement(_reactLottie["default"], { options: defaultOptions, width: animationWidth, eventListeners: eventListeners })))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, " "))); } }]); return WebcamCapture; }(_react.Component); WebcamCapture.propTypes = {}; var _default = (0, _styles.withStyles)(_config.styles, { name: 'WebcamCapture', withTheme: false })(WebcamCapture); exports["default"] = _default; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.styles = exports.eynFontSize = exports.defaultConfig = void 0; var _reactDeviceDetect = require("react-device-detect"); var SCREEN_WIDTH = _reactDeviceDetect.isMobile ? window.innerWidth - 25 : window.innerWidth / 3; var defaultConfig = { "logo": "resources/images/logo.png", "title": "Eagle ID powered by EYN", "ui": { "documentTitle": "You're ready to start", "documentSubtitle": "Select (by clicking) your type of document" }, "camera": { "imageFormat": "image/jpeg", "ui": { "idFront": { "scanLabel": "Scan the FRONT SIDE of your document", "infoLabel": "Place it within the frame and press the camera button", "scanNumber": "Scan 1/2" }, "idBack": { "scanLabel": "Scan the BACK SIDE of your document", "infoLabel": "Place it within the frame and press the camera button", "scanNumber": "Scan 2/2" }, "visa": { "scanLabel": "Scan your VISA document", "infoLabel": "Place it within the frame and press the camera button", "scanNumber": "" }, "passport": { "scanLabel": "Scan the FRONT PAGE of your PASSPORT document", "infoLabel": "Please make sure to only include the main page containing the passport photo", "scanNumber": "" }, "other": { "scanLabel": "Scan your document", "infoLabel": "Place it within the frame and press the camera button", "scanNumber": "" }, "selfie": { "scanLabel": "Send us a smile", "infoLabel": "Place it within the frame and\n press the camera button", "scanNumber": "" } } } }; exports.defaultConfig = defaultConfig; var eynFontSize = function eynFontSize() { var width = window.outerWidth; /* iphone SE, 5, 5s, 5c, < */ if (width <= 320) { return { large: 22.0, regular: 17.0 }; } /* iphone 6, 6s, 7, 8, 11 Pro, X, Xs */ if (width > 320 && width <= 375) { return { large: 24.0, regular: 19.0 }; } /* iphone 11 Pro Max, Xs Max, 11, Xr, 6+, 6s+, 7+, 8+, web */ if (width >= 375) { return { large: 26.0, regular: 21.0 }; } }; exports.eynFontSize = eynFontSize; var styles = function styles(theme) { return { title: { color: '#05294B', marginTop: 75, fontSize: eynFontSize().large, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" }, subTitle: { color: '#05294B', fontSize: eynFontSize().regular, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" }, button: { fontSize: eynFontSize().regular, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif", color: '#05294B', borderRadius: 10, backgroundColor: 'rgba(128,128,128,0.2)', width: SCREEN_WIDTH - 50, margin: '0 auto' }, buttonContent: { left: 0, right: 0, marginLeft: 10, marginRight: 'auto' }, container: { borderStyle: 'solid', borderWidth: 1, borderRadius: 5, borderColor: 'gray', width: SCREEN_WIDTH, position: 'absolute', left: 0, right: 0, marginLeft: 'auto', marginRight: 'auto', marginTop: 25, marginBottom: 25, boxShadow: '10px 10px 5px grey' }, header: { borderStyle: 'solid', borderWidth: 1, borderRadius: 5, borderColor: 'gray', width: SCREEN_WIDTH, position: 'absolute', top: -1, left: -1, right: 0, marginLeft: 'auto', marginRight: 'auto', color: 'white', backgroundColor: '#05294B', marginBottom: 25, height: 50, fontSize: eynFontSize().large, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" }, videoStream: { backgroundColor: '#05294B', top: 0, bottom: 0, left: 0, right: 0, margin: "auto", position: "relative", display: 'block' }, camera: { position: 'absolute', left: 0, right: 0, bottom: 25, marginLeft: 'auto', marginRight: 'auto', backgroundColor: 'transparent' }, cameraIcon: { backgroundColor: "transparent", "&:hover": { backgroundColor: "transparent" }, fontSize: 50 }, progress: { size: 50, color: "white" }, overlay: { position: 'absolute', display: 'block', width: '100%', height: '100%', top: 0, left: 0, right: 0, bottom: 0, margin: "auto" }, refresh: { position: 'absolute', left: 0, right: 25, bottom: 25, marginLeft: 'auto', marginRight: 0, backgroundColor: '#05294B' }, lottie: { position: 'absolute', left: 0, right: 0, top: 25, marginLeft: 'auto', marginRight: 'auto' }, cameraLabels: { position: 'absolute', left: 0, right: 0, bottom: 75, marginLeft: 'auto', marginRight: 'auto' }, loading: { color: 'secondary' }, label: { color: 'white', top: 0, bottom: 0, left: 0, right: 0, margin: 'auto', marginLeft: 'auto', marginRight: 'auto', width: '100', fontSize: eynFontSize().large, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" }, info: { color: 'white', top: 0, bottom: 0, left: 0, right: 0, margin: 'auto', marginLeft: 'auto', marginRight: 'auto', width: '100', fontSize: eynFontSize().regular, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" }, scan: { color: 'white', top: 0, bottom: 0, left: 0, right: 0, margin: 'auto', marginLeft: 'auto', marginRight: 'auto', width: '100', fontSize: eynFontSize().regular, fontFamily: "'Raleway', 'Roboto', 'Helvetica', 'Arial', sans-serif" } }; }; exports.styles = styles; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OVERLAY_NONE = exports.OVERLAY_SELFIE = exports.OVERLAY_DOCUMENT = exports.SELFIE = exports.OTHER = exports.PASSPORT = exports.VISA = exports.ID_BACK = exports.ID_FRONT = exports.routes = exports.RESULT_SCREEN = exports.SELFIE_SCREEN = exports.DOCUMENTS_SCREEN = void 0; var DOCUMENTS_SCREEN = "document_screen"; exports.DOCUMENTS_SCREEN = DOCUMENTS_SCREEN; var SELFIE_SCREEN = "selfie_screen"; exports.SELFIE_SCREEN = SELFIE_SCREEN; var RESULT_SCREEN = "result_screen"; exports.RESULT_SCREEN = RESULT_SCREEN; var routes = [DOCUMENTS_SCREEN, SELFIE_SCREEN, RESULT_SCREEN]; exports.routes = routes; var ID_FRONT = "id_front"; exports.ID_FRONT = ID_FRONT; var ID_BACK = "id_back"; exports.ID_BACK = ID_BACK; var VISA = "visa"; exports.VISA = VISA; var PASSPORT = "passport"; exports.PASSPORT = PASSPORT; var OTHER = "other"; exports.OTHER = OTHER; var SELFIE = "selfie"; exports.SELFIE = SELFIE; var OVERLAY_DOCUMENT = "document"; exports.OVERLAY_DOCUMENT = OVERLAY_DOCUMENT; var OVERLAY_SELFIE = "selfie"; exports.OVERLAY_SELFIE = OVERLAY_SELFIE; var OVERLAY_NONE = "none"; exports.OVERLAY_NONE = OVERLAY_NONE; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _config = require("./src/config"); var _styles = require("@material-ui/core/styles"); var _Controller = _interopRequireDefault(require("./src/Controller")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var 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; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(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 i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var EagleId = /*#__PURE__*/function (_Component) { _inherits(EagleId, _Component); var _super = _createSuper(EagleId); function EagleId(props) { var _this; _classCallCheck(this, EagleId); _this = _super.call(this, props); _this.state = { config: {} }; return _this; } _createClass(EagleId, [{ key: "componentWillMount", value: function componentWillMount() { var logo = ""; if (this.props.config.logo !== undefined) { logo = this.props.config.logo; } else { logo = _config.defaultConfig.logo; } var title = ""; if (this.props.config.title !== undefined) { title = this.props.config.title; } else { title = _config.defaultConfig.title; } var documentTitle = ""; if (this.props.config.ui.documentTitle !== undefined) { documentTitle = this.props.config.ui.documentTitle; } else { documentTitle = _config.defaultConfig.ui.documentTitle; } var documentSubtitle = ""; if (this.props.config.ui.documentSubtitle !== undefined) { documentSubtitle = this.props.config.ui.documentSubtitle; } else { documentSubtitle = _config.defaultConfig.ui.documentSubtitle; } var imageFormat = ""; if (this.props.config.camera.imageFormat !== undefined) { imageFormat = this.props.config.camera.imageFormat; } else { imageFormat = _config.defaultConfig.camera.imageFormat; } this.setState({ config: { "logo": logo, "title": title, "ui": { "documentTitle": documentTitle, "documentSubtitle": documentSubtitle }, "camera": { "imageFormat": imageFormat } } }); } }, { key: "render", value: function render() { var classes = this.props.classes; return /*#__PURE__*/_react["default"].createElement("div", { className: classes.container }, /*#__PURE__*/_react["default"].createElement("div", { className: classes.header }, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("img", { src: this.state.config.logo, width: "150", alt: "logo" })), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("p", { style: { position: "absolute", top: 0, bottom: 0, margin: "auto", marginTop: 10, marginLeft: -25, whiteSpace: "nowrap", fontWeight: 400 } }, "this.state.config.title")))))), /*#__PURE__*/_react["default"].createElement(_Controller["default"], { config: this.state.config })); } }]); return EagleId; }(_react.Component); var _default = (0, _styles.withStyles)(_config.styles, { name: 'EagleId', withTheme: false })(EagleId); exports["default"] = _default;