eagle-id
Version:
A React based component to perform identity verification
1,073 lines (885 loc) • 47.3 kB
JavaScript
"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;